* DISK COPY * PR MACRO ADR LDX #ADR&255 LDY #ADR/256 JSR PRINT MEND EOL MACRO DFB 155 MEND ORG $1C00 DATBUF EQU $0400 BUF EQU DATBUF POMZ EPZ 203 ;204 SEC1 EPZ 205 ;206 SEC2 EPZ 207 ;208 POCBUF EPZ 209 OBR EPZ 0 ;1 TSEC1 EPZ 28 ;29 TSEC2 EPZ 30 ;31 MAXBUF EPZ 4 SK0 EQU 262 SK1 EQU 736 SK2 EQU 738 SK3 EQU 739 SK4 EQU 771 SK5 EQU 772 SK6 EQU 773 SK7 EQU 776 SK8 EQU 777 SK9 EQU 778 SK10 EQU 779 SK11 EQU 834 SK12 EQU 836 SK13 EQU 837 SK14 EQU 840 SK15 EQU 5347 SK16 EQU 5380 INIT CLC RTS NOP RUN LDA #1 STA 752 LDA #2 STA 82 LDA #39 STA 83 PR T0 PR T1 PR T2 PR T3 LDA #2 STA 85 LDA #9 STA 84 PR T14 VFOR JSR SETSET VFORR LDA #2 STA 85 LDA #10 STA 84 PR T13 LDA #255 STA 764 VFORC LDA 53279 CMP #6 BEQ VFORK LDA 764 CMP #255 BEQ VFORC CMP #31 BNE VFOR1 LDA TR EOR #$80 STA TR LDA TW EOR #$80 STA TW JMP VFOR VFOR1 CMP #30 BNE VFOR2 LDA STAV EOR #$80 ;COPY JMP VFOR7 VFOR2 CMP #26 BNE VFOR3 LDY #'P'<<1 LDA TW ASL PHP LSR CMP #'W' BEQ VFOR22 LDY #'W'<<1 VFOR22 TYA PLP ROR STA TW JMP VFOR VFOR3 CMP #24 BNE VFOR4 LDA STAV EOR #$40 JMP VFOR7 VFOR4 CMP #29 BNE VFOR5 LDA STAV AND #$03 TAY INY BNE VFOR44 INY VFOR44 LDA STAV AND #$FC STA STAV TYA AND #$03 ORA STAV VFOR7 STA STAV JMP VFOR VFOR5 CMP #28 BEQ VFOR6 JMP VFORR VFORK JMP VFORKX VFOR6 LDY #255 STY 764 INY STY 752 JMP (10) VFORKX LDA #9 STA 84 PR TMAZ PR TMAZ JSR INSFROM LDX #0 STX 779 INX STX 778 LDA TW STA ULOZ LDA #'O' STA TW LDA #12 JSR NDLX LDA #SNBUF&255 LDX #SNBUF/256 JSR WRITES LDA ULOZ STA TW JSR NDL128 LDA #BUF&255 LDX #BUF/256 JSR SK33 LDA TR STA ULOZ LDA #'N' STA TR LDA #12 JSR NDLX LDA #NBUF&255 LDX #NBUF/256 JSR SK33 LDA ULOZ STA TR LDY #7 LDA NBUF,Y ;DLZKA SEK AND #$80 STA SK21 LDY #4 LDA NBUF,Y ;POCET STRAN BEQ VF1 LDA #0 STA UTSEK JMP VFF VF1 LDY #3 LDA NBUF,Y ;POCET SEK/STOPU LDX #2 CMP #26 BNE VF2 LDX #1 VF2 STX UTSEK VFF LDA UTSEK AND #%00000011 STA UTSEK ASL ;*2 TAX ASL ;*4 TAY LDA TABS1,X STA MAXSEC LDA TABS1+1,X STA MAXSEC+1 LDX #3 KKC1 LDA TABS2,Y STA TSEK,X INY DEX BPL KKC1 LDX #0 LDA SK21 BEQ KKC2 LDX #3 KKC2 LDY #2 KKC3 LDA TABDLS,X STA TBYTES,Y INX DEY BPL KKC3 VSEC LDA #2 STA 85 LDA #7 STA 84 PR T4 PR T5 CKEY LDA 53279 AND #7 CMP #3 BNE K1 INC UTSEK LDA UTSEK AND #%00000011 STA UTSEK ASL ;*2 TAX ASL ;*4 TAY LDA TABS1,X STA MAXSEC LDA TABS1+1,X STA MAXSEC+1 LDX #3 KC1 LDA TABS2,Y STA TSEK,X INY DEX BPL KC1 KC11 LDA 53279 CMP #7 BNE KC11 JMP VSEC K1 CMP #5 BNE K2 LDX #0 LDA SK21 EOR #$80 STA SK21 BEQ KC2 LDX #3 KC2 LDY #2 KC3 LDA TABDLS,X STA TBYTES,Y INX DEY BPL KC3 KC33 LDA 53279 CMP #7 BNE KC33 JMP VSEC K2 CMP #6 BNE CKEY LDA #2 STA 85 LDA #10 STA 84 PR T6 * JSR INSFROM JSR NDL128 LDA #BOTBUF&255 STA POMZ LDA #BOTBUF/256 STA POMZ+1 LDX #0 STX 779 INX STX 778 NACB LDA POMZ LDX POMZ+1 JSR SK33 LDA POMZ CLC ADC #128 STA POMZ LDA POMZ+1 ADC #0 STA POMZ+1 INC 778 LDA 778 CMP #4 BCC NACB JSR NASDL LDA MAXSEC STA 778 LDA MAXSEC+1 STA 779 LDA #DATBUF&255 LDX #DATBUF/256 JSR SK33 JSR INSTO LDA STAV ASL ASL BCC XX1 XX3 LDX #0 STX 779 INX STX 778 LDA TW STA ULOZ LDA #'O' STA TW LDA #12 JSR NDLX LDA #NBUF&255 LDX #NBUF/256 JSR WRITES LDA ULOZ STA TW JSR NASDL LDA #'!' STA 770 LDA #BUF&255 STA 772 LDA #BUF/256 STA 773 JSR $E453 BPL XX2 XX4 JSR RWERR BCS XX3 XX2 LDA 776 LDY #0 STY 776 TAY BNE XX4 XX1 JSR NASDL LDA MAXSEC STA 778 LDA MAXSEC+1 STA 779 LDA #DATBUF&255 LDX #DATBUF/256 JSR SK33 LDX #127 LDA #0 NULB STA DATBUF,X DEX BPL NULB LDA 20 STA TODISR LDX #7 NASB LDA TODISK,X STA DATBUF,X DEX BPL NASB LDA STAV ASL BCC XXX5 JSR NDL128 LDX #0 STX 779 INX STX 778 LDA #DATBUF&255 LDX #DATBUF/256 JSR WRITES XXX5 LDA 106 ;KONIEC VOLNEJ PAMATE SEC SBC #4 SEC SBC #ZACBUF STA MAXBUF LDX SK21 BEQ NA1 LDA MAXBUF BPL NA2 LDA #$7F NA2 ASL STA MAXBUF NA1 LDA #0 STA SEC1+1 STA SEC2+1 STA TSEC1+1 STA TSEC2+1 LDA #4 STA SEC1 STA SEC2 STA TSEC1 STA TSEC2 LDA STAV ASL BCC XXX6 JMP STLOAD ;SK27 XXX6 JMP STCOMP NDL128 LDA #128 NDLX STA 776 LDA #0 STA 777 RTS NASDL LDX #0 LDA SK21 STA 776 BNE NASDL1 INX NASDL1 STX 777 RTS INSFROM LDA 53279 AND #7 CMP #6 BEQ INSFROM LDA #2 STA 85 LDA #12 STA 84 PR T7 INSF1 LDA 53279 AND #7 CMP #6 BNE INSF1 JMP INSMAZ INSTO LDA 53279 AND #7 CMP #6 BEQ INSTO LDA #2 STA 85 LDA #12 STA 84 PR T8 JMP INSF1 INSMAZ LDA #2 STA 85 LDA #12 STA 84 PR T9 RTS TESTFR JSR INSFROM JSR NDL128 LDX #0 STX 779 INX STX 778 LDA #DATBUF&255 LDX #DATBUF/256 JSR SK33 JSR NASDL LDX #127 TESTF1 LDA DATBUF,X CMP BOTBUF,X BNE TESTFR DEX BPL TESTF1 RTS TESTTO JSR INSTO JSR NDL128 LDX #0 STX 779 INX STX 778 LDA #DATBUF&255 LDX #DATBUF/256 JSR SK33 JSR NASDL LDX #7 TESTT1 LDA DATBUF,X CMP TODISK,X BNE TESTTO DEX BPL TESTT1 RTS SETSET LDY #0 LDX #5 LDA TR BMI SET1 LDY #6 SET1 LDA TTSPE,Y STA TSPE,X INY DEX BPL SET1 LDY #0 LDX #4 LDA STAV BMI SET2 LDY #5 SET2 LDA TTCOPY,Y STA TCOPY,X INY DEX BPL SET2 LDY #0 LDX #3 LDA TW AND #$7F CMP #'W' BEQ SET3 LDY #4 SET3 LDA TTWP,Y STA TWP,X INY DEX BPL SET3 LDY #0 LDX #6 LDA STAV AND #$40 BNE SET4 LDY #7 SET4 LDA TTFOR,Y STA TFOR,X INY DEX BPL SET4 LDY #0 LDX #6 LDA STAV AND #$02 BNE SET5 LDY #14 JMP SET6 SET5 LDA STAV AND #$01 BEQ SET6 LDY #7 SET6 LDA TTVER,Y STA TVER,X INY DEX BPL SET6 RTS HPRINT TAX LSR LSR LSR LSR CLC ADC #16 ;DISP.ASC 0 STA (OBR),Y INY TXA AND #$0F CLC ADC #16 ;DISP.ASC 0 STA (OBR),Y INY RTS SK21 DFB 0 ;DLZKA SEKTORU MAXSEC DFW 1440 ;LAST SECTOR UTSEK DFB 0 ADBUF DFW 0 ULOZ DFB 0 TR ASC 'R' TW ASC 'W' STAV DFB %11000010 TABS1 DFW 1440,1040,720,360 TABS2 ASC '0441' ASC '0401' ASC '027 ' ASC '063 ' TABDLS ASC '652' ASC '821' TTSPE ASC 'DEEPS ' DFB 6 DUP ' ' TTCOPY ASC 'YPOC ' DFB 5 DUP ' ' TTWP ASC ')W( ' ASC ')P( ' TTFOR ASC 'TAMROF ' DFB 7 DUP ' ' TTVER ASC 'YFIREV ' ASC ' KCEHC ' DFB 7 DUP ' ' SNBUF DFB 40,0,0,18,1,4,1,0,1,65,0,0 TODISK ASC 'TO DISK' TODISR ASC ' ' STLOAD JSR TESTFR JSR NASDL LDA #0 STA POCBUF STA POMZ LDA #ZACBUF STA POMZ+1 LDA 88 CLC ADC #400+TREAD-T6+2&255 STA OBR LDA 89 ADC #400+TREAD-T6+2/256 STA OBR+1 CLOAD LDY #0 LDA TSEC1+1 JSR HPRINT LDA TSEC1 JSR HPRINT LDA SEC1 STA 778 LDA SEC1+1 STA 779 LDA POMZ LDX POMZ+1 JSR SK33 LDA POMZ CLC ADC SK21 STA POMZ LDA POMZ+1 ADC #0 STA POMZ+1 LDA SK21 BNE CL1 INC POMZ+1 CL1 INC SEC1 BNE CL2 INC SEC1+1 CL2 SED LDA TSEC1 CLC ADC #1 STA TSEC1 LDA TSEC1+1 ADC #0 STA TSEC1+1 CLD INC POCBUF LDA POCBUF CMP MAXBUF BCC CL3 JMP STSAVE CL3 LDA SEC1+1 CMP MAXSEC+1 BCC CLOAD LDA SEC1 CMP MAXSEC BCC CLOAD BEQ CLOAD JMP STSAVE STSAVE JSR TESTTO JSR NASDL LDA #0 STA POMZ LDA #ZACBUF STA POMZ+1 LDA 88 CLC ADC #400+TWRITE-T6+2&255 STA OBR LDA 89 ADC #400+TWRITE-T6+2/256 STA OBR+1 CSAVE LDY #0 LDA TSEC2+1 JSR HPRINT LDA TSEC2 JSR HPRINT LDA SEC2 STA 778 LDA SEC2+1 STA 779 LDA POMZ LDX POMZ+1 JSR WRITES LDA POMZ CLC ADC SK21 STA POMZ LDA POMZ+1 ADC #0 STA POMZ+1 LDA SK21 BNE CS1 INC POMZ+1 CS1 INC SEC2 BNE CS2 INC SEC2+1 CS2 SED LDA TSEC2 CLC ADC #1 STA TSEC2 LDA TSEC2+1 ADC #0 STA TSEC2+1 CLD DEC POCBUF BNE CSAVE LDA SEC2+1 CMP MAXSEC+1 BCC CS3 ;BCC STLOAD LDA SEC2 CMP MAXSEC BCS CS4 CS3 JMP STLOAD CS4 BEQ CS3 JSR NDL128 LDA #BOTBUF&255 STA POMZ LDA #BOTBUF/256 STA POMZ+1 LDX #0 STX 779 INX STX 778 ZAPB LDA POMZ LDX POMZ+1 JSR WRITES LDA POMZ CLC ADC #128 STA POMZ LDA POMZ+1 ADC #0 STA POMZ+1 INC 778 LDA 778 CMP #4 BCC ZAPB STCOMP LDA STAV LSR LSR BCS STCOM JMP RUN STCOM LDA STAV LSR BCS STCOMM JMP STVER STCOMM LDA #0 STA SEC1+1 STA TSEC1+1 LDA #4 STA SEC1 STA TSEC1 JSR TESTFR JSR NASDL LDA #0 STA POMZ LDA #ZACBUF STA POMZ+1 LDA 88 CLC ADC #400+TREAD-T6+2&255 STA OBR LDA 89 ADC #400+TREAD-T6+2/256 STA OBR+1 CCH LDY #0 LDA TSEC1+1 JSR HPRINT LDA TSEC1 JSR HPRINT LDA SEC1 STA 778 LDA SEC1+1 STA 779 LDA #BUF&255 LDX #BUF/256 JSR SK33 LDY #0 TYA CLC CC1 ADC BUF,Y ADC #0 INY CPY SK21 BCC CC1 LDY #0 STA (POMZ),Y INC POMZ BNE CC11 INC POMZ+1 CC11 INC SEC1 BNE CC2 INC SEC1+1 CC2 SED LDA TSEC1 CLC ADC #1 STA TSEC1 LDA TSEC1+1 ADC #0 STA TSEC1+1 CLD LDA SEC1+1 CMP MAXSEC+1 BCC CCH LDA SEC1 CMP MAXSEC BCC CCH BEQ CCH JMP STVER STVER LDA #0 STA SEC2+1 STA TSEC1+1 LDA #4 STA SEC2 STA TSEC1 JSR INSTO JSR NASDL LDA #0 STA POMZ LDA #ZACBUF STA POMZ+1 LDA 88 CLC ADC #400+TREAD-T6+2&255 STA OBR LDA 89 ADC #400+TREAD-T6+2/256 STA OBR+1 CVE LDY #0 LDA TSEC1+1 JSR HPRINT LDA TSEC1 JSR HPRINT LDA SEC2 STA 778 LDA SEC2+1 STA 779 LDA #BUF&255 LDX #BUF/256 JSR SK33 LDA STAV LSR BCC CV11 LDY #0 TYA CLC CV1 ADC BUF,Y ADC #0 INY CPY SK21 BCC CV1 LDY #0 CMP (POMZ),Y BEQ CVX LDA #2 STA 85 LDA #12 STA 84 PR T15 JSR INSF1 CVX INC POMZ BNE CV11 INC POMZ+1 CV11 INC SEC1 INC SEC2 BNE CV2 INC SEC2+1 CV2 SED LDA TSEC1 CLC ADC #1 STA TSEC1 LDA TSEC1+1 ADC #0 STA TSEC1+1 CLD LDA SEC2+1 CMP MAXSEC+1 BCC CVE ;BCC STLOAD LDA SEC2 CMP MAXSEC BCC CVE JMP RUN SK31 JSR RWERR BCC RES1 SK33 LDY #64 ;VSTUP STY SK4 LDY TR STY 770 STA SK5 ;L - BUFER STA ADBUF STX SK6 ;H - BUFER STX ADBUF+1 LDA SK9 ORA SK10 BEQ SK31 ;SEKTOR=0 - ERROR JSR SK49 ;SIOINTERFACE BMI SK31 ;CYBA RES1 RTS WRERR JSR RWERR BCC WRS1 WRITES LDY #128 ;VYSTUP STY SK4 LDY TW STY 770 STA SK5 ;L - BUFER STA ADBUF STX SK6 ;H - BUFER STX ADBUF+1 LDA SK9 ORA SK10 BEQ WRERR ;SEKTOR=0 - ERROR JSR SK49 ;SIOINTERFACE BMI WRERR ;CYBA WRS1 RTS RWERR LDA #2 STA 85 LDA #14 STA 84 LDA 770 STA T10P TYA JSR HPRERR PR T10 PR T11 RWE0 LDA #255 STA 764 RWE1 LDA 764 CMP #255 BEQ RWE1 CMP #63 ;ABORT BEQ RWE2 CMP #40 ;RETRY BEQ RWE3 CMP #13 ;IGNORE BNE RWE0 JSR RWEK CLC RTS RWE3 JSR RWEK SEC RTS RWE2 JSR RWEK LDX #255 TXS JMP RUN RWEK LDA #255 STA 764 PR T12 LDA ADBUF LDX ADBUF+1 RTS HPRERR LDY #0 LDX #0 HPRE0 SEC SBC #100 BCC HPRE1 INX JMP HPRE0 HPRE1 CLC ADC #100 JSR HPRR HPRE2 SEC SBC #10 BCC HPRE3 INX JMP HPRE2 HPRE3 CLC ADC #10 JSR HPRR TAX JSR HPRR RTS HPRR PHA TXA CLC ADC #'0' STA TKCH,Y INY LDX #0 PLA RTS SIOINT LDA $0302 BMI SIOINTE JMP $E459 SIOINTE LDA #$01 STA $0042 LDA $0301 PHA JSR SIO JMP $C95E ;CONTINUE SIO TSX STX $0318 LDA #$01 STA $42 LDA #$00 STA $030F LDA #$00 ;1 POKUS STA $02BD LDA #$0D ;13 POKUSOV O KOM. STA $029C SIO0 LDA #$28 STA $D204 LDA #$00 STA $D206 CLC LDA $0300 ADC $0301 ADC #$FF STA $023A LDA $0302 STA $023B LDA $030A STA $023C LDA $030B STA $023D CLC LDA #$3A STA $32 ADC #$4 STA $34 LDA #$02 STA $33 STA $35 LDA #$34 STA $D303 JSR $ECAF LDA $023F BNE SIO1 TYA BNE SIO2 SIO1 DEC $029C BPL SIO0 JMP $EA22 SIO2 LDA #$10 ;SPEED= 38908 Bd STA $D204 LDA #$00 STA $D206 JMP $E9E1 ;CONTINUE PRINT EQU 50754 SK46 EQU 28494 SK47 EQU 53280 SK48 EQU 58454 SK49 EQU SIOINT ;58457 SK50 EQU 64351 T0 DFB 125,29,29 ASC '************************************' EOL T1 ASC '*..DISK COPY ver.2.0 13.03.1993..*' EOL T2 ASC '* Copyright (c)Tomi by Marek Zelem *' EOL T3 ASC '************************************' DFB 29 EOL T4 ASC ' LAST SECTOR:' ;RIADOK 7 TSEK ASC '1440' EOL T5 ASC ' BYTES/SECTOR:' ;RIADOK 8 TBYTES ASC '256' DFB 29 EOL T6 ASC 'READ:' ;RIADOK 10 TREAD DFB 4 DUP ' ' DFB 5 DUP ' ' ASC 'WRITE:' TWRITE DFB 5 DUP ' ' EOL T7 ASC 'INSERT ' IASC 'FROM' ASC ' DISK IN DRIVE 1' EOL T8 ASC 'INSERT ' IASC ' TO ' ASC ' DISK IN DRIVE 1' EOL T9 DFB 28 DUP ' ' EOL T10 ASC 'READ/WRITE ERROR (' T10P ASC 'X) - ' TKCH ASC '000' DFB 29 EOL T11 ASC 'Abort Retry Ignore' EOL T12 DFB 28,28,28,156,156 TMAZ DFB 156 EOL T13 ASC 'SET:' TSPE ASC ' SPEED' TCOPY ASC ' COPY' TWP ASC ' (W)' TFOR ASC ' FORMAT' TVER ASC ' VERIFY' EOL T14 ASC '.......1....2....3....4......5' EOL T15 ASC 'THIS SECTOR IS NOT EQUAL' EOL NBUF DFB 12 DUP 0 BOTBUF DFB 3*128 DUP 0 ZACBUF EPZ @PC/256+1 ORG 738 DFW INIT ORG 736 DFW RUN