!!!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

}}}