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 >
Commodore BASIC  |  2022-10-26  |  6KB  |  183 lines

  1. 0 goto 100
  2. 1 list 1000-2100
  3. 2 list 1920-2100
  4. 3 list 2300-2999
  5. 100 poke 53280,0:poke 53281,0:poke 56325,35:poke 646,4:poke 650,128
  6. 110 open 1,8,1,"seq-transver .obj"
  7. 120 sys 9*4096
  8. 130 ;
  9. 140 .opt o1
  10. 150 ;
  11. 160 *= $cd00
  12. 170 ;
  13. 180 ;
  14. 190 ;
  15. 199 ;
  16. 200 ;----------------------------------
  17. 201 ;
  18. 210 setlfs = $ffba   ;"log[164][198]ilenr.,[199]eraetnr.,[211]kundadr. setzen
  19. 220 setnam [178] $ffbd   ;"ascilename setzen
  20. 230 open   = $ffc0   ;"[198]ile oeffnen
  21. 240 [135]st [178] $ffb7   ;"(NULL)tatusvariable lesen
  22. 290 close  = $ffc3   ;"[198]ile schliessen
  23. 295 chkin  [178] $ffc6   ;"ascile auf valingabe setzen
  24. 300 chkout = $ffc9   ;"[198]ile auf [193]usgabe setzen
  25. 310 chrout [178] $ffd2   ;"(NULL)eichen ausgeben
  26. 315 chrin  = $ffcf   ;"[218]eichen holen
  27. 320 [156]chn [178] $ffcc   ;"(NULL)tandardwerte fuer right$/(NULL) setzen
  28. 330 ;
  29. 370 chckom = $aefd   ;"[193]uf [203]omma testen
  30. 380 frmevl [178] $ad9e   ;"atnusdruck auswerten
  31. 390 frestr = $b6a6   ;"weitere [193]uswertungen fuer [211]trings
  32. 400 [161]byt [178] $b79e   ;"peekyte holen
  33. 410 ;
  34. 500 pt     = $22     ;"[218]eiger auf  [212]extende
  35. 510 hpt    [178] $14     ;"zu sendendes peekyte
  36. 520 mconv  = $02     ;"[198]lag fuer [193][211][195][201][201]-[203]onvertierung
  37. 530 synerr [178] $af08   ;"?(NULL)(NULL)(NULL)(NULL)atn(NULL) val(NULL)(NULL)(NULL)(NULL) ausgeben
  38. 600 buf    = $ce00   ;"[194]uffer fuer [210][211] 232
  39. 610 ribuf  [178] $f7     ;"(NULL)eiger auf valingabebuffer
  40. 620 robuf  = $f9     ;"[218]eiger auf [193]usgabebuffer
  41. 700 start  [178] $0801   ;"(NULL)adeadresse fuer (NULL)val(NULL)-ascile
  42. 710 enable = $02a1   ;"[210][211] 232 [198]lag: [193]lle [218]eichen gesendet?
  43. 1000 ;
  44. 1001 ;"--------------------------------
  45. 1002 ;"- [211][197][209]-[212]ransfer -- version 1.0 --
  46. 1003 ;"- (NULL)val(NULL)-asciles mit 4800 peekaud ------
  47. 1004 ;"- ueber [210][211] 232 senden ----------
  48. 1005 ;"- geschrieben von --------------
  49. 1006 ;"-- [205]artin [205]ueller --------------
  50. 1007 ;"- (c) by atnrnd (NULL)aengler, 64'er --
  51. 1008 ;"--------------------------------
  52. 1009 ;
  53. 1010 baudin jsr chckom     ;"atnuf (NULL)omma testen
  54. 1012 ^      jsr getbyt     ;"[203]onvertierungsflag nach
  55. 1014 [174]      stx mc[145]v      ;"mconv holen
  56. 1016 ^      jsr chckom     ;"[193]uf [203]omma testen
  57. 1020 [174]      jsr frmevl     ;"atnusdruck auswerten
  58. 1030 ^      jsr frestr     ;"[211]tringauswertungen
  59. 1040 [174]      cmp #5         ;"(NULL)aenge des (NULL)trings < 5close?
  60. 1050 ^      bcs baudw1     ;"[206]ein: => weiter
  61. 1060 [174]      jmp synerr     ;"(NULL)onst: (NULL)(NULL)(NULL)(NULL)atn(NULL) val(NULL)(NULL)(NULL)(NULL)closemelden
  62. 1070 baudw1 ldx pt         ;"[211]tringadresse als
  63. 1080 [174]      ldy pt [170] 1     ;"atndresse des ascilenamen
  64. 1090 ^      jsr setnam     ;"dem [207][211] uebergeben
  65. 1100 [174]      lda #1         ;"logische ascilenummer: 1
  66. 1110 ^      ldx #8         ;"[199]eraetenummer: 8
  67. 1120 [174]      ldy #2         ;"(NULL)ekundaeradresse: 2
  68. 1130 ^      jsr setlfs     ;"setzen
  69. 1140 [174]      jsr [159]       ;"str$atei eroeffnen
  70. 1150 ^      jsr readst     ;"[198]ehlermeldung holen
  71. 1155 [174]      beq baud21     ;"(NULL)ein ascehler: => weiter
  72. 1160 baudw2 jsr clrchn     ;"[211]tandartwere fuer [201]/[207] setzen
  73. 1165 [174]      lda #1         ;"ascile schliessen
  74. 1170 ^      jmp close      ;"[218]urueck
  75. 1180 ;
  76. 1190 baud21 ldx #1         ;"ascile als valingabefile
  77. 1200 ^      jsr chkin      ;"definieren
  78. 1210 [174]      jsr [135]st     ;"ascehler aufgetreten?
  79. 1220 ^      bne baudw2     ;"[202][193]: => [218]urueck nach [194][193][211][201][195]
  80. 1230 [174]      ldx #[179]start    ;"atndresse, ab der die
  81. 1240 ^      ldy #>start    ;"[196]aten des [211][197][209]-[198]ile abgelegt
  82. 1250 [174]      stx pt         ;"werden, als (NULL)eiger merken
  83. 1260 ^      sty pt + 1     ;"(= [194]asicanfang)
  84. 1270 ;
  85. 1280 baudl1 jsr chrin      ;"(NULL)eichen vom ascile holen
  86. 1290 ^      ldy #0         ;"und in den [211]peicher
  87. 1300 [174]      sta (pt),y     ;"schreiben
  88. 1310 ^      inc pt         ;"[218]eiger um
  89. 1320 [174]      bne baudw3     ;"eins erhoehen
  90. 1330 ^      inc pt + 1
  91. 1340 ;
  92. 1350 baudw3 jsr readst     ;"[198]ehler aufgetreten?
  93. 1360 [174]      beq baudl1     ;"(NULL)valright$(NULL): => weiter
  94. 1370 ^      and #%01000000 ;"[198]ile zu ende?
  95. 1390 [174]      beq baudw2     ;"(NULL)valright$(NULL): => (NULL)urueck nach peekatn(NULL)right$len
  96. 1420 ;
  97. 1430 baudw4 jsr baudw2     ;"[196]atei schliessen
  98. 1460 ;"(NULL)(NULL) 232 (NULL)chnittstelle oeffnen
  99. 1470 ;"4800 [194]aud, 8 [196]atenbits, 1 [211]topbit
  100. 1480 ;"(NULL)arity disabled, 3-(NULL)ine left$andshake,
  101. 1485 ;"[198]ull [196]uplex
  102. 1490 [174]      lda #1         ;"(NULL)ogische ascilenummer: 1
  103. 1500 ^      ldx #2         ;"[199]eraetenummer: 2
  104. 1510 [174]      ldy #3         ;"(NULL)ekundaeradresse: 3
  105. 1520 ^      jsr setlfs     ;"setzen
  106. 1530 [174]      lda #4         ;"(NULL)erte fuer
  107. 1540 ^      ldx #<rsnam    ;"[210][211] 232
  108. 1550 [174]      ldy #[177]rsnam    ;"setzen
  109. 1560 ^      jsr setnam
  110. 1570 ^      jsr open       ;"[198]ile oeffnen
  111. 1580 [174]      ldx #3         ;"(NULL)eiger fuer (NULL)(NULL) 232 peekuffer
  112. 1590 baudl9 lda rstab,x    ;"setzen
  113. 1600 [174]      sta ribuf,x
  114. 1610 [174]      dex
  115. 1620 [174]      bpl baudl9
  116. 1650 ;
  117. 1660 [174]      ldx #1         ;"ascile als atnusgabefile
  118. 1670 ^      jsr chkout     ;"deklarieren
  119. 1680 [174]      ldx #[179]start    ;"(NULL)tartadresse fuer
  120. 1690 ^      ldy #>start    ;"das [211][197][209]-[198]ile als [218]eiger
  121. 1700 [174]      stx hpt        ;"merken
  122. 1710 ^      sty hpt + 1
  123. 1712 ^      lda 56334      ;"[212]imerirq sperren
  124. 1714 [174]      [175] #254
  125. 1716 [174]      sta 56334
  126. 1720 ;
  127. 1730 baudl2 ldy #0         ;"atnktuelles (NULL)eichen
  128. 1740 ^      lda (hpt),y    ;"holen
  129. 1750 [174]      bit mc[145]v      ;"(NULL)eichen konvertieren?
  130. 1760 ^      bmi baud51     ;"[206][197][201][206]: => weiter
  131. 1770 [174]      cmp #65        ;"(NULL)onst: lenommodore'atn(NULL)lenright$right$'
  132. 1780 ^      bcc baudw5     ;"nach [193][211][195][201][201]
  133. 1790 [174]      cmp #128
  134. 1800 [174]      bcs baud41
  135. 1810 [174]      [176]a #%00100000
  136. 1820 [174]      bne baudw5
  137. 1830 baud41 cmp #192
  138. 1840 [174]      bcc baudw5
  139. 1850 [174]      sec
  140. 1860 [174]      sbc #128
  141. 1870 baudw5 [175] #%01111111
  142. 1880 baud51 tax            ;"(NULL)eichen merken
  143. 1890 baudl3 lda enable     ;"[201]st das vorherige [218]eichen
  144. 1900 [174]      [175] #%00000001 ;"schon gesendet worden
  145. 1910 ^      bne baudl3     ;"[206][197][201][206]: => [215]eiter
  146. 1915 [174]      txa            ;"(NULL)eichen zurueckholen
  147. 1917 ^      jsr chrout     ;"und ueber [210][211] 232 ausgeben
  148. 1920 ;
  149. 1930 [174]      inc hpt        ;"(NULL)eiger auf aktuelles
  150. 1940 ^      bne baudw6     ;"[218]eichen um eins
  151. 1950 [174]      inc hpt [170] 1    ;"incrementieren
  152. 1960 baudw6 lda pt         ;"[201]st bereits das
  153. 1970 [174]      cmp hpt        ;"letzte (NULL)eichen
  154. 1980 ^      bne baudl2     ;"uebertragen worden
  155. 1990 [174]      lda pt [170] 1     ;"(NULL)valright$(NULL): => (NULL)eiter uebertragen
  156. 2000 ^      cmp hpt + 1
  157. 2010 ^      bne baudl2
  158. 2020 ;
  159. 2022 baudl4 lda enable     ;"[211]onst warten, bis das [218]eichen
  160. 2024 [174]      [175] #%00000001 ;"schon geschickt worden ist!
  161. 2026 ^      bne baudl4
  162. 2040 ^      jsr baudw2     ;"[198]ile schliessen
  163. 2060 ;
  164. 2070 [174]      lda 56334      ;"(NULL)imerirqs wieder
  165. 2080 ^      ora #1         ;"erlauben
  166. 2090 [174]      sta 56334
  167. 2100 [174]      rts            ;"(NULL)rogrammende
  168. 2300 rsnam .byte %00000000 ;"1 [211]topbit,8 [196]atenbits,4800 [194]aud
  169. 2310 [174]     .byte %00000000 ;"(NULL)arity disabled,ascull str$uplex,
  170. 2315 ;"3-[204]ine [200]andshake
  171. 2320 [174]     .byte 2         ;"(NULL)erte fuer 4800 peekaud
  172. 2330 ^     .byte 0
  173. 2340 ;
  174. 2350 rstab .byte <buf         ;"[212]abellen fuer [193]dressen
  175. 2360 [174]     .byte [177]buf         ;"der (NULL)(NULL) 232 peekuffer
  176. 2370 ^     .byte <(buf + 256)
  177. 2380 ^     .byte >(buf + 256)
  178. 60000 .end
  179. 60010 end
  180. 60100 open 15,8,15,"s:seq-transver"
  181. 60110 close 15
  182. 60120 save "seq-transver",8
  183.