!!!Speedy 1050 Backup [{TableOfContents }] !!Disk Image * [Speedy 1050 Backup/biboass3.atr] !!Source !BACKUP.ASM {{{ 00010 .LI ON 00020 ------------------------------ 00030 ; SPEEDY BACKUP V 1.1 00040 ; (P) THOMAS NIEHAUS -TABS- 00050 ; (C) 1986/87 COMPY-SHOP 00060 ; --BIBO-ASSEMBLER 00070 ; TOOLDISK 2 - 1987 00080 ------------------------------ 00090 .LI OFF 00100 .OR $400 00110 .OF "D:BACKUP.COM" 00120 .DF "D:HS.DAT 00130 ------------------------------ 00140 .OR $2500 00150 ------------------------------ 00160 ;VERSCH 00170 ;IST EINE EINFACHE VERSCHIE- 00180 ;ROUTINE. DA DAS HAUPTPROGRAMM 00190 ;IN EINEM SPEICHERBEREICH LIEGT 00200 ;WO SICH NORMALERWEISE DAS DOS 00210 ;BEFINDET, MUESSEN WIR DAS 00220 ;PROGRAMM VOR DEM START IM 00230 ;SPEICHER VERSCHIEBEN. 00240 ------------------------------ 00250 VERSCH LDA #$10 00260 STA $F0 00270 STA $F2 00280 LDA #$06 00290 STA $F1 00300 LDA #$26 00310 STA $F3 00320 LDX #$14 00330 LDY #$00 00340 .1 LDA ($F2),Y 00350 STA ($F0),Y 00360 INY 00370 BNE .1 00380 INC $F1 00390 INC $F3 00400 DEX 00410 BNE .1 00420 JMP $610 00430 ------------------------------ 00440 .OR $610 00450 .TA $2610 00460 ------------------------------ 00470 .IN "D:EQUATES.ASM 00480 .IN "D:MENU.ASM 00490 .IN "D:COPY.ASM 00500 .IN "D:INIT.ASM 00510 .IN "D:DRIVE.ASM 00520 ------------------------------ 00530 .OR $2E0 00540 .DA $2500 00550 ------------------------------ 00560 ;ERKLAERUNGEN: 00570 ;DAS PROGRAMM KANN NUR VON DER 00580 ;DISKETTE AUF DIE DISKETTE 00590 ;ASSEMBLIERT WERDEN. EIN 00600 ;ARBEITEN MIT DER RAMDISK IST 00610 ;EBENFALLS MOEGLICH. ALLE 00620 ;INCLUDE DATEIEN (ZEILEN 150- 00630 ;190) MUESSEN DANN VON D: 00640 ;AUF DIE RAMDISK NUMMER GE- 00650 ;AENDERT WERDEN (ZB. D8:)! 00660 ;AUCH DIE DATENDATEI US.DAT 00670 ;MUSS DANN AUF D8:US.DAT GE- 00680 ;AENDERT WERDEN! 00690 ------------------------------ 00700 ;HS.DAT 00710 ;IST EINE REINE DATENDATEI. 00720 ;SIE ENTHAELLT DIE HIGH-SPEED 00730 ;ROUTINE. 00740 ------------------------------ 00750 ;EQUATES.ASM 00760 ;ENTHAELLT ALLE VOM PROGRAMM 00770 ;BENOETIGTEN SYSTEM ADRESSEN 00780 ------------------------------ 00790 ;MENU.ASM 00800 ;IST DAS HAUPTMENU DES BACKUP 00810 ;PROGRAMMES. ALLE EINSTELLUNGEN 00820 ;KOENNEN VON HIER AUS VORGE- 00830 ;NOMMEN WERDEN. 00840 ------------------------------ 00850 ;COPY.ASM 00860 ;ENTHAELLT IST DAS EIGENTLICHE 00870 ;KOPIERPROGRAMM. HIER SIND ALLE 00880 ;WICHTIGEN PROGRAMMTEILE ENT- 00890 ;HALTEN. 00900 ------------------------------ 00910 ;INIT.ASM 00920 ;INITIALISIERT DAS KOMPLETTE 00930 ;SYSTEM. 00940 ------------------------------ 00950 ;DRIVE.ASM 00960 ;BEINHALTET DIE ROUTINE, DIE 00970 ;ZUM LAUFWERK GESCHICKT WIRD. 00980 ------------------------------ 00990 ;DAS FERTIG ASSEMBLIERTE PRO- 01000 ;GRAMM KANN NUR VOM DOS AUS 01010 ;GESTARTET WERDEN! 01020 ;EIN PROGRAMMSTART VOM BIBO- 01030 ;ASSEMBLER HER IST NICHT 01040 ;MOEGLICH. 01050 ------------------------------ 01060 ;AENDERN SIE DAS PROGRAMM NACH 01070 ;IHREN WUENSCHEN ODER BEDUERF- 01080 ;NISSEN! VIELLEICHT IST KOENNEN 01090 ;SIE ES SOGAR VERBESSERN! 01100 ;MELDEN SIE SICH DANN BEI UNS! 01110 ; 01120 ;COMPY-SHOP 0208-497169 01130 ; 01140 ; VIEL SPASS 01150 ------------------------------ }}} !EQUATES.ASM {{{ 00010 ------------------------------ 00020 .LI ON 00030 ;"†≈—’¡‘≈”†" 00040 .LI OFF 00050 ------------------------------ 00060 ; DATE : 18 / 09 / 1986 00070 ------------------------------ 00080 ; ATARI EQUATES : 00090 ------------------------------ 00100 SAV1 = $C0 2 B. 00110 DRVSEL = SAV1+2 1 B. 00120 SAV2 = SAV1+3 2 B. 00130 MAXSAV = SAV1+5 2 B. 00140 CBUF = $1000 00150 LOMEM = $1A00 00160 HIMEM = $2E6 00170 M1 = SAV1+7 1 B. 00180 M2 = SAV1+8 1 B. 00190 DLEN = SAV1+9 2 B. 00200 TRACKNUM = SAV1+11 1 B. 00210 LTRACK = SAV1+12 1 B. 00220 STRACK = SAV1+13 1 B. 00230 HLEN = SAV1+14 1 B. 00240 FORKEN = SAV1+15 1 B. 00250 MAXDRV = 2 00260 FDRV = SAV1+16 1 B. 00270 BEGIN = $8000 00280 FDCSTAT = SAV1+17 1 B. 00290 DISPLAY = SAV1+18 2 B. 00300 SLOC = SAV1+20 2 B. 00310 DLOC = SAV1+22 2 B. 00320 ------------------------------ 00330 ;DRIVE ROUTINE POINTER 00340 ;DRIVE EQUATES : 00350 ------------------------------ 00360 BUF = $90 00370 XSAV = BUF+2 00380 YSAV = BUF+3 00390 HEADBUF = $8800 00400 SECBUF = $8C00 SECTOR BUFF 00410 RDHEAD = $FF7E 00420 RDHD1 = $FF81 00430 X2WAIT = $FF1B 00440 TRACK0 = $FF1E 00450 CSEC = BUF+4 00460 TSEC = BUF+5 00470 ------------------------------ 00480 ;RDSEC1 = $FF66 00490 ;Y=0,(IND) = $19 BUFFER. 00500 ;(SECLEN)= $14 SEI $80 00510 ;SECTOR = $0E 00520 ------------------------------ 00530 SENDC = $FF5A 00540 SENDA = $FF57 00550 TRACKPO = $FF21 00560 CONRES = $FF2A 00570 MOTON = $FF09 00580 CLRTRA = $FFAE 00590 SDBTS = $FF54 00600 SENDE = $FF5D 00610 SDRDDP = $FF15 00620 TSTWRP = $FF6F 00630 MOTOFF = $FF0F 00640 ------------------------------ }}} !MENU.ASM {{{ 00010 ------------------------------ 00020 .LION 00030 ;"†Õ≈Œ’†" 00040 .LIOFF 00050 ------------------------------ 00060 ; STAND: 18/11/86' 00070 ------------------------------ 00080 BASE = $58 DISPLAY START 00090 HSCROLL = $D404 00100 MAXSCROL = 145 00110 ------------------------------ 00120 MENUEST JSR RAMDISKINIT 00130 JSR OEFFNE 00140 JSR RDCAP 00150 JMP COPYST 00160 OEFFNE JSR TEXTOUT 00170 .HX 7D9B 00180 .AS ' SPEEDY 1050 BACKUP INITIALIZER' 00190 .HX 9B9BEA 00200 RTS 00210 ------------------------------ 00220 RDCAP JSR TEXTOUT 00230 .AS 'RAM - SIZE : ' 00240 .HX EA 00250 LDA RAMDISKFLG 00260 BEQ .1 NO RAMDISK LOCATED 00270 CMP #$10 00280 BEQ .2 00290 CMP #8 00300 BEQ .3 00310 CMP #4 00320 BEQ .4 00330 LDA #0 00340 STA RAMDISKFLG 00350 .1 JSR TEXTOUT 00360 .DA "MAX. 64 K BYTES",#$9B,#$EA 00370 RTS 00380 .2 JSR TEXTOUT 00390 .DA "320 K BYTES",#$9B,#$EA 00400 RTS 00410 .3 JSR TEXTOUT 00420 .DA "192 K BYTES",#$9B,#$EA 00430 RTS 00440 .4 JSR TEXTOUT 00450 .DA "128 K BYTES",#$9B,#$EA 00460 RTS 00470 ------------------------------ 00480 VPX .HX 0F 00490 HSCNT .HX 00 00500 NOSCROL .HX 00 00510 DEFVBI .DA $E462 00520 ------------------------------ 00530 ;"Õ≈Œ’≈†ƒ…”–ំÅ”‘" 00540 ------------------------------ 00550 MENUDL LDA #DL 00560 STA $230 00570 LDA /DL 00580 STA $231 00590 LDA #14 00600 STA $2C5 00610 LDA #2 00620 STA $2C6 00630 LDA $D6AE 00640 CMP #$A9 00650 BNE .1 00660 JSR $D6AE 00670 LDA $224 00680 STA DEFVBI 00690 LDA $225 00700 STA DEFVBI+1 00710 ------------------------------ 00720 ;"…Œ…‘†…ÕƆ÷¬…†§≤≤≤Ƨ≤≤≥" 00730 ------------------------------ 00740 .1 LDA #0 00750 STA $D40E 00760 LDA #VBI 00770 STA $222 00780 LDA /VBI 00790 STA $223 00800 LDA #DVBI 00810 STA $224 00820 LDA /DVBI 00830 STA $225 00840 LDA #$40 00850 STA $D40E 00860 RTS 00870 ------------------------------ 00880 DVBI LDX #$18 00890 .1 LDA $3CF,X 00900 AND #$7F 00910 STA CLK,X 00920 DEX 00930 BPL .1 00940 JMP (DEFVBI) 00950 ------------------------------ 00960 VBI LDA HSCNT 00970 CMP #MAXSCROL 00980 BCC .0 00990 LDA NOSCROL 01000 BMI .2 01010 LDA #TXTSP 01020 STA HSLMS 01030 LDA /TXTSP 01040 STA HSLMS+1 01050 LDA #MAXSCROL-44 01060 STA HSCNT 01070 LDA #$FF 01080 STA NOSCROL 01090 ------------------------------ 01100 .0 LDX VPX 01110 DEX 01120 CPX #$C 01130 BCC .1 01140 STX HSCROLL 01150 STX VPX 01160 JMP $E45F 01170 .1 LDA #$F 01180 STA HSCROLL 01190 STA VPX 01200 INC HSCNT 01210 INC HSLMS 01220 BNE .2 01230 INC HSLMS+1 01240 .2 JMP $E45F 01250 ------------------------------ 01260 ;"¡†Ω†”‘¡‘’”" 01270 ;"ÿ†Ω†”≈√‘œ“" 01280 ;"Ÿ†Ω†‘“¡√À" 01290 ------------------------------ 01300 CLRBASE LDA #19 01310 STA VAL 01320 .1 LDY TRACKNUM 01330 LDX VAL 01340 JSR CALC 01350 LDA #0 01360 STA (DISPLAY),Y 01370 DEC VAL 01380 BNE .1 01390 RTS 01400 PUTBASE CPX #20 01410 BCS RTN1 01420 CPY #40 01430 BCS RTN1 01440 PHA 01450 JSR CALC 01460 LDA (DISPLAY),Y 01470 BEQ D 01480 PLA 01490 ORA #$80 01500 STA (DISPLAY),Y 01510 RTN1 RTS 01520 ------------------------------ 01530 D PLA 01540 STA (DISPLAY),Y 01550 RTS 01560 ------------------------------ 01570 CALC LDA #0 01580 STA $1 01590 DEX 01600 TXA 01610 ASL 01620 ASL 01630 ASL 01640 STA $0 01650 ASL 01660 ROL $1 01670 ASL 01680 ROL $1 01690 ADC $0 01700 BCC .1 01710 INC $1 01720 CLC 01730 .1 ADC BASE 01740 STA DISPLAY 01750 LDA $1 01760 ADC BASE+1 01770 STA DISPLAY+1 01780 RTS 01790 ------------------------------ 01800 DL .HX 707046 01810 .DA TXT1 01820 .HX 1000020002021042 01830 LMS .DA $9C40 01840 .HX 020202020202 01850 .HX 020202020202 01860 .HX 020202020202 01870 ZDL .HX 00 01880 .HX 52 ;H SCROLL 01890 HSLMS .DA TXT2 01900 .HX 0046 01910 .DA MESSAGE 01920 .HX 41 01930 .DA DL 01940 MESSAGE .AT ' ' 01950 .AT ' ' 01960 TXT1 .AT ' SPEEDY BACKUP V1.1' 01970 .AT ' ' 01980 .AT ' TRACK ' 01990 .AT ' STATUS ' 02000 .AT ' 1 2 3 ' 02010 .AT '0123456789012345678901234567890123456789' 02020 TXTSP .AT ' ' 02030 .AT ' ' 02040 TXT2 .AT ' COPYRIGHT BY COMPY' 02050 .AT ' - SHOP MH 10 / 86 ' 02060 .AT ' *** ' 02070 .AT ' -SPEEDY BACKUP V1.1 -' 02080 .AT ' BY ' 02090 .AT -' TAPS ' 02100 .AT ' ,THOMAS NIEHAUS ' 02110 .AT '(p) ' 02120 CLK .AT ' ' 02130 .AT ' ' 02140 .AT ' ' 02150 MSOURCE 02160 .AT 'INSERT SOURCE,PLEASE' 02170 MDEST 02180 .AT ' INSERT DESTINATION ' 02190 ------------------------------ 02200 RAMDISKINIT 02210 LDA $D301 02220 STA PB 02230 LDA #$23 02240 STA $D301 02250 LDA #0 02260 STA $4000 02270 LDA PB 02280 STA $D301 02290 LDA #$23 02300 STA $4000 02310 STA $D301 02320 LDA $4000 02330 CMP #$23 02340 BEQ .2 NO RAMD.! 02350 LDY #0 02360 LDX #0 02370 .1 LDA $D301 02380 AND #$23 02390 ORA RDTAB,Y 02400 STA $D301 02410 LDA RDTAB1,X 02420 STA $4000 02430 INX 02440 INY 02450 INY 02460 INY 02470 INY 02480 CPX #4 02490 BCC .1 02500 LDA $D301 02510 AND #$23 02520 ORA #$CC 02530 STA $D301 02540 LDA $4000 02550 BCS .3 =JMP 02560 .2 LDA #0 02570 .3 STA RAMDISKFLG 02580 LDA PB 02590 STA $D301 02600 RTS 02610 ------------------------------ 02620 RAMDISKFLG .HX 00 02630 PB .HX 00 02640 RDTAB .HX CCC8C4C0 02650 .HX 8C888480 02660 .HX 4C484440 02670 .HX 0C080400 02680 RDTAB1 .HX 100C0804 02690 ------------------------------ 02700 ;"“¡Õƒ…”À‘“≈…¬≈“†‘≈”‘≈Œ" 02710 ; 02720 ;"–¡“¡Õ≈‘≈“Ã…”‘≈†ƒ≈“†“¡Õƒ…”À†∫" 02730 ; 02740 RDSKPAR0 .DA $140 02750 .DA $A000 02760 ------------------------------ 02770 ;"≈…Œ”–“’Œ«†–¡“¡Õ≈‘≈“†∫" 02780 ;X= LO ,Y = HI 02790 ;ACCU BIT0=0 READ 02800 ;ACCU BIT0=1 WRITE 02810 ------------------------------ 02820 ;"“≈…»≈Œ∆œÃ«≈†ƒ≈“†≈Ã≈Õ≈Œ‘≈†∫" 02830 ;1.Sector No. Lo 02840 ;2.Sector No. Hi 02850 ;3.Buffer Adr. Lo 02860 ;4.Buffer Adr. Hi 02870 ;"“’≈√ÀÀ≈»“†∫" 02880 ;Y=$01 ERFOLGREICH 02890 ;Y=$FF FEHLER 02900 ------------------------------ 02910 LFLG .HX 00 02920 BANK .HX 00 02930 LSEC .HX 00 02940 HSEC .HX 00 02950 ------------------------------ 02960 ;"Œœ‘≈†∫" 02970 ;"√Ω∞†Ω憓¡Õƒ…”À÷≈“◊¡Ã‘’Œ«†Õ…‘†ÕÔˆÂÚ†°" 02980 ;"√Ω±†Ω憒≈¬≈“«…¬‘†ÿ¨Ÿ†Ω†¬’∆∆≈“¨†¬¡ŒÀ†…”‘†¬≈“≈…‘”†¡À‘…÷…≈“‘" 02990 ------------------------------ 03000 RDSKVER PHP 03010 AND #$7F 03020 STA LFLG 03030 ------------------------------ 03040 ;"¡’∆†”‘¡√À†Ã…≈«‘† ≈‘⁄‘†”≈√‘œ“†ŒœÆ†Ãœ†œ¬≈Œ" 03050 ;"∆’≈“†±≤∏†”≈√‘œ“≈Œ†Ã…≈«‘†ƒ≈“†¬≈“≈…√»†ƒ≈“†”≈√‘œ“Œ’ÕÕ≈“Œ†⁄◊…”√»≈Œ" 03060 ------------------------------ 03070 ;"a) 0-2047 fuer 256 KB Bank" 03080 ;"b) 0-1023 fuer 128 KB Bank" 03090 ;"c) 0- 511 fuer 64 KB Bank" 03100 ;"d) 0- ... fuer den linearen Speicher" 03110 ------------------------------ 03120 LDA RDSKPAR0 03130 STA LSEC 03140 LDA RDSKPAR0+1 03150 STA HSEC 03160 ------------------------------ 03170 ;"‘≈”‘†…∆†”≈√‘œ“†æΩ†§±¥∞" 03180 ------------------------------ 03190 LDA HSEC 03200 BEQ .1 03210 CMP #2 03220 BCS .2 03230 LDA LSEC 03240 CMP #$40 03250 BCS .2 03260 .1 LDA LFLG 03270 ORA #$80 03280 STA LFLG 03290 BNE .3 03300 .2 LDA LSEC 03310 SEC 03320 SBC #$40 03330 STA LSEC 03340 LDA HSEC 03350 SBC #1 03360 STA HSEC 03370 ------------------------------ 03380 ;"¬≈Õ≈“À’Œ«†∫" 03390 ;ACCU =MINUS HEISST RAMDISK IM LINEAREN SPEICHER 03400 ;ACCU =PLUS RAMDISK IN BANK LOGIK 03410 ;"Œœ◊†√¡Ã√’á‘≈†Õ≈Õœ“Ÿ†–œ”…‘…œŒ†¡Œƒ†¬¡ŒÀ": BANK = SECTOR/128 03420 ------------------------------ 03430 .3 LDA HSEC 03440 STA BANK 03450 LDA LSEC 03460 ASL 03470 ROL BANK 03480 ------------------------------ 03490 ;"–œ”ÆΩ†”≈√‘œ“†™†±≤∏" 03500 ------------------------------ 03510 LDA #0 03520 LSR HSEC 03530 ROR LSEC 03540 ROR 03550 STA DLOC 03560 LDA LSEC 03570 LDX LFLG ;TEST OF BANKED RAMDISK,MINUS SET = LINEAR MEMORY 03580 BPL .5 03590 TAX ;SAVE HIGH BYTE OF CALCULATE POSITION 03600 LDA DLOC ;GET LO BYTE AND ADD BOUNDARY 03610 CLC 03620 ADC #LOMEM 03630 STA DLOC 03640 TXA 03650 ADC /LOMEM 03660 STA DLOC+1 03670 BNE .6 =JMP 03680 .5 AND #$3F ;HIGHER BIT'S DO NOT BUILD THE ADRESS 03690 CLC 03700 ADC #$40 ;BANK BASIS= $4000 03710 STA DLOC+1 03720 ------------------------------ 03730 ;"«≈‘†”‘œ“≈†¬’∆∆≈“†∆“œÕ†”‘¡√À" 03740 ------------------------------ 03750 .6 LDA RDSKPAR0+2 03760 STA SLOC 03770 LDA RDSKPAR0+3 03780 STA SLOC+1 03790 ------------------------------ 03800 ;NOW, BANK NO. AND LOC HAS TOC CHECKED, IF AN ERROR OCCURED, 03810 ;THE MINUS FLAG WILL BE SET AND THE OPERATION IS ABORTED. 03820 ------------------------------ 03830 LDA LFLG 03840 BPL .7 03850 LDA DLOC+1 03860 CMP HIMEM 03870 BCS ERR 03880 BCC .8 =JMP 03890 .7 LDA BANK ; CHECK,IF CALCULATED BANK IS 03900 CMP RAMDISKFLG ; IN COMPUTER'S RAMDISK-SIZE 03910 BCS ERR 03920 LDA DLOC+1 ; CHECK, IF THERE'S A BANK OVERFLOW ERROR 03930 CMP #$80 ; NORMALLY,THIS ERROR CANNOT 03940 BCS ERR ; OCCUR,BUT PERHAPS THERE'S A MISTAKE IN THIS PROGRAMM 03950 ------------------------------ 03960 ;ALL CALCULATED PARAMETER'S WERE OKAY.LET'S MOVE 03970 ;THE MEMORY BLOCK ! 03980 ;CAUTION: NO INTERRUPT IS DISABLED DURING BANK OPERATION ! 03990 ------------------------------ 04000 .8 LDX BANK 04010 LDA $D301 04020 AND #$23 04030 ORA RDTAB,X 04040 STA BANK 04050 LDA LFLG TEST FOR RDSK 04060 BPL .9 04070 LDX $D301 04080 STX BANK 04090 .9 PLP ; GET CARRY BACK AND TEST, IF DATA SHOULD BE MOVED 04100 BCS NOMOV 04110 AND #1 ;ACCU=1 WRITE 04120 BEQ SVD301 04130 LDA $D301 ;SAVE $D301 's VALUE TO SWITCH 04140 STA .21+1 ; THE BANKS 04150 ; 04160 LDY #$7F 04170 .20 LDA (SLOC),Y 04180 LDX BANK ;ENABLE BANK 04190 STX $D301 04200 STA (DLOC),Y 04210 .21 LDX #$FF 04220 STX $D301 04230 DEY 04240 BPL .20 04250 LDY #1 ;OKAY, 128 BYTES TRANSFERRED. 04260 RTS 04270 ------------------------------ 04280 ;THE ERROR,THAT HAS BEEN OCCURED, IS MARKED WITH Y=FF 04290 ;AND SET MINUS FLAG ! 04300 ------------------------------ 04310 ERR PLP ; REGET PH WITH CARRY 04320 LDY #$FF 04330 RTS 04340 ------------------------------ 04350 ; THIS PART IS ADVANCED READ FOR RAMDISK ! 04360 ------------------------------ 04370 SVD301 LDA $D301 ;SAVE $D301 's VALUE TO SWITCH 04380 STA .22+1 ; THE BANKS 04390 LDY #$7F 04400 .21 LDX BANK ;ENABLE BANK 04410 STX $D301 04420 LDA (DLOC),Y 04430 .22 LDX #$FF 04440 STX $D301 04450 STA (SLOC),Y 04460 DEY 04470 BPL .21 04480 LDY #1 ;OKAY, 128 BYTES TRANSFERRED. 04490 RTS 04500 NOMOV LDA BANK 04510 STA $D301 04520 LDX DLOC 04530 LDY DLOC+1 04540 LDA #1 04550 RTS 04560 ------------------------------ 04570 ;HERE'S THE 'SPEEDY DRIVES' ROUTINE 04580 ------------------------------ 04590 SPEEDYD JSR TEXTOUT 04600 .AS ' SPEEDY DRIVES :' 04610 .HX EA 04620 LDA #1 04630 STA DRVSEL 04640 TSTDRVL LDA DRVSEL 04650 JSR SELDRV 04660 BCS .2 04670 PHA 04680 JSR TEXTOUT 04690 .DA " D",#$EA 04700 PLA 04710 CLC 04720 ADC #$30 04730 JSR EOUT 04740 INC DRVSEL 04750 JMP TSTDRVL 04760 .2 LDA #$9B 04770 JMP EOUT 04780 ------------------------------ 04790 ;RAMDISK STATUS MESSAGE (IF R.D. PRESENT) 04800 ------------------------------ 04810 RDSKSTAT .HX 00 04820 ------------------------------ 04830 RDSTAT LDA RAMDISKFLG 04840 BEQ .1 04850 JSR TEXTOUT 04860 .AS ' RAMDISK STATUS : ' 04870 .HX EA 04880 LDA RDSKSTAT 04890 BEQ .2 04900 JSR TEXTOUT 04910 .DA "USED",#$9B,#$EA 04920 .1 RTS 04930 ------------------------------ 04940 .2 JSR TEXTOUT 04950 .DA "FREE",#$9B,#$EA 04960 RTS 04970 ------------------------------ 04980 ;"Õ≈Œ’≈†∆’Œ√‘…œŒ”†¡∆‘≈“†Õ¡…Œ†Õ≈Œ’≈" 04990 ------------------------------ 05000 MAXPAR = 6 05010 ------------------------------ 05020 MENUE JSR OPENSCR 05030 LDA $230 05040 STA DISPLAY 05050 LDA $231 05060 STA DISPLAY+1 05070 LDY #$1C 05080 LDA #$10 05090 STA (DISPLAY),Y 05100 INY 05110 LDA #1 ; DLIST JUMP 05120 STA (DISPLAY),Y 05130 INY 05140 LDA #ZDL 05150 STA (DISPLAY),Y 05160 INY 05170 LDA /ZDL 05180 STA (DISPLAY),Y 05190 LDA #0 05200 STA $52 05210 JSR TEXTOUT 05220 .HX 7D9B 05230 .AS ' *** SPEEDY PARAMETER MENUE ***' 05240 .HX 9B9B9B 05250 ------------------------------ 05260 .DA " 1: VERIFY WRITES",#$9B 05270 .DA " 2: R/W RETRIES",#$9B 05280 .DA " 3: R/W BY DISK CHANGE",#$9B 05290 .DA " 4: TRACK ANALYZING MODE",#$9B 05300 .DA " 5: SOURCE DRIVE",#$9B 05310 .AS " 6: DESTINATION DRIVE" 05320 .HX 9B9B9B 05330 ------------------------------ 05340 .DA "†√’““≈Œ‘†»¡“ƒ◊¡“≈†–¡“¡Õ≈‘≈“†∫†",#$9B,#$EA 05350 ------------------------------ 05360 JSR RDCAP 05370 JSR RDSTAT 05380 JSR SPEEDYD 05390 ------------------------------ 05400 ;"–¡“¡Õ≈‘≈“†¡’”«≈¬≈Œ" 05410 ------------------------------ 05420 LDA #2 05430 STA $52 05440 LDA NOSCROL 05450 CMP #$FF 05460 BNE NOLAUF 05470 JSR SETSC ; SETZE LAUFBAND IN BEWEGUNG ! 05480 ------------------------------ 05490 ;"Œ’Œ†–¡“¡Õ≈‘≈“†÷œŒ†À≈Ÿ¬œ¡“ƒ†”≈‘⁄≈Œ" 05500 ------------------------------ 05510 NOLAUF LDA #0 05520 STA VAL 05530 .2 LDA VAL ; HOLE TABELLEN POSITION 05540 JSR PARSET 05550 INC VAL 05560 LDA VAL 05570 CMP #MAXPAR ;6 05580 BCC .2 05590 MENUEKEY JSR GETKEY 05600 CMP #27 ESCAPE ? 05610 BEQ .27 05620 SEC 05630 SBC #$31 05640 BMI MENUEKEY 05650 CMP #MAXPAR ;6 05660 BCS MENUEKEY 05670 TAY 05680 ASL 05690 TAX 05700 LDA VECTAB+1,X 05710 PHA 05720 LDA VECTAB,X 05730 PHA 05740 TYA 05750 RTS 05760 ------------------------------ 05770 .27 JMP BIGST 05780 ------------------------------ 05790 VECTAB .DA FUNC1-1 05800 .DA FUNC2-1 05810 .DA FUNC3-1 05820 .DA FUNC4-1 05830 .DA FUNC5-1 05840 .DA FUNC6-1 05850 ------------------------------ 05860 FUNC1 PHA 05870 LDA PVERIFY ;VERIFY ON/OFF 05880 EOR #$80 05890 STA PVERIFY 05900 PLA 05910 JSR PARSET 05920 JMP MENUEKEY 05930 ------------------------------ 05940 FUNC2 PHA 05950 INC PRETRY ; RERIES 05960 LDA PRETRY 05970 CMP #5 ;MAX 5 RETRIES 05980 BCC .1 05990 LDA #0 06000 STA PRETRY 06010 .1 PLA 06020 JSR PARSET 06030 JMP MENUEKEY 06040 ------------------------------ 06050 FUNC3 PHA 06060 LDA PCHANGE ; AUTOMATIC COPY 06070 EOR #$80 06080 STA PCHANGE 06090 PLA 06100 JSR PARSET 06110 JMP MENUEKEY 06120 ------------------------------ 06130 FUNC4 JMP MENUEKEY ; TRACK ANALYSING MODE SELECT : 06140 ------------------------------ 06150 FUNC5 PHA ; CHANGE SOURCE DRIVE 06160 INC PSOURCE 06170 LDA PSOURCE 06180 JSR SELDRV 06190 BCC .1 06200 LDA #1 06210 STA PSOURCE 06220 .1 PLA 06230 JSR PARSET 06240 JMP MENUEKEY 06250 ------------------------------ 06260 FUNC6 PHA ;CHANGE DESTINATION DRIVE 06270 INC PDEST 06280 LDA PDEST 06290 JSR SELDRV 06300 BCC .1 06310 LDA #1 06320 STA PDEST 06330 .1 PLA 06340 JSR PARSET 06350 JMP MENUEKEY 06360 ------------------------------ 06370 ;"”≈‘⁄‘†ƒ≈Œ†–¡“¡Õ≈‘≈“†¡’∆†ƒ≈Œ†¬…Ô√»…“Õ" 06380 ------------------------------ 06390 PARSET STA VAL ;TABELLEN POSITION 06400 TAX ; IN DEN INDEX 06410 LDY MTAB,X ; NUN HOLE DIE VERTICAL POSITION AUS DER TABELLE 06420 LDA MTAB2,X ; HOLE DAS FLAG 06430 LSR ; SETZE ES IN CARRY 06440 LDX VAL ; NUN LADE DEN PARAMETER IN DEN ACCU 06450 LDA PVERIFY,X 06460 ; JMP HMENUE ; AN SCHIRM AUSGEBEN 06470 ------------------------------ 06480 ;"‘»…”†“œ’‘…Œ≈†–’‘”†‘»≈†–¡“¡Õ≈‘≈“”†”‘¡‘’”†œŒ‘œ†«“Æ∞†”√“≈≈Œ" 06490 ;CARRY = 0 AND : 06500 ; ACCU = 0 <=> "NOT AVIABLE" 06510 ; ACCU = 1-$7F <=> "YES" 06520 ; ACCU = $80-$FF <=> "NO" 06530 ; 06540 ; CARRY = 1 AND : 06550 ; ACCU = HEXNUMBER 06560 ; 06570 ;Y REGISTER <=> VERTICAL POSITION 06580 ------------------------------ 06590 HMENUE STY $54 ; SET VERTICAL POSITION 06600 LDY #26 ; HORIZONTAL POSITION 06610 STY $55 06620 BCS .3 06630 TAY ; REFRESH CPU FLAG'S 06640 BEQ .2 06650 BPL .1 06660 JSR TEXTOUT 06670 .AS 'NO ' 06680 .HX EA 06690 RTS 06700 .1 JSR TEXTOUT 06710 .AS 'YES ' 06720 .HX EA 06730 RTS 06740 .2 JSR TEXTOUT 06750 .DA "NOT AVAILABLE",#$EA 06760 RTS 06770 ------------------------------ 06780 .3 JMP PHEXOUT 06790 ------------------------------ 06800 ;"≈Ã≈Õ≈Œ‘”†œ∆†–¡“¡Õ≈‘≈“†Ã…”‘†∫" 06810 ------------------------------ 06820 PVERIFY .HX 01 06830 PRETRY .HX 03 06840 PCHANGE .HX 81 06850 PTRKAN .HX 00 06860 PSOURCE .HX 01 06870 PDEST .HX 01 06880 VAL .HX 00 06890 MTAB .HX 040506070809 06900 MTAB2 .HX 000100000101 06910 ------------------------------ 06920 SETSC LDA #$F 06930 STA VPX 06940 LDA #0 06950 STA HSCNT 06960 STA NOSCROL 06970 LDA #TXT2 06980 STA HSLMS 06990 LDA /TXT2 07000 STA HSLMS+1 07010 RTS }}}