home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 67 / 64er_Magazin_Sonderheft_67_19xx_Markt__Technik_de_Side_A.d64 / eisenbahn.src (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  2KB  |  111 lines

  1. 100 ;irq/port.src
  2. 110 ;
  3. 120 *=$c000
  4. 130 &=*
  5. 140 ;
  6. 150 ;
  7. 160 pa=56576     ; userport a
  8. 170 pb=56577     ; userport b
  9. 180 d1=56578     ; datenricht. port a
  10. 190 d2=56579     ; datenricht. port b
  11. 200 ;
  12. 210 dap1=830     ; 8255 port a/out
  13. 220 dap2=831     ; 8255 port c/out
  14. 230 dap3=832     ; 8255 port b/in
  15. 240 ;
  16. 250 ;
  17. 260 jmp reset
  18. 270 jmp out
  19. 280 ;
  20. 290 ;
  21. 300 reset         ;reset allgemein
  22. 310 lda #%10000010;steuerbefehl 8255
  23. 320 sta btr       ;port a/c=out b=in
  24. 330 lda #0
  25. 340 sta dap1      ;hilfsregister a=0
  26. 350 sta dap2      ;              c=0
  27. 360 ;
  28. 370 sei           ;irq verhindern
  29. 380 lda d1        ;porta, pa2=ausgabe
  30. 390 ora #4
  31. 400 sta d1
  32. 410 ;
  33. 420 lda #255      ;portb=ausgabe
  34. 430 sta d2
  35. 440 ;
  36. 450 lda pa
  37. 460 pha           ;porta merken
  38. 470 ora #%00000100
  39. 480 sta pa        ;waehlt4042
  40. 490 lda #%00001110;next data fuer 8255
  41. 500 sta pb        ;ist steuerbefehl
  42. 510 lda pa
  43. 520 and #%11111011
  44. 530 sta pa        ;waehlt 8255
  45. 540 ;
  46. 550 ;
  47. 560 lda btr       ;steuerbefehl fuer
  48. 570 ora #%10000000;   8255
  49. 580 sta pb
  50. 590 ;
  51. 600 lda #0        ;portb=eingabe
  52. 610 sta d2
  53. 620 pla           ;porta
  54. 630 sta pa        ;alter wert
  55. 640 lda #<out
  56. 650 ldx #>out
  57. 660 sta $0314
  58. 670 stx $0315
  59. 680 cli
  60. 690 rts
  61. 700 ;
  62. 710 btr .%00000000;steuerbefehl
  63. 720 ;
  64. 730 logiko        ;ausgabebefehle
  65. 740 .%00000010,%00001010
  66. 750 ;
  67. 760 out           ;ausgabe
  68. 780 ;
  69. 790 ldx #0        ;schleife =0
  70. 800 lda #255      ;portb = ausgabe
  71. 810 sta d2
  72. 820 lda pa
  73. 830 pha           ;port a merken
  74. 840 lout1         ;beginn schleife
  75. 850 lda pa
  76. 860 ora #%00000100
  77. 870 sta pa        ;waehlt 4042
  78. 880 lda logiko,x  ;daten sind ausgaben
  79. 890 sta pb        ; fuer 8255
  80. 900 lda pa
  81. 910 and #%11111011
  82. 920 sta pa        ;waehlt 8255
  83. 930 lda dap1,x    ;daten an 8255
  84. 940 sta pb
  85. 950 inx
  86. 960 cpx #2
  87. 970 bne lout1     ;schleifenende
  88. 980 lda #0
  89. 990 sta d2        ;pb = eingabe
  90. 1000 ;
  91. 1010 in             ;einsprung eingabe
  92. 1020 lda pa
  93. 1030 ora #%00000100 ;schaltet auf 4042
  94. 1040 sta pa
  95. 1050 lda #255
  96. 1060 sta d2         ;pb=ausgabe
  97. 1070 lda #%00000101 ;data eingabe/b
  98. 1080 sta pb         ;fuer 8255
  99. 1090 lda pa
  100. 1100 and #%11111011
  101. 1110 sta pa         ;schaltet auf 8255
  102. 1120 lda #0
  103. 1130 sta d2         ;pb = eingabe
  104. 1140 lda pb         ;wert von pb
  105. 1150 sta dap3       ;auf dap3
  106. 1160 pla
  107. 1170 sta pa         ;pa = alter wert
  108. 1190 jmp $ea31
  109. 1200 ;
  110. 1210 ende
  111.