home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 12 / 64er_Magazin_Sonderheft_12_86-12_1986_Markt__Technik_de_Side_A.d64 / merge.src (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  3KB  |  111 lines

  1. 10 sys9*4096:.opt o,oo
  2. 20 *=$c000
  3. 22 banfl = $2b ;zeiger auf basic-
  4. 24 banfh = $2c ;programm-start
  5. 26 bvarl = $2d ;zeiger auf start
  6. 28 bvarh = $2e ;der variablen
  7. 30 pol   = $f7 ;zeiger in einzu-
  8. 32 poh   = $f8 ;fuegendes programm
  9. 34 stat  = $90 ;statuswort st
  10. 36 cpup  = $01 ;prozessorport
  11. 38 znr   = $12 ;basic-zeilennummer
  12. 40 sa    = $b9 ;sekundaeradresse
  13. 42 fpmod = $3a ;flag f. prg-modus
  14. 44 ;
  15. 50 illdi = $b3ab ;illegal dir. error
  16. 52 lpara = $e1d4 ;load-param. holen
  17. 54 bload = $ffd5 ;load-routine d. bs
  18. 56 fausw = $e1d1 ;fehlerauswertung
  19. 58 loerr = $e19c ;load - error
  20. 60 einf  = $a4a2 ;basic-z. einfuegen
  21. 62 veks  = $e455 ;basic-vektoren setzen
  22. 64 setbp = $e1a7 ;basic-par. neu setzen
  23. 66 ewsl  = $0302 ;zeiger auf
  24. 68 ewsh  = $0303 ;eingabe-warteschleife
  25. 70 bep   = $01fc ;basic-eingabe-puffer
  26. 90 ;
  27. 100 ;
  28. 110 ;     merge a - anhaengen
  29. 120 ;
  30. 130 amerge jsr readpar ;parameter lesen
  31. 140 lda banfl:pha ;zeiger auf basic-
  32. 150 lda banfh:pha ;prg-start retten
  33. 160 lda bvarl ;zeiger auf basic-prg-
  34. 170 ldy bvarh ;start hinter basic-prg
  35. 180 sec ;setzen (neuer prg-start =
  36. 190 sbc #02 ;variablenstart - 2)
  37. 200 bcs ama:dey
  38. 210 ama sta banfl ;neue zeiger
  39. 220 sty banfh ;speichern
  40. 230 jsr load ;basic-prg laden
  41. 240 pla:sta banfh ;alte zeiger auf
  42. 250 pla ;basic-prg-start wieder-
  43. 260 sta banfl ;herstellen
  44. 270 jmp setbp ;basic-parameter setzen
  45. 300 ;
  46. 310 ;     merge e - einfuegen
  47. 320 ;
  48. 330 emerge jsr readpar ;parameter lesen
  49. 340 ldy #$a0 ;anfangsadresse fuer load
  50. 350 sta pol ;& zeiger in einzuf. prg
  51. 360 sty poh ;auf $a000 setzen
  52. 370 jsr load ;basic-prg. laden
  53. 380 lda pointer+1:ldy pointer+2
  54. 390 sta ewsl ;zeiger auf eingabe-warte-
  55. 400 sty ewsh ;schleife neu setzen
  56. 410 ema ldy #255 ;zeiger in basic-zeile
  57. 420 emb lda cpup:and #%11111110
  58. 430 sta cpup ;basic-rom ausschalten
  59. 440 iny ;zeiger in zeile + 1
  60. 450 lda (pol),y ;zeichen aus prg holen
  61. 460 inc cpup ;basic-rom einschalten
  62. 470 cpy #01 ;zeiger in n. basic-z. ?
  63. 480 bcc emb ;low-byte - nicht beachten
  64. 490 bne emc ;kein teil des zeigers
  65. 500 tax ;00 fuer programmende ?
  66. 510 bne emb ;<>00 - nicht beachten
  67. 520 ldx #03 ;programmende - zeiger auf
  68. 530 jsr veks ;e-ws wiederherstellen
  69. 540 jmp setbp+4 ;basic-param. setzen
  70. 550 ;
  71. 560 emc cpy #04 ;zeilennummer ?
  72. 570 bcs emd ;kein teil d. zeilennummer
  73. 580 sta znr,y ;speichern
  74. 590 bcc emb ;unbedingter sprung
  75. 600 emd sta bep,y ;zeichen in puffer
  76. 610 tax:bne emb ;<>0 - kein zeilenende
  77. 620 tya:adc pol ;zeiger in einzuf. prg
  78. 630 sta pol ;auf anfang der naechsten
  79. 640 bcc eme ;programmzeile setzen
  80. 650 inc poh
  81. 660 eme iny ;laenge der zeile + 1
  82. 670 jmp einf ;zeile einfuegen
  83. 1000 ;
  84. 1010 ;     unterroutinen
  85. 1020 ;
  86. 1030 ;       eingabe-parameter holen
  87. 1040 ;
  88. 1050 readpar jsr lpara ;load-parameter
  89. 1060 lda #00 ;sekundaeradresse = 0
  90. 1070 sta sa ;(laden an feste adresse)
  91. 1080 ret rts
  92. 1100 ;
  93. 1110 ;       basic-programm laden
  94. 1120 ;
  95. 1130 load tax ;low-byte der adresse
  96. 1140 lda cpup:and #%11111110
  97. 1150 sta cpup ;basic-rom ausschalten
  98. 1160 lda #00 ;flag fuer load
  99. 1170 jsr bload ;laden
  100. 1180 inc cpup ;basic-rom einschalten
  101. 1190 bcc loa ;kein fehler
  102. 1200 jmp fausw ;fehlerauswertung
  103. 1210 loa lda stat
  104. 1220 and #$bf ;status ueberpruefen
  105. 1230 beq ret ;kein fehler
  106. 1240 jmp loerr
  107. 1300 ;
  108. 1310 ;       pointer fuer hypra-basic
  109. 1320 ;
  110. 1330 pointer jmp ema
  111.