home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 91xx / 9101a.d64 / quelltext < prev    next >
Text File  |  1995-03-30  |  12KB  |  609 lines

  1.  
  2. PHC
  3.  
  4. TIT.TSE-FORMAT ╩.╦LOEHN, ╚.-─UNCKER-╙TR.83, ──╥-1157 ┬ERLIN, ╘EL.(00372)5082744
  5.  
  6. :STAROK = 1
  7.  
  8. ;*** LABELDEF ***
  9.  
  10. :CHRIN  = $FFCF
  11. :GETIN  = $FFE4
  12.  
  13. ;*** MAKROS ***
  14.  
  15. :STROUT M 1
  16.  
  17.         LDA #<@0
  18.         LDY #>@0
  19.         JSR $AB1E
  20. /
  21.  
  22. :INPUT MF 3
  23.  
  24.         STROUT @0
  25.         LDY #0
  26. :INPUT1 JSR CHRIN
  27.         STA $0200,Y
  28.         INY
  29.         CMP #13
  30.         BNE INPUT1
  31.  
  32.         LDY #0
  33.         LDX #0
  34. :INPUT3 LDA $0200,X
  35.         CMP #13
  36.         BNE INPUT2
  37.         LDA #$A0
  38.         B $24
  39. :INPUT2 INX
  40.         STA @1,Y
  41.         INY
  42.         CPY #@2
  43.         BNE INPUT3
  44. /
  45.  
  46. :FLOPPY M 4
  47.  
  48. ;RAMA   = @0
  49. ;RAME   = @1
  50. ;DATADR = @2
  51. ;STRADR = @3
  52.  
  53.         LDY #@1-@0/32+1
  54.         LDX #@1-@0&31
  55.         LDA #<@0
  56.         STA $FB
  57.         LDA #>@0
  58.         STA $FC
  59.         LDA #<@2
  60.         STA ADDR
  61.         LDA #>@2
  62.         STA ADDR+1
  63.         JSR FLOPP1    ;M-W
  64. IF @3
  65.         LDY #>@3
  66.         LDA #<@3
  67.         JSR FLOPP5    ;M-E
  68. EI
  69.  
  70. /
  71.  
  72. ;*** BASICSTART ***
  73.  
  74.  
  75. IF STAROK
  76.  
  77. ORG $0801
  78.  
  79. :BASIC  W 256,0
  80.         B 158,"2111:",143
  81.         B 34,141,145,8,142,154
  82.         B "TSE-FORMAT V1.1  BY "
  83.         B 5,"?SAVE ERROR"
  84.         B 154," IN 1989 "
  85.         S 3
  86.  
  87. EL
  88.  
  89. ORG $C000
  90.  
  91. EI
  92.  
  93.         LDA #0
  94.         STA $D020
  95.         STA $D021
  96.  
  97.         INPUT TEXT1,NAME-FSTART+START,16
  98.         INPUT TEXT2,ID-FSTART+START,2
  99.         INPUT TEXT3,IDFLAG-FSTART+START,1
  100.  
  101.         STROUT TEXT4
  102. :HPTPR1 JSR GETIN
  103.         BEQ HPTPR1
  104.  
  105.         FLOPPY START,FEND-FSTART+START,FSTART,FSTART
  106.         STROUT TEXT5
  107.  
  108.         PLA       ;RUECKSPRUNGADDR
  109.         PLA       ;VOM STACK HOLEN
  110.         JMP $A474 ;EINGABE-WARTESCHLEIFE
  111.  
  112. ;*** DATEN ****
  113.  
  114. :TEXT1  B 147,30,14,"           ╘╙┼-╞ORMAT ╓1.1",13
  115.         B "           ---------------",13,13
  116.         B " (C) 1990 ═ARKT & ╘ECHNIK ╓ERLAG ┴╟",13
  117.         B "          (W) ╩UERGEN ╦LOEHN",13,13,13,13,13
  118.         B "─ISKETTENNAME: ",0
  119. :TEXT2  B 13,13,"╔─: ",0
  120. :TEXT3  B 13,13,"╔─ FORTLAUFEND ERHOEHEN (J/N) ? ",0
  121. :TEXT4  B 13,13,13,"┬ITTE 1.─ISK ZUM FORMATIEREN EINLEGEN!",0
  122. :TEXT5  B 13,13
  123.         B "─ISKETTEN WERDEN FORMATIERT!",13
  124.         B "┼NDE MIT BELIEBIGER ╧PERATION FUER ─ISK",13,0
  125.  
  126.  
  127. ;*** TEIL VON MAKRO FLOPPY ***
  128.  
  129. :FLOPP1 STX ANZ       ;INN SCHLEIF
  130.         STY ANZ+1     ;AUSS  "
  131.  
  132. :FLOPP4 LDA $BA       ;GERAET 8
  133.         JSR $FFB1     ;LISTEN SENDEN
  134.         LDA #$6F      ;SEK 15
  135.         JSR $FF93     ;SENDEN
  136.  
  137.         JSR KOPF      ;M-W SENDEN
  138.         LDX ANZ       ;INN SCHL.ZAEHL
  139.         BEQ FLOPP7
  140.  
  141.         LDY #0        ;X BYTES SENDEN
  142. :FLOPP3 LDA ($FB),Y
  143.         JSR $FFA8
  144.         INC $FB
  145.         BNE FLOPP2
  146.         INC $FC
  147. :FLOPP2 DEX
  148.         BNE FLOPP3
  149.  
  150. :FLOPP7 JSR $FFAE     ;UNLISTEN
  151.  
  152.         CLC           ;FLOPPADDR
  153.         LDA ADDR      ;+ ANZ DER GESEND.
  154.         ADC ANZ       ;BYTES
  155.         STA ADDR
  156.         LDA ADDR+1
  157.         ADC #0
  158.         STA ADDR+1
  159.  
  160.         LDX #32       ;INN SCHL. MIT 32
  161.         STX ANZ
  162.  
  163.         DEC ANZ+1     ;AUSS SCHLEIFE
  164.         BNE FLOPP4    ;EINSCHL. 0
  165.  
  166.         RTS
  167.  
  168. :KOPF   LDY #0        ;SENDET M-W
  169. :KOPF1  LDA DAT,Y
  170.         JSR $FFA8
  171.         INY
  172.         CPY #6
  173.         BNE KOPF1
  174.         RTS
  175.  
  176. :DAT    B "M-W"
  177. :ADDR   W 0
  178. :ANZ    B 0
  179.         B 0           ;ANZ HI ZWISCHENSP
  180.  
  181. :FLOPP5 STA ADDR2
  182.         STY ADDR2+1
  183.  
  184.         LDA $BA       ;GERAET 8
  185.         JSR $ED0C     ;LISTEN SENDEN
  186.         LDA #$6F      ;SEK 15
  187.         JSR $EDB9     ;SENDEN
  188.  
  189.         LDY #0        ;M-E SENDEN
  190. :FLOPP6 LDA DAT2,Y
  191.         JSR $FFA8
  192.         INY
  193.         CPY #5
  194.         BNE FLOPP6
  195.  
  196.         JMP $EDFE     ;UNLISTEN
  197.  
  198. :DAT2   B "M-E"
  199. :ADDR2  W 0
  200.  
  201.  
  202.  
  203. ;*** FLOPPYPROGRAMM ***
  204.  
  205. :START
  206.  
  207.         ORG $0400
  208.  
  209.  
  210. :FSTART JSR $C100    ;LAMPE AN
  211.  
  212.         SEI
  213.         LDA $1C00    ;MOTOR AN
  214.         ORA #$04
  215.         STA $1C00
  216.  
  217.         LDA $22      ;AKT TRACK
  218.         BNE NEW1     ;=0 (NACH UJ)
  219.         LDA #46      ;46 TRACKS
  220.         STA $22      ;NACH AUSSEN
  221.  
  222. :NEW1   DEC $22      ;1. TRACK ANFAHREN
  223.         BEQ NEW19
  224.         JSR STEPA    ;1 TRACK NACH AUSSEN
  225.         BEQ NEW1     ;ABSOLUT
  226.  
  227. :NEW19  LDA #1       ;TRACK1
  228.         STA $22      ;SETZEN
  229.  
  230.         LDA ID       ;ID SETZEN
  231.         STA $12
  232.         LDA ID+1
  233.         STA $13
  234.  
  235.         LDX #0       ;STEPMOTOR
  236.         JSR STEP     ;RESET
  237.  
  238.         JSR SPEED    ;SPEEDFLAGS SETZEN
  239.  
  240.         LDA #$20     ;MOTOR AN
  241.         STA $20      ;FUER LW STATUS
  242. :NEW22  CLI
  243.         LDA $7C      ;ATN ?
  244.         BEQ NEW29
  245.         JMP FERTIG
  246.  
  247. :NEW29  SEI
  248.  
  249.         LDA #1       ;ENDTRACK FUER TEST
  250.         B $2C
  251. :NEW23  LDA #35      ;SONST FORMAT
  252.         STA $1B
  253.  
  254.         JSR SETWR
  255.  
  256.         JSR FORM     ;DISK FORMATIEREN
  257.  
  258.         CMP #35      ;LETZER TRACK
  259.         BEQ NEW20
  260.  
  261.         JSR SYNC     ;TEST AUF DISC IM LAUFWERK
  262.         BCS NEW22    ;FORMAT TRACK1
  263.  
  264.         LDA $1C00    ;SCHREIBSCHUTZ ABFRAGEN
  265.         AND #$10
  266.         BEQ NEW22    ;JA, DANN WEITER WARTEN
  267.         LDA #$10     ;FLAG 'KEIN SCHREIBSCHUTZ'
  268.         STA $1E      ;SETZTEN
  269.  
  270.         LDY #0       ;WARTEN BIS
  271. :WAIT   INX          ;DISCHEBEL
  272.         BNE WAIT     ;GESCHLOSSEN
  273.         INY
  274.         BNE WAIT
  275.         BEQ NEW23    ;FORMAT ALL
  276.  
  277. :NEW20  LDA #$20     ;MOTOR AN
  278.         STA $20      ;FUER LAUFW.STATUS
  279.         LDA $1C00    ;LAMPE AUS
  280.         AND #$F7
  281.         STA $1C00
  282.  
  283. :NEW24  CLI
  284.         LDA $7C      ;ATN ?
  285.         BEQ NEW28
  286. :FERTIG LDA #$10     ;MOTOR SOLL
  287.         STA $20      ;NACHLAUFEN
  288.         JMP $D042    ;INIT + SCHLUSS
  289.  
  290. :NEW28  SEI
  291.         JSR SYNC     ;DISC NOCH DRINN
  292.         BCC NEW24
  293.  
  294.         LDA IDFLAG   ;ID ERHOEHEN ?
  295.         CMP #'J
  296.         BNE NEW27
  297.  
  298.         LDX #1       ;ID=ID+1
  299. :NEW26  INC ID,X
  300.         LDA ID,X
  301.         CMP #':
  302.         BNE NEW25
  303.         ADC #6
  304.         STA ID,X
  305. :NEW25  CMP #'[
  306.         BNE NEW27
  307.         LDA #'0
  308.         STA ID,X
  309.         DEX
  310.         BEQ NEW26
  311.  
  312. :NEW27  JMP FSTART
  313.  
  314. ;--------------------
  315. ;TRACK NACH INNEN FAHREN UND
  316. ;SPEED SETZEN
  317. :STEPI  LDY #$02     ;2 HALBSPUREN
  318. :NEW2   LDX $1C00    ;STEPMOTOR
  319.         INX          ;NACH AUSSEN
  320.         JSR STEP
  321.         DEY
  322.         BNE NEW2
  323.         INC $22      ;TRACKZAEHLER ERHOEHEN
  324.         JMP SPEED    ;SPEEDFLAGS SETZEN
  325.  
  326.  
  327. ;--------------------
  328. ;NSTEP UM 1 TRACK NACH AUSSEN
  329. :STEPA  LDY #$02     ;2 HALBSPUREN
  330. :NEW3   LDX $1C00    ;STEPMOTOR
  331.         DEX          ;NACH AUSSEN
  332.         JSR STEP
  333.         DEY
  334.         BNE NEW3
  335.         RTS
  336.  
  337. ;--------------------
  338. ;STEPMOTOR ANSTEUERN
  339. ;WERT IN X
  340. :STEP   TXA
  341.         AND #$03
  342.         STA $BB
  343.  
  344.         LDA $1C00
  345.         AND #$FC     ;STEPMOT
  346.         ORA $BB      ;SETZEN
  347.         STA $1C00
  348.  
  349.         LDA #$04     ;WARTEN
  350.         STA $BB
  351.         LDX #0
  352. :NEW4   DEX
  353.         BNE NEW4
  354.         DEC $BB
  355.         BNE NEW4
  356.  
  357.         RTS
  358. ;--------------------
  359. ;SPEEDFLAGS SETZEN
  360. :SPEED  LDA $22      ;SPURNUMMER
  361.         JSR $F24B    ;ANZ DER SEK HOLEN
  362.         TXA          ;SPEEDNEWAGS SETZEN
  363.         ASL
  364.         ASL
  365.         ASL
  366.         ASL
  367.         ASL
  368.         STA $44
  369.         LDA $1C00
  370.         AND #$9F
  371.         ORA $44
  372.         STA $1C00
  373.         RTS
  374. ;--------------------
  375. ;KOPFELEKTRONIK AUF SCHREIBEN SCHALTEN
  376. :SETWR  LDA $1C0C
  377.         AND #$1F
  378.         ORA #$C0
  379.         STA $1C0C
  380.         LDA #$FF
  381.         STA $1C03
  382.         STA $1C01    ;$FF SCHREIBEN
  383.         RTS
  384. ;--------------------
  385. ;AUF SYNC WARTEN
  386. ;FLOPPY-BUCH ╙.373
  387. :SYNC   JSR $FE00
  388.         LDA #$FF
  389.         STA $1805
  390. :SYNC2  BIT $1805
  391.         BPL SYNC1
  392.         BIT $1C00
  393.         BMI SYNC2
  394.         LDA $1C01
  395.         CLV
  396.         CLC
  397.         B $24
  398. :SYNC1  SEC
  399.         RTS
  400.  
  401. ;--------------------
  402. :FORM   LDA #$EE     ;BYTE-READY-LEITUNG
  403.         STA $1C0C    ;FREIGEBEN
  404.         LDA #4       ;DATENPUFFER
  405.         STA $F9
  406.  
  407.         LDA $22      ;SPURNR
  408.         JSR $F24B    ;MAX SEKTANZ HOLEN
  409.         STA $43      ;MERKEN
  410.  
  411.         JSR SETWR    ;AUF SCHREIBEN SCHALTEN
  412.  
  413.         LDA #$FF     ;$FF SCHREIBEN
  414.         STA $1C01
  415.  
  416. ;+++ HEADERDATEN BEREITSTELLEN +++
  417.         LDA #0       ;SEKTNR
  418.         STA $BC      ;MERKEN
  419.         TAX
  420.         TAY
  421.  
  422. :NEW5   LDA $39      ;KENNZEICHEN FUER DATENBLOCK (8)
  423.         STA $0300,Y
  424.         LDA $BC      ;SEKTNR
  425.         STA $0302,Y
  426.         LDA $22      ;TRACKNR
  427.         STA $0303,Y
  428.         LDA $13      ;ID2
  429.         STA $0304,Y
  430.         LDA $12      ;ID1
  431.         STA $0305,Y
  432.         LDA #$0F     ;ABSCHLUSSBYTES
  433.         STA $0306,Y
  434.         STA $0307,Y
  435.  
  436.         LDA #0       ;PRUEFSUMME
  437.         EOR $0302,Y  ;BERECHNEN
  438.         EOR $0303,Y
  439.         EOR $0304,Y
  440.         EOR $0305,Y
  441.         STA $0301,Y  ;UND SPEICHERN
  442.  
  443.         CLC          ;8 BYTES WEITER
  444.         TYA
  445.         ADC #$08
  446.         TAY
  447.  
  448.         INC $BC      ;SEKTNR ERHOEHEN
  449.         LDA $BC
  450.         CMP $43      ;<MAXSEKT?
  451.         BCC NEW5
  452.  
  453.         TYA          ;BYTEANZ (SEKTANZ*8)
  454.         PHA
  455.  
  456.         LDA #$03     ;PUFFERNR SETZEN
  457.         STA $31      ;FUER ROUTINE
  458.         JSR $FE30    ;BLOCKHEADER NACH GCR
  459.  
  460.         PLA
  461.         TAY          ;BYTEANZ
  462.         DEY
  463.         JSR $FDE5    ;BYTES NACH OBEN KOPIEREN
  464.         JSR $FDF5    ;ZUSATZPUFFER NACH $0300
  465.  
  466. ;+++ DATEN BEREITSTELLEN ++++
  467.         JSR $EF41    ;PUFFERZEIGER SETZEN
  468.         JSR $F008    ;DATENPUFFER LOESCHEN
  469.         LDA #$FF     ;2.BYTE FUER 18,01
  470.         STA $0701    ;SONST EGAL
  471.  
  472.         LDA #$07     ;DATENPUFFER
  473.         STA $31
  474.         JSR $F5E9    ;PRUEFSUMME BER.
  475.         STA $3A      ;MERKEN
  476.  
  477.         JSR $F78F    ;DATEN NACH GCR
  478.  
  479.         LDA #0       ;ZEIGER AUF AKT SEKTHEADER
  480.         STA $32
  481.  
  482. ;+++ EINEN SEKTOR SCHREIBEN (($BC) MAL)+++
  483. :NEW14  LDA #$FF     ;SYNC SCHREIBEN
  484.         STA $1C01
  485.         LDX #$05     ;5 MAL
  486. :NEW7   BVC NEW7
  487.         CLV
  488.         DEX
  489.         BNE NEW7
  490.  
  491.         LDX #$0A     ;10 HEADERDATEN(GCR)
  492.         LDY $32
  493. :NEW8   BVC NEW8
  494.         CLV
  495.         LDA $0300,Y  ;SCHREIBEN
  496.         STA $1C01
  497.         INY
  498.         DEX
  499.         BNE NEW8
  500.  
  501.         STY $32      ;ZEIGER AUF NAECH.
  502.                      ;HEADER SETZEN
  503.  
  504.         LDX #$08     ;$55 SCHREIBEN
  505. :NEW9   BVC NEW9     ;8 MAL
  506.         CLV          ;ALS LUECKE
  507.         LDA #$55
  508.         STA $1C01
  509.         DEX
  510.         BNE NEW9
  511.  
  512.         LDA #$FF     ;SYNC SCHREIBEN
  513.         LDX #$05
  514. :NEW10  BVC NEW10
  515.         CLV
  516.         STA $1C01
  517.         DEX
  518.         BNE NEW10
  519.  
  520.         LDX #$BB     ;DATEN (GCR) SCHREIBEN
  521. :NEW11  BVC NEW11    ;ERST AUS ZUSATZPUFFER
  522.         CLV
  523.         LDA $0100,X
  524.         STA $1C01
  525.         INX
  526.         BNE NEW11
  527.  
  528.         LDY #$00     ;DANN AUS NORMALEN PUFFER
  529. :NEW12  BVC NEW12
  530.         CLV
  531.         LDA ($30),Y
  532.         STA $1C01
  533.         INY
  534.         BNE NEW12
  535.  
  536.         LDA #$55     ;$55 ALS LUECKE SCHREIBEN
  537.         LDX #$08
  538. :NEW13  BVC NEW13
  539.         CLV
  540.         STA $1C01
  541.         DEX
  542.         BNE NEW13
  543.  
  544.         DEC $BC      ;SEKTANZ
  545.         BNE NEW14
  546.  
  547. :NEW15  BVC NEW15    ;WARTEN
  548.         CLV
  549. :NEW16  BVC NEW16
  550.         CLV
  551.  
  552.         JSR $FE00    ;AUF LESEN SCHALTEN
  553.  
  554. ;+++ TRACK 18 BESCHREIBEN +++
  555.         LDA $22      ;SPUR = 18
  556.         CMP #18
  557.         BNE NEW30    ;NEIN
  558.  
  559.         PHA          ;SPUR MERKEN
  560.         LDA #$84     ;╦ANAL-╨UFFER-┌UORDNUNG
  561.         STA $B4
  562.         JSR $EF41    ;PUFFERZEIGER SETZEN
  563.         JSR $F008    ;PUFFER LOESCHEN
  564.         JSR $EEB7    ;BAM ERZEUGEN
  565.         LDA #$11     ;TRACK 18
  566.         STA $0748    ;ALS BELEGT
  567.         LDA #$FC     ;KENNZEICHNEN
  568.         STA $0749
  569.  
  570.         LDY #IDFLAG-NAME-1
  571. :NEW6   LDA NAME,Y   ;NAME,ID
  572.         STA $0790,Y  ;KOPIEREN
  573.         DEY
  574.         BPL NEW6
  575.  
  576.         LDA #$41     ;FORMATKENNZEICHEN
  577.         STA $0702
  578.  
  579.         LDA #18      ;TRACK 18
  580.         STA $0E
  581.         LDA #0       ;SEKT 0
  582.         STA $0F
  583.         CLI
  584.         JSR $D58A    ;SCHREIBEN
  585.         SEI
  586.         PLA          ;SPURNR
  587.  
  588. :NEW30  CMP $1B      ;ALLE TRACKS ?
  589.         BEQ NEW17    ;JA, DANN FERTIG
  590.  
  591.         JSR STEPI    ;TRACK NACH INNEN
  592.  
  593.         JMP FORM     ;NAECHSTEN TRACK FORMATIEREN
  594.  
  595. :NEW17  RTS
  596.  
  597. ;--------------------
  598.  
  599. :NAME   B "                "
  600.         B $A0,$A0
  601. :ID     B "  "
  602.         B $A0,"2A",$A0,$A0,$A0,$A0
  603. :IDFLAG B 0
  604. :FEND
  605.  
  606.  
  607.  
  608. ;  ┼╬─┼
  609.