Random demo
Random software
Random demo
  • Entry name:
     Backup V1.3 
  • Category:
    Disk utilities
  • Publisher/Developer:
    Flop 6
  • Year:
    1989
  • Code:
    Petr Vicar
  • Programming language:
    Assembly language
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	

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!