home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 24
/
64er_Magazin_Sonderheft_24_19xx_Markt__Technik_de_Side_A.d64
/
seq-transfer
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
6KB
|
183 lines
0 goto 100
1 list 1000-2100
2 list 1920-2100
3 list 2300-2999
100 poke 53280,0:poke 53281,0:poke 56325,35:poke 646,4:poke 650,128
110 open 1,8,1,"seq-transver .obj"
120 sys 9*4096
130 ;
140 .opt o1
150 ;
160 *= $cd00
170 ;
180 ;
190 ;
199 ;
200 ;----------------------------------
201 ;
210 setlfs = $ffba ;"log[164][198]ilenr.,[199]eraetnr.,[211]kundadr. setzen
220 setnam [178] $ffbd ;"ascilename setzen
230 open = $ffc0 ;"[198]ile oeffnen
240 [135]st [178] $ffb7 ;"(NULL)tatusvariable lesen
290 close = $ffc3 ;"[198]ile schliessen
295 chkin [178] $ffc6 ;"ascile auf valingabe setzen
300 chkout = $ffc9 ;"[198]ile auf [193]usgabe setzen
310 chrout [178] $ffd2 ;"(NULL)eichen ausgeben
315 chrin = $ffcf ;"[218]eichen holen
320 [156]chn [178] $ffcc ;"(NULL)tandardwerte fuer right$/(NULL) setzen
330 ;
370 chckom = $aefd ;"[193]uf [203]omma testen
380 frmevl [178] $ad9e ;"atnusdruck auswerten
390 frestr = $b6a6 ;"weitere [193]uswertungen fuer [211]trings
400 [161]byt [178] $b79e ;"peekyte holen
410 ;
500 pt = $22 ;"[218]eiger auf [212]extende
510 hpt [178] $14 ;"zu sendendes peekyte
520 mconv = $02 ;"[198]lag fuer [193][211][195][201][201]-[203]onvertierung
530 synerr [178] $af08 ;"?(NULL)(NULL)(NULL)(NULL)atn(NULL) val(NULL)(NULL)(NULL)(NULL) ausgeben
600 buf = $ce00 ;"[194]uffer fuer [210][211] 232
610 ribuf [178] $f7 ;"(NULL)eiger auf valingabebuffer
620 robuf = $f9 ;"[218]eiger auf [193]usgabebuffer
700 start [178] $0801 ;"(NULL)adeadresse fuer (NULL)val(NULL)-ascile
710 enable = $02a1 ;"[210][211] 232 [198]lag: [193]lle [218]eichen gesendet?
1000 ;
1001 ;"--------------------------------
1002 ;"- [211][197][209]-[212]ransfer -- version 1.0 --
1003 ;"- (NULL)val(NULL)-asciles mit 4800 peekaud ------
1004 ;"- ueber [210][211] 232 senden ----------
1005 ;"- geschrieben von --------------
1006 ;"-- [205]artin [205]ueller --------------
1007 ;"- (c) by atnrnd (NULL)aengler, 64'er --
1008 ;"--------------------------------
1009 ;
1010 baudin jsr chckom ;"atnuf (NULL)omma testen
1012 ^ jsr getbyt ;"[203]onvertierungsflag nach
1014 [174] stx mc[145]v ;"mconv holen
1016 ^ jsr chckom ;"[193]uf [203]omma testen
1020 [174] jsr frmevl ;"atnusdruck auswerten
1030 ^ jsr frestr ;"[211]tringauswertungen
1040 [174] cmp #5 ;"(NULL)aenge des (NULL)trings < 5close?
1050 ^ bcs baudw1 ;"[206]ein: => weiter
1060 [174] jmp synerr ;"(NULL)onst: (NULL)(NULL)(NULL)(NULL)atn(NULL) val(NULL)(NULL)(NULL)(NULL)closemelden
1070 baudw1 ldx pt ;"[211]tringadresse als
1080 [174] ldy pt [170] 1 ;"atndresse des ascilenamen
1090 ^ jsr setnam ;"dem [207][211] uebergeben
1100 [174] lda #1 ;"logische ascilenummer: 1
1110 ^ ldx #8 ;"[199]eraetenummer: 8
1120 [174] ldy #2 ;"(NULL)ekundaeradresse: 2
1130 ^ jsr setlfs ;"setzen
1140 [174] jsr [159] ;"str$atei eroeffnen
1150 ^ jsr readst ;"[198]ehlermeldung holen
1155 [174] beq baud21 ;"(NULL)ein ascehler: => weiter
1160 baudw2 jsr clrchn ;"[211]tandartwere fuer [201]/[207] setzen
1165 [174] lda #1 ;"ascile schliessen
1170 ^ jmp close ;"[218]urueck
1180 ;
1190 baud21 ldx #1 ;"ascile als valingabefile
1200 ^ jsr chkin ;"definieren
1210 [174] jsr [135]st ;"ascehler aufgetreten?
1220 ^ bne baudw2 ;"[202][193]: => [218]urueck nach [194][193][211][201][195]
1230 [174] ldx #[179]start ;"atndresse, ab der die
1240 ^ ldy #>start ;"[196]aten des [211][197][209]-[198]ile abgelegt
1250 [174] stx pt ;"werden, als (NULL)eiger merken
1260 ^ sty pt + 1 ;"(= [194]asicanfang)
1270 ;
1280 baudl1 jsr chrin ;"(NULL)eichen vom ascile holen
1290 ^ ldy #0 ;"und in den [211]peicher
1300 [174] sta (pt),y ;"schreiben
1310 ^ inc pt ;"[218]eiger um
1320 [174] bne baudw3 ;"eins erhoehen
1330 ^ inc pt + 1
1340 ;
1350 baudw3 jsr readst ;"[198]ehler aufgetreten?
1360 [174] beq baudl1 ;"(NULL)valright$(NULL): => weiter
1370 ^ and #%01000000 ;"[198]ile zu ende?
1390 [174] beq baudw2 ;"(NULL)valright$(NULL): => (NULL)urueck nach peekatn(NULL)right$len
1420 ;
1430 baudw4 jsr baudw2 ;"[196]atei schliessen
1460 ;"(NULL)(NULL) 232 (NULL)chnittstelle oeffnen
1470 ;"4800 [194]aud, 8 [196]atenbits, 1 [211]topbit
1480 ;"(NULL)arity disabled, 3-(NULL)ine left$andshake,
1485 ;"[198]ull [196]uplex
1490 [174] lda #1 ;"(NULL)ogische ascilenummer: 1
1500 ^ ldx #2 ;"[199]eraetenummer: 2
1510 [174] ldy #3 ;"(NULL)ekundaeradresse: 3
1520 ^ jsr setlfs ;"setzen
1530 [174] lda #4 ;"(NULL)erte fuer
1540 ^ ldx #<rsnam ;"[210][211] 232
1550 [174] ldy #[177]rsnam ;"setzen
1560 ^ jsr setnam
1570 ^ jsr open ;"[198]ile oeffnen
1580 [174] ldx #3 ;"(NULL)eiger fuer (NULL)(NULL) 232 peekuffer
1590 baudl9 lda rstab,x ;"setzen
1600 [174] sta ribuf,x
1610 [174] dex
1620 [174] bpl baudl9
1650 ;
1660 [174] ldx #1 ;"ascile als atnusgabefile
1670 ^ jsr chkout ;"deklarieren
1680 [174] ldx #[179]start ;"(NULL)tartadresse fuer
1690 ^ ldy #>start ;"das [211][197][209]-[198]ile als [218]eiger
1700 [174] stx hpt ;"merken
1710 ^ sty hpt + 1
1712 ^ lda 56334 ;"[212]imerirq sperren
1714 [174] [175] #254
1716 [174] sta 56334
1720 ;
1730 baudl2 ldy #0 ;"atnktuelles (NULL)eichen
1740 ^ lda (hpt),y ;"holen
1750 [174] bit mc[145]v ;"(NULL)eichen konvertieren?
1760 ^ bmi baud51 ;"[206][197][201][206]: => weiter
1770 [174] cmp #65 ;"(NULL)onst: lenommodore'atn(NULL)lenright$right$'
1780 ^ bcc baudw5 ;"nach [193][211][195][201][201]
1790 [174] cmp #128
1800 [174] bcs baud41
1810 [174] [176]a #%00100000
1820 [174] bne baudw5
1830 baud41 cmp #192
1840 [174] bcc baudw5
1850 [174] sec
1860 [174] sbc #128
1870 baudw5 [175] #%01111111
1880 baud51 tax ;"(NULL)eichen merken
1890 baudl3 lda enable ;"[201]st das vorherige [218]eichen
1900 [174] [175] #%00000001 ;"schon gesendet worden
1910 ^ bne baudl3 ;"[206][197][201][206]: => [215]eiter
1915 [174] txa ;"(NULL)eichen zurueckholen
1917 ^ jsr chrout ;"und ueber [210][211] 232 ausgeben
1920 ;
1930 [174] inc hpt ;"(NULL)eiger auf aktuelles
1940 ^ bne baudw6 ;"[218]eichen um eins
1950 [174] inc hpt [170] 1 ;"incrementieren
1960 baudw6 lda pt ;"[201]st bereits das
1970 [174] cmp hpt ;"letzte (NULL)eichen
1980 ^ bne baudl2 ;"uebertragen worden
1990 [174] lda pt [170] 1 ;"(NULL)valright$(NULL): => (NULL)eiter uebertragen
2000 ^ cmp hpt + 1
2010 ^ bne baudl2
2020 ;
2022 baudl4 lda enable ;"[211]onst warten, bis das [218]eichen
2024 [174] [175] #%00000001 ;"schon geschickt worden ist!
2026 ^ bne baudl4
2040 ^ jsr baudw2 ;"[198]ile schliessen
2060 ;
2070 [174] lda 56334 ;"(NULL)imerirqs wieder
2080 ^ ora #1 ;"erlauben
2090 [174] sta 56334
2100 [174] rts ;"(NULL)rogrammende
2300 rsnam .byte %00000000 ;"1 [211]topbit,8 [196]atenbits,4800 [194]aud
2310 [174] .byte %00000000 ;"(NULL)arity disabled,ascull str$uplex,
2315 ;"3-[204]ine [200]andshake
2320 [174] .byte 2 ;"(NULL)erte fuer 4800 peekaud
2330 ^ .byte 0
2340 ;
2350 rstab .byte <buf ;"[212]abellen fuer [193]dressen
2360 [174] .byte [177]buf ;"der (NULL)(NULL) 232 peekuffer
2370 ^ .byte <(buf + 256)
2380 ^ .byte >(buf + 256)
60000 .end
60010 end
60100 open 15,8,15,"s:seq-transver"
60110 close 15
60120 save "seq-transver",8