home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-01-01 | 16.5 KB | 1,129 lines |
- ; ***********************
- ; *** andere Routinen ***
- ;
- ; *** Sternchen setzen/loeschen ***
- ;
- :sternchen
- loadw texte,zp2
- transw baud,zp1 ;2.2.1. Baudrate
- dadd zp1,zp2,zp1
- lda zw
- ldy #7
- sta (zp1),y
- transw datenb,zp1 ;2.2.2. Datenbits
- dadd zp1,zp2,zp1
- lda zw
- ldy #2
- sta (zp1),y
- transw parit,zp1 ;2.2.3. Paritaet
- dadd zp1,zp2,zp1
- lda zw
- ldy #18
- sta (zp1),y
- transw stopb,zp1 ;2.2.4. Stopbits
- dadd zp1,zp2,zp1
- lda zw
- ldy #5
- sta (zp1),y
- transw dupl,zp1 ;2.2.5. Duplex
- dadd zp1,zp2,zp1
- lda zw
- ldy #5
- sta (zp1),y
- lda echo ;2.3. Echo
- beq echoaus
- cop zw,mtext231+4
- jmp geschw
- :echoaus
- cop zw,mtext232+4
- :geschw
- lda speed ;2.5.1. Sendetempo
- beq lowspd
- cop zw,mtext2511+8
- jmp crunterdr
- :lowspd
- cop zw,mtext2512+8
- :crunterdr
- lda crunter ;2.5.2. CR 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. Druckergeraeteadr.
- cmp #4
- beq vier
- cop zw,mtext2612+6
- jmp sek
- :vier
- cop zw,mtext2611+6
- :sek
- lda sekundaer ;2.6.2. Sekundaeradr.
- 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. Zeichensatz
- beq keinasc
- cop zw,mtext2631+5
- jmp drlf
- :keinasc
- cop zw,mtext2632+5
- :drlf
- lda drucklf ;2.6.4. Linefeed
- beq keinlf
- cop zw,mtext2641+5
- jmp fertig
- :keinlf
- cop zw,mtext2642+5
- :fertig
- rts
- ;
- ; *********************
- ; *** Menueroutinen ***
- ;
- ; *** LEERroutinen fuer LEERe Menuepunkte ***
- :leer1
- redomenu
- :leer2
- menu1
- ; *** 1.1. geoTerm Info ***
- ;
- :rt11
- recvmenu 1
- dialbox infobox
- menu1
- ;
- ; *** 1.2. Desktop laden ***
- ;
- :rt12
- initio
- jsr clrch
- close 2 ;RS-232-File schliessen
- doneio
- lda flag6
- beq ndirerr
- turbopur
- initio
- fopen 15,8,15,1,initstr ;DIR-Error vermeiden
- close 15
- doneio
- turbon
- :ndirerr
- proff
- loadw oldnmi,$fffa
- transw resetmain,r0
- jsr initramr
- desktop
- ;
- ; *** 1.3.-1.a. Accessory 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. Parameter laden *
- ; ** **
- :rt21
- clearam $a000+640,7360 ;Teil des Screens loeschen
- clearam $6000+640,7360
- jsr ioinit
- poke zw,32 ;alte Sternchen loeschen
- jsr sternchen
- poke flag3,set
- jsr parlesen ;und neue laden+setzen
- poke flag3,clear
- jsr rsinit
- menu1
- ; **************************
- ; * 2.2.1.1. Baudrate 50 *
- ;
- :rt2211
- poke zw,%00000001
- loadw mtext2211,zp1
- jmp baudrate
- ;
- ; * 2.2.1.2. Baudrate 75 *
- ;
- :rt2212
- poke zw,%00000011
- loadw mtext2212,zp1
- jmp baudrate
- ;
- ; * 2.2.1.3. Baudrate 150 *
- ;
- :rt2213
- poke zw,%00000110
- loadw mtext2213,zp1
- jmp baudrate
- ;
- ; * 2.2.1.4. Baudrate 300 *
- ;
- :rt2214
- poke zw,%00000111
- loadw mtext2214,zp1
- jmp baudrate
- ;
- ; * 2.2.1.5. Baudrate 600 *
- ;
- :rt2215
- poke zw,%00001000
- loadw mtext2215,zp1
- jmp baudrate
- ;
- ; * 2.2.1.6. Baudrate 1200 *
- ;
- :rt2216
- poke zw,%00001001
- loadw mtext2216,zp1
- ;
- ; * Baudrate aendern *
- ; **************************
- :baudrate
- lda steuerreg
- and #%11110000 ;untere vier Bytes loeschen
- ora zw ;und Baudrate einstellen
- sta steuerreg
- sta fadr
- loadw texte,zp3
- transw baud,zp2
- dadd zp2,zp3,zp2
- ldy #7
- lda #32
- sta (zp2),y ;alten Stern loeschen
- lda #42 ;neuen Stern setzen
- sta (zp1),y
- transw zp1,baud
- dsub baud,zp3,baud
- setmouse 103,22
- premenu
- ; *********************************
- ; * 2.2.2.1. 5 Datenbits makieren *
- ;
- :rt2221
- poke zw,%01100000
- loadw mtext2221,zp1
- jmp datenbits
- ;
- ; * 2.2.2.2. 6 Datenbits makieren *
- ;
- :rt2222
- poke zw,%01000000
- loadw mtext2222,zp1
- jmp datenbits
- ;
- ; * 2.2.2.3. 7 Datenbits makieren *
- ;
- :rt2223
- poke zw,%00100000
- loadw mtext2223,zp1
- jmp datenbits
- ;
- ; * 2.2.2.4. 8 Datenbits makieren *
- ;
- :rt2224
- poke zw,%00000000
- loadw mtext2224,zp1
- ;
- ; * Datenbits aendern *
- ; *********************************
- :datenbits
- lda steuerreg
- and #%10011111 ;untere vier Bytes loeschen
- ora zw ;und Baudrate einstellen
- sta steuerreg
- sta fadr
- loadw texte,zp3
- transw datenb,zp2
- dadd zp2,zp3,zp2
- lda #32
- ldy #2
- sta (zp2),y ;alten Stern loeschen
- lda #42 ;neuen Stern setzen
- sta (zp1),y
- transw zp1,datenb
- dsub datenb,zp3,datenb
- setmouse 103,22
- premenu
- ; ********************************
- ; * 2.2.3.1. keine Paritaet *
- ;
- :rt2231
- poke zw,%00000000
- loadw mtext2231,zp1
- jmp paritaet
- ;
- ; * 2.2.3.2. ungerade Paritaet *
- :rt2232
- poke zw,%00100000
- loadw mtext2232,zp1
- jmp paritaet
- ;
- ; * 2.2.3.3. gerade Paritaet *
- ;
- :rt2233
- poke zw,%01100000
- loadw mtext2233,zp1
- jmp paritaet
- ;
- ; * 2.2.3.4. gesetzte Paritaet *
- ;
- :rt2234
- poke zw,%10100000
- loadw mtext2234,zp1
- jmp paritaet
- ;
- ; * 2.2.3.5. geloeschte Paritaet *
- ;
- :rt2235
- poke zw,%11100000
- loadw mtext2235,zp1
- ;
- ; * Paritaet aendern *
- ; ********************************
- :paritaet
- lda befehlsreg
- and #%00011111
- ora zw ;und Baudrate einstellen
- sta befehlsreg
- sta fadr+1
- loadw texte,zp3
- transw parit,zp2
- dadd zp2,zp3,zp2
- lda #32
- ldy #18
- sta (zp2),y ;alten Stern loeschen
- lda #42 ;neuen Stern setzen
- sta (zp1),y
- transw zp1,parit
- dsub parit,zp3,parit
- setmouse 103,22
- premenu
- ; ***********************
- ; * 2.2.4.1. 1 Stopbit *
- ;
- :rt2241
- poke zw,%00000000
- loadw mtext2241,zp1
- jmp stopbits
- ;
- ;
- ; * 2.2.4.2. 2 Stopbits *
- ;
- :rt2242
- poke zw,%10000000
- loadw mtext2242,zp1
- ;
- ; * Stopbits aendern *
- ; ***********************
- :stopbits
- lda steuerreg
- and #%01111111
- ora zw ;und Baudrate einstellen
- sta steuerreg
- sta fadr
- loadw texte,zp3
- transw stopb,zp2
- dadd zp2,zp3,zp2
- lda #32
- ldy #5
- sta (zp2),y ;alten Stern loeschen
- lda #42 ;neuen Stern setzen
- sta (zp1),y
- transw zp1,stopb
- dsub stopb,zp3,stopb
- setmouse 103,22
- premenu
- ; ************************
- ; * 2.2.5.1. Voll-Duplex *
- ;
- :rt2251
- poke zw,%00000000
- loadw mtext2251,zp1
- jmp duplex
- ;
- ; * 2.2.5.2. Halb-Duplex *
- ;
- :rt2252
- poke zw,%00010000
- loadw mtext2252,zp1
- ;
- ; * Duplex aendern *
- ; ************************
- :duplex
- lda befehlsreg
- and #%11101111
- ora zw ;und Baudrate einstellen
- sta befehlsreg
- sta fadr+1
- loadw texte,zp3
- transw dupl,zp2
- dadd zp2,zp3,zp2
- lda #32
- ldy #5
- sta (zp2),y ;alten Stern loeschen
- lda #42 ;neuen Stern setzen
- sta (zp1),y
- transw zp1,dupl
- dsub dupl,zp3,dupl
- setmouse 103,22
- premenu
- ; ******************
- ; * 2.3.1 Echo an *
- ;
- :rt231
- poke mtext232+4,32
- poke mtext231+4,42
- poke echo,set
- setmouse 49,22
- premenu
- ;
- ; * 2.3.2 Echo aus *
- ; ******************
- :rt232
- poke mtext231+4,32
- poke mtext232+4,42
- poke echo,clear
- setmouse 49,22
- premenu
- ; ****************************
- ; * 2.5.1.1. schnelles Tempo *
- ;
- :rt2511
- poke mtext2512+8,32
- poke mtext2511+8,42
- poke speed,set
- setmouse 118,22
- premenu
- ;
- ; * 2.5.1.2. langsames Tempo *
- ; ****************************
- :rt2512
- poke mtext2511+8,32
- poke mtext2512+8,42
- poke speed,clear
- setmouse 118,22
- premenu
- ; ******************************
- ; * 2.5.2.1. CR unterdr. *
- ;
- :rt2521
- poke mtext2522+6,32
- poke mtext2521+6,42
- poke crunter,set
- setmouse 118,22
- premenu
- ;
- ; * 2.5.2.2. CR nicht unterdr. *
- ; ******************************
- :rt2522
- poke mtext2521+6,32
- poke mtext2522+6,42
- poke crunter,clear
- setmouse 118,22
- premenu
- ; ************************************
- ; * 2.5.3.1. Text konvertieren *
- ;
- :rt2531
- poke mtext2532+6,32
- poke mtext2531+6,42
- poke konvert,set
- setmouse 118,22
- premenu
- ;
- ; * 2.5.3.2. Text nicht konvertieren *
- ; ************************************
- :rt2532
- poke mtext2531+6,32
- poke mtext2532+6,42
- poke konvert,clear
- setmouse 118,22
- premenu
- ; ******************************
- ; * 2.6.1.1. Geraeteadr. vier *
- ;
- :rt2611
- poke mtext2612+6,32
- poke mtext2611+6,42
- poke geraet,4
- setmouse 111,22
- premenu
- ;
- ; * 2.6.1.2. Geraeteadr. fuenf *
- ; ******************************
- :rt2612
- poke mtext2611+6,32
- poke mtext2612+6,42
- poke geraet,5
- setmouse 111,22
- premenu
- ; *******************************
- ; * 2.6.2.1. Sekundaeradr. 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. Sekadr. 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. Sekadr. 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. Ascii ja *
- ;
- :rt2631
- poke mtext2632+5,32
- poke mtext2631+5,42
- poke ascii,set
- setmouse 111,22
- premenu
- ;
- ; * 2.6.3.2. Ascii nein *
- ; ***********************
- :rt2632
- poke mtext2631+5,32
- poke mtext2632+5,42
- poke ascii,clear
- setmouse 111,22
- premenu
- ; *********************************
- ; * 2.6.4.1. Linefeed auf Dr. ja *
- ;
- :rt2641
- poke mtext2642+5,32
- poke mtext2641+5,42
- poke drucklf,set
- setmouse 111,22
- premenu
- ;
- ; * 2.6.4.2. Linefeed auf Dr. nein *
- ; **********************************
- :rt2642
- poke mtext2641+5,32
- poke mtext2642+5,42
- poke drucklf,clear
- setmouse 111,22
- premenu
- ;
- ; *** 2.7. Parameter 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. BSW einschalten ***
- ;
- :rt31
- clearam $a000+640,7360 ;Teil des Screens loeschen
- clearam $6000+640,7360
- jsr fontbsw
- menu1
- :fontbsw
- sysfont
- loadw 0,r11
- loadw 0,textx
- poke 5,22 ;Textpos. setzen
- sta texty
- poke crdiff,6
- poke crhoehe,9
- jsr promptr
- poke top,22
- poke bsw,set
- rts
- ;
- ; *** 3.2. University einschalten ***
- ;
- :rt32
- clearam $a000+640,7360 ;Teil des Screens loeschen
- clearam $6000+640,7360
- jsr fontuni
- menu1
- :fontuni
- loadset univ
- loadw 0,r11
- loadw 0,textx
- poke 5,20 ;Textpos. setzen
- sta texty
- poke crdiff,4
- poke crhoehe,6
- jsr promptr
- poke top,20
- poke bsw,clear
- menu1
- ;
- ; *** 6.1.1.1. Textscrap ueber ASCII senden ***
- ;
- :rt6111
- poke flag4,set ;Zeichen fuer Scrap
- jmp seqsenden
- ;
- ; *** 6.1.1.2. Seq.-File ueber ASCII senden ***
- ;
- :rt6112
- poke flag4,clear ;Zeichen fuer Seq
- :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 ;Seq-File waehlen
- lda r0
- cmp #cancel
- bne nzurueck
- jmp wieder
- :nzurueck
- findfile filepuffer
- jmp einlesen
- :scrap
- findfile textscrap
- cpx #5 ;pruefen,ob Textscrap da
- bne einlesen
- jmp rt6112ende
- :einlesen
- recvbox 100,16,319,50 ;Menues loeschen
- cop direin+1,4 ;Anfangsblock
- cop direin+2,5 ;des Files
- getblk blkpf ;einlesen
- poke $c,$ff
- lda blkpf ;pruefen,ob letzter Block
- bne nzuende
- cop blkpf+1,$c ;Laenge festlegen
- :nzuende
- inc $c
- poke $d,2 ;ab 1. Byte
- lda flag4
- beq nueberl
- poke $d,8 ;Steuercodes ueberlesen
- :nueberl
- moveram r4,readpar,4
- cop blkpf,4
- sta spur ;Folgeblock festlegen
- cop blkpf+1,5
- sta sektor
- loadw newgetblk,$c1e5 ;neue Routine
- poke $c1e4,$4c ;fuer Block einlesen
- jsr rsinit
- :readloop
- moveram readpar,r4,4 ;Werte aus
- cop spur,4 ;Zwischenspeicher
- 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 ;File zuende ?
- bne nende
- jmp rt6112ende
- :nende
- tay
- error ok5,rt6112ende
- :ok5
- tya
- cmp #cr ;CR ?
- bne ncaret
- ;
- ; ** CR behandeln **
- lda crunter
- beq nunterdr ;unterdruecken ?
- poke tastcd,32
- jsr taste ;Leerzeichen senden
- jmp verzoeg
- ;
- :nunterdr
- poke tastcd,cr
- jsr taste ;CR senden
- jmp verzoeg
- ;
- :ncaret
- cmp #32
- bcc readloop
- ldx flag4
- bne nseq
- ldx konvert
- beq zkleiner
- cmp #65 ;bei SEQ-File
- 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 Code
- jmp readloop
- :nzugross
- sta tastcd
- jsr taste ;Zeichen senden
- :verzoeg
- nextchar
- tax ;bei Tastendruck
- beq nstop ;Schluss machen
- jmp rt6112ende
- :nstop
- jsr romein ;auf (RS232) Eingaben pruefen
- jsr getin
- pha ;Zeichen zwischenspeichern
- jsr romaus
- pla ;zurueckholen
- tax
- beq keinzeich ;Zeichen 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 ;{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y} sek warten
- bcc nochnicht ; 50
- sei
- loadw 0,zuirq
- cli
- :nverz
- jmp readloop
- ;
- ; ** Ende der Uebertragung **
- :rt6112ende
- jsr ioinit
- moveram vekgetblk,$c1e4,3
- :altedisk
- opendisk
- loadw disknam,zp1
- loadw diskid,zp2
- cmpfstr zp1,zp2,18 ;Diskids vergleichen
- beq gleich
- dialbox urdisk
- jmp altedisk
- :gleich
- jsr rsinit
- jsr romein
- lda zeichen
- jsr bsout
- jsr romaus
- menu1
- ;
- ; ** neue Routine zu GETBLOCK **
- :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 ;Fehlerbyte sichern
- pha
- jsr rsinit
- moveram readpar,r4,4
- cop spur,4
- cop sektor,5
- pla
- tax
- rts
- ;
- ; ** IRQ zum Verzoegern **
- :verirq
- inc zaehler
- rts
- ;
- ; *** 7.1.1. Puffer loeschen+oeffnen ***
- ;
- :rt711
- loadw $6000,bottom ;Zeiger loeschen
- hline 0,319,14,0 ;Linie loeschen
- :oeffnen
- lda puffer
- bne schonoffen
- invbox 255,1,274,13 ;Icon invertieren
- poke puffer,set
- :schonoffen
- menu1
- ;
- ; *** 7.1.2. Puffer oeffnen ***
- ;
- :rt712
- jmp oeffnen
- ;
- ; *** 7.2. Puffer schliessen ***
- ;
- :rt72
- lda puffer
- beq schonzu
- invbox 255,1,274,13
- poke puffer,clear
- :schonzu
- menu1
- ;
- ; *** 7.3. freien Platz im Puffer anzeigen ***
- ;
- :rt73
- dialbox showfree
- menu1
- ;
- ; ** Bytezahl anzeigen **
- :freerechn
- transw bottom,zp1
- loadw grenze,zp2
- dsub zp1,zp2,zp1 ;Freier Platz nach zp1
- lda #boldon
- putchar
- transw zp1,r0
- putdec 80,63
- rts
- ;
- ; *** 7.4. Puffer anzeigen ***
- ;
- :rt74
- lda bottom+1
- cmp #$60 ;Puffer leer ?
- bne nleer
- menu1
- :nleer
- recvbox 0,16,319,199 ;Menues loeschen
- lda echo
- pha
- poke echo,clear ;Echo sperren
- lda puffer
- pha
- poke puffer,clear ;Puffer sperren
- loadw $6000,zp10
- lda #cr
- jsr print
- :anzloop
- nextchar
- tax ;bei Taste anhalten
- beq keintast
- :stop
- transw textx,r11
- cop texty,5
- setcr
- nextchar
- tax ;auf naechste warten
- beq stop
- cmp #22 ;und bei 'STOP' Abbruch
- 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 ;Flags zuruecksetzen
- pla
- sta echo
- menu1
- ;
- ; *** 7.5. Puffer drucken ***
- ;
- :rt75
- poke flag5,clear
- lda bottom+1
- cmp #$60 ;Puffer leer ?
- bne drnleer
- menu1
- :drnleer
- jsr ioinit ;I/O vorbereiten
- turboff
- initio
- lda #4
- ldx geraet ;File oeffnen
- ldy sekundaer
- jsr setlfsr
- lda #1
- ldx #<namdr
- ldy #>namdr
- jsr setnam
- jsr fopenr
- :drsp
- bcc keinfehler
- jmp drende ;bei I/O-Fehler Ende
- :keinfehler
- chkout 4
- loadw $6000,zp10
- :drloop
- lda zp10+1 ;schon
- cmp bottom+1 ;alle
- bne drnalles ;Zeichen ?
- 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. LF
- lda drucklf ;vor CR
- 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
- ; * Ende des "Drucks" *
- :drende
- close 4
- jsr clrch
- doneio
- turbon
- lda flag5
- beq nalt
- jmp altedisk
- :nalt
- jsr rsinit
- menu1
- ;
- ; *** 7.6. Puffer speichern ***
- ;
- :rt76
- poke flag5,set
- lda bottom+1
- cmp #$60 ;Puffer leer ?
- bne dknleer
- menu1
- :dknleer
- jsr ioinit
- moveram diskid,disknam,18 ;Name der
- moveram disknam,urname,16 ;alten Disk
- dialbox zieldisk
- lda r0
- cmp #cancel
- bne nzur
- jmp altedisk
- :nzur
- opendisk
- error ok6,altedisk
- :ok6
- loadw $7f40,r5 ;Ablage fuer Filenam
- poke $7f40,0
- dialbox filename
- lda r0
- cmp #cancel
- bne nzur2
- jmp altedisk
- :nzur2
- ldy #0
- :strkopie
- lda $7f40,y
- beq strfrt ;Name verschieben
- jsr zurwandeln ;und Zeichencode 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 ;Flag fuer DIR-Error
- turbopur
- initio
- fopen 15,8,15,1,initstr
- close 15
- setlfs 4,8,2 ;File auf Disk oeffnen
- lda namlaeng
- ldx #<$7f40
- ldy #>$7f40
- jsr setnam
- jsr fopenr
- jmp drsp
- ;
- ; *** 8. Telefonnr. ***
- ;
- :rt8
- redomenu
-