;// dienstag, 27.februar 1990 18.37 uhr
;
; DATEI FREMD.S
; PROJEKT EDDI3
; HARDWARETREIBER FUER TC12-ANZEIGE/TASTATUR
; (c) ALPERMANN & VELTE GmbH
RSEG FREMD
ADRE
GLOBAL
; ANZEIGE UND TASTATUR INITIALISIEREN ##################################
ATINIT ;
; I/O-BAUSTEIN INITIALISIEREN
LDA #01000000B
STA IO3A
STZ IO3P
LDA #01111111B
STA IO3E
STA IO3I
STZ IO3T1CL
LDA #80H T2 ANZEIGETAKT
STA IO3T2CH
STZ IO3PA
LDA #11100000B
STA IO3DA
LDA #01100000B
STA IO3PB
LDA #7FH
STA IO3DB
LDX #16 16-STELLIGE ANZEIGE
LDA #$10 LEUCHTDIODE AUS; ANZEIGE='0'
ATI1 ;
STA ANRE-1,X
DEX
BNE ATI1
LDA #$FF
STA ANRE+16 STATUS-DIODEN AUS
JSR ANZR ANZEIGE AUFFRISCHEN
LDA #$FF
STA ANZLED1 LED'S LOESCHEN
RTS ENDE ATINIT
; ANZEIGE-STEUERUNG ####################################################
; INHALT VON ANRE IN ANZEIGE SCHREIBEN
ANZR ;
ANZRT1 LDA #20H CS
TSB IO3PB
LDY #40H
STY IO3PA
LDY #30H
STY IO3PB
TRB IO3PB
TSB IO3PB
STA IO3PB
STZ IO3PA
LDX #0
ANZR2 LDY ANRE,X WERTE
STY IO3PB
TSB IO3PB
INX
CPX #8
BNE ANZR2
ANZRT2 STA IO3PA MODE,KLEINE ANZEIGE
LDY #30H
STY IO3PB
TRB IO3PB
TSB IO3PB
STA IO3PB
STZ IO3PA
LDX #8
ANZR3 LDY ANRE,X
STY IO3PB
TSB IO3PB
INX
CPX #16
BNE ANZR3
LDA ANRE+16 STATUS
STA IO3PB
LDA #80H
TSB IO3PA
TRB IO3PA
RTS
; TASTATUR ABFRAGEN ####################################################
; ERGEBNIS IM AKKU
; Z-FLAG GESETZT = TASTE WAR GEDRUECKT
TAAU ;
JSR TASI
BEQ TA10 TASTE ?
STZ TSTA+1 VERGLEICHSWERT=0
RTS
TA10 STA TSTA TASTENWERT SICHERN
JSR ENTP
CMP #0FFH TASTE O.K. ?
BNE TA20
RTS
TA20 ;
LDA TSTA
CMP TSTA+1 TASTE GEHALTEN ?
BNE TA21
RTS
TA21 STA TSTA+1
TASI LDX #01
STX IO3PB ZEILE
LDA IO3PA
AND #1FH
CMP #1FH
BNE TASI1 SPALTE ?
LDX #02
STX IO3PB
LDA IO3PA
AND #1FH
ORA #20H ZEILEN-INDEX
CMP #3FH
BNE TASI1
LDX #04
STX IO3PB
LDA IO3PA
AND #1FH
ORA #40H
CMP #5FH
BNE TASI1
LDX #08
STX IO3PB
LDA IO3PA
AND #1FH
ORA #60H
CMP #7FH
BNE TASI1
LDX #10H
STX IO3PB
LDA IO3PA
AND #1FH
ORA #80H
CMP #9FH
BNE TASI1
LDX #20H
STX IO3PB
LDA IO3PA
AND #1FH
ORA #0A0H
CMP #0BFH
BNE TASI1
LDY #0FFH KEINE TASTE
RTS
TASI1 LDY #00
STY IO3PB
RTS
;ENTPRELLEN
ENTP ;
LDA #0FFH
STA TSTA+2
ENTP1 JSR TASI
CMP TSTA GLEICHE TASTE ?
BEQ ENTP2
LDA #0FFH
STA TSTA+1
RTS
ENTP2 DEC TSTA+2
BNE ENTP1
LDA #00
RTS
RSEG FREMDZ
RSEG FREMDD
ANRE DS 17 ANZEIGENSPEICHER
TSTA DS 3 TASIATUR-FLAGS
END