* TURBO 08 Ver.2.0DF 5.5.1993 SIOI MACRO JSR MSOI MEND DREAD MACRO JSR MDREAD MEND ADRESA MACRO ADR LDA #ADR&255 STA 772 LDA #ADR>>8 STA 773 MEND SEKTOR MACRO SE LDA #SE&255 STA 778 LDA #SE>>8 STA 779 MEND ORG $E000 DATA ZNSADA.DAT ORG $0600 CONFT LDA 54017 CMP #255 BNE BCONF LDA 1016 BEQ BCONF LDA 106 CMP #192 BNE BCONF CLC RTS BCONF JMP $E477 ;COLD START ORG 738 DFW CONFT ORG 48192 DATA TURBO08.OBR ORG $FF00 NMI BIT $D40F BPL NMI1 JMP ($200) NMI1 CLD PHA TXA PHA TYA PHA STA $D40F JMP ($222) IRQ CLD PHA LDA $D20E STA $D20E BPL IRQBR IRQE LDA $10 STA $D20E PLA RTI IRQBR LDA #0 STA $11 STA $02FF STA $4D BEQ IRQE ;JMP ORG $FFFA DFW NMI DFW 0 DFW IRQ ORG $0600 RSTART LDA #RSTART&255 STA 2 STA 12 STA 10 LDA #RSTART>>8 STA 3 STA 13 STA 11 LDA #1 STA 9 * LDA #RBREAK&255 * STA 566 * LDA #RBREAK>>8 * STA 567 LDA #0 STA 580 LDA 1016 BEQ RSTAO LDA 54017 CMP #255 BNE RSTAO JSR ROMVYP JMP START RSTAO LDA #255 STA 54017 STA 1016 JMP $E474 RIAD DFB 4,4,5,6,7,8,9,10,11,12 DFW $404,$404,$404,$404,$404 DFW $404,$404,$404,$404,$404 DFW $404,$404,$404,$404,$404 DFW $404,$404,$404,$404 RIAD2 DFB 4,4,5,6,7,8,9,10,11,12 DFW $404,$404,$404,$404,$404 DFW $404,$404,$404,$404,$404 DFW $404,$404,$404,$404,$404 DFW $404,$404,$404,$404 FRSTART LDA #0 SEI STA LC60 JSR ROMOFF LDA #255 STA MEM LDA #RSTART&255 STA 203 LDA #RSTART>>8 STA 204 LDA #0 STA 205 LDA #$F2 STA 206 LDY #0 FRST1 LDA (203),Y STA (205),Y INY BNE FRST1 INC 204 INC 206 LDA 204 CMP #AD BCC FRST1 RSTR JSR ROMZAP JMP RSTART * RBREAK LDA #0 * STA 17 * PLA * RTI QUIT JSR ROMZAP JMP 49864 VBI LDA $0231 STA $D403 LDA $0230 STA $D402 LDA $022F STA $D400 LDX #8 VBI1 LDA $02C0,X STA $D012,X DEX BPL VBI1 LDA $02F4 STA $D409 LDA $02F3 STA $D401 PLA TAY PLA TAX PLA RTI DLI PHA TYA PHA SEC LDA #4 ;1024 LDY HR STY $D404 ;ROL INY STA $D40A ;WSYNC STA $D409 ;CH LDA #$0 STA $D018 ;COL CPY #8 BCC DLI2 LDY #2 LDA (DLX),Y ;ADR RIAD SBC #2 ;-2 CMP #RIAD&255 BNE DLI1 LDA #48+RIAD&255 DLI1 STA (DLX),Y LDY #0 DLI2 STY HR PLA TAY PLA RTI *-------------- AP EPZ 203 DLX EPZ 26 HR DFB 0 ;H.ROL LC51 JSR ROMZAP JSR 50750 JMP ROMVYP LC52 JSR ROMZAP JSR 50754 JMP ROMVYP LC62 JSR ROMZAP JSR 65020 JMP ROMVYP PR JSR ROMZAP JSR $F2B0 JMP ROMVYP GET JSR ROMZAP JSR $F2F8 JMP ROMVYP SIOD JSR ROMZAP * JSR DLIVYP JSR 58451 JMP ROMVYP ROMVYP PHA TYA PHA TXA PHA LDY #VBI&255 LDX #VBI>>8 LDA #6 JSR $E45C SEI JSR ROMOFF PLA TAX PLA TAY PLA RTS ROMZAP PHA TYA PHA TXA PHA JSR ROMON CLI LDY #226 ;VBI V ROM LDX #192 LDA #6 JSR $E45C PLA TAX PLA TAY PLA RTS ROMOFF LDA 54017 STA MEM LDA #254 STA 54017 RTS ROMON LDA MEM ORA #$01 STA 54017 RTS TRANO JSR ROMZAP JSR DLIVYP LDA #$92 STA 566 LDA #$C0 STA 567 LDX #$FF TXS LDA #1004>>8 PHA LDA #1004&255 PHA LDA #$CE STA 512 LDA #$C0 STA 513 JSR $EF9A LDA TBASIC STA 106 JSR TRANOO LDA 204 CMP 208 BCC TRANP BNE TRANM LDA 203 CMP 207 BCC TRANP BNE TRANM JMP (1039) JMP START TRANP LDX #0 CY LDA DATAP,X STA 256,X INX CPX #DATAM-DATAP BNE CY LDA 207 CLC ADC 1037 STA 207 LDA 208 ADC 1038 STA 208 JMP 256 TRANM LDX #0 CM LDA DATAM,X STA 256,X INX CPX #DATAK-DATAM BNE CM JMP 256 TRANOO LDA #1005&255 STA 12 STA 2 LDA #1005>>8 STA 13 STA 3 RTS DATAP LDA #0 SEI STA LC60 LDA #254 STA 54017 LDY #0 DP1 LDA (205),Y TAX LDA #0 STA (205),Y TXA STA (207),Y DEC 205 LDA 205 CMP #255 BNE DP2 DEC 206 LDA 206 CMP #$BF BNE DP2 LDA #$BB STA 206 DP2 DEC 207 LDA 207 CMP #255 BNE DP3 DEC 208 DP3 LDA 206 CMP 204 BNE DP1 LDA 205 CMP 203 BNE DP1 LDA RBASIC STA 54017 CLI LDY #192 STY LC60 CMP #255 BEQ DP4 JSR $EF9A DP4 JMP (1039) DATAM LDY #0 SEI STY LC60 LDA #254 STA 54017 DM1 LDA (203),Y TAX LDA #0 STA (203),Y TXA STA (207),Y INC 203 BNE DM2 INC 204 LDA 204 CMP #$BC BNE DM2 LDA #$C0 STA 204 DM2 INC 207 BNE DM3 INC 208 DM3 LDA 204 CMP 206 BCC DM1 LDA 203 CMP 205 BCC DM1 LDA RBASIC STA 54017 CLI LDY #192 STY LC60 CMP #255 BEQ DM4 JSR $EF9A DM4 JMP (1039) DATAK OUT ODLZAP LDA #0 STA LC60 LDA 560 STA 203 SEC SBC #4 STA 205 STA 560 LDA 561 STA 204 SBC #0 STA 206 STA 561 LDY #0 PKQ LDA (203),Y STA (205),Y INY CPY #29 BCC PKQ TYA CLC ADC 205 STA DLX LDA 206 ADC #0 STA DLX+1 LDA #$80 ;DLI STA (205),Y INY LDA #$52 ;GR.0+ADR+ROL STA (205),Y INY LDA #RIAD2&255 STA (205),Y INY LDA #RIAD2>>8 STA (205),Y INY LDA #65 STA (205),Y INY LDA 205 STA (205),Y INY LDA 206 STA (205),Y LDA #DLI&255 STA 512 LDA #DLI>>8 STA 513 LDA #192 STA LC60 RTS DLZAP LDA #0 STA LC60 LDY #0 LDA #$80 STA (DLX),Y INY LDA #$52 STA (DLX),Y INY LDA #RIAD2&255 STA (DLX),Y LDA #RIAD2>>8 INY STA (DLX),Y INY LDA #65 STA (DLX),Y INY LDA 560 STA (DLX),Y INY LDA 561 STA (DLX),Y LDA #192 STA LC60 RTS DLIVYP OUT DLVYP LDA #64 STA LC60 LDY #0 STY $D404 STY HR LDA #65 STA (DLX),Y INY LDA 560 STA (DLX),Y LDA 561 INY STA (DLX),Y RTS * TEXTY TT DFB 125,127,127 ASC 'TURBO 08 ver.2.0DF ' TT1 ASC ' ' DFB 155 TM DFB 126 ASC 'TURBO: Load Save Verify reName ' ASC 'DISK : dloAd Dsave Erase Format Init ' ASC 'FILE : Get Put Kill X-files ' ASC 'SPEC : Quit Run Code Work reset ' DFB 29,155 TCODE ASC 'CODE: Turbo/Mirseus/Poke' DFB 155 TMIRS ASC 'MIRS:' DFB 155 TPOKE ASC 'POKE ' DFB 155 TTURBO ASC 'TURBO:' DFB 155 TKODER ASC 'ERROR CODE!' DFB 155 TFN ASC 'FILE NAME:' DFB 155 TBBE ASC 'BIN BLOCK ERROR!' DFB 155 MEM DFB 255 MBASIC DFB 255 ;54017 NBASIC DFB 1 ;1016 TBASIC DFB 192 ;106 RBASIC EPZ 6 * PREMENNE DH DFB 17+128 *KONI EPZ KONIEC>>8 *AD EPZ KONI+1 FIRS DFB 0 BUF DFB 256 DUP 0 BUFF DFB 256 DUP 0 KONIEC DFB 0 ORG $E400 ;1476 RINIT LDA #0 STA LC60 ;POISTENIE RISKU PO RESETE LDA #RSTART&255 STA 203 LDA #RSTART>>8 STA 204 LDA #0 STA 205 LDA #$F2 STA 206 LDY #0 RIN1 LDA (205),Y STA (203),Y INY BNE RIN1 INC 204 INC 206 LDA 204 CMP #AD BCC RIN1 JMP RSTR KONI EPZ KONIEC>>8 AD EPZ KONI+1 LC2 EQU 1024 LC3 EQU 1037 LC4 EQU 1038 LC5 EQU 1408 LC6 EQU 1419 LOAD JSR LC12 LC8 LDA #4 STA 51 STA 53 LDA #25 ;MAX.DLZKA HLAVICKY STA 52 LDA #0 STA 50 JSR READ JSR DLH BCC LC8 LDA LC2+10 CMP #155 BNE ODSR LDA #' ' STA LC2+10 ODSR LDX #10 LC9 LDA LC2,X STA LC5,X DEX BPL LC9 LPR LDA #155 ;EOL STA LC6 LDA #'>' STA LC5 LDX #128 LDY #5 JSR HEA ;LC52 LDA #0 NOP STA 50 CLC ADC LC3 STA 52 LDA #AD NOP STA 51 ADC LC4 CMP #$BC BCC OBS CLC ADC #4 OBS STA 53 JSR LC12 LDA #255 JSR READ JSR LC11 BCC LC10 RTS LC10 JSR LC51 JMP ERR LC11 LDA #60 BNE LC13 LC12 LDA #1 JSR LC62 LDA #52 ;4 LC13 STA LC57 STA LC58 RTS READ STA 54 LDA #128 STA 16 STA LC55 CLI CLC LDY #0 STY 48 STY 49 STY LC60 STY LC59 PHP LC15 BNE LC24 LC16 JSR LC27 BCC LC15 LDA #0 STA 46 LC17 LDY #180 JSR LC26 BCC LC15 CPY #216 BCC LC16 INC 46 BNE LC17 LC18 LDY #209 JSR LC27 BCC LC15 CPY #221 BCS LC18 JSR LC27 BCC LC24 LDY #198 JMP LC22 LC19 PLP ;== BNE LC20 LDA 54 EOR 47 BNE LC25 BEQ LC21 LC20 LDY #0 LDA 47 ABC STA (50),Y INC 50 BNE LC21 INC 51 LDA 51 CMP #$BC BNE LC21 LDA #$C0 STA 51 LC21 LDY #200 PHP LC22 LDA #1 STA 47 LC23 JSR LC26 BCC LC24 CPY #227 ROL 47 LDY #198 BCC LC23 LDA 49 EOR 47 STA 49 LDA 50 CMP 52 LDA 51 SBC 53 BCC LC19 LDA #0 CMP 49 LC24 PLA * ;LC25 SEI LC25 LDA #192 STA LC60 STA 16 STA LC55 RTS LC26 JSR LC27 BCC LC32 LC27 LDX #4 LC28 DEX BNE LC28 LDA 48 LSR STA LC53 LC29 INY BEQ LC31 LDA 17 BEQ LC30 LDA LC56 AND #16 CMP 48 BEQ LC29 STA 48 SEC RTS LC30 DEC 17 LC31 CLC LC32 RTS WRITE LDX #52 ;4 STX LC57 LDX 50 BNE LC34 DEC 51 LC34 DEC 50 LDX #0 STX LC60 STX LC55 STX LC59 STA 47 STA 49 LDX #36 LDA 47 BEQ LC35 LDX #12 LC35 STX 48 LC36 DEY BNE LC36 LDA #3 STA LC56 LDY #119 ;w LC37 DEY BNE LC37 LDA #11 STA LC56 LDY #118 ;v DEX BNE LC36 DEY DEY DEC 48 BNE LC36 LDY #32 LC38 DEY BNE LC38 LDA #3 STA LC56 LDY #39 LC39 DEY BNE LC39 LDA #11 STA LC56 LDY #43 JMP LC41 LC40 LDA 50 CMP 52 LDA 51 SBC 53 BCS LC42 LDX #0 LDA (50,X) STA 47 EOR 49 STA 49 LC41 SEC JMP LC47 LC42 LDA 49 STA 47 LDX #0 STX 51 STX 50 JMP LC41 LC43 DEY BNE LC43 BCC LC45 LDY #48 LC44 DEY BNE LC44 LC45 LDA #3 STA LC56 LDY #46 BCC LC46 LDY #94 LC46 DEY BNE LC46 LDA #11 STA LC56 CLC LDY #44 LC47 NOP ROL 47 BNE LC43 INC 50 BNE LC48 INC 51 LDA 51 CMP #$BC BNE LC48 LDA #$C0 STA 51 LC48 LDY #33 LDA 51 BNE LC40 LDY #41 LC49 DEY BNE LC49 LDA #3 STA LC56 LDA #192 STA LC60 STA LC55 LDA #60 STA LC57 RTS SAVE LDA #192 STA LC54 LDA #2 JSR LC62 LDA #4 STA 51 STA 53 LDA DH ;DL HL AND #%01111111 STA 52 LDA #0 STA 50 JSR WRITE LDA #0 STA 50 CLC ADC LC3 STA 52 LDA #AD STA 51 ADC LC4 CMP #$BC BCC OBS1 CLC ADC #4 OBS1 STA 53 LDA #255 JSR WRITE RTS NOP LC53 EQU 53274 LC54 EQU 53768 LC55 EQU 53774 LC56 EQU 53775 LC57 EQU 54018 LC58 EQU 54019 LC59 EQU 54272 LC60 EQU 54286 *------------------------------* START JSR ODLZAP STAR JSR PK LDX #TT&255 LDY #TT>>8 JSR LC52 LDX #TM&255 LDY #TM>>8 JSR LC52 LDX #128 LDY #5 JSR HEA KEY LDA #$91 STA ABC JSR GET CMP #'L' BNE SA JSR LOAD JMP KEY SA CMP #'S' BNE SB JSR SAVE JMP KEY SB CMP #'Q' BNE SCS JMP QUIT SCS CMP #'R' BNE SF JMP RUN SF CMP #'W' BNE SD JMP RESET SD CMP #'N' BNE SE JMP REN SE CMP #'D' BNE SJ JSR DLVYP JMP DISK SJ CMP #'A' BNE SK JSR DLVYP JMP DLOAD KY JSR DLZAP JMP STAR SK CMP #'C' BNE SL JMP CODE SL CMP #155 BNE SG JMP STAR SG CMP #'F' BNE SI JSR DLVYP JMP FORMAT SI CMP #'I' BNE SSE JSR DLVYP JMP FINIT SSE CMP #'E' BNE SSG JMP ERASE SSG CMP #'G' BNE SSP JMP FLOAD SSP CMP 'P' BNE SSK JMP FSAVE SSK CMP #'K' BNE SSX JMP FKILL SSX CMP #'X' BNE SM JMP FILES SM CMP #'V' BEQ V0 JMP KEY V0 JSR LC12 V1 LDA #5 STA 51 STA 53 LDA #128 STA 50 CLC ADC DH STA 52 LDA #0 JSR READ BCC V1 JSR LC11 LDA #$B1 ;LDA ( ),Y STA ABC JSR LPR LDA #$91 ;STA ( ),Y STA ABC JMP KEY RUN LDA NBASIC STA 1016 LDA MBASIC STA RBASIC LDA #0 STA 203 CLC ADC 1037 STA 205 LDA #AD STA 204 ADC 1038 CMP #$BC BCC RU1 CLC ADC #4 ;1 KB RU1 STA 206 LDA 1035 STA 207 LDA 1036 STA 208 JMP TRANO PK LDA 53279 CMP #5 BNE PK1 LDA MBASIC ;54017 TAX AND #2 BNE PKK TXA ORA #2 STA MBASIC ;54017 STA NBASIC ;1016 LDA #192 LDX #'R' JMP PKK1 PKK TXA AND #253 STA MBASIC ;54017 LDA #0 STA NBASIC ;1016 LDA #160 LDX #'B' PKK1 STA TBASIC ;106 STX TT1 PK1 LDA FIRS BNE PKN INC FIRS LDY #72 PKF2 LDA ZNS,Y STA $0420,Y DEY BPL PKF2 PKN LDX #10 PK2 LDA 1024,X STA 1408,X DEX BPL PK2 LDA #155 STA 1419 LDA #' ' STA 1408 RTS RESET LDA #0 STA 203 CLC ADC 1037 ;DLZKA L STA 205 LDA #AD STA 204 ADC 1038 ;DLZKA H CMP #$BC BCC R22 CLC ADC #4 R22 STA 206 R2 LDY #0 LDA (203),Y CMP #$85 ;STA BEQ R5 CMP #$84 ;STY BEQ R5 CMP #$86 ;STX BEQ R5 CMP #$8D ;STA BEQ R7 CMP #$8C ;STY BEQ R7 CMP #$8E ;STX BEQ R7 IN INC 203 BNE R3 INC 204 LDA 204 CMP #$BC BNE R3 LDA #$C0 STA 204 R3 LDA 204 CMP 206 BCC R2 LDA 203 CMP 205 BCC R2 LDA #155 JMP STAR R5 INY LDA (203),Y CMP #2 BEQ R6 CMP #3 BEQ R6 CMP #12 BEQ R6 CMP #13 BNE IN R6 INY LDA (203),Y LSR LSR LSR TAX LDA (203),Y AND #$07 TAY LDA #0 SEC R67 ROL DEY BPL R67 AND INSTAB,X BEQ IN LDY #1 R66 LDA #$EA ;NOP STA (203),Y LDY #0 STA (203),Y JMP IN ;JMP IN R7 INY LDA (203),Y CMP #$44 BNE IN INY LDA (203),Y CMP #$02 BNE IN INY LDA (203),Y LSR LSR LSR TAX LDA (203),Y AND #$07 TAY LDA #0 SEC R77 ROL DEY BPL R77 AND INSTAB,X BEQ IN LDY #2 LDA #$EA ;NOP STA (203),Y DEY JMP R66 INSTAB DFB $46,$E6,$C6,$C6,$CE,$EE,$C6,$C6 DFB $C6,$EE,$C6,$C6,$C6,$EE,$C6,$C6 DFB $4E,$AE,$CE,$E4,$EE,$EE,$CE,$CE DFB $CE,$EE,$C6,$C6,$CE,$EE,$C6,$C6 REN LDX #10 LDA #' ' N3 STA 1024,X DEX BNE N3 LDA #'?' JSR PR LDX #1 STX 203 N1 JSR GET CMP #126 BEQ RD CMP #155 BEQ N2 LDX 203 STA 1024,X JSR PR INC 203 LDX 203 CPX #11 BCC N1 N2 LDA #155 JSR PR JMP KEY RD LDX 203 CPX #2 BCS RD1 JMP N1 RD1 DEC 203 JSR PR JMP N1 DLH LDX #17 BCS DLH11 LDA 50 CMP #17 BCS DLH2 RTS ;CY=0 DLH2 LDX 50 DEX DLH11 STX DH JSR LC11 SEC RTS HEP STA 85 DEC 84 RTS HEA JSR LC52 LDA #16 JSR HEP LDX #0 STX 203 HEA1 LDX 203 LDA 1036,X JSR HE LDX 203 LDA 1035,X JSR HEX LDA #' ' JSR PR INC 203 INC 203 LDA 203 CMP #6 BCC HEA1 LDA 1024 JSR HE LDA #' ' JSR PR LDA DH CLC ADC #64 JSR PR HEA6 LDA #155 BNE H2 ;JMP PR HE PHA LDA #'$' JSR PR PLA HEX PHA LSR LSR LSR LSR JSR HEX1 PLA AND #15 JMP HEX1 HEX1 CLC ADC #48 ;'0' CMP #58 ;':' BCC H2 CLC ADC #7 H2 JMP PR ERR LDA #22 JSR HEP LDA 51 CMP #$BC BNE ERR1 SEC SBC #4 ERR1 SEC SBC #AD JSR HE LDA 50 JSR HEX JSR HEA6 LDA DH ORA #128 STA DH JMP KEY DI LDA #1 STA 769 STA 726 LDA #'W' STA 770 LDA #0 STA 779 STA 725 LDA #4 STA 778 LDA #BUF&255 STA 772 LDA #BUF>>8 STA 773 RTS DE TYA JSR HE LDA #32 JSR PR LDA #'E' JSR PR LDA #155 JSR PR JMP KY DISK LDA #'D' JSR PR LDA #'S' JSR PR LDA #'A' JSR PR LDA #'V' JSR PR LDA #'E' JSR PR LDA #155 JSR PR JSR GET CMP #27 ;ESC BNE DISURE JMP KY DISURE JSR DI LDA #'R' STA 770 JSR SIOD BMI DE LDX #229 ;250 ZMAZE POSLEDNY DIS0 LDA BUF,X BNE DIS1 LDA BUF+1,X BNE DIS1 TXA SEC SBC #21 TAX CMP #254 BNE DIS0 LDX #5 LDY #0 LDA #0 STA XR JMP DIS2 DIS1 INX LDA BUF,X TAY DEX LDA BUF,X INX INX STX XR TAX DIS2 JSR DI STX 778 STX SC STX SEK STY 779 STY SC+1 STY SEK+1 LDA #255 STA PO STA SS LDA #AD STA A73 LDA #0 STA A72 DIS3 LDA SC ASL STA SN LDA SC+1 ROL STA 778 CMP SS BEQ DIS31 LDA 778 STA SS INC 778 INC 778 INC 778 INC 778 INC 778 LDA #0 STA 779 LDA #BUF&255 STA 772 LDA #BUF>>8 STA 773 LDA #'R' STA 770 JSR SIOD DIS31 LDY #0 DIS3Q LDA (A72),Y STA BUFF,Y INY BNE DIS3Q LDA #BUFF&255 STA 772 LDA #BUFF>>8 STA 773 LDX SN LDA BUF,X STA 778 INX LDA BUF,X STA 779 LDA #'W' STA 770 JSR SIOD ;DIS3 BPL DIS41 JMP DE DIS41 INC SC ;778 BNE DIS4 INC SC+1 ;779 DIS4 INC A73 ;773 LDA A73 CMP #$BC BNE DIS44 LDA #$C0 STA A73 DIS44 INC PO LDA PO CMP 1038 BCS DIS33 JMP DIS3 DIS33 JSR DI LDA #'R' STA 770 JSR SIOD BPL DIS51 JMP DE DIS51 LDX XR LDY #0 DIS5 LDA 1024,Y STA BUF,X INX INY CPY #17 BNE DIS5 LDA SEK STA BUF,X INX LDA SEK+1 STA BUF,X INX LDA SC ;778 STA BUF,X INX LDA SC+1 ;779 STA BUF,X JSR DI JSR SIOD BPL DISR JMP DE DISR JMP KY XR DFB 0 PO DFB 0 SEK DFW 0 SC DFW 0 SN DFB 0 SS DFB 0 A72 EPZ 203 A73 EPZ 204 * LOADER DISK CTD * DLOAD LDA #0 STA 725 LDA #1 STA 726 ADRESA BUFF SEKTOR 4 DREAD LDX #0 STX POC LDY #1 QC LDA BUFF+16,Y ORA BUFF+17,Y BNE QQB INC POC BNE QB ;JMP QQB LDA POC CLC ADC #65 JSR PRI LDA #'>' JSR PRI LDX #10 QA LDA BUFF,Y JSR PRI INY DEX BNE QA LDA #155 JSR PRI TYA CLC ADC #11 TAY INC POC CPY #253 BCC QC QB JSR GET CMP #27 ;ESC BNE QBB JMP KY QBB SEC SBC #65 BMI QB CMP POC BCS QB TAX LDA #0 QD CPX #0 BEQ QE CLC ADC #21 DEX JMP QD QE TAY STA 203 LDX #0 QEE LDA BUFF,Y STA $0400,X INY INX CPX #17 BCC QEE TXA ORA #128 STA DH LDA 203 CLC ADC #17 TAY LDA #BUF&255 STA 772 LDA #BUF>>8 STA 773 LDA #0 STA AP LDA #AD STA AP+1 LDA BUFF,Y STA SC ;778 INY LDA BUFF,Y STA SC+1 ;779 INY LDA BUFF,Y STA SEK INY LDA BUFF,Y STA SEK+1 LDA #255 STA SS QG LDA SC ASL STA SN LDA SC+1 ROL STA 778 CMP SS BNE QGG QGGG LDX SN LDA BUFF,X STA 778 INX LDA BUFF,X STA 779 DREAD LDY #0 QQG LDA BUF,Y STA (AP),Y INY BNE QQG INC AP+1 LDA AP+1 CMP #$BC BNE QQGG LDA #$C0 STA AP+1 QQGG INC SC ;778 BNE QF INC SC+1 ;779 QF LDA SC+1 ;779 CMP SEK+1 BCC QG LDA SC ;778 CMP SEK BCC QG LDA DH AND #%01111111 STA DH JMP KY POC DFB 0 YR DFB 0 AAD DFW 0 QGG LDA 778 STA SS CLC ADC #5 STA 778 LDA #0 STA 779 LDA 772 STA AAD LDA 773 STA AAD+1 ADRESA BUFF DREAD LDA AAD STA 772 LDA AAD+1 STA 773 JMP QGGG PRI STX XR STY YR JSR PR LDX XR LDY YR RTS MSIOI LDA #1 STA 769 JSR SIOD TYA RTS MDREAD LDA #'R' STA 770 JSR MSIOI BPL MDRE JMP DE MDRE RTS *--- MDWRITE LDA #'W' STA 770 JSR MSIOI BMI FERR RTS FERR JMP DE FORMAT JSR SURE LDA #'!' STA 770 ADRESA BUF LDA #255 ;??? STA 778 LDA #255 ;??? STA 779 LDA #0 STA 725 LDA #1 STA 726 JSR MSIOI BMI FERR LDA $0308 BNE FERR FINIT2 ADRESA BUF LDA #0 STA 725 LDA #1 STA 726 LDY #0 FIN1 LDA #0 STA BUF,Y INY BNE FIN1 LDA #4 STA 778 LDA #0 STA 779 JSR MDWRITE INC 778 LDA #17 STA SEK LDA #0 STA SEK+1 LDY #0 FIN2 LDA SEK STA BUF,Y INY LDA SEK+1 STA BUF,Y INY BNE FIN3 JSR MDWRITE INC 778 LDY #0 FIN3 LDA SEK ORA SEK+1 BEQ FIN5 INC SEK BNE FIN4 INC SEK+1 FIN4 LDA SEK+1 CMP #5 BCC FIN5 LDA SEK CMP #161 BCC FIN5 LDA #0 STA SEK STA SEK+1 FIN5 LDA 778 CMP #17 BCC FIN2 JMP KY FINIT JSR SURE JMP FINIT2 SURE LDA #'Y' JSR PR LDA #'/' JSR PR LDA #'N' JSR PR LDA #155 JSR PR JSR GET CMP #'Y' BNE SURE1 RTS SURE1 PLA PLA JMP KY *---- CODE LDX #TCODE&255 LDY #TCODE>>8 JSR LC52 JSR GET CMP #'M' ;MIRS BNE CODE0 JMP CMIRS CODE0 CMP #'P' ;POKE BNE CODE1 JMP CPOKE CODE1 CMP #'T' ;TURBO BNE CODE2 JMP CTURBO CODE2 LDA #28 JSR PR LDA #156 JSR PR JMP KEY GEK TXA PHA JSR GET TAY PLA TAX TYA RTS PRZ TAY TXA PHA TYA JSR PR PLA TAX RTS KODERR LDA #155 JSR PR LDX #TKODER&255 LDY #TKODER>>8 JSR LC52 JMP KEY CODEK LDA CO1 SEC SBC 1035 STA COP1 LDA CO2 SBC 1036 STA COP2 BCC KODERR LDA 1037 CMP COP1 LDA 1038 SBC COP2 BCC KODERR LDA COP2 CLC ADC #AD CMP #$BC BCC CODEK1 CLC ADC #4 CODEK1 STA COP2 LDA CO3 LDY #0 STA (COP1),Y LDA #155 JSR PR JMP KEY CKURP JSR HEP LDA #31 JSR PR LDA #30 JSR PR RTS CODCIT LDX #0 CODC1 JSR GEK CMP #155 BEQ CODCR CMP #126 BEQ CODCD CMP #',' BEQ CODC2 CMP #'0' BCC CODC1 CMP #91 BCS CODC1 CODC2 STA KBUF,X JSR PRZ INX CPX #16 BCC CODC1 RTS CODCR STA KBUF,X CLC RTS CODCD CPX #0 BEQ CODC1 LDA #126 JSR PRZ DEX JMP CODC1 CO1 DFB 0 CO2 DFB 0 CO3 DFB 0 COP1 EPZ 30 COP2 EPZ 31 CMIRS LDX #TMIRS&255 LDY #TMIRS>>8 JSR LC52 LDA #8 JSR CKURP LDX #0 CMIR1 JSR GEK CMP #155 BEQ CMIRR CMP #126 ;DEL BEQ CMIRD CMP #'A' BCC CMIR1 CMP #91 BCS CMIR1 PHA JSR PRZ PLA SEC SBC #'A' STA KBUF,X INX LDA #' ' CPX #3 BNE CMI1 JSR PRZ CMI1 CPX #6 BNE CMI2 JSR PRZ CMI2 CPX #9 BNE CMI3 JSR PRZ CMI3 CPX #11 BCC CMIR1 CMIR2 JSR GEK CMP #155 BEQ CMIRR CMP #126 ;DEL BNE CMIR2 CMIRD CPX #0 BEQ CMIR1 LDA #126 JSR PRZ LDA #126 CPX #3 BEQ CMIRD1 CPX #6 BEQ CMIRD1 CPX #9 BEQ CMIRD1 CMIRD2 DEX JMP CMIR1 CMIRD1 JSR PRZ JMP CMIRD2 CMIRR LDA KBUF+9 CMP #'M'-'A' BNE CMIRE LDA KBUF+10 CMP #'P'-'A' BEQ CMIRO CMIRE JMP KODERR CMIRO LDX #0 JSR CMIRP STA CO1 LDX #3 JSR CMIRP STA CO2 LDX #6 JSR CMIRP STA CO3 JMP CODEK CMIRP INX LDA KBUF,X BEQ CMIRP1 TAY DEX LDA #0 CLC CMIRP2 ADC KBUF,X DEY BNE CMIRP2 INX CMIRP1 INX CLC ADC KBUF,X RTS CPOKE LDX #TPOKE&255 LDY #TPOKE>>8 JSR LC52 LDA #7 JSR CKURP JSR CODCIT LDX #0 JSR CPOKEP BCS CPOKER LDA COP1 STA CO1 LDA COP2 STA CO2 INX JSR CPOKEP BCS CPOKER LDA COP1 STA CO3 LDA COP2 BNE CPOKER JMP CODEK CPOKER JMP KODERR CPOKEP LDA #0 STA COP1 STA COP2 CPOKP1 LDA COP2 PHA LDA COP1 PHA ASL COP1 ROL COP2 ASL COP1 ROL COP2 ;*4 PLA CLC ADC COP1 STA COP1 PLA ADC COP2 STA COP2 ;*5 ASL COP1 ROL COP2 ;*10 LDA KBUF,X CMP #155 BEQ CPOKPE CMP #',' BEQ CPOKPE SEC SBC #'0' BCC CPOKPR CMP #'9'+1 BCS CPOKPR CLC ADC COP1 STA COP1 LDA COP2 ADC #0 STA COP2 INX LDA KBUF,X CMP #155 BEQ CPOKPE CMP #',' BEQ CPOKPE BNE CPOKP1 CPOKPR SEC RTS CPOKPE CLC RTS CTURBO LDX #TTURBO&255 LDY #TTURBO>>8 JSR LC52 LDA #9 JSR CKURP JSR CODCIT LDA KBUF+5 CMP #155 BEQ CTUR JMP KODERR CTUR LDX #4 ;5 ZNAKOU CTCYK LDA KBUF,X SEC SBC #'1' BMI CTERR CMP #6 BCC CTOK SBC #'A'-'1' BMI CTERR CMP #'Z'+1 BCS CTERR ADC #6 CTOK LDY #5 ;5 BITOV CTSHFT LSR ROR CO2 ;H ADR ROR CO1 ;L ADR ROR CO3 ;BYTE DEY BNE CTSHFT DEX BPL CTCYK BCC CTERR JMP CODEK CTERR JMP KODERR *---- ERASE JSR DLIVYP LDA #0 STA 725 LDA #1 STA 726 ADRESA BUFF SEKTOR 4 DREAD LDX #0 STX POC LDY #1 ERQC LDA BUFF+16,Y ORA BUFF+17,Y BNE ERQQB INC POC BNE ERQB ;JMP ERQQB LDA POC CLC ADC #65 JSR PRI LDA #'-' JSR PRI LDX #10 ERQA LDA BUFF,Y JSR PRI INY DEX BNE ERQA LDA #155 JSR PRI TYA CLC ADC #11 TAY INC POC CPY #253 BCC ERQC ERQB JSR GET CMP #27 ;ESC BNE ERQBB JMP KY ERQBB SEC SBC #65 BMI ERQB CMP POC BCS ERQB TAX LDA #0 ERQD CPX #0 BEQ ERQE CLC ADC #21 DEX JMP ERQD ERQE STA POCPOL CLC ADC #17 TAY LDA #0 STA WRF LDA BUFF,Y ASL STA SC STA DSEK LDA BUFF+1,Y ROL STA SC+1 STA DSEK+1 CLC ADC #5 STA 778 LDA #0 STA 779 LDA BUFF+2,Y ASL STA SK STA FMSEK LDA BUFF+3,Y ROL STA SK+1 STA FMSEK+1 LDA POCPOL CMP POC BNE ERADRQ JMP ERADR ERADRQ LDA #VTOC&255 STA 203 LDA #VTOC>>8 STA 204 LDA SK SEC SBC SC STA OFMS LDA SK+1 SBC SC+1 LSR ;/2 BEQ ERAOK JMP ERAKK ERAOK ROR OFMS CLC ADC #5 STA 778 LDA #0 STA 779 LDA #BUF&255 LDX #BUF>>8 JSR SREAD LDX SC LDY #0 ERAZ1 LDA BUF,X STA (203),Y INY LDA BUF+1,X STA (203),Y INY BNE ERAZ2 INC 204 ERAZ2 INX BNE ERAZ3 STY XR INC 778 LDA #BUF&255 LDX #BUF>>8 JSR SREAD LDX #0 LDY XR ERAZ3 DEC OFMS BNE ERAZ1 LDA #0 STA (203),Y INY STA (203),Y LDA #BUF&255 LDX #BUF>>8 JSR SREAD INC 778 LDA #BUFF&255 LDX #BUFF>>8 JSR SREAD LDA SC+1 CMP SK+1 BNE ERA4 LDX #0 ERA2 LDA BUF,X STA BUFF,X INX BNE ERA2 ERA4 LDX SC LDY SK LDA BUFF,Y ORA BUFF+1,Y BEQ ERA6 LDA BUFF,Y STA BUF,X LDA BUFF+1,Y STA BUF+1,X INC SC INC SK INC SC BNE ERA5 LDA SC+1 CLC ADC #5 STA 778 LDA #0 STA 779 LDA #BUF&255 LDX #BUF>>8 JSR SWRITE INC SC+1 LDA SC+1 CLC ADC #5 STA 778 LDA #BUF&255 LDX #BUF>>8 JSR SREAD ERA5 INC SK BNE ERA4 INC SK+1 LDA SK+1 CLC ADC #5 STA 778 LDA #0 STA 779 LDA #BUFF&255 LDX #BUFF>>8 JSR SREAD JMP ERA4 ERA6 LDA WRF BNE ERA66 JMP ERA7 ERA66 LDA SC+1 CLC ADC #5 STA 778 LDA #0 STA 779 LDA #BUF&255 LDX #BUF>>8 JSR SWRITE ERADR LDA #4 STA 778 LDA #BUF&255 LDX #BUF>>8 JSR SREAD LDY POCPOL TYA CLC ADC #21 TAX LDA BUF+19,Y SEC SBC BUF+17,Y STA SC LDA BUF+20,Y SBC BUF+18,Y STA SC+1 ERAK1 LDA BUF,X STA BUF,Y INY INX BNE ERAK1 LDY POCPOL ERAK2 LDA BUF+17,Y ORA BUF+18,Y BEQ ERAK3 LDA BUF+17,Y SEC SBC SC STA BUF+17,Y LDA BUF+18,Y SBC SC+1 STA BUF+18,Y LDA BUF+19,Y SEC SBC SC STA BUF+19,Y LDA BUF+20,Y SBC SC+1 STA BUF+20,Y TYA CLC ADC #21 BCC ERAK2 ERAK3 LDA #4 STA 778 LDA #0 STA 779 LDA #BUF&255 LDX #BUF>>8 JSR SWRITE ERAKK JMP KY ERA7 LDY #0 STY SK STY SK+1 LDA #VTOC&255 STA 203 LDA #VTOC>>8 STA 204 ERA8 LDX SC LDY SK LDA (203),Y INY ORA (203),Y BNE ERA666 JMP ERA66 ERA666 DEY LDA (203),Y STA BUF,X INY LDA (203),Y STA BUF+1,X INC SC INY STY SK INC SC BNE ERA9 LDA SC+1 CLC ADC #5 STA 778 LDA #0 STA 779 LDA #BUF&255 LDX #BUF>>8 JSR SWRITE INC SC+1 LDA SC+1 CLC ADC #5 STA 778 LDA #BUF&255 LDX #BUF>>8 JSR SREAD ERA9 INC SK BNE ERA10 INC SK+1 INC 204 ERA10 JMP ERA8 *---- FLOAD JSR DLIVYP JSR FINFN JMP REFILE NULSB LDA #0 STA WRF STA FMSEK STA FMSEK+1 STA DSEK STA DSEK+1 STA OFMS STA OFMS+1 RTS FSAVE JSR DLIVYP JSR NULSB JSR GETFN JSR REDI LDA #0 STA POCPOL LDA ROOT STA FMS LDA ROOT+1 STA FMS+1 LDX #0 LDA LENS STA 145 STA 144 STA 776 STA 725 BNE FSAVE1 INX FSAVE1 STX 777 STX 726 FSAVE2 INC POCPOL LDA #ZADRES&255 STA 146 LDA #ZADRES>>8 STA 147 LDA #22 STA 148 LDA #0 STA 149 JSR GETDL LDA #0 LDX #2 FSAVE3 ORA ZADRES,X DEX BPL FSAVE3 BEQ FSAVE4 LDA ZADRES AND #16 BEQ FSAVE2 JSR FVS LDA 778 STA FMS STA FMSS LDA 779 STA FMS+1 STA FMSS+1 JSR WRFILE LDA ROOT STA FMS LDA ROOT+1 STA FMS+1 FSAVE4 DEC POCPOL BEQ FSAVE5 LDA #ZADRES&255 STA 146 LDA #ZADRES>>8 STA 147 LDA #22 STA 148 LDA #0 STA 149 JSR GETDL LDA #255 STA WRF BNE FSAVE4 ;JMP FSAVE5 LDA #8 STA ZADRES LDA FMSS STA ZADRES+1 LDA FMSS+1 STA ZADRES+2 LDA $040D ;DL L CLC ADC #12 ;2+4+4+2 STA ZADRES+3 LDA $040E ;DL H ADC #0 STA ZADRES+4 LDA #0 STA ZADRES+5 LDX #10 FSAVE6 LDA KBUF,X STA ZADRES+6,X DEX BPL FSAVE6 LDX #5 LDA #0 FSAVE7 STA ZADRES+17,X DEX BPL FSAVE7 LDA #ZADRES&255 STA 146 LDA #ZADRES>>8 STA 147 LDA #22 STA 148 LDA #0 STA 149 JSR PUTDL LDA DSEK STA 778 LDA DSEK+1 STA 779 LDA #DATBUF&255 LDX #DATBUF>>8 JSR SWRITE LDA FMSEK STA 778 LDA FMSEK+1 STA 779 LDA #FMSBUF&255 LDX #FMSBUF>>8 JSR SWRITE JMP ZEND FKILL JSR DLIVYP JSR NULSB JSR FINFN LDA FMS STA SC LDA FMS+1 STA SC+1 LDA ROOT STA FMS LDA ROOT+1 STA FMS+1 FKIL1 DEC POCPOL BEQ FKIL2 LDA #ZADRES&255 STA 146 LDA #ZADRES>>8 STA 147 LDA #22 STA 148 LDA #0 STA 149 JSR GETDL LDA #255 STA WRF BNE FKIL1 ;JMP FKIL2 LDA #16 JSR PUTB LDA DSEK STA 778 LDA DSEK+1 STA 779 LDA #DATBUF&255 LDX #DATBUF>>8 JSR SWRITE FKIL3 LDA SC ORA SC+1 BEQ ZEND LDA SC STA 778 LDX SC+1 STA 779 JSR SVS LDA #BUF&255 LDX #BUF>>8 JSR SREAD LDA BUF STA SC LDA BUF+1 STA SC+1 LDA #4 STA POCPOL FKIL4 LDY POCPOL CPY LENS BEQ FKIL3 LDA BUF,Y ORA BUF+1,Y BEQ ZEND LDA BUF+1,Y TAX LDA BUF,Y JSR SVS INC POCPOL INC POCPOL JMP FKIL4 ZEND LDA #4 STA 778 LDA #0 STA 779 LDA #VTOC&255 LDX #VTOC>>8 JSR SWRITE LDA LENS BEQ ZEND1 LDY POCFMS DEY BEQ ZEND1 LDA #5 STA 778 LDA #0 STA 779 LDA #VTOC+128&255 LDX #VTOC+128>>8 JSR SWRITE ZEND1 JMP KY FILES JSR DLIVYP JSR REDI LDA ROOT STA FMS LDA ROOT+1 STA FMS+1 LDX #0 LDA LENS STA 145 STA 144 STA 776 STA 725 BNE FILES1 INX FILES1 STX 777 STX 726 FILES2 LDA #ZADRES&255 STA 146 LDA #ZADRES>>8 STA 147 LDA #22 STA 148 LDA #0 STA 149 JSR GETDL LDA ZADRES+1 ORA ZADRES+2 BEQ FILES5 LDA ZADRES AND #16 BNE FILES2 LDX #0 FILES3 LDA ZADRES+6,X STX SC JSR PR LDX SC INX CPX #8 BNE FILES4 STX SC JSR PR LDX SC FILES4 CPX #11 BCC FILES3 LDA #155 JSR PR JMP FILES2 FILES5 JSR DLZAP JMP KEY FINFN JSR GETFN JSR REDI LDA #0 STA POCPOL LDA ROOT STA FMS LDA ROOT+1 STA FMS+1 LDX #0 LDA LENS STA 145 STA 144 STA 776 STA 725 BNE FINFN1 INX FINFN1 STX 777 STX 726 FINFN2 INC POCPOL LDA #ZADRES&255 STA 146 LDA #ZADRES>>8 STA 147 LDA #22 STA 148 LDA #0 STA 149 JSR GETDL LDY #6 LDX #0 FINFN3 LDA ZADRES,Y CMP KBUF,X BNE FINFN2 INY INX CPX #11 BCC FINFN3 LDY #0 LDA ZADRES,Y CMP #8 BEQ FINFN4 CMP #9 BNE FINFN2 FINFN4 LDA ZADRES+1,Y STA FMS LDA ZADRES+2,Y STA FMS+1 RTS GETFN LDX #TFN&255 LDY #TFN>>8 JSR LC52 LDA #13 JSR CKURP JSR CODCIT LDA #'B' STA EXT LDA #'I' STA EXT+1 LDA #'N' STA EXT+2 LDY #255 GETFN1 INY LDA KBUF,Y CMP #'.' BNE GETFN2 LDA KBUF+1,Y STA EXT LDA KBUF+2,Y STA EXT+1 LDA KBUF+3,Y STA EXT+2 JMP GETFN3 GETFN2 CMP #155 BNE GETFN1 GETFN3 LDA #0 GETFN4 STA KBUF,Y INY CPY #8 BCC GETFN4 LDA EXT STA KBUF,Y LDA EXT+1 STA KBUF+1,Y LDA EXT+2 STA KBUF+2,Y RTS EXT ASC 'BIN' REDI LDA #128 STA 725 LDA #0 STA 726 ADRESA BUFF SEKTOR 1 DREAD LDY #0 LDA BUFF+31,Y STA LENS LDA BUFF+15,Y STA POCFMS STA FMS LDA BUFF+9,Y STA ROOT LDA BUFF+10,Y STA ROOT+1 LDA LENS STA 725 BNE REDI1 LDA #1 STA 726 REDI1 LDY #0 TYA REDI2 STA BUFF,Y INY BNE REDI2 SEKTOR 4 DREAD LDA LENS BEQ REDI3 LDY FMS DEY BEQ REDI3 ADRESA BUFF+128 SEKTOR 5 DREAD REDI3 LDY #0 REDI4 LDA BUFF,Y STA VTOC,Y INY BNE REDI4 RTS LENS DFB 0 FMS DFW 0 ROOT DFW 0 DSEK DFW 0 FMSEK DFW 0 DATBUF EQU BUF POMZ EPZ 203 REFMS1 LDA FMS STA FMSEK STA 778 LDA FMS+1 STA FMSEK+1 STA 779 LDA #FMSBUF&255 LDX #FMSBUF>>8 JSR SREAD LDA FMSBUF STA FMS LDA FMSBUF+1 STA FMS+1 LDY #4 ;PRVY ZAZNAM STY 145 REFMS LDY 145 CPY LENS BEQ REFMS1 LDA FMSBUF,Y STA DSEK STA 778 LDA FMSBUF+1,Y STA DSEK+1 STA 779 INY INY STY 145 RTS REFILE LDX #0 LDA LENS STA 145 STA 144 STA 776 STA 725 BNE REF1 INX REF1 STX 777 STX 726 JSR GETB STA 150 JSR GETB AND 150 CMP #255 ;BIN. SUBOR? BEQ FILEOK JMP FILERR ;NIE FILEOK LDA #17+128 STA DH JSR GETB STA $040B ;ZAC.ADR L LDA #0 STA 146 JSR GETB STA $040C ;ZAC.ADR H LDA #AD STA 147 ORA 146 BEQ FILERR ;NIEJE DALSI BLOK JSR GETB SEC SBC $040B PHA PHP JSR GETB PLP SBC $040C STA 149 STA $040E ;DLZKA H PLA STA 148 STA $040D ;DLZKA L LDA 149 CMP #$BC-AD BCS REF3 REF4 JSR GETDL ;NAHRA CELY BLOK JSR GETB CMP #736&255 BNE FILERR JSR GETB CMP #736>>8 BNE FILERR CMP #737&255 BNE FILERR JSR GETB CMP #737>>8 BNE FILERR JSR GETB STA $040F ;START L JSR GETB STA $0410 ;START H LDA DH AND #$7F STA DH JMP KY REF3 LDA #$BC-AD-1 STA 149 LDA #255 STA 148 JSR GETDL LDA #$C0 STA 147 LDA #0 STA 146 LDA $040E SEC SBC #$BC-AD STA 149 LDA $040D STA 148 JMP REF4 FILERR LDX #TBBE&255 LDY #TBBE>>8 JSR LC52 JMP KY SREAD LDY #64 ;VSTUP STY 771 LDY #'R' STY 770 STA POMZ STX POMZ+1 LDA #BUFF&255 LDX #BUFF>>8 STA 772 ;L - BUFER STX 773 ;H - BUFER LDA 778 ORA 779 BEQ FILERR ;SEKTOR=0 - ERROR JSR MSIOI BMI FILERR ;CYBA LDY #0 SREAD1 LDA BUFF,Y STA (POMZ),Y INY BNE SREAD1 RTS GETB LDA #0 STA 149 STA 148 ;DLZ=0 GETB1 LDX 144 CPX LENS ;DLZ SEK. BEQ GETB2 ;NAHRAT DALSI SEK. LDA DATBUF,X INC 144 RTS GETB2 JSR REFMS ;NAST. 778,9 Z FMS LDA 149 ;H - DLZ BNE GETB4 ;AK VIAC AKO 1 SEK. LDA LENS ;DL. SEKTORU BEQ GETB3 LDA 148 ;L - DLZ BMI GETB4 ;AK VIAC AKO 1 SEK. GETB3 LDA #DATBUF&255 LDX #DATBUF>>8 JSR SREAD SEC ROL 144 ;144=1 LDA DATBUF RTS GETB4 LDA 146 LDX 147 JSR SREAD LDA 146 CLC ADC 776 STA 146 ; ADR=ADR+DL.SEK. LDA 147 ADC 777 STA 147 SEC LDA 148 SBC 776 STA 148 ; DLZ=DLZ-DL.SEK. LDA 149 SBC 777 STA 149 JMP GETB2 ;CONT. LOAD GETDL1 LDA 148 BNE GETDL2 DEC 149 GETDL2 DEC 148 ;DEC DLZ GETDL JSR GETB1 ;NAHRA LDY #0 STA (146),Y ;ULOZI INC 146 BNE GETDL3 INC 147 GETDL3 LDA 148 ORA 149 BNE GETDL1 ;ESTE NIEJE KONIEC RTS WRCLOSE LDA 144 CMP LENS BCS WRCLOE LDA #0 JSR PUTB JMP WRCLOSE WRCLOE LDA DSEK STA 778 LDA DSEK+1 STA 779 LDA #DATBUF&255 LDX #DATBUF>>8 JSR SWRITE LDA FMSEK STA 778 LDA FMSEK+1 STA 779 LDA #FMSBUF&255 LDX #FMSBUF>>8 JSR SWRITE RTS FVS LDX #0 FVS1 LDA VTOC,X BEQ FVS1 TXA ASL ;*2 ASL ;*4 ASL ;*8 STA 778 TXA LSR ;/2 LSR ;/4 LSR ;/8 LSR ;/16 LSR ;/32 STA 779 LDA #$80 STA FVSPOM LDA VTOC,X FVS2 CLC ROL BCS FVS3 LSR FVSPOM INC 778 BNE FVS2 INC 779 JMP FVS2 FVS3 LDA VTOC,X ORA FVSPOM STA VTOC,X RTS SVS STA FVSPOM AND #$07 TAY STX FVSPOM+1 LDX #3 SVS1 LSR FVSPOM+1 ROR FVSPOM DEX BNE SVS1 LDA FVSPOM+1 BEQ SVSOK JMP FILERP SVSOK LDA #0 SEC SVS2 ROR DEY CLC BPL SVS2 STA FVSPOM+1 LDX FVSPOM LDA VTOC,X ORA FVSPOM+1 STA VTOC,X RTS FVSPOM DFW 0 WRF DFB 0 OFMS DFW 0 SFM DFB 0 POCPOL DFB 0 FMSS DFW 0 POCFMS DFW 0 WRFMS1 LDA FMS ORA FMS+1 STA SFM BNE WRFMS5 JSR FVS LDA 778 STA FMS LDA 779 STA FMS+1 WRFMS5 LDA WRF BEQ WRFMS4 LDA FMS STA FMSBUF LDA FMS+1 STA FMSBUF+1 LDA FMSEK STA 778 LDA FMSEK+1 STA 779 LDA #FMSBUF&255 LDX #FMSBUF>>8 JSR SWRITE WRFMS4 LDA FMSEK STA OFMS LDA FMSEK+1 STA OFMS+1 LDA FMS STA FMSEK STA 778 LDA FMS+1 STA FMSEK+1 STA 779 LDX #0 TXA WRFMS7 STA FMSBUF,X INX BNE WRFMS7 LDA SFM BEQ WRFMS6 LDA #FMSBUF&255 LDX #FMSBUF>>8 JSR SREAD WRFMS6 LDA OFMS STA FMSBUF+2 LDA OFMS+1 STA FMSBUF+3 LDA FMSBUF STA FMS LDA FMSBUF+1 STA FMS+1 LDY #4 ;PRVY ZAZNAM STY 145 WRFMS LDY 145 CPY LENS BNE WRFMS11 JMP WRFMS1 WRFMS11 LDA FMSBUF,Y STA DSEK STA 778 LDA FMSBUF+1,Y STA DSEK+1 STA 779 ORA 778 BNE WRFMS2 JSR FVS LDA 778 STA FMSBUF,Y STA DSEK LDA 779 STA FMSBUF+1,Y STA DSEK+1 LDX #0 TXA WRFMS3 STA DATBUF,X INX BNE WRFMS3 WRFMS2 INY INY STY 145 RTS WRFILE LDX #0 LDA LENS STA 145 STA 144 STA 776 STA 725 BNE WRF1 INX WRF1 STX 777 STX 726 LDA #255 JSR PUTB LDA #255 JSR PUTB LDA $040B JSR PUTB LDA $040C JSR PUTB LDA #255 STA WRF LDA #0 STA 146 LDA #AD STA 147 LDA $040B CLC ADC $040D PHP JSR PUTB LDA $040C PLP ADC $040E JSR PUTB LDA $040E ;DLZKA H STA 149 LDA $040D ;DLZKA L STA 148 LDA 149 CMP #$BC-AD BCS WRF3 WRF4 JSR PUTDL ;NAHRA CELY BLOK LDA #736&255 JSR PUTB LDA #736>>8 JSR PUTB LDA #737&255 JSR PUTB LDA #737>>8 JSR PUTB LDA $040F ;START L JSR PUTB LDA $0410 ;START H JSR PUTB JSR WRCLOSE RTS WRF3 LDA #$BC-AD-1 STA 149 LDA #255 STA 148 JSR PUTDL LDA #$C0 STA 147 LDA #0 STA 146 LDA $040E SEC SBC #$BC-AD STA 149 LDA $040D STA 148 JMP WRF4 FILERP JMP FILERR SWRITE LDY #128 ;VYSTUP STY 771 LDY #'W' STY 770 STA POMZ STX POMZ+1 LDA #BUFF&255 LDX #BUFF>>8 STA 772 ;L - BUFER STX 773 ;H - BUFER LDA 778 ORA 779 BEQ FILERP ;SEKTOR=0 - ERROR LDY #0 SWRIT1 LDA (POMZ),Y STA BUFF,Y INY BNE SWRIT1 JSR MSIOI BMI FILERP ;CYBA RTS PUTB LDX #0 STX 149 STX 148 ;DLZ=0 PUTB1 LDX 144 CPX LENS ;DLZ SEK. BEQ PUTB2 ;NAHRAT DALSI SEK. STA DATBUF,X INC 144 RTS PUTB2 PHA LDA DSEK STA 778 LDA DSEK+1 STA 779 LDA #DATBUF&255 LDX #DATBUF>>8 JSR SWRITE JSR WRFMS ;NAST. 778,9 Z FMS LDA 149 ;H - DLZ BNE PUTB4 ;AK VIAC AKO 1 SEK. LDA LENS ;DL. SEKTORU BEQ PUTB3 LDA 148 ;L - DLZ BMI PUTB4 ;AK VIAC AKO 1 SEK. PUTB3 LDA #DATBUF&255 LDX #DATBUF>>8 JSR SREAD SEC ROL 144 ;144=1 PLA STA DATBUF RTS PUTB4 PLA LDA 146 LDX 147 JSR SWRITE LDA 146 CLC ADC 776 STA 146 ; ADR=ADR+DL.SEK. LDA 147 ADC 777 STA 147 SEC LDA 148 SBC 776 STA 148 ; DLZ=DLZ-DL.SEK. LDA 149 SBC 777 STA 149 JMP PUTB2 ;CONT. LOAD PUTDL1 LDA 148 BNE PUTDL2 DEC 149 PUTDL2 DEC 148 ;DEC DLZ PUTDL LDY #0 LDA (146),Y JSR PUTB1 ;NAHRA INC 146 BNE PUTDL3 INC 147 PUTDL3 LDA 148 ORA 149 BNE PUTDL1 ;ESTE NIEJE KONIEC RTS *---- ZNS DFW 0,0,0,0 DFB 63,97,76,210,208,78,97,63 DFB 1,131,134,195,193,128,134 DFB 3,243,31,12,76,205,25,113 DFB 224,0,255,0,249,159,140 DFB 140,248,0,255,0,247,57,49 DFB 99,99,0,255,0,188,204,140 DFB 13,15,127,204,0,24,56,108 DFB 198,3,248,0,0,0,0,96,192 ;198,3,288 DFB 128 KBUF DFB 16 DUP 0 ZADRES DFB 23 DUP 0 VTOC DFB 256 DUP 0 FMSBUF DFB 256 DUP 0 ORG 1005 LSR STA LC60 LDA #254 STA 54017 BNE DATABB DFB 173 ;1016 LDA $$ DFB 0 DFB 0 ;1018 DATABB JMP RINIT ORG $0400 DFB 3 ASC 'NONAME' DFB 4 DUP ' ' DFW 0,0,0 ORG 736 DFW FRSTART