Simple Disk Formatter#



00010          .LI OFF
00020          .OR $4000
00030 *
00040 *
00050 LM       =   $52
00060 CURX     =   $55
00070 CURY     =   $54
00080 *
00090 CURINH   =   752
00100 *
00110 *
00120 *
00130 S        LDA #0        Linker Rand
00140          STA LM        auf Null setzen
00150          INC CURINH    Cursor aus
00160          JSR PRINT
00170          .AS "}\240\240\240\240\240\240\240\240\240\240\240\240\240\240ƒœ”≠ƒÈÛÎ…ÓÈÙ\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
00180          .AS "\^]\^]\^]\^]\M^Y±\^Y Disk formattieren und DOS schreiben"
00190          .HX 9B
00200          .AS "\^]\M^Y≤\^Y DOS auf formattierte Disk schreiben"
00210          .HX 9B
00220          .AS "\^]\M^Y≥\^Y Disk formattieren (Single)"
00230          .HX 9B
00240          .AS "\^]\M^Y¥\^Y Programm verlassen"
00250          .HX 9B
00260          .AS "\^]\^]\^]\^]\^?     Ihre Wahl?@"
00270 *
00280 GETOP    JSR GETKEY    Taste holen
00290          AND #$7F      invers aus
00300          CMP #'1       Nur Ziffern
00310          BCC GETOP     "1"-"4"
00320          CMP #'5       zulassen
00330          BCS GETOP
00340          AND #$F       obere Bits ausmaskieren
00350          PHA
00360          LDX #8        Cursor
00370          LDY #22       positionieren
00380          JSR POSCUR
00390          JSR PRINT
00400          .AS "Sind Sie sicher? (J/N)@"
00410          JSR GETKEY    Taste holen
00420          AND #$7F      kein invers
00430          CMP #'J       Kommando OK
00440          BEQ .1
00450          PLA           Nein. zurueck
00460          JMP S         zum Menue
00470 *
00480 .1
00490          LDA #$9C      Zeile loeschen
00500          JSR PUTCHAR
00510          PLA
00520          ASL           Addresse
00530          TAX           der
00540          LDA JTAB-1,X  Routine
00550          PHA           aufs
00560          LDA JTAB-2,X  Stack
00570          PHA           legen
00580          RTS           JUMP
00590 *
00600 *
00610 JTAB     .DA OP1-1,OP2-1
00620          .DA OP3-1,OP4-1
00630 *
00640 ------------------------------
00650 GETKEY   LDA $E425     Taste
00660          PHA           holen
00670          LDA $E424
00680          PHA
00690          RTS
00700 ------------------------------
00710 *
00720 OP1      JSR FDSK      Disk formattieren
00730          JSR WRITEDOS  DOS schreiben
00740 *
00750 READY    LDX #10       Cursor
00760          LDY #22       setzen
00770          JSR POSCUR
00780          JSR PRINT
00790          .AS "Fertig!!@"
00800          JSR GETKEY    Auf Taste warten
00810          JMP S
00820 *
00830 ------------------------------
00840 *
00850 OP2      JSR WRITEDOS  DOS schreiben
00860          JMP READY     nach READY
00870 *
00880 ------------------------------
00890 *
00900 OP3      JSR FDSK      Disk formattieren
00910          JMP READY
00920 *
00930 ------------------------------
00940 *
00950 OP4      LDA #'}       Bildschirm loeschen
00960          JMP PUTCHAR   zurueck
00970 *
00980 ------------------------------
00990 *
01000 FDSK     LDX #$10      Datenkanale 1 schliessen
01010          JSR CLOSE
01020          LDA #FN       Formattierungs-
01030          LDY /FN       routine auf-
01040          JMP FORMAT    rufen
01050 *
01060 ------------------------------
01070 *
01080 WRITEDOS LDX #$10      Datenkanal 1 schliessen
01090          JSR CLOSE
01100          LDX #$18      File DOS.SYS
01110          LDA #FN       zum schreiben oeffnen
01120          LDY /FN       und schliessen
01130          JSR OPEN      (den Rest erledigt
01140          JMP CLOSE     das DOS selber)
01150 *
01160 FN       .DA "D:DOS.SYS",#$9B
01170 *
01180 ------------------------------
01190 *
01200 POSCUR   STX CURX    Cursor
01210          STY CURY    positionieren
01220          RTS
01230 *
01240 ------------------------------
01250 *
01260          .IN "D:PRINTS.INC"
01270          .IN "D:IOPACK.INC"