home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh2x / sh25.d64 / univ.lader.asm (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  12KB  |  565 lines

  1. 10 OPEN 1,8,1,"0:GANZ NEU.OBJ"
  2. 12 REM OPEN 2,4
  3. 13 SYS 32768; EINSPRUNG FUER NEUEN PROFIASS
  4. 14 ;
  5. 15 ;   ***************************
  6. 16 ;   *   UNIVERSAL-LADER  V6   *
  7. 17 ;   *                         *
  8. 18 ;   *     VON UWE GERLACH     *
  9. 19 ;   *    TEL. 06151/316205    *
  10. 20 ;   *     BZW. 06622/3908     *
  11. 21 ;   ***************************
  12. 22 ;
  13. 23 ;
  14. 24 ; ZEIGT DEN DISKINHALT ALS MENUE UND
  15. 25 ; STARTET DAS AUSGEWAEHLTE PROGRAMM.
  16. 26 ; MIT 'UNIV.LADER.INIT' GEKENNZEICH-
  17. 27 ; NETE EINTRAEGE WERDEN NICHT BEAR-
  18. 28 ; BEITET. BYTE 22 JEDES EINTRAGS
  19. 29 ; ENTHAELT DAZU EINE KENNUNG.
  20. 30 ; BYTES 23 UND 24 ENTHALTEN DIE
  21. 31 ; STARTADRESSE FUER MASCHINENCODE.
  22. 32 ;
  23. 33 ;
  24. 100 .TIT "UNIVERSAL-LADER C64 & VC1541 "
  25. 110 .PAG 69
  26. 120 .OPT O1
  27. 130 ;
  28. 140 *=$0801; ANFANGSADRESSE
  29. 150 ;
  30. 200 PUFFER = $0300
  31. 210 AUSGABE = $0400
  32. 220 ZEIGER = $3B
  33. 230 SAVE = $05F0
  34. 240 FNAM = $FB
  35. 250 POINTER = $FD
  36. 260 PRINT = $FFD2
  37. 270 CHKOUT = $FFC9
  38. 280 CLRCH = $FFCC
  39. 290 SETFLS = $FFBA
  40. 300 SETNAM = $FFBD
  41. 310 OPEN = $FFC0
  42. 320 CHKIN = $FFC6
  43. 330 INPUT = $FFCF
  44. 340 CLOSE = $FFC3
  45. 350 CLEAR = $E544
  46. 360 END = $7000
  47. 370 BILDMIT = $0400+411+80
  48. 380 BILDEND = $0700+130
  49. 390 ANF =END+2
  50. 400 RAM = ANF+2
  51. 410 OBEN = $0400+80+11
  52. 420 LOAD = $FFD5
  53. 430 TPUF = $0277
  54. 500 ;
  55. 510 ;
  56. 520 ; BASIC - EINSPRUNG
  57. 530 ;
  58. 540 .BYTE $0B,$08,$0A,$00,$9E,$32
  59. 550 .BYTE $30,$36,$31,$00,$00,$00
  60. 560 ;
  61. 600 NOP: NOP: NOP; PLATZHALTER FUER SPRUNGBEFEHL
  62. 1000 ;
  63. 1010 ; KANAELE OEFFNEN
  64. 1020 ;
  65. 1050 STRT LDA #1
  66. 1060 LDX #8
  67. 1070 LDY #15
  68. 1080 JSR SETFLS; PARAMETER 1,8,15
  69. 1082 LDA #0
  70. 1085 JSR SETNAM; KEIN NAME
  71. 1090 JSR OPEN; OPEN 1,8,15
  72. 1250 ;
  73. 1260 ; FLOPPYPROGRAMM KOPIEREN UND ANSTOSSEN
  74. 1270 ;
  75. 1300 LDY #0; OFFSET ZUM LESEN
  76. 1302 STY FNAM; ZIEL-BASISADRESSE BEIM KOPIEREN
  77. 1350 ON LDX #1
  78. 1360 JSR CHKOUT; AUSGABE AUF BEFEHLSKANAL
  79. 1400 LDA #"M"
  80. 1410 JSR PRINT
  81. 1420 LDA #"-"
  82. 1430 JSR PRINT
  83. 1440 LDA #"W"
  84. 1450 JSR PRINT
  85. 1460 LDA FNAM; ADRESSE LOW
  86. 1470 JSR PRINT
  87. 1480 LDA #5; ADRESSE HIGH
  88. 1490 JSR PRINT
  89. 1500 LDA #34; ANZAHL DER FOLGENDEN BYTES
  90. 1510 JSR PRINT
  91. 1520 ;
  92. 1590 LDX #0; ZAEHELER BEFEHLSLAENGE
  93. 1600 FUELLEN LDA PROGANF,Y; BYTE HOLEN UND
  94. 1610 JSR PRINT; ALS DATUM FUER M-W SENDEN
  95. 1620 INY; OFFSET ERHOEHEN
  96. 1640 CPY #PROGEND-PROGANF
  97. 1650 BEQ COPYOK; FALLS FERTIG UEBERTRAGEN
  98. 1655 INX
  99. 1660 CPX #34; MAXIMALINHALT BEFEHLSPUFFER
  100. 1670 BNE FUELLEN; FALLS NOCH PLATZ
  101. 1691 JSR CLRCH; BEFEHL AUSFUEHREN
  102. 1692 LDA FNAM
  103. 1694 CLC
  104. 1696 ADC #34
  105. 1698 STA FNAM; ZIELADRESSE ERHOEHEN
  106. 1730 JMP ON; UND WEITER UEBERTRAGEN
  107. 1790 ;
  108. 1815 COPYOK JSR CLRCH; BEFEHL AUSFUEHREN
  109. 1816 ;
  110. 1817 LDX #1
  111. 1819 JSR CHKOUT; AUSGABE AUF BEFEHLSKANAL
  112. 1820 LDA #"U"
  113. 1830 JSR PRINT
  114. 1840 LDA #"C"
  115. 1850 JSR PRINT
  116. 1880 JSR CLRCH
  117. 2000 ;
  118. 2010 ; BILDMASKE AUFBAUEN
  119. 2020 ;
  120. 2021 LDA #0
  121. 2022 STA $D020; RAHMENFARBE
  122. 2023 STA $D021; HINTERGRUNDFARBE
  123. 2025 LDA #$0E
  124. 2030 STA $0286; SCHRIFTFARBE
  125. 2050 JSR CLEAR; BILDSCHIRM LOESCHEN
  126. 2060 LDY #0
  127. 2070 AUSG LDA PROGEND,Y
  128. 2080 JSR PRINT
  129. 2085 INY
  130. 2090 CPY #TEXT1-PROGEND
  131. 2100 BNE AUSG
  132. 2150 CLC
  133. 2200 LDX #24; ZEILE
  134. 2210 LDY #1; SPALTE
  135. 2220 JSR $E50A; CURSOR POSITIONIEREN
  136. 2250 LDY #0
  137. 2260 AUS LDA TEXT1,Y
  138. 2270 JSR PRINT
  139. 2280 INY
  140. 2290 CPY #TEXT2-TEXT1
  141. 2300 BNE AUS
  142. 2301 ;
  143. 2302 ;KOPIEREN DER LADE- / STARTROUTINE
  144. 2303 ;
  145. 2310 LDY #0; OFFSET
  146. 2311 LDA #<TEXT4
  147. 2312 STA FNAM
  148. 2313 LDA #>TEXT4
  149. 2314 STA FNAM+1; ZEIGER AUF QUELLE
  150. 2315 LDA #<$D000-(FIN+2-TEXT4)
  151. 2316 STA POINTER
  152. 2317 LDA #>$D000-(FIN+2-TEXT4)
  153. 2318 STA POINTER+1; ZEIGER AUF ZIEL
  154. 2319 COPY LDA (FNAM),Y
  155. 2320 STA (POINTER),Y; KOPIEREN
  156. 2321 INY
  157. 2322 CPY #FIN+3-TEXT4
  158. 2324 BNE COPY
  159. 2325 ;
  160. 2326 ;VORBEREITEN DES RAMS
  161. 2327 ;
  162. 2330 LDA #>RAM
  163. 2331 STA POINTER+1
  164. 2332 LDA #<RAM
  165. 2334 STA POINTER
  166. 2335 JSR RAUM; LEEREINTRAEGE ERZEUGEN
  167. 2337 LDA #>BILDMIT
  168. 2339 STA FNAM+1
  169. 2340 LDA #<BILDMIT
  170. 2341 STA FNAM
  171. 2350 LDX #1
  172. 2360 JSR CHKOUT; AUSGABE IN KOMMANDOKANAL
  173. 2370 LDX #0
  174. 2380 KOM LDA TEXT2,X
  175. 2390 JSR PRINT; BEFEHL "M-R"...
  176. 2395 INX
  177. 2400 CPX #TEXT3-TEXT2
  178. 2410 BNE KOM
  179. 2420 JSR CLRCH
  180. 2430 ;
  181. 2440 ;DATEN VON FLOPPY HOLEN
  182. 2445 ;
  183. 2450 LDX #1
  184. 2460 JSR CHKIN; EINGABEN VON FLOPPY
  185. 2470 LDX #0
  186. 2480 FN JSR INPUT
  187. 2490 JSR WANDEL
  188. 2500 STA $0400+13,X
  189. 2510 INX
  190. 2520 CPX #18; LAENGE DES DISKNAMENS
  191. 2530 BNE FN
  192. 2540 JSR INPUT
  193. 2550 JSR WANDEL
  194. 2560 STA $0400+35
  195. 2570 JSR INPUT
  196. 2580 JSR WANDEL
  197. 2590 STA $0400+36
  198. 2600 ;
  199. 2610 ; EINTRAEGE AUF BILDSCHIRM UND INS RAM
  200. 2620 ;
  201. 2740 ;
  202. 2750 LDX #20; POSITION IM FLOPPYPUFFER
  203. 2751 GET LDY #0; ZEIGER SPEICHER
  204. 2752 JSR INPUT; MARKIERUNG HOLEN
  205. 2753 CMP #$FF; KENNUNG LETZTES BYTE
  206. 2754 BEQ STOP; FALLS JA
  207. 2755 STA (POINTER),Y; INS RAM
  208. 2756 INY: INX
  209. 2758 JSR INPUT; ADRESSBYTE HOLEN
  210. 2759 STA (POINTER),Y; UND INS RAM
  211. 2760 INY: INX
  212. 2761 JSR INPUT; ADRESSBYTE HOLEN
  213. 2762 STA (POINTER),Y; AUCH INS RAM
  214. 2763 INY: INX
  215. 2768 ;
  216. 2777 TRANS JSR INPUT; FILENAMEN HOLEN
  217. 2778 STA (POINTER),Y; INS RAM
  218. 2780 JSR WANDEL
  219. 2790 STA (FNAM),Y; AUF DEN BILDSCHIRM
  220. 2830 INX
  221. 2860 INY
  222. 2870 CPY #19; LAENGE PARAMETER + FILENAME
  223. 2880 BNE TRANS
  224. 2890 LDA POINTER; RAM-ZEIGER
  225. 2900 CLC
  226. 2910 ADC #19; AKTUALISIEREN
  227. 2920 STA POINTER
  228. 2930 BCC CHECK
  229. 2940 INC POINTER+1; RAM-ZEIGER ERHOEHEN
  230. 2950 CHECK LDA FNAM
  231. 2960 CLC
  232. 2970 ADC #40; FUER NAECHSTE ZEILE
  233. 2980 STA FNAM
  234. 2990 BCC LOOK
  235. 3000 INC FNAM+1
  236. 3005 LOOK LDA FNAM+1
  237. 3010 CMP #>BILDEND; LETZTE DIRECTORYZEILE
  238. 3020 BNE GET
  239. 3025 LDA FNAM
  240. 3030 CMP #<BILDEND; LETZTE DIRECTORYZEILE
  241. 3040 BCC GET; UNBEDINGTER SPRUNG FALLS KLEINER
  242. 3050 ;
  243. 3052 ; WEITERE EINTRAEGE INS RAM
  244. 3054 ;
  245. 3060 GET1 LDY #0
  246. 3070 TRANS1 JSR INPUT
  247. 3080 CMP #$FF; LETZTES BYTE
  248. 3090 BEQ STOP
  249. 3110 STA (POINTER),Y; INS RAM
  250. 3120 INX
  251. 3130 BNE (null)1
  252. 3140 JSR LIES
  253. 3150 (null)1 INY
  254. 3160 CPY #19
  255. 3170 BNE TRANS1
  256. 3180 LDA POINTER
  257. 3190 CLC
  258. 3200 ADC #19
  259. 3210 STA POINTER
  260. 3220 BCC GET1
  261. 3230 INC POINTER+1; RAM-ZEIGER ERHOEHEN
  262. 3235 BCS GET1; UNBEDINGTER SPRUNG
  263. 3240 ;
  264. 3250 STOP JSR RAUM; LEEREINTRAEGE
  265. 3260 JSR CLRCH; EINGABE WIEDER VON TASTATUR
  266. 3270 LDA POINTER
  267. 3272 SEC
  268. 3274 SBC #<21*19
  269. 3280 STA END
  270. 3290 LDA POINTER+1
  271. 3300 SBC #>21*19
  272. 3305 STA END+1
  273. 3310 ;
  274. 3320 INIT LDA #<RAM
  275. 3330 STA ANF
  276. 3340 LDA #>RAM
  277. 3350 STA ANF+1
  278. 3355 LDX #17; <CURSOR DOWN> VORBEREITEN
  279. 3360 ;
  280. 3362 ; ANZEIGEN EINES RAMAUSSCHNITTS
  281. 3364 ;
  282. 3400 BPRNT LDA ANF
  283. 3410 STA POINTER
  284. 3420 LDA ANF+1
  285. 3430 STA POINTER+1; ZEIGER INS RAM
  286. 3440 ;
  287. 3450 LDY #10*19
  288. 3460 LDA (POINTER),Y; MARKIERUNG HOLEN
  289. 3470 CMP #"N"
  290. 3475 BEQ QUEST; ZEILE UEBERSPRINGEN
  291. 3477 ;
  292. 3480 LDA #>OBEN
  293. 3485 STA FNAM+1
  294. 3490 LDA #<OBEN
  295. 3495 STA FNAM; ZEIGER INS BILD
  296. 3499 ;
  297. 3500 ZPRNT LDY #3
  298. 3510 PRNT LDA (POINTER),Y; AUS DEM RAM
  299. 3515 JSR WANDEL; ASCII -> BILDSCHIRMCODE
  300. 3520 STA (FNAM),Y;AUF DEN BILDSCHIRM
  301. 3530 INY
  302. 3540 CPY #19
  303. 3550 BNE PRNT
  304. 3590 LDA POINTER
  305. 3600 CLC
  306. 3610 ADC #19
  307. 3620 STA POINTER
  308. 3630 BCC CHECK2
  309. 3640 INC POINTER+1; RAM-ZEIGER ERHOEHEN
  310. 3650 CHECK2 LDA FNAM
  311. 3660 CLC
  312. 3670 ADC #40; FUER NAECHSTE ZEILE
  313. 3680 STA FNAM
  314. 3690 BCC LOOK2
  315. 3700 INC FNAM+1
  316. 3705 LOOK2 LDA FNAM+1
  317. 3710 CMP #>BILDEND; LETZTE DIRECTORYZEILE
  318. 3720 BNE ZPRNT
  319. 3725 LDA FNAM
  320. 3730 CMP #<BILDEND; LETZTE DIRECTORYZEILE
  321. 3740 BCC ZPRNT; UNBEDINGTER SPRUNG
  322. 3745 ;
  323. 3750 LDX #3: LDA #$21; FARBE
  324. 3755 BALK STA $D9EB,X; HINTERGRUNDFARBE
  325. 3757 INX
  326. 3760 CPX #19
  327. 3765 BNE BALK
  328. 3800 ;
  329. 3810 ; SCROLLEN UND LADEN
  330. 3820 ;
  331. 3825 JSR CLRCH
  332. 3830 STY $BA
  333. 3840 ABFR JSR $FFE4; GET VON TASTATUR
  334. 3850 TAX; ERGEBNIS SICHERN
  335. 3860 QUEST CPX #145; <CURSOR UP>
  336. 3870 BEQ UPP
  337. 3880 CPX #17; <CURSOR DOWN>
  338. 3890 BEQ DOWN
  339. 3900 CPX #"Q"; <TASTE Q>
  340. 3910 BEQ QUIT
  341. 3912 CPX #3; <RUN/STOP>
  342. 3914 BEQ QUIT
  343. 3915 CPX #" "; <SPACE>
  344. 3916 BNE CONT
  345. 3917 JMP STRT
  346. 3920 CONT CPX #13; <RETURN>
  347. 3930 BNE ABFR
  348. 4800 ;
  349. 4810 LDA #2; FILENUMMER
  350. 4815 LDX #8; GERAETEADRESSE
  351. 4820 LDY #1; SEKUNDAERADRESSE
  352. 4825 JSR SETFLS; PARAMETER SETZEN
  353. 4827 ;
  354. 4830 LDA ANF
  355. 4832 CLC
  356. 4835 ADC #10*19; ANFANG MARKIERTE ZEILE
  357. 4836 STA POINTER; LOWBYTE ZEIGER
  358. 4837 TAX; NACH X BRINGEN
  359. 4838 BCC SNAME
  360. 4839 INC ANF+1; FALLS UEBERTRAG
  361. 4840 SNAME LDA ANF+1
  362. 4841 STA POINTER+1; HIGHBYTE ANFANG FILENAME: PHA; SICHERN
  363. 4842 LDY #1: LDA #$4C; BEFEHL JMP: STA 2061
  364. 4843 LDA (POINTER),Y: STA 2062: INY
  365. 4844 LDA (POINTER),Y: STA 2063; JMP STARTADRESSE
  366. 4845 INX: INX: INX; X AUF ANFANG FILENAME STELLEN
  367. 4846 PLA: TAY; HIGHBYTE ZEIGER HOLEN: LDA #16; LAENGE FILENAME
  368. 4847 JSR SETNAM
  369. 4848 JSR CLEAR; BILDSCHIRM LOESCHEN
  370. 4850 LDA #0; FLAG FUER LOAD
  371. 4855 LDX #$FF
  372. 4860 LDY #$FF
  373. 4865 JMP $D000-(FIN+2-TEXT4); ZUR KOPIERTEN ROUTINE
  374. 4870 ;
  375. 4890 QUIT LDA #1: JSR CLOSE: JMP CLEAR
  376. 4940 ;
  377. 4945 UPP JMP UP
  378. 4947 ;
  379. 4950 DOWN LDA ANF+1; FENSTERANFANG HIGH
  380. 4960 CMP END+1; ABLAGESPEICHERENDE
  381. 4970 BEQ DOWN1; FALLS ANF=END
  382. 4975 BCS HILF; FALLS ANF>=END
  383. 4990 DOWN2 LDA ANF; FENSTERANFANG LOW
  384. 5000 CLC
  385. 5015 ADC #19; NAECHSTE ZEILE
  386. 5020 STA ANF
  387. 5025 BCC HILF1
  388. 5030 INC ANF+1
  389. 5035 JMP BPRNT; NEUEN AUSSCHNITT ANZEIGEN
  390. 5040 DOWN1 LDA ANF
  391. 5050 CMP END
  392. 5060 BCS HILF
  393. 5065 BCC DOWN2
  394. 5070 ;
  395. 5080 UP LDA ANF+1
  396. 5090 CMP #>RAM+19
  397. 5100 BCC HILF
  398. 5105 BNE UP1
  399. 5110 LDA ANF
  400. 5120 CMP #<RAM+19
  401. 5130 BCC WTR
  402. 5140 UP1 LDA ANF
  403. 5150 SEC
  404. 5160 SBC #19; ZEILE HOCH
  405. 5170 STA ANF
  406. 5180 BCS HILF1
  407. 5190 DEC ANF+1
  408. 5200 HILF1 JMP BPRNT
  409. 5210 WTR JMP ABFR; KEINE REAKTION
  410. 5220 ;
  411. 5230 HILF LDX #145; <CURSOR UP> VORBEREITEN
  412. 5240 JMP BPRNT; UND AUSSCHNITT ANGLEICHEN
  413. 9200 ;
  414. 9210 ; WANDLUNG ASCII -> BILDSCHIRMCODE
  415. 9220 ;
  416. 9250 WANDEL CMP #63
  417. 9260 BCS ZAHLEN; FALLS >=63
  418. 9270 RTS; ENDE WANDLUNG, DA <63
  419. 9280 ZAHLEN CMP #96
  420. 9290 BCS GROSS; FALLS >=96
  421. 9300 SBC #63; (CARRY IST 0!)
  422. 9310 RTS; ENDE WANDLUNG
  423. 9320 GROSS SBC #32; (CARRY IST 1!)
  424. 9330 CMP #128
  425. 9340 BCS SONDER; FALLS >=160
  426. 9350 RTS; ENDE WANDLUNG
  427. 9360 SONDER SBC #96
  428. 9370 RTS; ENDE WANDLUNG
  429. 9400 ;
  430. 9410 ; LEERE EINTRAEGE ERZEUGEN
  431. 9420 ;
  432. 9450 RAUM LDX #0
  433. 9460 LDY #0
  434. 9470 LDA #" "
  435. 9480 JSR WANDEL
  436. 9490 FILL STA (POINTER),Y; INS RAM
  437. 9500 INC POINTER
  438. 9510 BNE JUMP
  439. 9520 INC POINTER+1; HIGHBYTE ERHOEHEN
  440. 9530 JUMP INX
  441. 9540 CPX #10*19; ANZAHL FUEHRENDER LEERZEICHEN
  442. 9550 BNE FILL
  443. 9560 RTS; ENDE RAUM
  444. 9600 ;
  445. 9610 ; NEUE DATEN VON DISK HOLEN
  446. 9620 ;
  447. 9630 LIES TYA
  448. 9640 PHA; Y RETTEN
  449. 9645 JSR CLRCH
  450. 9650 LDX #1
  451. 9660 JSR CHKOUT; ZEICHEN AUF KANAL # 1
  452. 9670 LDX #0
  453. 9680 KOMM LDA TEXT3,X; "M-E"...
  454. 9690 JSR PRINT
  455. 9700 INX
  456. 9710 CPX #TEXT4-TEXT3
  457. 9720 BNE KOMM
  458. 9722 JSR CLRCH
  459. 9724 LDX #1
  460. 9726 JSR CHKOUT
  461. 9728 LDX #0
  462. 9730 KMND LDA TEXT2,X; "M-R"...
  463. 9732 JSR PRINT
  464. 9734 INX
  465. 9736 CPX #TEXT3-TEXT2
  466. 9738 BNE KMND
  467. 9739 JSR CLRCH
  468. 9740 LDX #1
  469. 9750 JSR CHKIN; DATEN WIEDER VON FLOPPY
  470. 9755 LDX #0; WIEDERHERSTELLEN
  471. 9760 PLA
  472. 9770 TAY; Y WIEDERHOLEN
  473. 9790 RTS; ENDE DATEN HOLEN
  474. 10000 ;
  475. 10010 ;
  476. 10020 ; FLOPPYPROGRAMM
  477. 10030 ;
  478. 11000 PROGANF JSR $D042; FLOPPY INITIALISIEREN
  479. 11005 START LDA #18
  480. 11010 STA $06; TRACK
  481. 11020 LDX #0
  482. 11030 STX $07; SEKTOR
  483. 11032 LDA #$80; JOBCODE "BLOCK LESEN"
  484. 11034 STA $00; ALS AUFTRAG FUER PUFFER 0
  485. 11036 WARTEN LDA $00; STATUS PUFFER 0
  486. 11040 BMI WARTEN; FALLS NOCH NICHT FERTIG
  487. 11050 CMP #1; FEHLER ABFRAGEN
  488. 11060 BNE ENDE; FALLS FEHLER AUFGETRETEN
  489. 11100 ;
  490. 11110 DNAME LDA PUFFER+144,X; DISKNAMEN HOLEN
  491. 11120 STA AUSGABE,X; IN DEN AUSGABEPUFFER
  492. 11130 INX
  493. 11140 CPX #20; NAME UND ID KOMPLETT
  494. 11150 BNE DNAME; WEITER FALLS NEIN
  495. 11500 ;
  496. 11510 NEXT LDA PUFFER; BLOCKZEIGER TRACK
  497. 11520 BEQ ENDE; FALLS NAECHSTER TRACK 0
  498. 11530 STA $06
  499. 11540 LDA PUFFER+1; BLOCKZEIGER SEKTOR
  500. 11550 STA $07
  501. 11560 LDA #$80; JOBCODE "BLOCK LESEN"
  502. 11570 STA $00; ALS AUFTRAG FUER PUFFER 0
  503. 11580 WARTEN1 LDA $00; STATUS PUFFER 0
  504. 11590 BMI WARTEN1; FALLS NOCH NICHT FERTIG
  505. 11700 LDA #>PUFFER+2
  506. 11710 STA ZEIGER+1
  507. 11720 LDA #<PUFFER+2; ANFANG 1. EINTRAG
  508. 11730 NOCHMAL STA ZEIGER; ZEIGER IN PUFFER HERSTELLEN
  509. 11750 LDY #0
  510. 11760 LDA (ZEIGER),Y; FILETYP HOLEN
  511. 11770 BEQ WEITER; FALLS DELETED
  512. 11800 LDY #22
  513. 11810 LDA (ZEIGER),Y; MARKIERUNG HOLEN
  514. 11820 BMI WEITER; FALLS MARKIERT
  515. 11830 STA AUSGABE,X; SONST IN DEN AUSGABEPUFFER
  516. 11840 INX: INY
  517. 11842 LDA (ZEIGER),Y; RESERVIERTE BYTES
  518. 11844 STA AUSGABE,X; HOLEN
  519. 11846 INX: INY
  520. 11847 LDA (ZEIGER),Y; (STARTADRESSE)
  521. 11848 STA AUSGABE,X; UND UEBERGEBEN
  522. 11849 INX
  523. 11850 LDY #3; ANFANG FILENAME
  524. 11860 NAME LDA (ZEIGER),Y; ZEICHEN HOLEN
  525. 11870 STA AUSGABE,X; UND IN DEN AUSGABEPUFFER
  526. 11880 INX
  527. 11890 BNE OK; FALLS PUFFER NOCH NICHT VOLL
  528. 11950 STY SAVE; Y RETTEN
  529. 11960 RTS; RUECKGABE DER KONTROLLE ANS DOS
  530. 13000 ;
  531. 13010 EINSPRG LDX #0
  532. 13020 LDY SAVE; REGISTER WIEDER HERSTELLEN
  533. 13050 OK INY
  534. 13060 CPY #19; LETZTES ZEICHEN DES NAMENS
  535. 13070 BNE NAME; FALLS NOCH NICHT FERTIG
  536. 13100 WEITER LDA ZEIGER
  537. 13110 CLC; ADDITION VORBEREITEN
  538. 13120 ADC #32; ZEIGER AUF NAECHSTEN EINTRAG
  539. 13130 BCC NOCHMAL; FALLS NOCH EIN EINTRAG
  540. 13140 BCS NEXT; SONST NAECHSTEN BLOCK
  541. 13190 ;
  542. 13200 ENDE LDA #$FF; ZEICHEN FUER ENDE
  543. 13210 STA AUSGABE,X; IN DEN AUSGABEPUFFER
  544. 13220 RTS; KONTROLLE ZURUECK ANS DOS
  545. 13250 ;
  546. 13395 PROGEND .ASC "  DISK-NAME:                   ID:      "
  547. 13400 TEXT1 .ASC "MIT CURSORTASTEN AUSWAEHLEN UND RETURN[158]"
  548. 13410 TEXT2 .ASC "M-R": .BYTE <AUSGABE, >AUSGABE, 0
  549. 13420 TEXT3 .ASC "M-E": .BYTE <$0500+EINSPRG-PROGANF
  550. 13430 .BYTE >$0500+EINSPRG-PROGANF
  551. 14000 ;
  552. 14010 ; LADE- / STARTROUTINE
  553. 14020 ;
  554. 14050 TEXT4 JSR LOAD
  555. 14060 STX $2D
  556. 14070 STY $2E; ZEIGER PROGRAMMENDE
  557. 14868 JSR $A533
  558. 14870 LDA #1: JSR CLOSE; LADEKANAL SCHLIESSEN
  559. 14875 JSR CLEAR; BILDSCHIRM LOESCHEN
  560. 14877 PLA: PLA
  561. 14880 LDA #$A7: PHA
  562. 14882 LDA #$AE: PHA; STACK AKTUALISIEREN
  563. 14884 FIN JMP $A659; KORREKTER RUECKSPRUNG
  564. 14910 .END
  565.