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

  1. ************************************
  2. *MINIHAENDLER FUER ARGS LCD-DISPLAY*
  3. *          VERSION 2               *
  4. *   HARD- u. SOFTWARE v. RoBue     *
  5. *           06.12.1994             *
  6. ************************************
  7.  
  8. * Handlername: "A:"
  9.  
  10.     ORG $8000,$A800
  11.  
  12. PACTL    EQU $D512
  13. PORTA    EQU $D510 
  14. PBCTL    EQU $D513
  15. PORTB    EQU $D511
  16. PHENTV   EQU $E486
  17. TIMER    EQU $14
  18. CONSOL    EQU $D01F
  19.  
  20. DLEFT    EQU 24
  21. DRIGHT    EQU 28
  22. CLEFT    EQU 16
  23. CRIGHT    EQU 20
  24. FUNCTION EQU 56
  25. DON    EQU 15
  26. DCLEAR    EQU 1
  27. CHOME    EQU 2
  28. CMOVE    EQU 4
  29.  
  30.  
  31. START    PLA          BASIC
  32. *
  33.     LDX #'A        A:-HANDLER
  34.     LDA #TABELLE:H    EINTAGEN
  35.     LDY #TABELLE:L
  36.          SEC
  37.          JSR PHENTV
  38.          BCC START1
  39.          RTS        KEIN EINTRAG
  40.  
  41. START1   LDA #56        PIA UND
  42.          STA PBCTL    INITIALI-
  43.     LDA #48
  44.          LDA #255
  45.          STA PORTB
  46.     LDA #0
  47.     STA PORTA
  48.     LDA #60
  49.     STA PBCTL
  50.          LDA #52
  51.          STA PACTL
  52.     LDA #0
  53.     STA PORTB
  54.          LDA #FUNCTION    8BIT
  55.          JSR BEFEHL
  56.          LDA #DON        LCD AN
  57.          JSR BEFEHL
  58.          LDA #DCLEAR    LCD LOESCHEN
  59.          JSR BEFEHL
  60.     LDA #CHOME
  61.     JSR BEFEHL
  62. READY    LDY #0        READY
  63. READY1    LDA TEXT,Y    AUF LCD
  64.          BEQ ENDE        AUSGEBEN
  65.          JSR ZEICHEN
  66.     INY
  67.     JMP READY1
  68. ENDE    RTS
  69. TEXT     ASC 'LCD is Ready'
  70.          DFB 0
  71.  
  72. TABELLE    DFW OPEN-1     Handlertabelle
  73.     DFW CLOSE-1
  74.     DFW GET-1
  75.     DFW PUT-1
  76.     DFW CLOSE-1
  77.     DFW CLOSE-1
  78.          JMP CLOSE
  79.          DFB 0
  80.  
  81. OPEN     LDA #DON
  82.          JSR BEFEHL
  83. OPEN1    LDA #DCLEAR
  84.          JSR BEFEHL
  85. OPEN2    LDA #CHOME
  86.     JSR BEFEHL
  87.     LDY #0
  88.     STY ZEILE
  89.     STY SPALTE
  90. CLOSE    LDY #1    
  91.     RTS
  92.  
  93.  
  94.  
  95. PUT    TAX
  96.     CPX #125        CLEAR?
  97.          BNE PUT0
  98.     JMP OPEN1
  99. *
  100. PUT0    CPX #126        DBS?
  101.     BNE PUT1        NEIN ->
  102.     LDA SPALTE    SPALTE0?
  103.     BEQ PUT01    JA ->
  104.     LDA #CLEFT
  105.     JSR BEFEHL
  106.     LDA #32
  107.     JSR ZEICHEN
  108.     LDA #CLEFT
  109.     JSR BEFEHL
  110.     DEC SPALTE
  111. PUT01    LDY #1
  112.     RTS
  113. *
  114.  
  115. PUT1     CPX #155        EOL?
  116.          BNE PUT2        NEIN ->
  117.     LDY SPALTE
  118.     LDA ZEILE    ZEILE0 ?
  119.     BEQ PUT11    JA ->
  120. ***    JSR HALT
  121.     DEC ZEILE
  122.     JMP LEER
  123. PUT11    INC ZEILE
  124.     JMP LEER        ZEILE AUFFUELLEN
  125. *
  126. PUT2    CPX #28        CURSOR?
  127.          BNE PUT21
  128. UP    LDA ZEILE
  129.     BEQ UPEND
  130.     LDX #40
  131. UP1    LDA #CRIGHT
  132.     JSR BEFEHL
  133.     DEX
  134.     BNE UP1
  135.     DEC ZEILE
  136. UPEND    LDY #1
  137.     RTS    
  138. *
  139. PUT21    CPX #29
  140.          BNE PUT22
  141. DOWN    LDA ZEILE
  142.     BNE DOWNEND
  143.     LDX #40
  144. DOWN1    LDA #CRIGHT
  145.     JSR BEFEHL
  146.     DEX
  147.     BNE DOWN1
  148.     INC ZEILE
  149. DOWNEND    LDY #1
  150.     RTS
  151. *
  152. PUT22    CPX #31
  153.     BNE PUT23
  154. RIGHT    LDA #15
  155.     CMP SPALTE
  156.     BEQ RIGHTEND
  157.     LDA #CRIGHT
  158.     JSR BEFEHL
  159.     INC SPALTE
  160. RIGHTEND    LDY #1
  161.     RTS
  162. *
  163. PUT23    CPX #30
  164.     BNE PUT3
  165. LEFT    LDY SPALTE
  166.     BEQ LEFTEND
  167.     DEC SPALTE
  168.     LDA #CLEFT
  169.     JSR BEFEHL
  170. LEFTEND    LDY #1
  171.     RTS
  172. *
  173. PUT3    TXA
  174.     JSR ZEICHEN
  175.     INC SPALTE
  176. *    
  177. PUT4    LDY SPALTE    (SICHTBARES)
  178.     CPY #16        ZEILENENDE?
  179.     BNE PUTEND    NEIN ->
  180.     LDA ZEILE    ZEILE1 ?
  181.     BEQ PUT41    NEIN ->
  182. ***    JSR HALT
  183.     JSR LEER        ALLES LOESCHEN
  184.     DEC ZEILE
  185.     JMP PUTEND        
  186. PUT41    JSR LEER
  187.     INC ZEILE
  188. PUTEND    LDY #1
  189.          RTS
  190.  
  191. *    ZEILENENDE-ROUTINE 
  192. *    fuegt nach RETURN oder am
  193. *    Ende des sichtbaren
  194. *    Displayfensters
  195. *    (= 16 Zeichen)
  196. *    Leerzeichen bis zum
  197. *    eigentlichen Zeilenende
  198. *    (= 40 Zeichen) ein
  199. LEER    LDA #32
  200.     JSR ZEICHEN
  201.     INY        
  202.     CPY #40
  203.     BNE LEER
  204.     LDY #0
  205.     STY SPALTE
  206.     INY
  207.     RTS
  208.  
  209. HALT    LDA CONSOL
  210.     AND #%00000001
  211.     BNE HALT
  212.     RTS
  213.  
  214. SPALTE    DFB 0
  215. ZEILE    DFB 0
  216.  
  217.  
  218.  
  219.  
  220. GET    JSR $F2FD    
  221.          CPY #1
  222.          BNE GETEND
  223.     STA GETWERT
  224.     JSR PUT
  225.     LDA GETWERT
  226. GETEND    RTS             
  227. GETWERT    DFB 0
  228.  
  229.  
  230. *    PROGRAMMIEREN DES DISPLAYS
  231. *    Wert steht im Akku
  232. BEFEHL    PHA
  233.     LDA #0
  234.     STA PORTB    RS->BEFEHL  
  235.     LDA #52
  236.     STA PBCTL    WRITE
  237.     JSR WAIT
  238.     LDA #60
  239.     STA PACTL
  240. *    JSR WAIT
  241.     PLA
  242.     AND #%01111111 
  243.     STA PORTB
  244. *    JSR WAIT
  245.     LDA #52
  246.     STA PACTL
  247.     LDA #0
  248.     STA PORTB
  249.     LDA #60
  250.     STA PBCTL
  251.          RTS         
  252.  
  253. *    AUSGABE EINES ZEICHENS
  254. *    AUF DAS DISPLAY
  255. *    Wert steht im Akku
  256. ZEICHEN  PHA 
  257.     LDA #128
  258.     STA PORTB
  259.          LDA #52
  260.          STA PBCTL
  261.     JSR WAIT
  262.     LDA #60
  263.     STA PACTL
  264. *    JSR WAIT
  265.     PLA
  266.     ORA #%10000000
  267.     STA PORTB
  268. *    JSR WAIT
  269.     LDA #52
  270.     STA PACTL
  271.     LDA #0
  272.     STA PORTB
  273.     LDA #60
  274.     STA PBCTL
  275.          RTS
  276.  
  277. WAIT    LDA #0
  278.     STA W
  279. WAIT1    INC W
  280.     BNE WAIT1
  281.     RTS
  282. W    EQU 0¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯