home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh2x / sh28b.d64 / geoterm.src < prev    next >
Text File  |  1995-03-30  |  31KB  |  1,994 lines

  1. ;
  2. ; *** ╟EOS-╠IBRARIAN ╓3.1 , (├) 1988 BY ├ARSTEN ├LASOHM ***
  3. ;  **                                                   **
  4. ;  **              ╙TAND: 16. 3.1988                    **
  5. ORG $0402
  6. JMP ENDE
  7. ;
  8. ; *** ╠ABELS,ALLGEMEINE ***
  9. ;
  10. :R0=$02      ;┴RBEITSREGISTER
  11. :R1=$04      ;DER ╟EOS-╥OUTINEN
  12. :R2=$06
  13. :R3=$08
  14. :R4=$0A
  15. :R5=$0C
  16. :R6=$0E
  17. :R7=$10
  18. :R10=$16
  19. :R11=$18
  20. :ZP1=$46     ;┌EROPAGE-┌EIGER FUER
  21. :ZP2=$48     ;┴PPLIKATIONEN
  22. :ZP3=$4A
  23. :ZP4=$4C
  24. :ZP5=$4E
  25. :ZP10=$58
  26. :ZP27=$7A
  27. :ZP28=$7C
  28. :ZP29=$7E
  29. :NULL=0
  30. :SET=$FF        ;╞LAG SETZEN
  31. :CLEAR=0        ;╞LAG LOESCHEN
  32. ;
  33. ; *** ╠ABELS, ╥OUTINEN VON ╟EOS ***
  34. ;
  35. :HLINER=$C118   ;    ''       VON ╚╠╔╬┼
  36. :INITRAMR=$C181 ;    ''       VON ╔╬╔╘╥┴═
  37. :PUTSPRR=$C1CF  ;    ''       VON ╨╒╘╙╨╥
  38. :PROMPTR=$C1C0  ;    ''       VON ╨╥╧═╨╘
  39. :PUTCHARR=$C145 ;    ''       VON ╨╒╘├╚┴╥
  40. ;
  41. ; *** ╠ABLES, ─ATEN VON ╟EOS ***
  42. ;
  43. :MOUSEX=$3A     ;╪-╦OORD. DER ═AUS
  44. :MOUSEY=$3C     ;┘-╦OORD. DER ═AUS
  45. :BORDO=$84B8
  46. :BORDU=$84B9    ;╟RENZEN
  47. :BORDL=$84BA    ;FUER ═AUS
  48. :BORDR=$84BC
  49. :MENUNR=$84B7   ;AKTUELLES ═ENUE
  50. :VEKTAST=$84A3  ;╓EKTOR FUER ╘ASTENDRUCK
  51. :VERSION=$C1D3  ;BEI 0 IST ES ╓1.3
  52. :KLICK=$84B5    ;╓ERHALTENSWEISE BEI ╔CON/═ENUEKLICK
  53. :RUECKJMP=$849B ;╥UECKSPRUNG FUER ═AIN/┴CCESSORY
  54. :CHRBREIT=$8807 ;┬REITE DES LETZTEN ┌EICHENS
  55. :TASTCD=$8504   ;├ODE DER GEDRUECKTEN ╘ASTE
  56. :DISKID=$841E   ;─ISKNAME+╔─ VON ╠AUFW. ┴
  57. :DIREIN=$8400   ;─IREINTRAG NACH ╞╔╬─╞╔╠┼
  58. :BLKPF=$8000    ;╨UFFER FUER ─ISKBLOECKE
  59. :ZUIRQ=$849F    ;╓EKTOR FUER ZUSAETZLICHEN ╔╥╤
  60. ;
  61. ; *** ╠ABELS, ALTE ╙YSTEMROUTINEN ***
  62. ;
  63. :FOPENR=$FFC0   ;╞ILE OEFFNEN
  64. :CLOSER=$FFC3   ;╞ILE SCHLIESSEN
  65. :CHKOUTR=$FFC9  ;┴USGABEGERAET FESTLEGEN
  66. :CHKINR=$FFC6   ;┼INGABEGERAET    ''
  67. :CLRCH=$FFCC    ;┴US- UND ┼INGABE RUECKSETZEN
  68. :SETLFSR=$FFBA  ;╞ILEPARAMETER SETZEN
  69. :SETNAM=$FFBD   ;╞ILENAME SETZEN
  70. :BSOUT=$FFD2    ;┌EICHEN AUSGEBEN
  71. :GETIN=$FFE4    ;  ''    EINLESEN
  72. ;
  73. ; *** ╠ABELS, ALTE ╙YSTEMDATEN
  74. ;
  75. :CIA1=56320      ;┬ASISADR. DER ├╔┴1
  76. :ENABLE=$2A1     ;╬═╔-╞LAG FUER ├╔┴2
  77. :STEUERREG=$293  ;╥╙-232 ╦ONTROLLREG.
  78. :BEFEHLSREG=$294 ;╥╙-232 ╦OMMANDOREG.
  79. :RS232ST=$297    ;╥╙-232 ╙TATUSBYTE
  80. ;
  81. ; *** ╠ABELS,╨╒╘├╚┴╥ ***
  82. ;
  83. :BACKSPC=8
  84. :LF=10
  85. :CR=13
  86. :BOLDON=24
  87. :ITALICON=25
  88. :OUTLINE=26
  89. :PLAINTEXT=27
  90. ;
  91. ; *** ╠ABELS,─╔┴╠┬╧╪ ***
  92. ;
  93. :OK=$01
  94. :CANCEL=$02
  95. ;
  96. ; *** ╠ABELS,─╧═┼╬╒ ***
  97. ;
  98. :VERTIKAL=$80
  99. :HORIZONTAL=0
  100. :VISIBLE=$40
  101. :CLOSING=0
  102. :SPRUNG=0
  103. :SUBMENU=$80
  104. ;
  105. ; *** ═AKROS ***
  106. ;
  107. ;
  108. ; *** ┬┘╘┼╙ + ╫╧╥╘┼ ╦╧╨╔┼╥┼╬ + ╓┼╥╙├╚╔┼┬┼╬ ***
  109. ;
  110. ; * ╫ERT IN ╙PEICHERSTELLE SCHREIBEN *
  111. :POKE M 2          ;(┴DRESSE;╫ERT)
  112. LDA #@1
  113. STA @0
  114. /
  115. ; * ╫ORT 'WERT' IN 'REGISTER' LADEN *
  116. :LOADW M 2     ;(WERT;REGISTER)
  117. POKE @1,<@0
  118. POKE @1+1,>@0
  119. /
  120. ; * ┬YTE KOPIEREN *
  121. :COP M 2        ;(╙RCBYTE;─ESTBYTE)
  122. LDA @0
  123. STA @1
  124. /
  125. ; * ╫ORT KOPIEREN *
  126. :TRANSW M 2      ;(SRCREG;DESTREG)
  127. COP @0,@1
  128. COP @0+1,@1+1
  129. /
  130. ;
  131. ; *** ╟╥┴╞╔╦ ***
  132. ;
  133. ; * ┬ILDSCHIRM LOESCHEN *
  134. :CLS M 0
  135. JSR CLSROUT
  136. /
  137. ; * ═USTER SETZEN *
  138. :PATTERN M 1   ;(═USTER)
  139. LDA #@0
  140. JSR $C139
  141. /
  142. ; * ╚ORIZONTALE ╠INIE ZIEHEN *
  143. :HLINE M 4     ;(╪-LINKS;╪-RECHTS;┘;═USTER)
  144. LOADW @0,R3
  145. LOADW @1,R4
  146. LOADW @2,R11
  147. LDA #@3
  148. JSR $C118
  149. /
  150. ; * ┴USGEFUELLTES ╥ECHTECK ZEICHNEN *
  151. :BOX M 5       ;(╪-L.O.;┘-L.O.;╪-R.U.;┘-R.U.;═USTER)
  152. PATTERN @4
  153. JSR $C19F
  154. B @1,@3
  155. W @0,@2
  156. /
  157. ; * ╥ECHTECK ZEICHNEN *
  158. :FRAME M 5      ;(╪-L.O.;┘-L.O.;╪-R.U.;┘-R.U.;═USTER)
  159. LOADW @0,R3
  160. POKE 6,@1
  161. LOADW @2,R4
  162. POKE 7,@3
  163. LDA #@4
  164. JSR $C127
  165. /
  166. ; * ╥ECHTECKIGEN ┬EREICH INVERTIEREN *
  167. :INVBOX M 4     ;(╪-L.O.;┘-L.O.;╪-R.U.;┘-R.U.)
  168. LOADW @0,R3
  169. POKE 6,@1
  170. LOADW @2,R4
  171. POKE 7,@3
  172. JSR $C12A
  173. /
  174. ; * ─IALBOX ERZEUGEN *
  175. :DIALBOX M 1    ;(┴DRESSE)
  176. LOADW @0,R0
  177. JSR $C256
  178. /
  179. ; * ═AKROS FUER ─╔┴╠┬╧╪ *
  180. ;
  181. ; * ╫ERTE FUER ─IALBOX FESTLEGEN *
  182. :INITDIALBOX M 5  ;(═USTER;┘O;┘U;╪L;╪R)
  183. B @0,@1,@2
  184. W @3,@4
  185. /
  186. ; * ╙TANDARDDIALBOX ERZEUGEN *
  187. :STDDIALBOX M 1 ;(═USTER)
  188. B $80+@0
  189. ;ES FOLGEN DIE ╦OMMANDOS
  190. /
  191. ;
  192. ; * ╞ELD IN ─IALBOX BRINGEN *
  193. :FELD M 3     ;(╞ELDOPCODE;╪;┘)
  194. B @0,@1/8,@2
  195. /
  196. ; * FESTEN ╘EXT IN ─IALBOX ANZEIGEN *
  197. :TEXTAUS M 3     ;(╪;┘;╘EXTADRESSE)
  198. B $0B,@0,@1
  199. W @2
  200. /
  201. ; * ╘EXT IN ─IALBOX EINGEBEN *
  202. :TEXTEIN M 4     ;(╪;┘;╥EGISTER;═AXZEICHEN)
  203. B $0D,@0,@1,@2,@3
  204. /
  205. ; * ╞ILES AUSWAEHLEN (╞INDTYPE-╨ARAM.NICHT VERGESSEN!) *
  206. :GETFILES M 2    ;(╪;┘)
  207. B $10,@0,@1
  208. /
  209. ; * ╥UECKSPRUNG BEI ╦NOPF AUSSERHALB VON ╞ELDERN *
  210. :AUSSRUECK M 0
  211. B $0E
  212. /
  213. ; * ╔CON IN ─┬-┬OX GENERIEREN *
  214. :USRICON M 3     ;(╪;┘;╔CONTABELLENADR.)
  215. B $12,@0/8,@1
  216. W @2
  217. /
  218. ; * ╒NTERROUTINE VOR ─┬ INSTALLIEREN *
  219. :USRROUT M 1     ;(┴DRESSSE)
  220. B $13
  221. W @0
  222. /
  223. ; * ╓ON EIGENER ╥OUTINE ZURUECK ZUR ─┬ *
  224. :RSTDIAL M 1     ;(├ODE FUER $851D)
  225. POKE $851D,@0
  226. STA R0
  227. JMP $C2BF
  228. /
  229. ; * AUF ╟┼╘╞╔╠┼╙ VORBEREITEN *
  230. :INITGETFILES M 3   ;(╞ILETYP;┴BLAGEADR.;CLASS)
  231. POKE $10,@0
  232. LOADW @1,R5
  233. LOADW @1,R6
  234. LOADW @2,R10
  235. /
  236. ; *** ┼NDE ─╔┴╠┬╧╪-═AKROS ***
  237. ;
  238. ; * ╞LAECHE AUS 2. IN 1.┬ITMAP HOLEN *
  239. :RECVBOX M 4  ;(╪L.O;┘L.O.;╪R.U.;┘R.U.)
  240. JSR $C1A5
  241. B @1,@3
  242. W @0,@2
  243. /
  244. ;
  245. ; *** ╔├╧╬╙ ╒╬─ ═┼╬╒┼╙ ***
  246. ;
  247. ; * ╔CONS ANZEIGEN UND FREIGEBEN *
  248. :DOICONS M 1     ;(╘ABELLENADR.)
  249. LOADW @0,R0
  250. JSR $C15A
  251. /
  252. ; * ═AKROS FUER ─╧╔├╧╬╙ *
  253. ;
  254. ; * ╓ORSPANN DER ╔CONTABELLE *
  255. :ICONTAB M 3     ;(┴NZAHL;═AUS-╪;═AUS-┘)
  256. B @0
  257. W @1
  258. B @2
  259. /
  260. ; * ┼INTRAG FUER EIN ╔CON *
  261. :ICON M 6        ;(┌G.AUF ┬ITMAP;╪;┘;┬REITE;╚OEHE;╥OUTADR.)
  262. W @0
  263. B @1/8,@2,@3/8,@4
  264. W @5
  265. /
  266. ; * ═ENUE ANZEIGEN UND FREIGEBEN *
  267. :DOMENU M 2      ;(╘ABELLENADR.;╨UNKTNR.)
  268. LOADW @0,R0
  269. LDA #@1
  270. JSR $C151
  271. /
  272. ;
  273. ; * ═AKROS FUER ─╧═┼╬╒ *
  274. ;
  275. ; * ╓ORSPANN DER ═ENUETABELLE *
  276. :INITMENU M 7    ;(╟RENZE ╧BEN;╒NTEN;╠INKS;╥ECHTS;
  277.                  ; ┴NZAHL;SCHLIESSEN?;HORI./VERT.)
  278. B @0,@1
  279. W @2,@3
  280. B @4!@5!@6
  281. /
  282. ; * ┼INTRAG FUER ═ENUEPUNKT *
  283. :MPOINT M 3   ;(╘EXTADR.;╘YP;╨ARAMETER ZU 2.)
  284. W @0
  285. B @1
  286. W @2
  287. /
  288. ; * ┴US ╒NTERMENUE EINS ZURUECK *
  289. :PREMENU M 0
  290. JMP $C190
  291. /
  292. ; * ═ENUE ERNEUT ZUR ┴USWAHL GEBEN *
  293. :REDOMENU M 0
  294. JMP $C193
  295. /
  296. ; * ╚AUPTMENUE ANZEIGEN *
  297. :MENU1 M 0
  298. JMP $C1BD
  299. /
  300. ; * ═ENUE-╥ECHTECK WIEDERHERSTELLEN *
  301. :RECVMENU M 1    ;(╬UMMER)
  302. LDX #@0
  303. JSR $C154
  304. /
  305. ; * ┼NDE ─╧═┼╬╒-═AKROS *
  306. ;
  307. ; *** ╘┼╪╘ ***
  308. ;
  309. ; * ╘EXT IN ╟EOSFORMAT KONVERTIEREN *
  310. :TXTCONVERT M 1  ;(┴DRESSE)
  311. LOADW @0,ZP27
  312. JSR CONVERT
  313. /
  314. ; * ┼NDEKENNZEICHEN FUER TXTCONVERT *
  315. :TEXTENDE M 0
  316. B NULL,NULL
  317. /
  318. ; * ┌EICHENSATZ AKTIVIEREN *
  319. :LOADSET M 1     ;(┴DRESSE)
  320. LOADW @0,R0
  321. JSR $C1CC
  322. /
  323. ; * ┌EICHEN VON ╘ASTATUR HOLEN *
  324. :NEXTCHAR M 0
  325. JSR $C2A7
  326. /
  327. ; * ╙YSTEMZEICHENSATZ AKTIVIEREN *
  328. :SYSFONT M 0
  329. JSR $C14B
  330. /
  331. ; * ┌AHL (IN R0) DEZIMAL AUSGEBEN *
  332. :PUTDEC M 2      ;(╪;┘)
  333. LOADW @0,R11
  334. POKE 5,@1
  335. JSR $C184
  336. /
  337. ; * ┌AHL DEZ. AUSGEBEN (EIG. ╥OUTINE,0<X<256) *
  338. :ZAHLAUS M 3     ;(┴DR.;╪;┘)
  339. LOADW @1,R11
  340. POKE 5,@2
  341. COP @0,ZP27
  342. JSR ZAHLRT
  343. /
  344. ; * ┌EICHEN AUSGEBEN (IM ┴KKU) *
  345. :PUTCHAR M 0
  346. JSR $C145
  347. /
  348. ; * ┌EICHENCODE (IM ┴KKU) AUSWERTEN *
  349. :HCHAR M 0
  350. JSR $C1C9
  351. /
  352. ; * ╙TRING AUSGEBEN *
  353. :PUTSTR M 3      ;(╪;┘;┴DR.)
  354. LOADW @0,R11
  355. POKE 5,@1
  356. LOADW @2,R0
  357. JSR $C148
  358. /
  359. ; * ╒NTERMAKROS ZU ╔╨╒╘╙╘╥ UND ╨╒╘├╚┴╥ *
  360. :GOTOX M 1       ;(╪-╦OORD.)
  361. B $14
  362. W @0
  363. /
  364. ; * ┼NDE ╨╒╘├╚┴╥-═AKROS *
  365. ;
  366. ; * ╙TRINGS BEKANNTER ╟ROESSE VERGLEICHEN *
  367. :CMPFSTR M 3  ;(┴DR.1;┴DR.2;╠AENGE)
  368. LDX #@0
  369. LDY #@1
  370. LDA #@2
  371. JSR $C26E
  372. /
  373. ;
  374. ; *** ╙╧╬╙╘╔╟┼╙ ***
  375. ;
  376. ; * ─ESKTOP LADEN UND STARTEN *
  377. :DESKTOP M 0
  378. JMP $C22C
  379. /
  380. ; * ═┴╔╬ AUFRUFEN *
  381. :MAIN M 1      ;(╥ETURNADR.)
  382. LOADW @0,RUECKJMP
  383. RTS
  384. /
  385. ; * ┼IN/┴USGABE UEBER ALTE ╥OUTINEN VORBEREITEN *
  386. :INITIO M 0
  387. JSR $C25C
  388. /
  389. ; * ┼IN/┴USGABE UEBER ALTE ╥OUTINEN BEENDEN *
  390. :DONEIO M 0
  391. JSR $C25F
  392. /
  393. ; * ╔/╧-╞EHLER ANZEIGEN *
  394. :ERROR M 2    ;(╧╦ADR.;┼RRORADR.)
  395. TXA
  396. BEQ @0
  397. LOADW @1,ZP28
  398. JMP ERRORROUT
  399. /
  400. ;
  401. ; *** ═┴╒╙ UND ╘┼╪╘├╒╥╙╧╥ ***
  402. ;
  403. ; * ═AUS"SPIELWIESE" EINSTELLEN *
  404. :MOUSEBORDER M 4 ;(OBERE;UNTERE;LINKE;RECHTE ╟RENZE)
  405. POKE BORDO,@0
  406. POKE BORDU,@1
  407. LOADW @2,BORDL
  408. LOADW @3,BORDR
  409. /
  410. ; * ═AUSZEIGER AUF ╦OORD. SETZEN *
  411. :SETMOUSE M 2    ;(╪;┘)
  412. LOADW @0,MOUSEX
  413. POKE MOUSEY,@1
  414. /
  415. ; * ╟ROESSE FUER ╘EXTCURSOR FESTLEGEN *
  416. :PROMPT M 1      ;(╚OEHE IN ╨IXEL)
  417. LDA #@0
  418. JSR $C1C0
  419. /
  420. ; * ╘EXTCURSOR EINSCHALTEN *
  421. :PRON M 0
  422. JSR $C29B
  423. /
  424. ; * ╘EXTCURSOR AUSSCHALTEN *
  425. :PROFF M 0
  426. JSR $C29E
  427. /
  428. ; * ╦OORD. FUER ├URSOR SETZEN *
  429. :SETCR M 0
  430. JSR CRSET
  431. /
  432. ;
  433. ; *** ╙╨╥╔╘┼╙ ***
  434. ;
  435. ; * ╙PRITE POSITIONIEREN *
  436. :PUTSPR M 3        ;(╬UMMER;╪;┘)
  437. POKE 8,@0
  438. LOADW @1,R4
  439. POKE $C,@2
  440. JSR $C1CF
  441. /
  442. ;
  443. ; *** ─╔╙╦, ╙┼╤. ╒.┴. ***
  444.  
  445. ; * ╙ELEKTIERTE ╞ILENAMENLISTE BEZIEHEN *
  446. :FINDTYPE M 4      ;(╞ILETYP;┴BLAGEADR;═AXLAENGE;CLASS)
  447. POKE $10,@0
  448. LOADW @1,R6
  449. POKE $11,@2
  450. LOADW @3,R10
  451. JSR $C23B
  452. /
  453. ; * ╞ILE LADEN (WEITERE ╨ARAMETER) *
  454. :READ M 2      ;(╠ADEADR.;═AXLAENNGE)
  455. LOADW @0,R7
  456. LOADW @1,R2
  457. JSR $C1FF
  458. /
  459. ; * ╞ILE LADEN UND STARTEN (WEITERE ╨ARAM.) *
  460. :GETFILE M 0
  461. JMP $C208
  462. /
  463. ; * ─ISKETTE OEFFNEN *
  464. :OPENDISK M 0
  465. JSR $C2A1
  466. /
  467. ; * ╞ILEEINTRAG IM ─IR. SUCHEN *
  468. :FINDFILE M 1  ;(╞ILENAMENADR.)
  469. LOADW @0,R6
  470. JSR $C20B
  471. /
  472. ; * ┬LOCK VON ─ISK EINLESEN (WEITERE ╨ARAMETER!) *
  473. :GETBLK M 1    ;(╙PEICHERADR.)
  474. LOADW @0,R4
  475. JSR $C1E4
  476. /
  477. ; * ┬YTE AUS SEQ. ─ATEI HOLEN *
  478. :READBYTE M 0
  479. JSR $C2B6
  480. /
  481. ; * ╘URBOBETRIEB AUSSCHALTEN *
  482. :TURBOFF M 0
  483. JSR $C232
  484. /
  485. ; * ╘URBO AUS UND ╞LAG FUER FEHLENDE ╥OUT. SETZEN *
  486. :TURBOPUR M 0
  487. JSR $C235
  488. /
  489. ; * ╘URBOBETRIEB ANSCHALTEN *
  490. :TURBON M 0
  491. JSR $C214
  492. /
  493. ;
  494. ; *** ─╔╙╦, ╓╠╔╥ ***
  495. ;
  496. ; * ╓╠╔╥-╞ILE OEFFNEN *
  497. :OPENREC M 1   ;(┌G. AUF ╞ILENAMEN)
  498. LOADW @0,R0
  499. JSR $C274
  500. /
  501. ; * ╓╠╔╥-╞ILE SCHLIESSEN *
  502. :CLOSEREC M 0
  503. JSR $C277
  504. /
  505. ; * ┌EIGER AUF ─ATENSATZ RICHTEN *
  506. :POINTREC M 1  ;(╬UMMER)
  507. LDA #@0
  508. JSR $C280
  509. /
  510. ; * ─ATENSATZ LOESCHEN *
  511. :DELREC M 0
  512. JSR $C283
  513. /
  514. ; * ─ATENSATZ EINFUEGEN *
  515. :INSREC M 0
  516. JSR $C286
  517. /
  518. ; * ┴KTUELLEN ─ATENSATZ EINLESEN *
  519. :READREC M 2   ;(┌IELADR.;MAX.╠AENGE)
  520. LOADW @0,R7
  521. LOADW @1,R2
  522. JSR $C28C
  523. /
  524. ; * ┴KTUELLEN ─ATENSATZ SPEICHERN *
  525. :WRITEREC M 2  ;(┴NFADR.;╠AENGE)
  526. LOADW @0,R7
  527. LOADW @1,R2
  528. JSR $C28F
  529. /
  530. ;
  531. ; *** ┴╠╘┼ ╔/╧-╥╧╒╘╔╬┼╬ ***
  532. ;
  533. ; * ╞ILEPARAMETER SETZEN *
  534. :SETLFS M 3    ;(╞ILENR.;╟ERAET;╙EK.)
  535. LDA #@0
  536. LDX #@1
  537. LDY #@2
  538. JSR SETLFSR
  539. /
  540. ; * ╞ILE OEFFNEN *
  541. :FOPEN M 5     ;(╞ILENR;╟ERAET;╙EK.;╬AMLAENG;╬AMADR.)
  542. SETLFS @0,@1,@2
  543. LDA #@3
  544. LDX #<@4
  545. LDY #>@4
  546. JSR SETNAM
  547. JSR FOPENR
  548. /
  549. ; * ╞ILE SCHLIESSEN *
  550. :CLOSE M 1     ;(╞ILENR.)
  551. LDA #@0
  552. JSR CLOSER
  553. /
  554. ; * ┼INGABE UMLEITEN *
  555. :CHKIN M 1     ;(╞ILENR.)
  556. LDX #@0
  557. JSR CHKINR
  558. /
  559. ; * ┴USGABE UMLEITEN *
  560. :CHKOUT M 1    ;(╞ILENR.)
  561. LDX #@0
  562. JSR CHKOUTR
  563. /
  564. ;
  565. ; *** ╥┼├╚╬┼╬ ***
  566. ;
  567. ; * ╫ORT DEKREMENTIEREN *
  568. :DDEC M 1      ;(┌PADR.)
  569. LDX #@0
  570. JSR $C175
  571. /
  572. ; * ╫ORT INKREMENTIEREN *
  573. :DINC M 1      ;(┴DR.)
  574. LOADW @0,ZP29
  575. JSR DINCROUT
  576. /
  577. ; * ╤UOTIENT ZWEIER ╫ORTE BILDEN *
  578. :DDIV M 2        ;(─IVID.ADR;─IVISORADR)
  579. LDX #@0
  580. LDY #@1
  581. JSR $C169
  582. /
  583. ; * ┌WEI ┬YTES MULTIPLIZIEREN *
  584. :BBMULT M 2      ;(╨RODUKTEADR;┼RGEBNISADR)
  585. LDY #@0
  586. LDX #@1
  587. JSR $C160
  588. /
  589. ; * ┬YTE MIT ╫ORT MULTIPLIZIEREN *
  590. :BMULT M 2       ;(┬YTEADR;╫ORTADR)
  591. LDY #@0
  592. LDX #@1
  593. JSR $C163
  594. /
  595. ; * ┌WEI ╫ORTE SUBTRAHIEREN *
  596. :DSUB M 3        ;(═INUENDADR;╙UBTRAHEND;─IFFERENZ)
  597. SEC
  598. LDA @0
  599. SBC @1
  600. STA @2
  601. LDA @0+1
  602. SBC @1+1
  603. STA @2+1
  604. /
  605. ; * ┌WEI ╫ORTE ADDIEREN *
  606. :DADD M 3        ;(╙UMMA1;╙UMMA2;╙UMME)
  607. CLC
  608. LDA @0
  609. ADC @1
  610. STA @2
  611. LDA @0+1
  612. ADC @1+1
  613. STA @2+1
  614. /
  615. ;
  616. ; *** ╙╨┼╔├╚┼╥ ╓┼╥╙├╚╔┼┬┼╬ + ╦╧╨╔┼╥┼╬ ***
  617. ;
  618. ; * ╙PEICHERBLOECKE VERSCHIEBEN *
  619. :MOVERAM M 3       ;(┴NFADR.╤UELLE,┴NFADR.┌IEL,╠AENGE)
  620. JSR $C1B7
  621. W @0,@1,@2
  622. /
  623. ; * ╙PEICHERBEREICH MIT ┬YTE FUELLEN *
  624. :FILLRAM M 3  ;(┴NZAHL;┴NFANG;╞UELLBYTE)
  625. JSR $C1B4
  626. W @0,@1
  627. B @2
  628. /
  629. ; * ╙PEICHERBEREICH MIT $00 FUELLEN *
  630. :CLEARAM M 2     ;(┴NFANGSADR.;┴NZAHL)
  631. LOADW @0,R1
  632. LOADW @1,R0
  633. JSR $C178
  634. /
  635. ; * ╙PEICHERBEREICH INITIALISIEREN *
  636. :INITRAM M 1     ;(╘ABADR.)
  637. LOADW @0,R0
  638. JSR $C181
  639. /
  640. ; * ╞ILE LOESCHEN *
  641. :DELETE M 1      ;(╬AMENADR.)
  642. LOADW @0,R0
  643. JSR $C238
  644. /
  645. ;
  646. ;*** ╥OUTINEN ***
  647. ;
  648. ;  * ╦ONVERTIERUNG VON ╘EXT INS *
  649. ;         * ╟EOS-╞ORMAT *
  650. :CONVERT
  651. LDY #0
  652. LDA (ZP27),Y
  653. BEQ ENDCNV
  654. CMP #$10
  655. BEQ ENDECNV
  656. CMP #$14
  657. BEQ ZWEI
  658. CMP #$15
  659. BEQ EINS
  660. CMP #$16
  661. BEQ DREI
  662. CMP #$17
  663. BEQ DREI
  664. CMP #65
  665. BCC NEXT
  666. CMP #91
  667. BCS GROSSCNV
  668. EOR #$20
  669. JMP NEXT
  670. :GROSSCNV
  671. CMP #193
  672. BCC NEXT
  673. CMP #219
  674. BCS NEXT
  675. AND #%01111111
  676. :NEXT
  677. STA (ZP27),Y
  678. DINC ZP27
  679. JMP CONVERT
  680. :ENDCNV
  681. DINC ZP27
  682. LDY #0
  683. LDA (ZP27),Y
  684. BNE CONVERT
  685. :ENDECNV
  686. RTS
  687. :EINS
  688. DINC ZP27
  689. DINC ZP27
  690. JMP CONVERT
  691. :ZWEI
  692. DINC ZP27
  693. JMP EINS
  694. :DREI
  695. DINC ZP27
  696. JMP ZWEI
  697. ;
  698. ; * ┌AHL AUSGEBEN *
  699. ;
  700. :ZAHLRT
  701. POKE ZP29+1,0  ;┌AEHLER FUER FUEHRENDE 0
  702. LDA ZP27
  703. CMP #100       ;KLEINER 100 ?
  704. BCS NKL100
  705. POKE ZP29+1,1  ;WENN JA, 1 FUEHRENDE 0
  706. JMP ZEHNER
  707. :NKL100
  708. POKE ZP29,$FF  ;┌AEHLER FUER 100
  709. LDA ZP27
  710. :ABZ100
  711. INC ZP29       ;ERHOEHEN
  712. SEC
  713. SBC #100       ;┌AHL-100
  714. BCS ABZ100
  715. ADC #100
  716. STA ZP27       ;╥EST WIEDER ZURUECK
  717. LDA ZP29
  718. CLC
  719. ADC #48        ;╚UNDERTER IN ┴SCII
  720. PUTCHAR
  721. :ZEHNER
  722. POKE ZP29,$FF
  723. LDA ZP27
  724. :ABZ10
  725. INC ZP29       ;┌EHNER ZAEHLEN
  726. SEC
  727. SBC #10
  728. BCS ABZ10
  729. CLC
  730. ADC #10+48     ;┼INER IN ┴SCII WANDELN,
  731. PHA            ;ZWISCHENSPEICHERN
  732. LDA ZP29
  733. BNE NNULL10
  734. INC ZP29+1     ;WENN ┌EHNER=0, ┌AEHLER+1
  735. :NNULL10
  736. CLC
  737. ADC #48        ;┌EHNER IN ┴SCII
  738. STA ZP27+1     ;UND ZWISCHENSP.
  739. LDA ZP29+1
  740. CMP #2         ;ZWEI ╬ULLEN ?
  741. BEQ NZEHN
  742. LDA ZP27+1     ;WENN NEIN, ┌EHNER AUS
  743. PUTCHAR
  744. :NZEHN
  745. PLA            ;┼INER AUSGEBEN
  746. PUTCHAR
  747. LDA ZP29+1
  748. BEQ FERTZL
  749. :FUELL
  750. LDA #32        ;╞UELLLEERZEICHEN
  751. PUTCHAR
  752. DEC ZP29+1
  753. BNE FUELL
  754. :FERTZL
  755. RTS
  756. ;
  757. ; * ╔/╧-╞EHLERMELDUNG AUSGEBEN *
  758. ;
  759. :ERRORROUT
  760. TXA
  761. CMP #10        ;KLEINER ALS 10 ?
  762. BCC KLEINER10  ;<-JA
  763. POKE ZP29,$FF  ;<-NEIN
  764. :ABZIEHEN
  765. INC ZP29       ;┌EHNERSTELLE MERKEN
  766. SEC
  767. SBC #10        ;KLEINER 10 MACHEN
  768. BCS ABZIEHEN
  769. CLC            ;KLEINER 0!
  770. ADC #10+48     ;WIEDER -1>┴KKU<10 UND
  771.                ;IN ┌EICHENCODE WANDELN
  772. STA FEHLERNR+3 ;UND ALS ┼INERSTELLE SP.
  773. LDA ZP29
  774. CLC            ;UND DAS GLEICHE MIT DER
  775. ADC #48        ;┌EHNERSTELLE
  776. STA FEHLERNR+2
  777. JMP AUSGEBEN
  778. :KLEINER10
  779. CLC
  780. ADC #48        ;1STELLIGE ┌AHL UMRECHNEN
  781. STA FEHLERNR+3     ;UND
  782. POKE FEHLERNR+2,32 ;╠EERZEICHEN ALS 1.╙TELLE
  783. :AUSGEBEN
  784. DIALBOX IOFEHLER
  785. JMP (ZP28)
  786. ;
  787. ; ** ╫ORT INKREMENTIEREN **
  788. ;
  789. :DINCROUT
  790. LDY #0
  791. LDA (ZP29),Y      ;╠OWBYTE
  792. TAX
  793. INX               ;ERHOEHEN
  794. TXA
  795. STA (ZP29),Y
  796. BNE KEINUEBERLAUF
  797. LDY #1
  798. LDA (ZP29),Y      ;╚IGHBYTE
  799. TAX
  800. INX               ;ERHOEHEN
  801. TXA
  802. STA (ZP29),Y
  803. :KEINUEBERLAUF
  804. RTS
  805. ;
  806. ; ** ┬ILDSCHIRM LOESCHEN **
  807. ;
  808. :CLSROUT
  809. BOX 0,0,319,199,2
  810. RTS
  811. ;
  812. ; ** ├URSOR SETZEN **
  813. ;
  814. :CRSET
  815. TRANSW R11,R4 ;╦OORD. FUER
  816. SEC           ;╘EXTCRSR.
  817. LDA 5
  818. SBC CRDIFF
  819. STA $C
  820. POKE 8,1
  821. JSR PUTSPRR
  822. RTS
  823. ;
  824. ; *** ─ATEN, ╘EXTE, ... ***
  825. ;
  826. :CRDIFF
  827. B 6            ;╚ILFSVAR. FUER ╙┼╘├╥
  828. ;
  829. :IOFEHLER
  830. STDDIALBOX 1
  831. TEXTAUS 16,16,FEHLERMELDUNG
  832. TEXTAUS 16,52,FEHLERNR
  833. FELD OK,136,72
  834. B NULL
  835. ;
  836. :FEHLERMELDUNG
  837. B BOLDON,"┬EFEHL ABGEBROCHEN WEGEN",CR,CR
  838. GOTOX 80
  839. B "─ISKETTENFEHLER:"
  840. B NULL
  841. ;
  842. :FEHLERNR
  843. B "╔:00"
  844. TEXTENDE
  845. :ENDE
  846. ;
  847. ;===>   ┼╬─┼ ╟┼╧╙-╠╔┬╥┴╥╔┴╬  <===
  848. ;
  849. ;░└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└«
  850. ;▌           GEO╘ERM ╓1.1              ▌
  851. ;½└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└│
  852. ;▌   (╫) IN 1988 BY ├ARSTEN ├LASOHM    ▌
  853. ;½└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└│
  854. ;▌ ╓ERSION 1.0 WRITTEN FROM 23. 1.1988 ▌
  855. ;▌                       TO 28. 2.1988 ▌
  856. ;▌ LAST CHANGE MADE      ON 28. 3.1988 ▌
  857. ;¡└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╜
  858. ;
  859. ; *** PROGRAMMSPEZIFISCHE ╠ABELS ***
  860. ;
  861. :SOH=1    ;┴SCII-├ODES FUER
  862. :EOT=4    ;╪-═ODEM
  863. :ACK=6
  864. :NAK=$15
  865. :CAN=$18
  866. :ETX=3
  867. ;
  868. ; **** ╓OREINSTELLUNGEN EINLESEN ****
  869. ; **** UND ╘ABELLE FUER ╚ILFSPRG ****
  870. ; **** ERSTELLEN                 ****
  871. ;
  872. TXTCONVERT TEXTE   ;╘EXTE KONVERTIEREN
  873. TXTCONVERT FEHLERMELDUNG
  874. :PARLESEN
  875. OPENDISK
  876. OPENREC GEOTERM
  877. ERROR OK1,PARLESEN
  878. :OK1
  879. POINTREC 1
  880. READREC BAUD,DRUCKLF-BAUD+1
  881. ERROR OK1A,PARLESEN
  882. :OK1A
  883. POKE ZW,42      ;╙TERNCHEN SETZEN
  884. JSR STERNCHEN
  885. POINTREC 2
  886. READREC UNIV,512
  887. ERROR OK1B,NRT21
  888. :OK1B
  889. CLOSEREC
  890. LDA BSW
  891. BEQ SETZUNI
  892. JSR FONTBSW
  893. JMP FONTFERT
  894. :SETZUNI
  895. JSR FONTUNI
  896. :FONTFERT
  897. LDA FLAG3
  898. BEQ NRT21
  899. COP FADR,STEUERREG
  900. COP FADR+1,BEFEHLSREG
  901. RTS
  902. :NRT21
  903. FINDTYPE 5,PRG1,8,0 ;╘ABELLE
  904. LOADW PRG1,ZP1      ;FUER
  905. LDY #0              ;╚ILFSPRG.
  906. LDX #2              ;ERSTELLEN
  907. :FILEZAHL
  908. LDA (ZP1),Y
  909. BEQ SCHLUSS
  910. CLC
  911. LDA ZP1
  912. ADC #17
  913. STA ZP1
  914. LDA ZP1+1
  915. ADC #0
  916. STA ZP1+1
  917. INX
  918. CPX #10
  919. BNE FILEZAHL
  920. :SCHLUSS
  921. TXA
  922. ORA SUB1+6    ;═ENUEPUNTZAHL
  923. STA SUB1+6
  924. STX ZP1
  925. POKE ZP2,14
  926. BBMULT ZP1,ZP2
  927. CLC
  928. LDA ZP2
  929. ADC #16
  930. STA SUB1+1    ;UNTERE ╟RENZE
  931. ;
  932. ; ** ┴UF ╓1.2 UND 1.3 EINSTELLEN **
  933. LDA VERSION
  934. BEQ GEOS13
  935. LOADW $C2E4,OLDNMI      ;FUER ╓1.2
  936. LOADW LAHM12,LAHMMAIN
  937. LOADW RESET12,RESETMAIN
  938. JMP INIT
  939. ;
  940. :GEOS13
  941. LOADW $FB22,OLDNMI      ;FUER ╓1.3
  942. LOADW LAHM13,LAHMMAIN
  943. LOADW RESET13,RESETMAIN
  944. ;
  945. ; **** ╞ILE FUER ╥╙-232 OEFFNEN ****
  946. ; **** UND ╬═╔ (U.A.) INSTAL-   ****
  947. ; **** LIEREN                   ****
  948. ;
  949. :INIT
  950. JSR RSINIT
  951. ;
  952. ; **** ═ENUES USW. ERZEUGEN ****
  953. ;
  954. CLEARAM $A000,8000 ;╙CREENS LOESCHEN
  955. CLEARAM $6000,8000
  956. POKE $2F,%11000000 ;IN BEIDE ┬ITMAPS SCHREIBEN
  957. DOMENU HAUPTM,1    ;╚AUPTMENUE ANZEIGEN
  958. DOICONS PUFFERIC   ;   ╔CON       ''
  959. LDA BOTTOM+1
  960. CMP #$60           ;WEGEN ╬EUSTARTS NACH
  961. BEQ PFLEER         ;┴CCESSORY MUESSEN
  962. LOADW $6000,ZP1    ;╠INIE+╔CON BEARBEITET
  963. TRANSW BOTTOM,ZP2  ;WERDEN
  964. DSUB ZP1,ZP2,ZP1
  965. LOADW $6000-GRENZE/320,ZP2
  966. DDIV ZP1,ZP2
  967. TRANSW ZP1,R4
  968. LOADW 0,R3
  969. POKE $18,14
  970. LDA #$FF
  971. JSR HLINER
  972. :PFLEER
  973. LDA PUFFER
  974. BEQ PFZU
  975. INVBOX 255,1,274,13
  976. :PFZU
  977. ;
  978. HLINE 0,319,15,$FF
  979. HLINE 0,319,0,$FF   ;OBEREN ┬EREICH
  980. BOX 275,0,319,13,1  ;ZEICHNEN
  981. BOX 277,3,319,11,0
  982. ;
  983. LOADW TASTE,VEKTAST ;╥EAKTION AUF ╘ASTENDRUCK
  984. LOADW 0,R11
  985. LOADW 0,TEXTX
  986. COP TOP,5          ;╘EXTPOS. SETZEN
  987. STA TEXTY
  988. LDA CRHOEHE
  989. JSR PROMPTR
  990. PRON
  991. SETCR
  992. ;
  993. ; **** ╚AUPTSCHLEIFE ****
  994. ;
  995. :LOOP
  996. LDA MENUNR
  997. BNE UNTERMEN  ;╒NTERMENUE AKTIV
  998. LOADW TASTE,VEKTAST
  999. LDA FLAG2
  1000. BEQ LPWEITER
  1001. LDA CRHOEHE
  1002. JSR PROMPTR
  1003. PRON
  1004. JMP LPWEITER
  1005. :UNTERMEN
  1006. LOADW 0,VEKTAST
  1007. PROFF
  1008. COP MENUNR,FLAG2
  1009. MAIN LOOP
  1010. :LPWEITER
  1011. COP MENUNR,FLAG2
  1012. MOUSEBORDER 0,13,0,319
  1013. TRANSW TEXTX,R11
  1014. COP TEXTY,5
  1015. SETCR
  1016. JSR ROMEIN
  1017. JSR GETIN
  1018. PHA             ;┌EICHEN ZWISCHENSPEICHERN
  1019. JSR ROMAUS
  1020. LDA RS232ST     ;╞EHLER AUFGETRETEN ?
  1021. AND #%00000011  ;(╨ARITAET UND ╞RAMING)
  1022. BEQ LPKEINF
  1023. POKE RS232ST,0
  1024. PLA
  1025. LDA #32         ;" " SIMULIEREN
  1026. PHA
  1027. :LPKEINF
  1028. PLA           ;ZURUECKHOLEN
  1029. TAX
  1030. BNE NICHTNULL ;┌EICHEN ANGEKOMMEN ?
  1031. MAIN LOOP
  1032. :NICHTNULL
  1033. JSR PRINT     ;WENN JA,DANN AUSGEBEN
  1034. MAIN LOOP
  1035. ;
  1036. ; *** ╥╧═ EINSCHALTEN ***
  1037. ;
  1038. :ROMEIN
  1039. SEI
  1040. POKE 1,$37
  1041. COP $D01A,ZW
  1042. POKE $D01A,0
  1043. RTS
  1044. ;
  1045. ; *** ╥╧═ AUSSCHALTEN ***
  1046. ;
  1047. :ROMAUS
  1048. COP ZW,$D01A
  1049. POKE 1,$30
  1050. CLI
  1051. RTS
  1052. ;
  1053. ; *** ╔/╧ VORBEREITEN ***
  1054. ;
  1055. :IOINIT
  1056. INITIO
  1057. JSR CLRCH
  1058. CLOSE 2        ;╥╙-232-╞ILE SCHLIESSEN
  1059. DONEIO
  1060. TRANSW OLDNMI,$FFFA
  1061. TRANSW RESETMAIN,R0
  1062. JSR INITRAMR
  1063. RTS
  1064. ;
  1065. ; *** ╥╙-232 VORBEREITEN ***
  1066. ;
  1067. :RSINIT
  1068. SEI
  1069. LDA 1
  1070. PHA
  1071. POKE 1,$37
  1072. LDA $D01A
  1073. PHA
  1074. POKE $D01A,0
  1075. POKE $D019,$7F
  1076. LOADW IRQ,$314     ;╠EER-╔╥╤
  1077. LOADW NMI,$FFFA    ;╬EUE ╬═╔-
  1078. LOADW NMI,$0318    ;╥OUTINE
  1079. TRANSW LAHMMAIN,R0 ;═AIN Z.╘. LAHMLEGEN
  1080. JSR INITRAMR
  1081. FOPEN 2,2,0,2,FADR ;╥╙232-╞ILE OEFFNEN
  1082. LOADW EBUF,$F7
  1083. LOADW ABUF,$F9
  1084. CHKIN 2
  1085. CHKOUT 2
  1086. PLA
  1087. STA $D01A
  1088. PLA
  1089. STA 1
  1090. CLI
  1091. RTS
  1092. ;
  1093. ; **** ╟EOS-┌EICHEN IN ALTEN ├-64 ├ODE WANDELN ****
  1094. ;
  1095. :ZURWANDELN
  1096. CMP #65         ;╘EXT VON
  1097. BCC KLEIN       ;┴SCII ZURUECK-
  1098. CMP #91         ;WANDELN
  1099. BCS KLEIN       ;(FALLS GEWUENSCHT)
  1100. EOR #$20
  1101. ADC #$60        ;$41 => $├1
  1102. JMP FWANDL
  1103. :KLEIN
  1104. CMP #$61
  1105. BCC FWANDL
  1106. CMP #$7B
  1107. BCS FWANDL
  1108. EOR #$20        ;$61 => $41
  1109. :FWANDL
  1110. RTS
  1111. ;
  1112. ; **** ┌EICHEN AUF ┬ILDSCHIRM AUSGEBEN ****
  1113. :PRINT
  1114. AND #%01111111 ;┬IT 7 LOESCHEN
  1115. STA ZEICHEN
  1116. TRANSW TEXTX,R11
  1117. COP TEXTY,5
  1118. LDA ZEICHEN
  1119. CMP #32
  1120. BCC STEUERZ   ;KEIN DRUCKENDES ┌EICHEN
  1121. CMP #127
  1122. BNE NDELETE   ;NICHT DELETE (127)
  1123. JMP BACKSP
  1124. :NDELETE
  1125. LDA ZEICHEN
  1126. JSR PUFFERN
  1127. LDA VERSION
  1128. BNE DRUCKEN   ;KEINE ┴ENDERUNGEN
  1129. LDA BSW
  1130. BEQ DRUCKEN
  1131. ;
  1132. ; ** DT. ╒MLAUTE BEI 1.3 UMGEHEN **
  1133. ;
  1134. LDA ZEICHEN
  1135. CMP #91         ;ECKIGE ╦LAMMER AUF
  1136. BNE N91
  1137. POKE ZEICHEN,40 ;ZU RUNDE ╦LAMMER
  1138. :N91
  1139. CMP #92         ;╙CHRAEGSTRICH LO/RU
  1140. BNE N92
  1141. POKE ZEICHEN,47 ;ZU   ''       LU/RO
  1142. :N92
  1143. CMP #93         ;ECKIGE ╦LAMMER ZU
  1144. BNE N93
  1145. POKE ZEICHEN,41 ;ZU RUNDE ╦LAMMER
  1146. :N93
  1147. CMP #123        ;GESCHW. ╦LAMMER AUF
  1148. BNE N123
  1149. POKE ZEICHEN,40 ;ZU RUNDER
  1150. :N123
  1151. CMP #124        ;SENKR. ╙TRICH
  1152. BNE N124
  1153. POKE ZEICHEN,47 ;ZU ╙CHRAEGSTRICH
  1154. :N124
  1155. CMP #125        ;GESCHW. ╦LAMMER ZU
  1156. BNE N125
  1157. POKE ZEICHEN,41 ;ZU RUNDER
  1158. :N125
  1159. CMP #126        ;GESCHW. ╙TRICH
  1160. BNE DRUCKEN
  1161. POKE ZEICHEN,45 ;ZU ═INUSZEICHEN
  1162. JMP DRUCKEN
  1163. ;
  1164. ; ** ╙TEUERZEICHEN AUSWERTEN **
  1165. ;
  1166. :STEUERZ
  1167. CMP #CR       ;├ARRIAGE ╥ETURN
  1168. BNE NCRET
  1169. JSR PUFFERN
  1170. JMP DRUCKEN
  1171. :NCRET
  1172. CMP #BACKSPC
  1173. BNE NBACKSP
  1174. JMP BACKSP    ;DELETE (8)
  1175. :NBACKSP
  1176. CMP #7        ;┬ELL (^╟)
  1177. BNE NBELL
  1178. JMP BEEP
  1179. :NBELL
  1180. CMP #12       ;╞ORMFEED (╘OP OF ╨AGE)
  1181. BEQ GOFORMF
  1182. JMP ZURUECK
  1183. :GOFORMF
  1184. JMP FORMFEED
  1185. ;
  1186. ; *** ┌EICHEN AUSGEBEN ***
  1187. :DRUCKEN
  1188. LDA ZEICHEN
  1189. HCHAR
  1190. TAX
  1191. BEQ NUEBERSCHR
  1192. CLC
  1193. ADC TEXTX
  1194. STA ZW
  1195. LDA TEXTX+1
  1196. ADC #0
  1197. BEQ NUEBERSCHR
  1198. LDA #63
  1199. CMP ZW
  1200. BCS NUEBERSCHR
  1201. LDA ZEICHEN
  1202. PHA
  1203. LDA ECHO
  1204. PHA
  1205. LDA PUFFER
  1206. PHA
  1207. POKE ZEICHEN,13
  1208. POKE ECHO,CLEAR
  1209. POKE PUFFER,CLEAR
  1210. JSR NUEBERSCHR
  1211. PLA
  1212. STA PUFFER
  1213. PLA
  1214. STA ECHO
  1215. PLA
  1216. STA ZEICHEN
  1217. :NUEBERSCHR
  1218. LDA ZEICHEN
  1219. PUTCHAR
  1220. LDA CHRBREIT  ;┌EICHENBREITE LADEN
  1221. LDY ZGBREITE  ;UND FUER
  1222. STA BREITEN,Y ;─ELETE SPEICHERN
  1223. INY           ;╨UFFERZEIGER ERHOEHEN
  1224. BEQ ZUGROSS
  1225. STY ZGBREITE
  1226. :ZUGROSS      ;╨UFFER VOLL
  1227. LDA ZEICHEN
  1228. CMP #CR       ;FALLS ├╥,
  1229. BEQ PRFSCROLL
  1230. JMP ZURUECK
  1231. :PRFSCROLL
  1232. POKE ZGBREITE,0 ;╨UFFER LOESCHEN
  1233. SEC
  1234. LDA 5
  1235. SBC CRDIFF
  1236. CLC
  1237. ADC CRHOEHE
  1238. CMP #199        ;UND EVTL. SCROLLEN
  1239. BCC ZURUECK
  1240. CLEARAM $A000+640,8000-640
  1241. LDA BSW
  1242. BEQ NBSW
  1243. MOVERAM $6000+3840,$A000+640,4160 ;AB ┌EILE 96 NACH ┌EILE 16
  1244. MOVERAM $6000+3840,$6000+640,4160 ;''  ''       ''   ''
  1245. CLEARAM $6000+4800,3200 ;UNTEREN ╘EXTTEIL LOESCHEN
  1246. LOADW 0,R11       ;╘EXTPOS.
  1247. POKE 5,122        ;NEU SETZEN
  1248. JMP ZURUECK
  1249. :NBSW
  1250. MOVERAM $6000+5120,$A000+640,2880  ;AB ┌EILE 112 NACH ┌EILE 16
  1251. MOVERAM $6000+5120,$6000+640,2880  ;            ''
  1252. CLEARAM $6000+3520,4480
  1253. LOADW 0,R11
  1254. POKE 5,90
  1255. :ZURUECK
  1256. TRANSW R11,TEXTX  ;NEUE ╦OORD. ZWISCHENSPEICHERN
  1257. COP 5,TEXTY
  1258. SETCR
  1259. LDA ECHO
  1260. BEQ NECHO
  1261. LDA 1
  1262. PHA
  1263. JSR ROMEIN
  1264. :ABWARTEN
  1265. LDA ENABLE
  1266. AND #1
  1267. BNE ABWARTEN
  1268. LDA ZEICHEN       ;FALLS ┼CHO,
  1269. JSR BSOUT         ;AUF ╥╙-232 SENDEN
  1270. COP ZW,$D01A
  1271. PLA
  1272. STA 1
  1273. CLI
  1274. :NECHO
  1275. RTS
  1276. ;
  1277. ; ** ─ELETE **
  1278. :BACKSP
  1279. LDY ZGBREITE
  1280. DEY
  1281. CPY #$FF
  1282. BEQ ZURUECK
  1283. LDA BREITEN,Y
  1284. STA CHRBREIT
  1285. STY ZGBREITE
  1286. LDA #BACKSPC
  1287. JSR PUFFERN
  1288. PUTCHAR
  1289. JMP ZURUECK
  1290. ;
  1291. ; ** ┬EEP **
  1292. :BEEP
  1293. JSR ROMEIN
  1294. POKE $D418,$F   ;╘ONROUTINE
  1295. POKE $D405,0    ;AUS ═╙┼
  1296. POKE $D406,$F7  ;(BZW. ┬┼┼╨┼╥)
  1297. POKE $D404,$11
  1298. POKE $D401,$32
  1299. POKE $D400,0
  1300. LDY #$80
  1301. :SOUND1
  1302. LDX #$FF
  1303. :SOUND2
  1304. DEX
  1305. BNE SOUND2
  1306. DEY
  1307. BNE SOUND1
  1308. POKE $D404,10
  1309. JSR ROMAUS
  1310. JMP ZURUECK
  1311. ;
  1312. ; ** ╞ORMFEED **
  1313. :FORMFEED
  1314. POKE ZGBREITE,0
  1315. CLEARAM $A000+640,8000-640
  1316. CLEARAM $6000+640,8000-640
  1317. LOADW 0,R11
  1318. COP TOP,5          ;╘EXTPOS. SETZEN
  1319. JMP ZURUECK
  1320. ;
  1321. ; *** ┌EICHEN PUFFERN (EVTL.) ***
  1322. ;
  1323. :PUFFERN
  1324. PHA
  1325. LDA PUFFER
  1326. BNE JA
  1327. PLA
  1328. RTS
  1329. :JA
  1330. TRANSW BOTTOM,ZP1
  1331. LOADW GRENZE,ZP2
  1332. DSUB ZP1,ZP2,ZP2
  1333. BCS NVOLL
  1334. HLINE 0,319,14,$FF ;VOLLE ╠INIE
  1335. INVBOX 255,1,274,13
  1336. TRANSW TEXTX,R11
  1337. POKE PUFFER,CLEAR
  1338. PLA
  1339. RTS
  1340. :NVOLL
  1341. PLA
  1342. PHA
  1343. CMP #BACKSPC
  1344. BNE NLOESCHEN
  1345. LDA ZP1+1
  1346. CMP #$60
  1347. BEQ NIMPF
  1348. DINC ZP1
  1349. TRANSW ZP1,BOTTOM
  1350. :NIMPF
  1351. PLA
  1352. RTS
  1353. :NLOESCHEN
  1354. DDEC ZP1
  1355. TRANSW ZP1,BOTTOM
  1356. LDY #0
  1357. PLA
  1358. PHA
  1359. STA (ZP1),Y
  1360. ;
  1361. ; ** ╠INIE ERWEITERN **
  1362. ;
  1363. LOADW $6000,ZP1
  1364. TRANSW BOTTOM,ZP2
  1365. DSUB ZP1,ZP2,ZP1   ;┬YTEZAHL NACH ZP1
  1366. LOADW $6000-GRENZE/320,ZP2
  1367. DDIV ZP1,ZP2
  1368. TRANSW ZP1,R4
  1369. LOADW 0,R3
  1370. POKE $18,14
  1371. LDA #$FF
  1372. JSR HLINER
  1373. TRANSW TEXTX,R11
  1374. PLA
  1375. RTS
  1376. ;
  1377. ; **** ╬EUE ╬═╔-╥OUTINE ****
  1378. ;
  1379. :NMI
  1380. SEI          ;MIT LEICHTEN
  1381. PHA          ;┴ENDERUNGEN
  1382. TXA          ;AUS DEM ╥╧═
  1383. PHA          ;UEBERNOMMEN
  1384. TYA
  1385. PHA
  1386. LDA 1
  1387. PHA
  1388. POKE 1,$37
  1389. LDA #$7F
  1390. STA $DD0D
  1391. LDY $DD0D
  1392. BMI AKTIV
  1393. JMP FEB6
  1394. :AKTIV
  1395. TYA
  1396. AND $02A1
  1397. TAX
  1398. AND #$01
  1399. BEQ FEA3
  1400. LDA $DD00
  1401. AND #$FB
  1402. ORA $B5
  1403. STA $DD00
  1404. LDA $02A1
  1405. STA $DD0D
  1406. TXA
  1407. AND #$12
  1408. BEQ FE9D
  1409. AND #$02
  1410. BEQ FE9A
  1411. JSR $FED6
  1412. JMP FE9D
  1413. :FE9A
  1414. JSR $FF07
  1415. :FE9D
  1416. JSR $EEBB
  1417. JMP FEB6
  1418. :FEA3
  1419. TXA
  1420. AND #$02
  1421. BEQ FEAE
  1422. JSR $FED6
  1423. JMP FEB6
  1424. :FEAE
  1425. TXA
  1426. AND #$10
  1427. BEQ FEB6
  1428. JSR $FF07
  1429. :FEB6
  1430. LDA $02A1
  1431. STA $DD0D
  1432. PLA
  1433. STA 1
  1434. PLA
  1435. TAY
  1436. PLA
  1437. TAX
  1438. PLA
  1439. RTI
  1440. ;
  1441. ; **** (╠EER-) ╔╥╤ ****
  1442. ;
  1443. :IRQ
  1444. PLA
  1445. TAY
  1446. PLA
  1447. TAX
  1448. PLA
  1449. RTI
  1450. ;
  1451. ; **** ╥EAKTION AUF ╘ASTENDRUCK ****
  1452. ;
  1453. :TASTE
  1454. LDA TASTCD
  1455. CMP #28
  1456. BEQ DEL
  1457. CMP #29
  1458. BNE NDEL
  1459. :DEL
  1460. POKE TASTCD,8
  1461. :NDEL
  1462. LDA ECHO
  1463. BNE ECHOEN     ;┼CHO AN
  1464. PHP
  1465. LDA 1
  1466. PHA
  1467. JSR ROMEIN
  1468. :WARTEN
  1469. LDA ENABLE
  1470. AND #1
  1471. BNE WARTEN
  1472. LDA TASTCD
  1473. JSR BSOUT      ;┌EICHEN SENDEN
  1474. COP ZW,$D01A
  1475. PLA
  1476. STA 1
  1477. PLP
  1478. RTS
  1479. :ECHOEN
  1480. LDA TASTCD      ;┌EICHEN AUSGEBEN
  1481. JSR PRINT       ;(╙CREEN UND ╥╙-232)
  1482. SETCR
  1483. RTS
  1484. ;
  1485. ; *******************************************
  1486. ; *** ╓ERSCHIEDENE ╥OUTINEN (FUER ═ENUES) ***
  1487. ;
  1488. IN 84GT.ROUTINEN
  1489. ;
  1490. ; *** 6.1.2.1. ├=64-╞ILE SENDEN ***
  1491. ;
  1492. :RT6121
  1493. MENU1
  1494. ;
  1495. ; *** 6.1.2.2. ╟EOS-╞ILE SENDEN ***
  1496. ;
  1497. :RT6122
  1498. MENU1
  1499. ;
  1500. ; *** 6.2.1. ├=64-╞ILE EMPFANGEN ***
  1501. ;
  1502. :RT621
  1503. POKE FLAG5,SET
  1504. POKE FLAG1,CLEAR
  1505. POKE ZEICHEN,0
  1506. JSR IOINIT
  1507. MOVERAM DISKID,DISKNAM,18  ;╬AME DER
  1508. MOVERAM DISKNAM,URNAME,16  ;ALTEN ─ISK
  1509. DIALBOX ZIELDISK
  1510. LDA R0
  1511. CMP #CANCEL
  1512. BNE NABBR
  1513. JMP ALTEDISK
  1514. :NABBR
  1515. OPENDISK
  1516. ERROR OK7,ALTEDISK
  1517. :OK7
  1518. LOADW $7F40,R5    ;┴BLAGE FUER ╞ILENAM
  1519. POKE $7F40,0
  1520. DIALBOX FILENAME
  1521. LDA R0
  1522. CMP #CANCEL
  1523. BNE NABBR2
  1524. :LEERSTR
  1525. JMP ALTEDISK
  1526. :NABBR2
  1527. LDA $7F40
  1528. BEQ LEERSTR
  1529. LDY #0
  1530. :STRCOPY
  1531. LDA $7F40,Y
  1532. BEQ STREND      ;╞ILENAMEN VERSCHIEBEN
  1533. JSR ZURWANDELN  ;UND ┌EICHENCODE WANDELN
  1534. STA $7F40,Y
  1535. INY
  1536. JMP STRCOPY
  1537. :STREND
  1538. TYA
  1539. PHA
  1540. DIALBOX FILETYP ;╞ILETYP AUSWAEHLEN
  1541. DELETE $7F40    ;╞ILE LOESCHEN
  1542. PLA
  1543. TAY
  1544. LDA #44
  1545. STA $7F40,Y    ;", , "
  1546. STA $7F40+2,Y
  1547. LDA ZW
  1548. STA $7F40+1,Y  ;" ?  "
  1549. LDA #87
  1550. STA $7F40+3,Y  ;"   W"
  1551. TYA
  1552. PHA
  1553. CLC
  1554. ADC #4
  1555. STA NAMLAENG
  1556. POKE FLAG6,SET ;╞LAG FUER ┴╠╘┼─╔╙╦ SETZEN
  1557. TURBOPUR
  1558. INITIO
  1559. FOPEN 15,8,15,1,INITSTR
  1560. CLOSE 15
  1561. SETLFS 4,8,2   ;╞ILE AUF ─ISK OEFFNEN
  1562. LDA NAMLAENG
  1563. LDX #<$7F40
  1564. LDY #>$7F40
  1565. JSR SETNAM
  1566. JSR FOPENR
  1567. BCC OK8
  1568. PLA
  1569. JMP DRENDE
  1570. :OK8
  1571. DONEIO
  1572. SYSFONT
  1573. POKE $2F,%10000000     ;NUR IN SICHTB. ┬ITMAP
  1574. BOX 72,40,263,135,1
  1575. BOX 64,32,255,127,0
  1576. FRAME 64,32,255,127,$FF
  1577. PUTSTR 80,48,EMPFTXT
  1578. PLA
  1579. TAY
  1580. LDA #0                 ;╙TRINGENDEKENNZEICHEN
  1581. STA $7F40,Y
  1582. PUTSTR 125,36+32,$7F40
  1583. POKE ZP1,1
  1584. ZAHLAUS ZP1,125,46+32
  1585. POKE ZP1,0
  1586. ZAHLAUS ZP1,125,56+32
  1587. JSR RSINIT
  1588. JSR ROMEIN
  1589. POKE ZAEHLER,10
  1590. POKE BLOCKNR,1
  1591. :RETRY
  1592. LDA #NAK
  1593. JSR BSOUT        ;ERSTES ╬┴╦
  1594. LDX #10          ;MIT ╘IMEOUT
  1595. JSR RECEIVE      ;VON 10 SEK.
  1596. BCC ZANGEK
  1597. DEC ZAEHLER
  1598. BNE RETRY
  1599. JMP ABBRUCH
  1600. :ZANGEK
  1601. PHA
  1602. POKE ZAEHLER,0   ;┌AEHLER FUER ╞EHLER
  1603. PLA
  1604. CMP #SOH         ;╙╧╚ ?
  1605. BEQ BLOCKGET
  1606. JMP EMPFERR      ;NEIN -> ╬┴╦ SENDEN
  1607. :BLOCKGET
  1608. LDX #4
  1609. JSR RECEIVE
  1610. BCC KERR1        ;KEIN ┌EICHEN (TIMEOUT)?
  1611. JMP EMPFERR
  1612. :KERR1
  1613. STA ZEICHEN      ;┬LOCKNR.
  1614. LDX #4
  1615. JSR RECEIVE
  1616. BCC KERR2
  1617. JMP EMPFERR
  1618. :KERR2
  1619. EOR ZEICHEN
  1620. TAX              ;GUELTIGE ╦OMBINATION
  1621. INX              ;┬LOCKNR./╦OMPLEMENT ?
  1622. BEQ KERR3
  1623. JMP EMPFERR
  1624. :KERR3
  1625. LDA ZEICHEN
  1626. CMP BLOCKNR
  1627. BEQ NROK         ;ERWARTETE ┬LOCKNR.
  1628. TAX
  1629. INX
  1630. BEQ NWIEDER      ;WIEDERHOLTER ┬LOCK
  1631. :WIEDERH
  1632. LDX #2           ;AUF FREIE ╠EITUNG
  1633. JSR RECEIVE      ;WARTEN
  1634. BCC WIEDERH
  1635. LDA #ACK         ;┴├╦ SENDEN
  1636. JSR BSOUT
  1637. JMP NOCHMAL      ;UND NAECHSTEN ┬LOCK
  1638. :NWIEDER
  1639. LDX #2
  1640. JSR RECEIVE
  1641. BCC NWIEDER
  1642. POKE ZEICHEN,CAN ;┌EICHEN FUER ┴BBRUCH SENDEN
  1643. JMP ABBRUCH      ;(FATALER ╞EHLER)
  1644. :NROK
  1645. LDY #128
  1646. POKE CHKSUM,0
  1647. :DATAEMPF
  1648. STY ZP5
  1649. LDX #4
  1650. JSR RECEIVE      ;─ATA-┌EICHEN HOLEN
  1651. BCC KERR4        ;KEINS DA ?
  1652. JMP EMPFERR
  1653. :KERR4
  1654. LDY ZP5
  1655. STA FILEPUFFER,Y
  1656. CLC
  1657. ADC CHKSUM       ;├╚╦╙╒═
  1658. STA CHKSUM       ;BERECHNEN
  1659. DEY
  1660. BNE DATAEMPF
  1661. LDX #4
  1662. JSR RECEIVE      ;├╚╦╙╒═ HOLEN
  1663. BCC KERR5
  1664. JMP EMPFERR
  1665. :KERR5
  1666. CMP CHKSUM       ;UND PRUEFEN
  1667. BEQ KERR6
  1668. JMP EMPFERR
  1669. :KERR6
  1670. JSR CLRCH
  1671. CLOSE 2          ;╥╙-232-╞ILE SCHLIESSEN
  1672. CHKOUT 4         ;┴USGABE AUF ╞LOPPY
  1673. POKE ZP5,128
  1674. :DATASAVE
  1675. LDY ZP5
  1676. LDA FILEPUFFER,Y
  1677. JSR BSOUT
  1678. BCC KABB         ;BEI ╞LOPPY-╞EHLER ┴BBRUCH
  1679. JSR RSINIT
  1680. POKE ZEICHEN,CAN
  1681. JMP ABBRUCH
  1682. :KABB
  1683. DEC ZP5
  1684. BNE DATASAVE
  1685. INC BLOCKNR      ;┬LOCKNR.+1
  1686. POKE ZAEHLER,0   ;╞EHLER=0
  1687. SEI
  1688. COP ZW,$D01A
  1689. POKE 1,$30
  1690. CLI
  1691. ZAHLAUS BLOCKNR,125,46+32
  1692. ZAHLAUS ZAEHLER,125,56+32
  1693. SEI
  1694. POKE 1,$37
  1695. COP $D01A,ZW
  1696. POKE $D01A,0
  1697. CLI
  1698. JSR RSINIT       ;┴USGABE WIEDER AUF ╥╙232
  1699. LDA #ACK
  1700. JSR BSOUT        ;┴├╦ SENDEN
  1701. :NOCHMAL
  1702. LDX #4
  1703. JSR RECEIVE      ;UND AUF ╙╧╚ WARTEN
  1704. BCS EMPFERR
  1705. CMP #SOH
  1706. BNE NBLOCKG
  1707. JMP BLOCKGET
  1708. :NBLOCKG
  1709. CMP #EOT
  1710. BNE EMPFERR
  1711. POKE ZEICHEN,ACK
  1712. POKE FLAG1,SET
  1713. JMP ABBRUCH
  1714. ;
  1715. ; ** ╬┴╦ SENDEN **
  1716. :EMPFERR
  1717. LDX #2           ;AUF FREIE ╠EITUNG
  1718. JSR RECEIVE      ;WARTEN
  1719. BCC EMPFERR
  1720. LDA #NAK
  1721. JSR BSOUT
  1722. INC ZAEHLER
  1723. SEI
  1724. COP ZW,$D01A
  1725. POKE 1,$30
  1726. CLI
  1727. ZAHLAUS ZAEHLER,125,56+32
  1728. SEI
  1729. POKE 1,$37
  1730. COP $D01A,ZW
  1731. POKE $D01A,0
  1732. CLI
  1733. LDA ZAEHLER
  1734. CMP #10          ;SCHON 10 ╞EHLER?
  1735. BNE NOCHMAL
  1736. JMP ABBRUCH      ;JA -> ╙CHLUSS
  1737. ;
  1738. ; ** FERTIG **
  1739. :ABBRUCH
  1740. LDA ENABLE    ;╙ENDEPUFFER
  1741. AND #1        ;LEER ?
  1742. BNE ABBRUCH
  1743. SEI
  1744. COP ZW,$D01A
  1745. POKE 1,$30
  1746. CLI
  1747. JSR IOINIT
  1748. LDA BSW
  1749. BNE NUNIV
  1750. LOADSET UNIV
  1751. :NUNIV
  1752. LDA #PLAINTEXT
  1753. PUTCHAR
  1754. POKE $2F,%11000000
  1755. RECVBOX 64,32,263,135
  1756. LDA FLAG1
  1757. BNE NFEHL
  1758. DIALBOX EMPFABGEBR
  1759. :NFEHL
  1760. INITIO
  1761. JMP DRENDE
  1762. ;
  1763. ; *** 6.2.1.1. ╪-═ODEM ╥ECEIVE ***
  1764. ;
  1765. :RECEIVE
  1766. STX ZP29
  1767. COP CIA1+9,ZP28
  1768. :WEITWART
  1769. JSR GETIN
  1770. TAX
  1771. LDA #%00001000
  1772. BIT RS232ST
  1773. BEQ ZEICHDA
  1774. LDA CIA1+9
  1775. CMP ZP28        ;NEUE ╙EK. ?
  1776. BEQ WEITWART
  1777. STA ZP28
  1778. DEC ZP29        ;╙EKUNDENZAEHLER-1
  1779. BNE WEITWART
  1780. SEC             ;KEIN ╘IMEOUT
  1781. RTS             ;(╞EHLERFLAG SETZEN)
  1782. :ZEICHDA
  1783. TXA
  1784. PHA
  1785. LDA RS232ST
  1786. AND #%11010111  ;╞EHLER AUFGETRETEN ?
  1787. BEQ KEINF
  1788. POKE RS232ST,0
  1789. PLA
  1790. SEC             ;╞LAG SETZEN
  1791. RTS
  1792. :KEINF
  1793. CLC             ;╞LAG LOESCHEN
  1794. PLA
  1795. RTS
  1796. ;
  1797. ; **** ╥OUTINEN FUER ╔CONS ****
  1798. ;
  1799. ; *** ╨UFFERICON ***
  1800. ;
  1801. :PUFFERRT
  1802. INVBOX 255,1,274,13  ;╔CON INVERTIEREN
  1803. LDA PUFFER
  1804. BNE SCHLIESSEN
  1805. POKE PUFFER,SET
  1806. RTS
  1807. :SCHLIESSEN
  1808. POKE PUFFER,CLEAR
  1809. RTS
  1810. ;
  1811. ; *** ╨╥╟-╔CON ***
  1812. ;
  1813. :PRGRT
  1814. POKE ZW,80    ;" P  "
  1815. RSTDIAL $12
  1816. ;
  1817. ; *** ╙┼╤-╔CON ***
  1818. ;
  1819. :SEQRT
  1820. POKE ZW,83    ;" S  "
  1821. RSTDIAL $12
  1822. ;
  1823. ; *** ╒╙╥-╔CON ***
  1824. :USRRT
  1825. POKE ZW,85    ;" U  "
  1826. RSTDIAL $12
  1827. ;
  1828. ; ************************
  1829. ; *** ╘ABELLEN, ═ENUES ***
  1830. ;
  1831. IN 84GT.MENUES
  1832. ;
  1833. ; *****************
  1834. ; *** ╞ILENAMEN ***
  1835. ;
  1836. :GEOTERM
  1837. B "GEO╘ERM",NULL
  1838. ;
  1839. :TEXTSCRAP
  1840. B "╘EXT  ╙CRAP",NULL
  1841. ;
  1842. ; **********************
  1843. ; *** SONSTIGE ╘EXTE ***
  1844. ;
  1845. :EMPFTXT
  1846. B BOLDON,"┼MPFANGEN UEBER ╪-═ODEM:",CR,CR
  1847. GOTOX 80
  1848. B "╞ILE:",CR
  1849. GOTOX 80
  1850. B "┬LOECKE:",CR
  1851. GOTOX 80
  1852. B "╞EHLER:",NULL
  1853. ;
  1854. TEXTENDE
  1855. ;
  1856. ; *************
  1857. ; *** ─ATEN ***
  1858. ;
  1859. ; ** ┌EIGER FUER ╟EOS 1.2 / 1.3 **
  1860. :OLDNMI
  1861. W 0            ;EHEMALIGER ╬═╔-┌EIGER
  1862. :LAHMMAIN
  1863. W 0            ;┌EIGER AUF ╔NIT-╘ABELLE FUER ═AIN (LAHM)
  1864. :RESETMAIN
  1865. W 0            ;  ''   AUF     ''        ''  ═AIN (LEBEND)
  1866. ;
  1867. ; ** ┼INSTELLUNGEN FUER ┬╙╫/╒NIVERSITY **
  1868. :CRHOEHE
  1869. B 9            ;╚OEHE DES ├URSORS
  1870. :TOP
  1871. B 22           ;OBERSTE ╘EXTPOS.
  1872. ;
  1873. ;
  1874. :NAMDR
  1875. B 13
  1876. ;
  1877. :INITSTR
  1878. B "I"
  1879. ;
  1880. ;
  1881. :TEXTX
  1882. B 0,0          ;╘EXTKOORD.
  1883. :TEXTY
  1884. B 0
  1885. :FLAG1
  1886. B 0            ;╬EUSTART VON ┴CCESS?
  1887. :FLAG2
  1888. B 0            ;╫ECHSEL ╒NTER UND ╚AUPTMENUE?
  1889. :FLAG3
  1890. B 0            ;╨ARAMETER LESEN/SETZEN VON ╥╘ 2.1.
  1891. :FLAG4
  1892. B 0            ;╘EXT-╙CRAP/╙EQ.-╞ILE SENDEN
  1893. :FLAG5
  1894. B 0            ;─ISK/─RUCKERZUGRIFF
  1895. :FLAG6
  1896. B 0            ;─ISK INITIALISIEREN?
  1897. :ZW
  1898. B 0            ;┌WISCHENSP. FUER $D01A
  1899. :ZEICHEN
  1900. B 0            ;   ''       FUER ┌EICHEN
  1901. :ZGBREITE
  1902. B 0            ;┌EIGER AUF ┌EICHENBREITEN
  1903. :VEKGETBLK
  1904. S 3            ;╓EKTOR AUF ╟┼╘┬╠╦
  1905. :SPUR
  1906. B 0
  1907. :SEKTOR
  1908. B 0            ;┌WISCHENSPEICHER FUER ╙EKTORNR.
  1909. :READPAR
  1910. S 4            ;      ''         FUER ╥┼┴─┬┘╘┼-╨ARAM.
  1911. :ZAEHLER
  1912. B 0            ;┌AEHLER FUER ╓ERZOEGERUNG
  1913. :BLOCKNR
  1914. B 0            ;AKT.┬LOCKNR. BEI ╪-═ODEM
  1915. :CHKSUM
  1916. B 0
  1917. :PUFFER
  1918. B CLEAR        ;╞LAG FUER ╨UFFER AN/AUS
  1919. :BOTTOM
  1920. W $6000        ;UNTERE ╟RENZE DES ╨UFFERS
  1921. ;
  1922. ; ** ┌EIGER AUF ╘EXTE MIT ╙TERN **
  1923. ;
  1924. :BAUD
  1925. W MTEXT2214-TEXTE
  1926. :DATENB
  1927. W MTEXT2224-TEXTE
  1928. :PARIT
  1929. W MTEXT2231-TEXTE
  1930. :STOPB
  1931. W MTEXT2241-TEXTE
  1932. :DUPL
  1933. W MTEXT2251-TEXTE
  1934. ;
  1935. ; ** ┼INSTELLBARE ╨ARAMETER **
  1936. ;
  1937. :FADR
  1938. B 6,0          ;╞ILENAME FUER ╥╙-232
  1939. :BSW
  1940. B SET          ;┬╙╫ EIN/AUS
  1941. :ECHO
  1942. B CLEAR        ;╞LAG FUER ┼CHO AN/AUS
  1943. :SPEED
  1944. B SET          ;╘EMPO BEI ╞ILEUEBERTRAGUNG (╞LAG)
  1945. :CRUNTER
  1946. B CLEAR        ;├╥ BEIM ┴╙├╔╔-╙ENDEN UNTERDRUECKEN
  1947. :KONVERT
  1948. B SET          ;╘EXT VORM ╙ENDEN KONVERTIEREN
  1949. :GERAET
  1950. B 4            ;╟ERAETEADR. DES ─RUCKERS
  1951. :SEKUNDAER
  1952. B 7            ;╙EKUNDAERADR. DES ─RUCKERS
  1953. :ASCII
  1954. B CLEAR        ;┴SCII JA/NEIN (BEIM ─RUCKEN)
  1955. :DRUCKLF
  1956. B CLEAR        ;╞LAG FUER ╠╞ AUF ─RUCKER AN/AUS
  1957. ;
  1958. ; ** ╨UFFER, ... **
  1959. ;
  1960. :NAMLAENG
  1961. ORG *+1
  1962. :EBUF
  1963. ORG *+256
  1964. :ABUF
  1965. ORG *+256
  1966. :BREITEN
  1967. ORG *+256
  1968. :DISKNAM
  1969. ORG *+18        ;╬AME DER ALTEN ─ISK
  1970. ;
  1971. ; *** ╨ROGRAMMNAMEN DER ╚ILFSPRG. ***
  1972. ;
  1973. :PRG1
  1974. ORG *+17
  1975. :PRG2
  1976. ORG *+17
  1977. :PRG3
  1978. ORG *+17
  1979. :PRG4
  1980. ORG *+17
  1981. :PRG5
  1982. ORG *+17
  1983. :PRG6
  1984. ORG *+17
  1985. :PRG7
  1986. ORG *+17
  1987. :PRG8
  1988. ORG *+17
  1989. :UNIV
  1990. ORG *+512
  1991. :FILEPUFFER
  1992. ORG *+255
  1993. :GRENZE
  1994.