home *** CD-ROM | disk | FTP | other *** search
/ ABBUC Magazin 43B / ABBUC_Magazin_43_199x_ABBUC_Side_B.atr / lcd8000.src < prev    next >
Text File  |  2023-02-26  |  4KB  |  243 lines

  1. ********************************
  2. *HAENDLER FUER ARGS LCD-DISPLAY*
  3. *  Hard- u. Software by RoBue  * 
  4. *         14.12.1993           *
  5. ********************************
  6.  
  7.  
  8. *FUNKTIONEN: Textausgabe
  9. *            Loeschen (125)
  10. *            Scrollen bei Ausgabe
  11. *            Cursorbewegungen (Pfeiltasten)
  12. *            Texteingabe ueber K:-Handler
  13. *HANDLERNAME: "A:"
  14.  
  15.     ORG $8000,$A800
  16.  
  17. PACTL    EQU 54546
  18. PORTA    EQU 54544 
  19. PBCTL    EQU 54547
  20. PORTB    EQU 54545
  21. PHENTV    EQU $E486
  22. TIMER    EQU $14
  23.  
  24. DLEFT    EQU 24
  25. DRIGHT    EQU 28
  26. CLEFT    EQU 16
  27. CRIGHT    EQU 20
  28. FUNCTION    EQU 56
  29. DON    EQU 15
  30. DCLEAR    EQU 1
  31. CMOVE    EQU 7
  32. CSTOP    EQU 6
  33. CHOME    EQU 2
  34.  
  35.  
  36. START    PLA          BASIC
  37. *
  38.     LDX #'A        A:-HANDLER
  39.     LDA #TABELLE:H    EINTAGEN
  40.     LDY #TABELLE:L
  41.          SEC
  42.          JSR PHENTV
  43.          BCC START1
  44.          RTS        KEIN EINTRAG
  45. *
  46. START1   LDA #48        PIA UND
  47.          STA PACTL    DISPLAY
  48.          STA PBCTL    INITIALI-
  49.          LDA #255        SIEREN
  50.          STA PORTA
  51.          STA PORTB
  52.          LDA #52
  53.          STA PACTL
  54.          STA PBCTL
  55.          LDA #FUNCTION    8BIT
  56.          JSR BEFEHL
  57.          LDA #DON        LCD AN
  58.          JSR BEFEHL
  59.          LDA #DCLEAR    LCD LOESCHEN
  60.          JSR BEFEHL
  61. READY    LDY #0        READY
  62. READY1    LDA TEXT,Y    AUF LCD
  63.          BEQ EXIT        AUSGEBEN
  64.          JSR ZEICHEN
  65.          LDX #255
  66. WARTEN   DEX
  67.          BNE WARTEN
  68.          INY
  69.          JMP READY1
  70. EXIT    RTS
  71. TEXT     ASC ' ARGS-LCD Ready'
  72.          DFB 0
  73.  
  74. TABELLE    DFW OPEN-1     Handlertabelle
  75.     DFW CLOSE-1
  76.     DFW GET-1
  77.     DFW PUT-1
  78.     DFW EXIT-1
  79.     DFW EXIT-1
  80.     JMP EXIT
  81.          DFB 0
  82.  
  83. OPEN     LDA #DON
  84.          JSR BEFEHL
  85.          LDA #DCLEAR
  86.          JSR BEFEHL
  87.          LDA #0
  88.          STA CURSPOS
  89.     STA LINE        
  90.          LDY #1
  91.     RTS
  92.  
  93. CLOSE    LDY #1    
  94.     RTS
  95.  
  96. GET    JSR $F2FD    
  97.          CPY #1
  98.          BNE GETEND
  99.     STA GETWERT
  100.     JSR PUT
  101.     LDA GETWERT
  102. GETEND    RTS             
  103. GETWERT    DFB 0
  104.  
  105. PUT    TAX
  106.     CPX #29        CURSOR?
  107.          BEQ DOWN
  108.          CPX #31
  109.          BEQ RIGHT
  110.     CPX #28
  111.     BEQ UP
  112.     CPX #30
  113.     BNE PUT0
  114.     JMP LEFT
  115. PUT0    CPX #125        CLEAR?
  116.          BNE PUT1
  117. PUT00    LDA #1
  118.          JSR BEFEHL
  119.          LDA #0
  120.          STA CURSPOS
  121.     STA LINE
  122.          LDY #1
  123.          RTS
  124. PUT1     CPX #155        EOL?
  125.          BNE PUT2
  126.     LDA #CHOME
  127.          JSR BEFEHL
  128.          LDY #0
  129.          STY CURSPOS
  130.     STY LINE
  131.          INY
  132.          RTS
  133. PUT2     JSR SCROLL    AUSGABE
  134.          TXA
  135.          JSR ZEICHEN
  136.          INC CURSPOS
  137.          LDY #1
  138.          RTS
  139.  
  140. CURSPOS    DFB 0
  141. LINE    DFB 0
  142.  
  143. *    CURSOR-MOVE-ROUTINEN
  144. *    Pfeiltasten
  145. UP    LDA LINE
  146.     BEQ UPEND
  147.     LDX #40
  148. UP1    LDA #CRIGHT
  149.     JSR BEFEHL
  150.     DEX
  151.     BNE UP1
  152.     DEC LINE
  153. UPEND    LDY #1
  154.     RTS    
  155. DOWN    LDA LINE
  156.     BNE DOWNEND
  157.     LDX #40
  158. DOWN1    LDA #CRIGHT
  159.     JSR BEFEHL
  160.     DEX
  161.     BNE DOWN1
  162.     INC LINE
  163. DOWNEND    LDY #1
  164.     RTS
  165. RIGHT    LDA #39
  166.     CMP CURSPOS
  167.     BEQ RIGHTEND
  168.     JSR SCROLL
  169.     LDA #CRIGHT
  170.     JSR BEFEHL
  171.     INC CURSPOS
  172. RIGHTEND    LDY #1
  173.     RTS
  174. LEFT    LDY CURSPOS
  175.     BEQ LEFTEND
  176.     DEC CURSPOS
  177.     JSR SCROLLR
  178.     LDA #CLEFT
  179.     JSR BEFEHL
  180. LEFTEND    LDY #1
  181.     RTS
  182. SCROLLR    CPY #13
  183.     BMI SCRREND
  184.     CPY #37
  185.     BPL SCREND
  186.     LDA #DRIGHT
  187.     JSR BEFEHL
  188. SCRREND    RTS     
  189.  
  190. *    SCROLL-ROUTINE FUER DISPLAY
  191. *    ab Position 12 wandert Display
  192. *        ab Position 36 steht es wieder
  193. *    beim Ruecksprung in Zeile 1
  194. *    wird Display geloescht
  195. SCROLL    LDY CURSPOS
  196.     CPY #40
  197.     BNE SCR2
  198.     LDA LINE
  199.     BEQ SCR
  200.     JMP PUT00         
  201. SCR    INC LINE
  202.     LDA #25
  203.     STA CURSPOS
  204. SCR1    DEC CURSPOS
  205.     BEQ SCREND
  206.     LDA #DRIGHT
  207.     JSR BEFEHL
  208.     JMP SCR1                  
  209. SCR2    CPY #36
  210.     BPL SCREND
  211. SCR3    CPY #12
  212.     BMI SCREND
  213.     LDA #DLEFT
  214.     JSR BEFEHL
  215. SCREND    RTS
  216.  
  217.  
  218. *    PROGRAMMIEREN DES DISPLAYS
  219. *    Wert steht im Akku
  220. BEFEHL   STA PORTB  
  221.          LDA #4
  222. BEFEHL1  STA PORTA
  223.          LDA #0
  224.          STA PORTA
  225.          LDY TIMER
  226.          INY
  227.          INY
  228. WAIT     CPY TIMER
  229.          BNE WAIT
  230.          RTS         
  231.  
  232. *    AUSGABE EINES ZEICHENS
  233. *    AUF DAS DISPLAY
  234. *    Wert steht im Akku
  235. ZEICHEN  STA PORTB 
  236.          LDA #5
  237.          STA PORTA
  238.          NOP
  239.          LDA #0
  240.          STA PORTA
  241.          NOP
  242.          NOP
  243.          RTS¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯