home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh2x
/
sh28b.d64
/
gt.routinen
< prev
next >
Wrap
Text File
|
1995-03-30
|
17KB
|
1,129 lines
; ***********************
; *** ANDERE ╥OUTINEN ***
;
; *** ╙TERNCHEN SETZEN/LOESCHEN ***
;
:STERNCHEN
LOADW TEXTE,ZP2
TRANSW BAUD,ZP1 ;2.2.1. ┬AUDRATE
DADD ZP1,ZP2,ZP1
LDA ZW
LDY #7
STA (ZP1),Y
TRANSW DATENB,ZP1 ;2.2.2. ─ATENBITS
DADD ZP1,ZP2,ZP1
LDA ZW
LDY #2
STA (ZP1),Y
TRANSW PARIT,ZP1 ;2.2.3. ╨ARITAET
DADD ZP1,ZP2,ZP1
LDA ZW
LDY #18
STA (ZP1),Y
TRANSW STOPB,ZP1 ;2.2.4. ╙TOPBITS
DADD ZP1,ZP2,ZP1
LDA ZW
LDY #5
STA (ZP1),Y
TRANSW DUPL,ZP1 ;2.2.5. ─UPLEX
DADD ZP1,ZP2,ZP1
LDA ZW
LDY #5
STA (ZP1),Y
LDA ECHO ;2.3. ┼CHO
BEQ ECHOAUS
COP ZW,MTEXT231+4
JMP GESCHW
:ECHOAUS
COP ZW,MTEXT232+4
:GESCHW
LDA SPEED ;2.5.1. ╙ENDETEMPO
BEQ LOWSPD
COP ZW,MTEXT2511+8
JMP CRUNTERDR
:LOWSPD
COP ZW,MTEXT2512+8
:CRUNTERDR
LDA CRUNTER ;2.5.2. ├╥ UNTERDRUECKEN
BEQ NEIN
COP ZW,MTEXT2521+6
JMP KONVERTIE
:NEIN
COP ZW,MTEXT2522+6
:KONVERTIE
LDA KONVERT ;2.5.3. KONVERTIEREN
BEQ NKONV
COP ZW,MTEXT2531+6
JMP GERADR
:NKONV
COP ZW,MTEXT2532+6
:GERADR
LDA GERAET ;2.6.1. ─RUCKERGERAETEADR.
CMP #4
BEQ VIER
COP ZW,MTEXT2612+6
JMP SEK
:VIER
COP ZW,MTEXT2611+6
:SEK
LDA SEKUNDAER ;2.6.2. ╙EKUNDAERADR.
BEQ SEKNULL
CMP #1
BEQ SEKEINS
COP ZW,MTEXT2623+2
JMP ASC
:SEKEINS
COP ZW,MTEXT2622+2
JMP ASC
:SEKNULL
COP ZW,MTEXT2621+2
:ASC
LDA ASCII ;2.6.3. ┌EICHENSATZ
BEQ KEINASC
COP ZW,MTEXT2631+5
JMP DRLF
:KEINASC
COP ZW,MTEXT2632+5
:DRLF
LDA DRUCKLF ;2.6.4. ╠INEFEED
BEQ KEINLF
COP ZW,MTEXT2641+5
JMP FERTIG
:KEINLF
COP ZW,MTEXT2642+5
:FERTIG
RTS
;
; *********************
; *** ═ENUEROUTINEN ***
;
; *** ╠┼┼╥ROUTINEN FUER ╠┼┼╥E ═ENUEPUNKTE ***
:LEER1
REDOMENU
:LEER2
MENU1
; *** 1.1. GEO╘ERM ╔NFO ***
;
:RT11
RECVMENU 1
DIALBOX INFOBOX
MENU1
;
; *** 1.2. ─ESKTOP LADEN ***
;
:RT12
INITIO
JSR CLRCH
CLOSE 2 ;╥╙-232-╞ILE SCHLIESSEN
DONEIO
LDA FLAG6
BEQ NDIRERR
TURBOPUR
INITIO
FOPEN 15,8,15,1,INITSTR ;─╔╥-┼RROR VERMEIDEN
CLOSE 15
DONEIO
TURBON
:NDIRERR
PROFF
LOADW OLDNMI,$FFFA
TRANSW RESETMAIN,R0
JSR INITRAMR
DESKTOP
;
; *** 1.3.-1.A. ┴CCESSORY AUFRUFEN ***
;
:RT13
LOADW PRG1,ZP1
JMP LADEN
;
:RT14
LOADW PRG2,ZP1
JMP LADEN
;
:RT15
LOADW PRG3,ZP1
JMP LADEN
;
:RT16
LOADW PRG4,ZP1
JMP LADEN
;
:RT17
LOADW PRG5,ZP1
JMP LADEN
;
:RT18
LOADW PRG6,ZP1
JMP LADEN
;
:RT19
LOADW PRG7,ZP1
JMP LADEN
;
:RT1A
LOADW PRG8,ZP1
;
:LADEN
JSR IOINIT
PROFF
LOADW 0,VEKTAST
LOADW INIT,$849B
TRANSW ZP1,R6
POKE 2,0
POKE $16,0
POKE FLAG1,SET
GETFILE
; ** **
; * 2.1. ╨ARAMETER LADEN *
; ** **
:RT21
CLEARAM $A000+640,7360 ;╘EIL DES ╙CREENS LOESCHEN
CLEARAM $6000+640,7360
JSR IOINIT
POKE ZW,32 ;ALTE ╙TERNCHEN LOESCHEN
JSR STERNCHEN
POKE FLAG3,SET
JSR PARLESEN ;UND NEUE LADEN+SETZEN
POKE FLAG3,CLEAR
JSR RSINIT
MENU1
; **************************
; * 2.2.1.1. ┬AUDRATE 50 *
;
:RT2211
POKE ZW,%00000001
LOADW MTEXT2211,ZP1
JMP BAUDRATE
;
; * 2.2.1.2. ┬AUDRATE 75 *
;
:RT2212
POKE ZW,%00000011
LOADW MTEXT2212,ZP1
JMP BAUDRATE
;
; * 2.2.1.3. ┬AUDRATE 150 *
;
:RT2213
POKE ZW,%00000110
LOADW MTEXT2213,ZP1
JMP BAUDRATE
;
; * 2.2.1.4. ┬AUDRATE 300 *
;
:RT2214
POKE ZW,%00000111
LOADW MTEXT2214,ZP1
JMP BAUDRATE
;
; * 2.2.1.5. ┬AUDRATE 600 *
;
:RT2215
POKE ZW,%00001000
LOADW MTEXT2215,ZP1
JMP BAUDRATE
;
; * 2.2.1.6. ┬AUDRATE 1200 *
;
:RT2216
POKE ZW,%00001001
LOADW MTEXT2216,ZP1
;
; * ┬AUDRATE AENDERN *
; **************************
:BAUDRATE
LDA STEUERREG
AND #%11110000 ;UNTERE VIER ┬YTES LOESCHEN
ORA ZW ;UND ┬AUDRATE EINSTELLEN
STA STEUERREG
STA FADR
LOADW TEXTE,ZP3
TRANSW BAUD,ZP2
DADD ZP2,ZP3,ZP2
LDY #7
LDA #32
STA (ZP2),Y ;ALTEN ╙TERN LOESCHEN
LDA #42 ;NEUEN ╙TERN SETZEN
STA (ZP1),Y
TRANSW ZP1,BAUD
DSUB BAUD,ZP3,BAUD
SETMOUSE 103,22
PREMENU
; *********************************
; * 2.2.2.1. 5 ─ATENBITS MAKIEREN *
;
:RT2221
POKE ZW,%01100000
LOADW MTEXT2221,ZP1
JMP DATENBITS
;
; * 2.2.2.2. 6 ─ATENBITS MAKIEREN *
;
:RT2222
POKE ZW,%01000000
LOADW MTEXT2222,ZP1
JMP DATENBITS
;
; * 2.2.2.3. 7 ─ATENBITS MAKIEREN *
;
:RT2223
POKE ZW,%00100000
LOADW MTEXT2223,ZP1
JMP DATENBITS
;
; * 2.2.2.4. 8 ─ATENBITS MAKIEREN *
;
:RT2224
POKE ZW,%00000000
LOADW MTEXT2224,ZP1
;
; * ─ATENBITS AENDERN *
; *********************************
:DATENBITS
LDA STEUERREG
AND #%10011111 ;UNTERE VIER ┬YTES LOESCHEN
ORA ZW ;UND ┬AUDRATE EINSTELLEN
STA STEUERREG
STA FADR
LOADW TEXTE,ZP3
TRANSW DATENB,ZP2
DADD ZP2,ZP3,ZP2
LDA #32
LDY #2
STA (ZP2),Y ;ALTEN ╙TERN LOESCHEN
LDA #42 ;NEUEN ╙TERN SETZEN
STA (ZP1),Y
TRANSW ZP1,DATENB
DSUB DATENB,ZP3,DATENB
SETMOUSE 103,22
PREMENU
; ********************************
; * 2.2.3.1. KEINE ╨ARITAET *
;
:RT2231
POKE ZW,%00000000
LOADW MTEXT2231,ZP1
JMP PARITAET
;
; * 2.2.3.2. UNGERADE ╨ARITAET *
:RT2232
POKE ZW,%00100000
LOADW MTEXT2232,ZP1
JMP PARITAET
;
; * 2.2.3.3. GERADE ╨ARITAET *
;
:RT2233
POKE ZW,%01100000
LOADW MTEXT2233,ZP1
JMP PARITAET
;
; * 2.2.3.4. GESETZTE ╨ARITAET *
;
:RT2234
POKE ZW,%10100000
LOADW MTEXT2234,ZP1
JMP PARITAET
;
; * 2.2.3.5. GELOESCHTE ╨ARITAET *
;
:RT2235
POKE ZW,%11100000
LOADW MTEXT2235,ZP1
;
; * ╨ARITAET AENDERN *
; ********************************
:PARITAET
LDA BEFEHLSREG
AND #%00011111
ORA ZW ;UND ┬AUDRATE EINSTELLEN
STA BEFEHLSREG
STA FADR+1
LOADW TEXTE,ZP3
TRANSW PARIT,ZP2
DADD ZP2,ZP3,ZP2
LDA #32
LDY #18
STA (ZP2),Y ;ALTEN ╙TERN LOESCHEN
LDA #42 ;NEUEN ╙TERN SETZEN
STA (ZP1),Y
TRANSW ZP1,PARIT
DSUB PARIT,ZP3,PARIT
SETMOUSE 103,22
PREMENU
; ***********************
; * 2.2.4.1. 1 ╙TOPBIT *
;
:RT2241
POKE ZW,%00000000
LOADW MTEXT2241,ZP1
JMP STOPBITS
;
;
; * 2.2.4.2. 2 ╙TOPBITS *
;
:RT2242
POKE ZW,%10000000
LOADW MTEXT2242,ZP1
;
; * ╙TOPBITS AENDERN *
; ***********************
:STOPBITS
LDA STEUERREG
AND #%01111111
ORA ZW ;UND ┬AUDRATE EINSTELLEN
STA STEUERREG
STA FADR
LOADW TEXTE,ZP3
TRANSW STOPB,ZP2
DADD ZP2,ZP3,ZP2
LDA #32
LDY #5
STA (ZP2),Y ;ALTEN ╙TERN LOESCHEN
LDA #42 ;NEUEN ╙TERN SETZEN
STA (ZP1),Y
TRANSW ZP1,STOPB
DSUB STOPB,ZP3,STOPB
SETMOUSE 103,22
PREMENU
; ************************
; * 2.2.5.1. ╓OLL-─UPLEX *
;
:RT2251
POKE ZW,%00000000
LOADW MTEXT2251,ZP1
JMP DUPLEX
;
; * 2.2.5.2. ╚ALB-─UPLEX *
;
:RT2252
POKE ZW,%00010000
LOADW MTEXT2252,ZP1
;
; * ─UPLEX AENDERN *
; ************************
:DUPLEX
LDA BEFEHLSREG
AND #%11101111
ORA ZW ;UND ┬AUDRATE EINSTELLEN
STA BEFEHLSREG
STA FADR+1
LOADW TEXTE,ZP3
TRANSW DUPL,ZP2
DADD ZP2,ZP3,ZP2
LDA #32
LDY #5
STA (ZP2),Y ;ALTEN ╙TERN LOESCHEN
LDA #42 ;NEUEN ╙TERN SETZEN
STA (ZP1),Y
TRANSW ZP1,DUPL
DSUB DUPL,ZP3,DUPL
SETMOUSE 103,22
PREMENU
; ******************
; * 2.3.1 ┼CHO AN *
;
:RT231
POKE MTEXT232+4,32
POKE MTEXT231+4,42
POKE ECHO,SET
SETMOUSE 49,22
PREMENU
;
; * 2.3.2 ┼CHO AUS *
; ******************
:RT232
POKE MTEXT231+4,32
POKE MTEXT232+4,42
POKE ECHO,CLEAR
SETMOUSE 49,22
PREMENU
; ****************************
; * 2.5.1.1. SCHNELLES ╘EMPO *
;
:RT2511
POKE MTEXT2512+8,32
POKE MTEXT2511+8,42
POKE SPEED,SET
SETMOUSE 118,22
PREMENU
;
; * 2.5.1.2. LANGSAMES ╘EMPO *
; ****************************
:RT2512
POKE MTEXT2511+8,32
POKE MTEXT2512+8,42
POKE SPEED,CLEAR
SETMOUSE 118,22
PREMENU
; ******************************
; * 2.5.2.1. ├╥ UNTERDR. *
;
:RT2521
POKE MTEXT2522+6,32
POKE MTEXT2521+6,42
POKE CRUNTER,SET
SETMOUSE 118,22
PREMENU
;
; * 2.5.2.2. ├╥ NICHT UNTERDR. *
; ******************************
:RT2522
POKE MTEXT2521+6,32
POKE MTEXT2522+6,42
POKE CRUNTER,CLEAR
SETMOUSE 118,22
PREMENU
; ************************************
; * 2.5.3.1. ╘EXT KONVERTIEREN *
;
:RT2531
POKE MTEXT2532+6,32
POKE MTEXT2531+6,42
POKE KONVERT,SET
SETMOUSE 118,22
PREMENU
;
; * 2.5.3.2. ╘EXT NICHT KONVERTIEREN *
; ************************************
:RT2532
POKE MTEXT2531+6,32
POKE MTEXT2532+6,42
POKE KONVERT,CLEAR
SETMOUSE 118,22
PREMENU
; ******************************
; * 2.6.1.1. ╟ERAETEADR. VIER *
;
:RT2611
POKE MTEXT2612+6,32
POKE MTEXT2611+6,42
POKE GERAET,4
SETMOUSE 111,22
PREMENU
;
; * 2.6.1.2. ╟ERAETEADR. FUENF *
; ******************************
:RT2612
POKE MTEXT2611+6,32
POKE MTEXT2612+6,42
POKE GERAET,5
SETMOUSE 111,22
PREMENU
; *******************************
; * 2.6.2.1. ╙EKUNDAERADR. NULL *
;
:RT2621
POKE MTEXT2623+2,32
POKE MTEXT2622+2,32
POKE MTEXT2621+2,42
POKE SEKUNDAER,0
SETMOUSE 111,22
PREMENU
;
; * 2.6.2.2. ╙EKADR. EINS *
;
:RT2622
POKE MTEXT2623+2,32
POKE MTEXT2622+2,42
POKE MTEXT2621+2,32
POKE SEKUNDAER,1
SETMOUSE 111,22
PREMENU
;
; * 2.6.2.3. ╙EKADR. SIEBEN *
; *******************************
:RT2623
POKE MTEXT2623+2,42
POKE MTEXT2622+2,32
POKE MTEXT2621+2,32
POKE SEKUNDAER,7
SETMOUSE 111,22
PREMENU
; ***********************
; * 2.6.3.1. ┴SCII JA *
;
:RT2631
POKE MTEXT2632+5,32
POKE MTEXT2631+5,42
POKE ASCII,SET
SETMOUSE 111,22
PREMENU
;
; * 2.6.3.2. ┴SCII NEIN *
; ***********************
:RT2632
POKE MTEXT2631+5,32
POKE MTEXT2632+5,42
POKE ASCII,CLEAR
SETMOUSE 111,22
PREMENU
; *********************************
; * 2.6.4.1. ╠INEFEED AUF ─R. JA *
;
:RT2641
POKE MTEXT2642+5,32
POKE MTEXT2641+5,42
POKE DRUCKLF,SET
SETMOUSE 111,22
PREMENU
;
; * 2.6.4.2. ╠INEFEED AUF ─R. NEIN *
; **********************************
:RT2642
POKE MTEXT2641+5,32
POKE MTEXT2642+5,42
POKE DRUCKLF,CLEAR
SETMOUSE 111,22
PREMENU
;
; *** 2.7. ╨ARAMETER SPEICHERN ***
;
:RT27
JSR IOINIT
OPENDISK
OPENREC GEOTERM
ERROR OK3,RT27
:OK3
POINTREC 1
DELREC
INSREC
WRITEREC BAUD,DRUCKLF-BAUD+1
CLOSEREC
JSR RSINIT
MENU1
;
; *** 3.1. ┬╙╫ EINSCHALTEN ***
;
:RT31
CLEARAM $A000+640,7360 ;╘EIL DES ╙CREENS LOESCHEN
CLEARAM $6000+640,7360
JSR FONTBSW
MENU1
:FONTBSW
SYSFONT
LOADW 0,R11
LOADW 0,TEXTX
POKE 5,22 ;╘EXTPOS. SETZEN
STA TEXTY
POKE CRDIFF,6
POKE CRHOEHE,9
JSR PROMPTR
POKE TOP,22
POKE BSW,SET
RTS
;
; *** 3.2. ╒NIVERSITY EINSCHALTEN ***
;
:RT32
CLEARAM $A000+640,7360 ;╘EIL DES ╙CREENS LOESCHEN
CLEARAM $6000+640,7360
JSR FONTUNI
MENU1
:FONTUNI
LOADSET UNIV
LOADW 0,R11
LOADW 0,TEXTX
POKE 5,20 ;╘EXTPOS. SETZEN
STA TEXTY
POKE CRDIFF,4
POKE CRHOEHE,6
JSR PROMPTR
POKE TOP,20
POKE BSW,CLEAR
MENU1
;
; *** 6.1.1.1. ╘EXTSCRAP UEBER ┴╙├╔╔ SENDEN ***
;
:RT6111
POKE FLAG4,SET ;┌EICHEN FUER ╙CRAP
JMP SEQSENDEN
;
; *** 6.1.1.2. ╙EQ.-╞ILE UEBER ┴╙├╔╔ SENDEN ***
;
:RT6112
POKE FLAG4,CLEAR ;┌EICHEN FUER ╙EQ
:SEQSENDEN
MOVERAM DISKID,DISKNAM,18
MOVERAM DISKNAM,URNAME,16
MOVERAM $C1E4,VEKGETBLK,3
:WIEDER
DIALBOX QUELLDISK
LDA R0
CMP #CANCEL
BNE NHAUPTM
JMP RT6112ENDE
:NHAUPTM
JSR IOINIT
OPENDISK
ERROR OK4,WIEDER
:OK4
LDA FLAG4
BNE SCRAP
INITGETFILES 0,FILEPUFFER,0
DIALBOX CHOOSEFILE ;╙EQ-╞ILE WAEHLEN
LDA R0
CMP #CANCEL
BNE NZURUECK
JMP WIEDER
:NZURUECK
FINDFILE FILEPUFFER
JMP EINLESEN
:SCRAP
FINDFILE TEXTSCRAP
CPX #5 ;PRUEFEN,OB ╘EXTSCRAP DA
BNE EINLESEN
JMP RT6112ENDE
:EINLESEN
RECVBOX 100,16,319,50 ;═ENUES LOESCHEN
COP DIREIN+1,4 ;┴NFANGSBLOCK
COP DIREIN+2,5 ;DES ╞ILES
GETBLK BLKPF ;EINLESEN
POKE $C,$FF
LDA BLKPF ;PRUEFEN,OB LETZTER ┬LOCK
BNE NZUENDE
COP BLKPF+1,$C ;╠AENGE FESTLEGEN
:NZUENDE
INC $C
POKE $D,2 ;AB 1. ┬YTE
LDA FLAG4
BEQ NUEBERL
POKE $D,8 ;╙TEUERCODES UEBERLESEN
:NUEBERL
MOVERAM R4,READPAR,4
COP BLKPF,4
STA SPUR ;╞OLGEBLOCK FESTLEGEN
COP BLKPF+1,5
STA SEKTOR
LOADW NEWGETBLK,$C1E5 ;NEUE ╥OUTINE
POKE $C1E4,$4C ;FUER ┬LOCK EINLESEN
JSR RSINIT
:READLOOP
MOVERAM READPAR,R4,4 ;╫ERTE AUS
COP SPUR,4 ;┌WISCHENSPEICHER
COP SEKTOR,5 ;ZURECKHOLEN
READBYTE
PHA
TXA
PHA
COP 4,SPUR ;UND WIEDER REIN
COP 5,SEKTOR
MOVERAM R4,READPAR,4
PLA
TAX
PLA
CPX #$B ;╞ILE ZUENDE ?
BNE NENDE
JMP RT6112ENDE
:NENDE
TAY
ERROR OK5,RT6112ENDE
:OK5
TYA
CMP #CR ;├╥ ?
BNE NCARET
;
; ** ├╥ BEHANDELN **
LDA CRUNTER
BEQ NUNTERDR ;UNTERDRUECKEN ?
POKE TASTCD,32
JSR TASTE ;╠EERZEICHEN SENDEN
JMP VERZOEG
;
:NUNTERDR
POKE TASTCD,CR
JSR TASTE ;├╥ SENDEN
JMP VERZOEG
;
:NCARET
CMP #32
BCC READLOOP
LDX FLAG4
BNE NSEQ
LDX KONVERT
BEQ ZKLEINER
CMP #65 ;BEI ╙┼╤-╞ILE
BCC NSEQ ;KONVERTIEREN
CMP #91
BCS GROSS
EOR #$20 ;(65-91 ZU 97-122)
JMP NSEQ
:GROSS
CMP #97
BCC NSEQ
CMP #122
BCS GROSS2
EOR #$20 ;(97-122 ZU 65-91)
JMP NSEQ
:GROSS2
CMP #193
JMP ZGROESSER
JMP READLOOP
:ZGROESSER
CMP #219
BCC ZKLEINER
JMP READLOOP
:ZKLEINER
AND #%01111111 ;(193-219 ZU 65-91)
:NSEQ
TAX
BPL NZUGROSS ;ZU GROSSER ├ODE
JMP READLOOP
:NZUGROSS
STA TASTCD
JSR TASTE ;┌EICHEN SENDEN
:VERZOEG
NEXTCHAR
TAX ;BEI ╘ASTENDRUCK
BEQ NSTOP ;╙CHLUSS MACHEN
JMP RT6112ENDE
:NSTOP
JSR ROMEIN ;AUF (╥╙232) ┼INGABEN PRUEFEN
JSR GETIN
PHA ;┌EICHEN ZWISCHENSPEICHERN
JSR ROMAUS
PLA ;ZURUECKHOLEN
TAX
BEQ KEINZEICH ;┌EICHEN ANGEKOMMEN ?
JSR PRINT ;WENN JA,DANN AUSGEBEN
:KEINZEICH
LDA SPEED
BNE NVERZ
SEI
LOADW VERIRQ,ZUIRQ
POKE ZAEHLER,0
CLI
:NOCHNICHT
LDA ZAEHLER ; 6
CMP #6 ;╖╖╖╖ SEK WARTEN
BCC NOCHNICHT ; 50
SEI
LOADW 0,ZUIRQ
CLI
:NVERZ
JMP READLOOP
;
; ** ┼NDE DER ╒EBERTRAGUNG **
:RT6112ENDE
JSR IOINIT
MOVERAM VEKGETBLK,$C1E4,3
:ALTEDISK
OPENDISK
LOADW DISKNAM,ZP1
LOADW DISKID,ZP2
CMPFSTR ZP1,ZP2,18 ;─ISKIDS VERGLEICHEN
BEQ GLEICH
DIALBOX URDISK
JMP ALTEDISK
:GLEICH
JSR RSINIT
JSR ROMEIN
LDA ZEICHEN
JSR BSOUT
JSR ROMAUS
MENU1
;
; ** NEUE ╥OUTINE ZU ╟┼╘┬╠╧├╦ **
:NEWGETBLK
COP 4,SPUR
COP 5,SEKTOR
MOVERAM R4,READPAR,4
JSR IOINIT
MOVERAM READPAR,R4,4
COP SPUR,4
COP SEKTOR,5
JSR VEKGETBLK
MOVERAM R4,READPAR,4
TXA ;╞EHLERBYTE SICHERN
PHA
JSR RSINIT
MOVERAM READPAR,R4,4
COP SPUR,4
COP SEKTOR,5
PLA
TAX
RTS
;
; ** ╔╥╤ ZUM ╓ERZOEGERN **
:VERIRQ
INC ZAEHLER
RTS
;
; *** 7.1.1. ╨UFFER LOESCHEN+OEFFNEN ***
;
:RT711
LOADW $6000,BOTTOM ;┌EIGER LOESCHEN
HLINE 0,319,14,0 ;╠INIE LOESCHEN
:OEFFNEN
LDA PUFFER
BNE SCHONOFFEN
INVBOX 255,1,274,13 ;╔CON INVERTIEREN
POKE PUFFER,SET
:SCHONOFFEN
MENU1
;
; *** 7.1.2. ╨UFFER OEFFNEN ***
;
:RT712
JMP OEFFNEN
;
; *** 7.2. ╨UFFER SCHLIESSEN ***
;
:RT72
LDA PUFFER
BEQ SCHONZU
INVBOX 255,1,274,13
POKE PUFFER,CLEAR
:SCHONZU
MENU1
;
; *** 7.3. FREIEN ╨LATZ IM ╨UFFER ANZEIGEN ***
;
:RT73
DIALBOX SHOWFREE
MENU1
;
; ** ┬YTEZAHL ANZEIGEN **
:FREERECHN
TRANSW BOTTOM,ZP1
LOADW GRENZE,ZP2
DSUB ZP1,ZP2,ZP1 ;╞REIER ╨LATZ NACH ZP1
LDA #BOLDON
PUTCHAR
TRANSW ZP1,R0
PUTDEC 80,63
RTS
;
; *** 7.4. ╨UFFER ANZEIGEN ***
;
:RT74
LDA BOTTOM+1
CMP #$60 ;╨UFFER LEER ?
BNE NLEER
MENU1
:NLEER
RECVBOX 0,16,319,199 ;═ENUES LOESCHEN
LDA ECHO
PHA
POKE ECHO,CLEAR ;┼CHO SPERREN
LDA PUFFER
PHA
POKE PUFFER,CLEAR ;╨UFFER SPERREN
LOADW $6000,ZP10
LDA #CR
JSR PRINT
:ANZLOOP
NEXTCHAR
TAX ;BEI ╘ASTE ANHALTEN
BEQ KEINTAST
:STOP
TRANSW TEXTX,R11
COP TEXTY,5
SETCR
NEXTCHAR
TAX ;AUF NAECHSTE WARTEN
BEQ STOP
CMP #22 ;UND BEI '╙╘╧╨' ┴BBRUCH
BNE KEINTAST
JMP ALLES
:KEINTAST
LDA ZP10+1
CMP BOTTOM+1
BNE NALLES ;ALLES ANGEZEIGT ?
LDA ZP10
CMP BOTTOM
BEQ ALLES
:NALLES
DDEC ZP10
LDY #0
LDA (ZP10),Y
JSR PRINT
JMP ANZLOOP
:ALLES
LDA #CR
JSR PRINT
TRANSW TEXTX,R11
COP TEXTY,5
SETCR
PLA
STA PUFFER ;╞LAGS ZURUECKSETZEN
PLA
STA ECHO
MENU1
;
; *** 7.5. ╨UFFER DRUCKEN ***
;
:RT75
POKE FLAG5,CLEAR
LDA BOTTOM+1
CMP #$60 ;╨UFFER LEER ?
BNE DRNLEER
MENU1
:DRNLEER
JSR IOINIT ;╔/╧ VORBEREITEN
TURBOFF
INITIO
LDA #4
LDX GERAET ;╞ILE OEFFNEN
LDY SEKUNDAER
JSR SETLFSR
LDA #1
LDX #<NAMDR
LDY #>NAMDR
JSR SETNAM
JSR FOPENR
:DRSP
BCC KEINFEHLER
JMP DRENDE ;BEI ╔/╧-╞EHLER ┼NDE
:KEINFEHLER
CHKOUT 4
LOADW $6000,ZP10
:DRLOOP
LDA ZP10+1 ;SCHON
CMP BOTTOM+1 ;ALLE
BNE DRNALLES ;┌EICHEN ?
LDA ZP10
CMP BOTTOM
BNE DRNALLES
JMP DRALLES
:DRNALLES
LDA VERSION
BEQ N12
DONEIO
:N12
DDEC ZP10
LDA VERSION
BEQ NOCHMN12
INITIO
:NOCHMN12
LDY #0
LDA (ZP10),Y
LDX FLAG5
BNE DRNCR
CMP #13
BNE DRNCR ;EVTL. ╠╞
LDA DRUCKLF ;VOR ├╥
BEQ DRNLF ;DRUCKEN
LDA #LF
JSR BSOUT
:DRNLF
LDA #CR
JSR BSOUT
JMP DRLOOP
:DRNCR
PHA
LDA ASCII
BNE NWANDL
PLA
JSR ZURWANDELN
PHA
:NWANDL
PLA
JSR BSOUT
LDA FLAG5
BEQ NDISK
BCC DRLOOP
JMP DRENDE
:NDISK
DONEIO
NEXTCHAR
TAX
BEQ DRNTAST
INITIO
JMP DRALLES
:DRNTAST
INITIO
JMP DRLOOP
;
:DRALLES
LDA FLAG5
BNE DRENDE
LDA #13
JSR BSOUT
; * ┼NDE DES "─RUCKS" *
:DRENDE
CLOSE 4
JSR CLRCH
DONEIO
TURBON
LDA FLAG5
BEQ NALT
JMP ALTEDISK
:NALT
JSR RSINIT
MENU1
;
; *** 7.6. ╨UFFER SPEICHERN ***
;
:RT76
POKE FLAG5,SET
LDA BOTTOM+1
CMP #$60 ;╨UFFER LEER ?
BNE DKNLEER
MENU1
:DKNLEER
JSR IOINIT
MOVERAM DISKID,DISKNAM,18 ;╬AME DER
MOVERAM DISKNAM,URNAME,16 ;ALTEN ─ISK
DIALBOX ZIELDISK
LDA R0
CMP #CANCEL
BNE NZUR
JMP ALTEDISK
:NZUR
OPENDISK
ERROR OK6,ALTEDISK
:OK6
LOADW $7F40,R5 ;┴BLAGE FUER ╞ILENAM
POKE $7F40,0
DIALBOX FILENAME
LDA R0
CMP #CANCEL
BNE NZUR2
JMP ALTEDISK
:NZUR2
LDY #0
:STRKOPIE
LDA $7F40,Y
BEQ STRFRT ;╬AME VERSCHIEBEN
JSR ZURWANDELN ;UND ┌EICHENCODE WANDELN
STA $7F40,Y
INY
JMP STRKOPIE
:STRFRT
TYA
PHA
DELETE $7F40
PLA
TAY
LDA #44
STA $7F40,Y ;",S,W"
STA $7F40+2,Y
LDA #83
STA $7F40+1,Y
LDA #87
STA $7F40+3,Y
TYA
CLC
ADC #4
STA NAMLAENG
POKE FLAG6,SET ;╞LAG FUER ─╔╥-┼RROR
TURBOPUR
INITIO
FOPEN 15,8,15,1,INITSTR
CLOSE 15
SETLFS 4,8,2 ;╞ILE AUF ─ISK OEFFNEN
LDA NAMLAENG
LDX #<$7F40
LDY #>$7F40
JSR SETNAM
JSR FOPENR
JMP DRSP
;
; *** 8. ╘ELEFONNR. ***
;
:RT8
REDOMENU