home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1994 October / 64er_Magazin_94-10_1994_Markt__Technik_de_Side_A.d64 / autostart-ass (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  5KB  |  132 lines

  1. 100 ";     *******************
  2. 110 ";     *                 *
  3. 120 ";     * autostart fuer  *
  4. 130 ";     *                 *
  5. 140 ";     *                 *
  6. 150 ";     * basicprogramme  *
  7. 160 ";     *                 *
  8. 170 ";     * auf c64,  v1.0  *
  9. 180 ";     *                 *
  10. 190 ";     *******************
  11. 200 ";
  12. 210 ";
  13. 220 ";
  14. 240 ";
  15. 250 ";
  16. 260 ";
  17. 270 ";
  18. 280 "           .ba $c900
  19. 290 "            ;
  20. 300 "            ;
  21. 310 "           ;ramadressen
  22. 320 "           ;***********
  23. 330 "            ;
  24. 340 "            ;
  25. 350 "basbl  =$0308             ;enthalten einsprungadresse fuer basicbefehle
  26. 360 "basbh  =$0309
  27. 370 "            ;
  28. 380 "mbasbl  =$c900            ;zwischenspeicher fuer alten basiceinsprung
  29. 390 "mbasbh  =$c901
  30. 400 "            ;
  31. 410 "nbasbl  =$29              ;neue einsprungadresse fuer basicbefehle
  32. 420 "nbasbh  =$c9              ;ist $c929
  33. 430 "            ;
  34. 440 "filenr  =$02              ;logische filenummer
  35. 450 "sekadr  =$02              ;sekundaeradresse
  36. 460 "gernr   =$08              ;enthaelt geraetenummer
  37. 470 "            ;
  38. 480 "baszeil =$7a              ;zeiger auf zeichen im basictext
  39. 490 "baszeih =$7b              ;wird bei chrget erhoeht, bleibt bei chrgot konst
  40. 500 "            ;
  41. 510 "prgendl =$2d              ;programmendezeiger
  42. 520 "prgendh =$2e              ;wird nach load jeweils gesetzt
  43. 530 "            ;
  44. 540 "            ;
  45. 550 "           ;betriebssystemadressen
  46. 560 "           ;**********************
  47. 570 "            ;
  48. 580 "            ;
  49. 590 "chrget  =$0073            ;holt zeichen aus text
  50. 600 "chrgot  =$0079            ;holt letztes zeichen aus text
  51. 610 "getname =$e257            ;holt filenamen
  52. 620 "syntax  =$af08            ;syntax error
  53. 630 "intschl =$a7ae            ;interpreterschleife
  54. 640 "            ;
  55. 650 "load    =$ffd5            ;load-routine
  56. 660 "run     =$a659            ;run-routine
  57. 670 "setfil  =$ffba            ;setzt fileparameter
  58. 680 "erraus  =$e0f9            ;fehlerauswertung nach load-routine
  59. 690 "            ;
  60. 700 "            ;
  61. 710 "           ;init
  62. 720 "           ;****
  63. 730 "            ;
  64. 740 "            ;
  65. 750 "           .by $e4        ;defaultwert basiczeiger $a7e4
  66. 760 "           .by $a7
  67. 770 "           sei
  68. 780 "           lda basbl      ;lowzeiger pruefen
  69. 790 "           cmp #nbasbl
  70. 800 "           bne init       ;ungleich, dann init
  71. 810 "           lda basbh      ;highzeiger vergleichen
  72. 820 "           cmp #nbasbh
  73. 830 "           beq rueck
  74. 840 "init       lda basbl      ;alten zeiger merken, lowbyte
  75. 850 "           sta mbasbl     ;in $c900 speichern
  76. 860 "           lda basbh      ;high-byte
  77. 870 "           sta mbasbh     ;in $c901 speicern
  78. 880 "           lda #nbasbl    ;neuen basiczeiger setzen
  79. 890 "           sta basbl      ;lowbyte $29 in $0308 speichern
  80. 900 "           lda #nbasbh
  81. 910 "           sta basbh      ;highbyte $c9 in $0309 speichern
  82. 920 "rueck      cli
  83. 930 "           rts
  84. 940 "            ;
  85. 950 "            ;
  86. 960 "           ;neuer einsprung
  87. 970 "           ;***************
  88. 980 "            ;
  89. 990 "            ;
  90. 1000 "          jsr chrget
  91. 1010 "          cmp #'!        ;ausrufezeichen ?
  92. 1020 "          beq found      ;ja, dann eigene routine
  93. 1030 "
  94. 1040 "          ldx baszeil    ;basiczeiger low
  95. 1050 "          bne lab1
  96. 1060 "          dec baszeih    ;basiczeiger high dekrementieren, wenn low=0
  97. 1070 "lab1      dec baszeil    ;basiczeiger low dekrementieren
  98. 1080 "          jmp (mbasbl)   ;interpreterbefehl ausfuehren
  99. 1090 "found     jsr chrget     ;zeiger auf erstes zeichen setzen
  100. 1100 "          jsr getname    ;holt filenamen
  101. 1110 "          ldy #sekadr    ;sekundaeradresse 2
  102. 1120 "          lda #filenr    ;filenummer 2
  103. 1130 "          ldx #gernr     ;geraetenummer 8 = floppy
  104. 1140 "          jsr setfil     ;setzt fileparameter
  105. 1150 "          lda #$00       ;zeigt load an; $01 fuer verify
  106. 1160 "          jsr load       ;loadroutine
  107. 1170 "          bcc ok         ;fehlerausgabe
  108. 1180 "          jmp erraus     ;fehlermeldung ausgeben
  109. 1190 "ok        stx prgendl    ;endezeiger speichern
  110. 1200 "          sty prgendh
  111. 1210 "          jsr run        ;programm starten
  112. 1220 "          jmp intschl    ;zurueck zur interpreterschleife
  113. 1230 "           ;
  114. 1240 "           ;
  115. 1250 "          ;old
  116. 1260 "          ;***
  117. 1270 "           ;
  118. 1280 "           ;
  119. 1290 "          lda basbl      ;basiczeiger pruefen; low
  120. 1300 "          cmp #nbasbl    ;gleich neuem zeiger
  121. 1310 "          bne back       ;ungleich, dann ruecksprung
  122. 1320 "          lda basbh      ;highbyte vergleichen
  123. 1330 "          cmp #nbasbh    ;gleich neuem zeiger ?
  124. 1340 "          bne back
  125. 1350 "          sei
  126. 1360 "          lda mbasbl     ;alter zeiger, low
  127. 1370 "          sta basbl
  128. 1380 "          lda mbasbh     ;zeiger high
  129. 1390 "          sta basbh      ;originalzeiger zurueckholen
  130. 1400 "          cli
  131. 1410 "back      rts
  132.