home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1985 December / 64er_Magazin_85-12_1985_Markt__Technik_de.d64 / bsp.-quelltext (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  2KB  |  60 lines

  1. 30 .eq zeichen = $fc ;variablen vereinbaren
  2. 40 .eq textlo = $fa
  3. 50 .eq texthi = $fb
  4. 60 .eq chrout = $ffd2
  5. 70 .eq get = $ffe4
  6. 80 ;
  7. 90 .ba $9000 ;startadresse=$9000
  8. 100 ;
  9. 110 loop jsrget;auf eingabe warten
  10. 120  beqloop;wenn ungleich 0 dann weiter
  11. 130 ;
  12. 140  stazeichen;und merken
  13. 150  ldx#00;indexregister x mit 0 vorbelegen
  14. 160 loop1 ldatastentab,x;erstes zeichen aus tabelle holen
  15. 170  cmpzeichen;und mit zeichen vergleichen
  16. 180  beqloop1end;wenn gleich dann fertig
  17. 190  cmp#"#";sonst mit endezeichen vergleichen
  18. 200  beqloop;bei uebereinstimmung wieder an den anfang
  19. 210  inx;sonst x-register um 1 erhoeen
  20. 220  bneloop1;und mit naechstem zeichen vergleichen
  21. 230 ;
  22. 240 loop1end ldafunktabhi,x;abhaengig vom x-register hi-byte -1 der anzu-
  23. 250  pha;springenden funktion holen und auf den stack
  24. 260  ldafunktablo,x;das gleiche fur das lo-byte
  25. 270  pha
  26. 280  rts;an dieser stelle wird zur funktion verzweigt
  27. 290 ;
  28. 300 taste1 ldx#<(text1);lo-byte startadresse des 1.textes ins x-register
  29. 310  ldy#>(text1);hi-byte startadresse des 1.textes ins y-register
  30. 320  jmpausgabe;text ausgeben
  31. 330 taste2 ldx#<(text2);das gleiche fuer den 2.text
  32. 340  ldy#>(text2)
  33. 350  jmpausgabe
  34. 360 ;
  35. 370 taste3 rts;bei dieser taste in den basicinterpreter verzw.
  36. 380 ;
  37. 390 ausgabe stxtextlo;lo-byte des ausgewaehlten textes merken
  38. 400  stytexthi;das gleiche fuer das hi-byte
  39. 410 loopaus ldy#00;y-register mit null vorbelegen
  40. 420  lda(textlo),y;und den akku mit dem ersten zeichen laden
  41. 430  cmp#"#";ist das ende schon erreicht?
  42. 440  beqloopause;wenn ja dann fertig
  43. 450  jsrchrout;sonst zeichen ausgeben
  44. 460  inctextlo;und den zeiger textlo und hi um 1 erhoeen
  45. 470  bneloopaus
  46. 480  inctexthi
  47. 490  jmploopaus
  48. 500 loopause jmploop;hier wird wieder an den anfang (eingabe) verzw.
  49. 510 ;
  50. 520 tastentab .tx"123#"
  51. 530 ;
  52. 540 funktabhi .by>(taste1-1),>(taste2-1),>(taste3-1)
  53. 550 funktablo .by<(taste1-1),<(taste2-1),<(taste3-1)
  54. 560 ;
  55. 570 text1 .tx"dies ist der erste text"
  56. 580  .by13,"#"
  57. 590 ;
  58. 600 text2 .tx"dies ist der zweite text"
  59. 610  .by13,"#"
  60.