This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
|
|
-
Entry name:Backup V1.3
-
Category:Disk utilities
-
Publisher/Developer:Flop 6
-
Year:1989
Listing 1
10 .OPT NO LIST 20 .OPT NO MLIST 30 .SET 1,10 40 .SET 4,85 50 .TITLE " BACKUP - zalohovani programu z disket na mg. v ZX" 60 * BACKUP V1.2 ;1 20.4.1989 65 * V1.3 7.10.89 - delka souboru 70 * Petr Vicar, Roznov p.R. 80 * 90 * Zalohovani souboru z diskety na 100 * kazetu 110 * 120 ; 130 P = $2E ;pomocna adresa 140 P1 = $2F ; -"- 150 SW = $30 ;stav vstupu 160 CH = $31 ;kontrolni soucet 170 KA = $34 ;koncova adresa 180 TB = $36 ;typ bloku 190 NZ = $36 ;pocet cislic hex80 200 MX = $37 ;pocatecni hodnota Y 210 RF = $38 ;reference 220 MX1 = $39 230 RF1 = $40 240 HX = $D4 ;aku pro hex 250 FR0 = $D4 ;aku pro hex 260 P2 = $CD ;pro LDD 270 SMC = $CE 280 ZA = $CB 290 HEAD = $0100 ;zacatek hlavicky 300 NZV = HEAD+1 310 ZADR = HEAD+11 320 LONG = HEAD+13 330 SADR = HEAD+15 340 DLI = $0230 350 BRKKY = $0236 ;obsluha klavesy BREAK 360 RESETW = $E474 370 LOW = $3000 ;dolni hranice RAM 380 ADL = LOW-$03E0 390 SMB = ADL+$21 400 AMN = SMB+839 ;zac.menu 410 AFN = AMN+28 420 AMS = AFN+40 430 CW1 = $78 440 CW2 = $30 450 .OPT NO LIST 460 .INCLUDE #D:SYSADR.M65 470 .INCLUDE #D:MACRO.M65 480 .INCLUDE #D:IOMAC.LIB 490 ; 500 * Zacatek vlastniho programu 510 * 520 *= $2000 530 ZAC 540 RB JSR RB1 550 RB1 INY 560 BEQ RB4 570 LDA SKCTL 580 AND #$10 590 RB2 BNE RB1 600 LDA RB2 610 EOR #$20 620 STA RB2 630 TYA 640 RB4 RTS 650 HR EOR #$FF 660 STA MX 670 SEC 680 ROR A 690 STA RF 700 SEC 710 ROR A 720 SEC 730 ROR A 740 CLC 750 ADC MX 760 SEC 770 SBC #2 780 STA MX 790 RTS 800 D78 .BYTE $3F,$78,$83,$68,$33,$60 810 *Cteni souboru 820 RFI JSR FRST ;cteni 1.bytu 830 STA TB ;typ bloku 840 RBL JSR RBY ;cteni bloku 850 JSR UB ;uloz byte 860 BCC RBL ;konec bloku? 870 RTS ;ano 880 FRST LDA #$34 ;Cteni 1.bytu 890 STA PACTL ;zapni motor 900 STA PBCTL ;prepni dekoder 910 LDA #$80 920 STA IRQEN ;povol BREAK 930 I1 LDA #$00 940 STA NMIEN ;zakaz vsech 950 STA DMACTL ;typu preruseni 960 STA P 970 STA CH ;nulovani sumy 980 JSR IROM 990 LDX #<D78 1000 LDY #>D78 1010 JSR FLD1R 1020 LDX #0 1030 I22 LDY #0 1040 JSR RB 1050 BEQ I22 1060 JSR HR 1070 DEX 1080 BNE I22 1090 STX FR0 1100 STX FR0+1 1110 STX $D01A 1120 I3 LDY MX 1130 JSR RB 1140 BEQ I22 1150 CPY RF 1160 BCC I22 1170 CLC 1180 ADC FR0 1190 STA FR0 1200 BCC I4 ;bez prenosu 1210 INC FR0+1 1220 I4 DEX 1230 BNE I3 1240 LDA FR0+1 1250 SEC 1260 SBC MX 1270 STA FR0 1280 LDA #0 1290 STA FR0+1 1300 JSR IFP 1310 JSR FMUL 1320 JSR FPI 1330 JSR OROM 1340 LDA MX 1350 SEC 1360 SBC #3 1370 SEC 1380 ROR A 1390 STA MX1 1400 LDA RF 1410 SEC 1420 ROR A 1430 STA RF1 1440 LDA FR0 1450 STA $D01A 1460 JSR HR 1470 JSR RB 1480 I6 LDY MX1 1490 JSR RB1 1500 BEQ I1 1510 CPY RF1 1520 BCS I6 1530 JSR RB1 1540 LDX #0 1550 LDY MX 1560 RBY LDA #$01 ;nastav cteni 8 bitu 1570 STA P1 1580 RBY1 JSR RB ;cteni jednoho bitu 1590 BNE RBY2 ;konec bloku 1600 JMP EOF 1610 RBY2 CPY RF ;v C-bitu je H nebo L 1620 ROL P1 1630 LDY MX 1640 BCC RBY1 ;konec bytu ? 1650 LDA CH ;ano 1660 EOR P1 ;pripocitej 1670 STA CH ;ke kontrolni sume 1680 INY 1690 INY 1700 LDA P1 1710 RTS 1720 UB STY P 1730 LDY #$00 ;Uloz byte 1740 LDA P1 ;na ukladaci adresu 1750 UB0 CMP (ZA),Y ;STA (ZA),Y 1760 BNE UB3 ;NOP,NOP 1770 LDY P 1780 INY 1790 LDA ZA ;porovnej s koncovou 1800 CMP KA ;adresou 1810 LDA ZA+1 1820 SBC KA+1 1830 BCS UB2 ;dosazena konc.adr 1840 INC ZA ;zvys ukladaci 1850 BNE UB1 1860 INC ZA+1 ;adresu 1870 UB1 CLC ;cti dale 1880 UB2 RTS 1890 UB3 SEC 1900 RTS 1910 EOF PLA 1920 PLA 1930 EOF1 JSR MOEX ;pripoj OS ROM 1940 LDY #$8F ;checksum error 1950 LDA CH ;kontrolni suma? 1960 BEQ KON ;v poradku 1970 JMP ERR 1980 KON RTS 1990 ; 2000 OROM LDA #$FE 2010 STA PORTB 2020 RTS 2030 MOEX LDA #$C0 ;Konec cteni 2040 STA NMIEN ;odblokuj vsech- 2050 STA IRQEN ;na preruseni 2060 LDA #$3C ;vypni motor a 2070 STA PACTL ;prepni dekoder 2080 STA PBCTL ;na stand. cteni 2090 IROM LDA #$FF 2100 STA PORTB 2110 RTS 2120 ; 2130 IRQ LDA #0 ;preruseni klavesou 2140 STA CH ;BREAK 2150 JSR EOF1 ; a prejde 2160 CLI ; na nove zadani 2170 LDX $11 2180 DEC $11 2190 LDX #<BRT 2200 LDY #>BRT 2210 JSR STAV 2220 JMP MON1 2230 ; 2240 BRT .SBYTE " break" 2250 ******************** 2260 * Cinnost po RESETu 2270 * 2280 RES 2290 JSR OROM 2300 MOVA IRQ,$FFFE 2310 JSR IROM 2320 MOVA IRQ,BRKKY 2330 LDA #>LOW 2340 STA $6A 2350 JSR INITS 2360 LDA #$46 2370 STA ADL-1 2380 MOVA RAD0,ADL 2390 DEC ADL+$1E 2400 DEC DLI 2410 LDA #1 2420 STA $52 2430 JSR DIR 2440 MON 2450 JSR OK 2460 MON1 LDA #$FF 2470 STA $02FC 2480 STA $02F0 2490 MOVA $CB91,UB0 2500 MOVA $EAEA,UB0+2 2510 SST LDA #$08 2520 STA CONSOL 2530 LDA CONSOL 2540 CMP #5 2550 BNE OPT 2560 JSR PUST 2570 JSR NEX 2580 JMP SST 2590 OPT CMP #3 2600 BNE STAR 2610 JSR PUST 2620 JSR BACK 2630 JMP SST 2640 STAR CMP #6 2650 BNE CHAR 2660 JSR PUST 2670 JSR INV 2680 JSR NEX 2690 CHAR 2700 LDA $02FC 2710 CMP #$FF 2720 BEQ SST 2730 LDX #$FF 2740 STX $02FC 2750 INX 2760 SST1 CMP CMD,X 2770 BEQ SST2 2780 INX 2790 CPX #8 2800 BEQ SST 2810 BNE SST1 2820 SST2 TXA 2830 ASL A 2840 TAX 2850 LDA CMA,X 2860 STA STRT+1 2870 LDA CMA+1,X 2880 STA STRT+2 2890 JSR OK 2900 STRT JSR STRT 2910 JMP MON 2920 PUST LDA CONSOL 2930 CMP #7 2940 BNE PUST 2950 LDX #0 2960 PS1 DEX 2970 BNE PS1 2980 RTS 2990 CMD .BYTE $12,$2E,$3E,$3A,$25 3000 ; C W S D M 3010 .BYTE $3F,$00,$BA 3020 ; A L ^D 3030 CMA .WORD COMP,WRIT,SPED,DIR 3040 .WORD MCTL,ALLF,LOAD,ERAS 3050 ; 3060 FLND .BYTE " D:" 3070 FLN .BYTE " .................." 3080 ZSR LDX #$34 ;ZXsaveroutine 3090 STX PACTL 3100 LDX #$C0 3110 STX $D208 3120 LDX ZA 3130 BNE ZS1 3140 DEC ZA+1 3150 ZS1 DEC ZA 3160 LDX #0 3170 STX NMIEN 3180 STX DMACTL 3190 LDX #$80 3200 STX IRQEN 3210 STA P1 3220 STA CH 3230 JSR OROM 3240 LDX #$1C 3250 ZS2 STX SW 3260 ZS3 DEY 3270 BNE ZS3 3280 LDA #3 3290 STA SKCTL 3300 W1 LDY #CW1 3310 ZS4 DEY 3320 BNE ZS4 3330 LDA #$83 3340 STA SKCTL 3350 W2 LDY #CW1-1 3360 DEX 3370 BNE ZS3 3380 DEY 3390 DEY 3400 DEC SW 3410 BNE ZS3 3420 W3 LDY #CW2 3430 ZS5 DEY 3440 BNE ZS5 3450 LDA #3 3460 STA SKCTL 3470 W4 LDY #CW2 3480 ZS6 DEY 3490 BNE ZS6 3500 LDA #$83 3510 STA SKCTL 3520 VO1 LDY #CW2-5 3530 JMP ZS8 3540 ZS7 LDA ZA 3550 CMP KA 3560 LDA ZA+1 3570 SBC KA+1 3580 BCS ZS9 3590 LDX #0 3600 LDA (ZA,X) 3610 STA P1 3620 EOR CH 3630 STA CH 3640 ZS8 SEC 3650 JMP ZS14 3660 ZS9 LDA CH 3670 STA P1 3680 LDX #0 3690 STX ZA+1 3700 STX ZA 3710 JMP ZS8 3720 ZS10 DEY 3730 BNE ZS10 3740 BCC ZS12 3750 VO2 LDY #CW2 3760 ZS11 DEY 3770 BNE ZS11 3780 ZS12 LDA #3 3790 STA SKCTL 3800 VO3 LDY #CW2-2 3810 BCC ZS13 3820 VO4 LDY #CW2*2-2 3830 ZS13 DEY 3840 BNE ZS13 3850 LDA #$83 3860 STA SKCTL 3870 CLC 3880 VO5 LDY #CW2-4 3890 ZS14 ROL P1 3900 BNE ZS10 3910 INC ZA 3920 BNE ZS15 3930 INC ZA+1 3940 VO6 3950 ZS15 LDY #CW2-15 3960 LDA ZA+1 3970 BNE ZS7 3980 VO7 LDY #CW2-7 3990 ZS16 DEY 4000 BNE ZS16 4010 LDA #3 4020 STA SKCTL 4030 JMP MOEX 4040 COMP ; komparace 4050 LDX #<CMT 4060 LDY #>CMT 4070 JSR STAV 4080 LDA #1 4090 JSR BEEP 4100 LDA #0 4110 STA P2 4120 LDA NF 4130 STA CF 4140 CM1 JSR LDN 4150 JSR RH ;cti hlavicku 4160 MOVA $CBD1,UB0 4170 MOVA $15D0,UB0+2 4180 JSR RFI 4190 JSR EOF1 4200 LDY #$8C ;chyba dat 4210 LDA TB 4220 CMP #$FF 4230 BEQ CM3 4240 JMP ERR 4250 CM3 JMP CM1 4260 ; 4270 ; 4280 JED .BYTE 0 4290 LOAD ; cteni z mg. 4300 LDX #<LDM 4310 LDY #>LDM 4320 JSR STAV 4330 LDA #1 4340 JSR BEEP 4350 LO1 LDA JED ;jsou v RAM data? 4360 BNE LO3 ;ano-zapis na disk 4370 JSR RH 4380 JSR DOSF 4390 JSR RFI 4400 JSR EOF1 4410 LDY #$8C ;chyba dat 4420 LDA TB 4430 CMP #$FF 4440 BEQ LO2 4450 JMP ERR 4451 LO2 SEC 4452 LDA ZA 4453 SBC #1 4454 STA KK 4455 LDA ZA+1 4456 SBC #0 4460 STA KK+1 ;uchovej konc.adresu 4470 INC JED ;v RAM jsou data! 4480 LO3 JSR DOSF 4490 JSR WRD ;zapis na disk 4500 BPL LO1 ;dalsi soubor z mg. 4510 JMP MON1 ;chyba (full) 4520 ; 4530 NAM = HEAD+21 ;zacatek nazvu 4540 DOSF ; prevod nazvu do DOS 4550 JSR NULF ;nuluj FLN,AFN 4560 LDY #8 ;hledej tecku 4570 DS1 LDA NAM,Y 4580 CMP #'. 4590 BEQ DS8 ;poznac pozici 4600 DEY 4610 BPL DS1 4620 LDY #9 4630 DS2 LDA NAM,Y ;kolik znaku? 4640 CMP #$20 ;mezera? 4650 BNE DS3 ;ne 4660 DEY 4670 BPL DS2 4680 DS3 4690 STY P ;pocet znaku 4700 CPY #8 4710 BMI DS9 4720 LDY #7 4730 STY P1 ;delka filnam 4740 STY P2 ;zacatek EXT 4750 DFP LDX #$FF 4760 LDY #$FF ;prevod nazvu 4770 DS4 JSR CNC ;prevod znaku 4780 CPX P1 4790 BMI DS4 4800 INY 4810 LDA #'. 4820 STA FLN,Y 4830 LDX P2 4840 BEQ DS6 ;neni EXT 4850 DS5 JSR CNC ;uloz EXT 4860 BCS DS6A ;chybny znak 4870 CPX P 4880 BMI DS5 4890 DS6 INY 4900 DS6A LDA #$9B ;uloz EOL 4910 STA FLN,Y 4920 DEY 4930 DS7 ; prepis nazev 4940 LDA FLN,Y ;souboru 4950 SEC 4960 SBC #$20 4970 STA AFN,Y ;do okenka 4980 DEY 4990 BPL DS7 5000 RTS 5010 DS8 ; pozice 5020 DEY 5030 STY P1 ;nalezene tecky 5040 INY 5050 STY P2 5060 INY 5070 INY 5080 INY 5090 STY P ;konec NAM 5100 JMP DFP 5110 DS9 ; pozice pri 5120 STY P1 ;neanlezeni tecky 5130 LDY #0 ;a poctu znaku 5140 STY P2 ; <9 5150 JMP DFP 5160 ; 5170 CNC ; prevod znaku 5180 INX 5190 INY 5200 LDA NAM,X 5210 AND #$40 5220 BNE CN1 5230 LDA #$20 5240 CN1 ORA #$5F 5250 AND NAM,X 5260 CMP #'0 5270 BMI CN6 ;je < nez "0" 5280 CMP #'9+1 5290 BMI CN8 ;je to 0-9 5300 CMP #'A 5310 BMI CN6 ;je < nez "A" 5320 CMP #'Z+1 5330 BMI CN8 ;je to A-Z 5340 CN6 SEC ;priznak nedovo- 5350 LDA #'X ;leneho znaku 5360 CN7 STA FLN,Y ;uloz znak do 5370 RTS ;nazvu pro DOS 5380 CN8 CLC ;dobry znak 5390 BCC CN7 5400 ; 5410 NULF LDY #11 ;vymaz nazev 5420 NLF LDA #0 ;dobry znak 5430 STA AFN,Y ;a z AFN 5440 CLC 5450 ADC #$20 5460 STA FLN,Y 5470 DEY 5480 BPL NLF 5490 RTS 5500 RH ; cteni hlavicky 5510 MOVA $CB91,UB0 5520 MOVA $EAEA,UB0+2 5530 RH1 MOVA HEAD+20,ZA 5540 MOVA HEAD+37,KA 5550 LDA #0 5560 STA HEAD+21 5570 JSR RFI 5580 LDA TB ;hlavicka ? 5590 BNE RH1 ;ne-znovu 5600 LDA HEAD+21 ;je nulova ? 5610 BEQ RH1 ;ano - znovu 5620 JSR EOF1 5630 MOVA LOW,ZA ;nastav 5640 MOVA $D000,KA ;adresu 5650 RTS ;pro data 5660 ; 5670 OK LDX #<OKT 5680 LDY #>OKT 5690 STAV STX SW 5700 STY SW+1 5710 LDY #5 5720 SW1 LDA (SW),Y 5730 STA AMS,Y 5740 DEY 5750 BPL SW1 5760 RTS 5770 OKT .SBYTE " " 5780 CMT .SBYTE " comp" 5790 LDT .SBYTE " load D" 5800 LDM .SBYTE " load M" 5810 SVD .SBYTE " save D" 5820 DRT .SBYTE " dir" 5830 MTT .SBYTE " motor" 5840 QW .BYTE $50,$30,$28,$1E,$19,$14,$12 5850 SPED LDX VV ;volba rychlosti 5860 INX 5870 CPX #6 5880 BNE SP1 5890 LDX #1 ;vypis dosavadni 5900 SP1 STX VV 5910 TXA 5920 CLC 5930 ADC #$10 ;screen cod "0" 5940 STA RAD0+16 ;zobrazeni speed 5950 LDA QW,X 5960 ASL A 5970 STA HX 5980 LSR A 5990 LSR A 6000 CLC 6010 ADC HX 6020 STA W1+1 6030 SEC 6040 SBC #1 6050 STA W2+1 6060 LDA QW,X 6070 STA W3+1 6080 STA W4+1 6090 STA VO2+1 6100 SEC 6110 SBC #2 6120 STA VO3+1 6130 SBC #2 6140 STA VO5+1 6150 SBC #1 6160 STA VO1+1 6170 SBC #2 6180 STA VO7+1 6190 SBC #8 6200 STA VO6+1 6210 LDA QW,X 6220 SBC #1 6230 ASL A 6240 STA VO4+1 6250 SP5 RTS 6260 VV .BYTE 1 ;rychlosti prenosu 6270 HOX PHA ;Ak v hexa 6280 AND #$0F ;na screen 6290 JSR HO1 6300 PLA 6310 LSR A 6320 LSR A 6330 LSR A 6340 LSR A 6350 AND #$0F 6360 HO1 CMP #10 6370 BCS HO2 6380 ORA #'0 6390 BNE HO3 6400 HO2 ADC #'A-11 6410 HO3 SEC 6420 SBC #$20 6430 STA AMS,Y 6440 DEY 6450 RTS 6460 ; 6470 WRIT 6480 LDA #$02 6490 LDA #0 6500 STA P2 6510 LDA NF 6520 STA CF 6530 LDX #<LDT 6540 LDY #>LDT 6550 JSR STAV 6560 WR1 JSR LDN 6570 MOVA HEAD,ZA 6580 MOVA HEAD+17,KA 6590 LDA #0 6600 JSR ZSR 6610 LDA #<LOW 6620 STA ZA 6630 CLC 6640 ADC LONG 6650 STA KA 6660 LDA #>LOW 6670 STA ZA+1 6680 ADC LONG+1 6690 STA KA+1 6700 LDA #$FF 6710 JSR ZSR 6720 JMP WR1 6730 ; 6740 MCTL LDA #$34 6750 STA PACTL 6760 LDX #<MTT 6770 LDY #>MTT 6780 JSR STAV 6790 JSR KGETCH 6800 LDA #$3C 6810 STA PACTL 6820 RTS 6830 RAD0 .SBYTE " backup sp:1 " 6840 RAD1 .SBYTE " -back rite omp " 6850 .SBYTE " -next peed ir " 6860 .SBYTE " -paint oad ll " 6870 ; 6880 MENU LDY #120 6890 MN1 LDA RAD1,Y 6900 STA AMN,Y 6910 DEY 6920 BPL MN1 6930 RTS 6940 NF .BYTE 0 6950 CF .BYTE 0 6960 DIR 6970 LDA #1 6980 STA CF 6990 LDA #$7D 7000 JSR EOUTCH 7010 JSR CLOS 7020 OPEN 1,6,0," D:*.*" 7030 LDA #0 7040 STA NF 7050 DI1 7060 INPUT 1,FLN,18 7070 BPL DI3 7080 JMP ERR 7090 DI3 INC NF ;pocet souboru+1 7100 LDA FLN+13 7110 CMP #'O ;FREE SECTORS ? 7120 BEQ DI8 ;ano-konec 7130 LDA #$20 7140 STA FLN+14 7150 BPUT 0,FLN+2,13 7160 BNE DI1 ;dalsi nazev 7170 ; 7180 DI8 LDA #20 ;zacatek 7190 STA $54 ;posledniho 7200 LDA #0 ;radku obrazu 7210 STA $55 7220 JSR CLOS ;uzavri DIR 7230 BPUT 0,FLN,16 7240 JSR MENU 7250 MOVA SMB,SMC 7260 JMP NX2 7270 ; 7280 CLOS CLOSE 1 7290 RTS 7300 ; 7310 INV ; inverzni zobrazeni 7320 LDY #10 7330 IV1 LDA (SMC),Y 7340 EOR #$80 7350 STA (SMC),Y 7360 DEY 7370 BPL IV1 7380 RTS 7390 ; 7400 NEX ; dalsi nazev 7410 JSR NX2 7420 INC CF 7430 LDA CF 7440 CMP NF 7450 BCC NX1 7460 NX0 LDA #1 7470 STA CF 7480 MOVA SMB,SMC 7490 BNE NX2 7500 NX1 LDA SMC 7510 CLC 7520 ADC #13 7530 STA SMC 7540 LDA #0 7550 ADC SMC+1 7560 STA SMC+1 7570 LDY #0 7580 LDA (SMC),Y 7590 CMP #$00 7600 BNE NX2 7610 INC SMC 7620 LDA SMC 7630 BNE NX2 7640 INC SMC+1 7650 NX2 LDY #0 7660 LDA (SMC),Y 7670 EOR #$80 7680 STA (SMC),Y 7690 JSR FLNM 7700 RTS 7710 ; 7720 BACK ; dalsi nazev 7730 JSR NX2 7740 DEC CF 7750 BEQ NX0 7760 LDA SMC 7770 SEC 7780 SBC #14 7790 STA SMC 7800 LDA SMC+1 7810 SBC #0 7820 STA SMC+1 7830 LDY #0 7840 LDA (SMC),Y 7850 CMP #$00 7860 BNE NX2 7870 INC SMC 7880 LDA SMC 7890 BNE NX2 7900 INC SMC+1 7910 JMP NX2 7920 ; 7930 FLNM LDX #0 ;filename 7940 LDY #0 7942 STY EXT ;nuluj EXTend 7950 FN1 LDA (SMC),Y 7960 AND #$7F 7970 BEQ FN3 7980 STA AFN,X 7990 CLC 8000 ADC #$20 8010 STA FLN,X 8020 INX 8030 FN3 INY 8040 CPY #8 8050 BNE FN1 8060 LDA #$0E 8070 STA AFN,X 8080 LDA #$2E 8090 STA FLN,X 8100 INX 8110 FN4 LDA (SMC),Y 8120 AND #$7F 8130 BEQ FN6 8140 STA AFN,X 8150 CLC 8160 ADC #$20 8170 STA FLN,X 8180 STA EXT-8,Y 8190 INX 8200 FN6 INY 8210 CPY #11 8220 BNE FN4 8230 LDA #$9B 8240 STA FLN,X 8250 LDA #$80 8260 FN7 CPX #12 8270 BEQ FN9 8280 STA AFN,X 8290 INX 8300 BNE FN7 8310 FN9 RTS 8320 ALLF MOVA SMB,SMC 8330 LDA #1 8340 STA CF 8350 AL1 LDY #10 8360 AL2 LDA (SMC),Y 8370 ORA #$80 8380 STA (SMC),Y 8390 DEY 8400 BNE AL2 8410 LDA (SMC),Y 8420 AND #$7F 8430 STA (SMC),Y 8440 JSR NEX 8450 LDA CF 8460 CMP #1 8470 BNE AL1 8480 RTS 8490 ; 8500 ERT .SBYTE " err " 8510 ERR TYA ;kod chyby do Ak 8520 LDY #5 8530 JSR HOX ;zobraz chybu 8540 ER1 LDA ERT,Y 8550 STA AMS,Y 8560 DEY 8570 BPL ER1 8580 JMP MON1 8590 ; 8600 LDN JSR NEX 8610 LDA CF 8620 CMP #1 8630 BNE LDD 8640 LDA P2 8650 BEQ LDD 8660 PLA 8670 PLA 8680 RTS 8690 LDD LDY #0 8700 INC P2 8710 LDA (SMC),Y 8720 AND #$80 8730 BNE LDN 8740 JSR CLOS 8750 OPEN 1,4,0,FLND 8760 BMI ERR 8770 MOVA LOW,ZA 8780 LD1 BGET 1,P1,0 8790 BMI LD3 8800 LDY #0 8810 STA (ZA),Y 8820 INC ZA 8830 BNE LD2 8840 INC ZA+1 8850 LD2 JMP LD1 8860 LD3 CPY #$88 8870 BEQ LD5 8880 JMP ERR 8890 LD5 JSR CLOS 8900 LDA ZA 8910 SEC 8920 SBC #<LOW 8930 STA LONG 8940 LDA ZA+1 8950 SBC #>LOW 8960 STA LONG+1 8970 LDA #4 8980 STA HEAD 8990 JSR TYP 9000 LDA #1 9010 STA ZADR 9020 STA SADR 9030 LDA #0 9040 STA ZADR+1 9050 STA SADR+1 9060 LDX #0 9070 LD6 LDA FLN,X 9080 CMP #$9B 9090 BNE LD8 9100 LDA #$20 9110 LD7 STA NZV,X 9120 INX 9130 CPX #12 9140 BNE LD7 9150 RTS 9160 LD8 STA NZV,X 9170 INX 9180 CPX #12 9190 BNE LD6 9200 LD9 RTS 9210 ; 9220 EXT .BYTE " TYP" 9230 BAS .BYTE " BASTBTU" 9240 TYP LDY #2 9250 TP1 LDA EXT,Y 9260 CMP BAS,Y 9270 BNE TP3 9280 DEY 9290 BPL TP1 9300 TP2 LDA #$FF 9310 STA HEAD 9320 RTS 9330 TP3 LDA EXT 9340 CMP BAS+3 9350 BNE TP5 9360 LDA EXT+1 9370 CMP BAS+4 9380 BEQ TP2 9390 TP5 LDA EXT 9400 CMP BAS+5 9410 BNE TP6 9420 LDA EXT+1 9430 CMP BAS+6 9440 BEQ TP2 9450 TP6 RTS 9460 ; 9470 WRD 9480 LDX #<SVD 9490 LDY #>SVD 9500 JSR STAV 9510 JSR CLOS 9520 OPEN 1,8,0,FLND 9530 BMI WD5 ;chyba 9540 WD0 MOVA LOW,ZA ;poc.adresa 9550 WD1 LDY #0 9560 LDA (ZA),Y ;dalsi byte 9570 STA BUF 9580 BPUT 1,BUF,1 ;uloz na disk 9590 BMI WD5 ;chyba 9600 INC ZA ;posunout 9610 BNE WD2 ;ukazovatko 9620 INC ZA+1 ;vstupniho bufru 9630 WD2 LDA ZA ;je to 9640 CMP KK ;posledni 9650 BNE WD1 9660 LDA ZA+1 ;byte? 9670 CMP KK+1 9680 BNE WD1 ;ne-dalsi 9690 JSR CLOS ;ano - konec 9700 BMI WD5 ;chyba zavreni 9710 JSR DIR ;obnov adresar 9720 LDA #0 ;poznac,ze nejsou 9730 STA JED ;v RAM data 9740 RTS 9750 WD5 CPY #$A2 9760 BEQ WD7 9770 WER JMP ERR 9780 WD7 JSR CLOS 9790 JSR ES2 9800 LDX #<FUL ;device full 9810 LDY #>FUL 9820 JSR STAV 9830 JMP MON1 9840 ERAS LDX #<SUR ;erase file 9850 LDY #>SUR 9860 JSR STAV 9870 ES1 JSR KGETCH 9880 CMP #'N 9890 BEQ ES3 9900 CMP #'Y 9910 BNE ES1 9920 ES2 LDX #<DLT 9930 LDY #>DLT 9940 JSR STAV 9950 XIO CERA,1,0,0,FLND 9960 BMI WER 9970 JSR DIR 9980 ES3 RTS 9990 SUR .SBYTE " sure ?" 10000 FUL .SBYTE " d.full" 10010 DLT .SBYTE " delete" 10020 KK .WORD 0 ;konec dat v RAM 10030 .OPT LIST 10040 BUF .BYTE 0 ;output bufer 10050 .OPT NO LIST 10060 *= $02E0 10070 .WORD RES,RES
References
Listing downloads
Copyright holder