;// freitag, 23.februar 1990 19.50 uhr
;
; DATEI UNTER.S
; PROJEKT EDDI3
ADRE
GLOBAL
RSEG UNTER
; BINAER -> BCD ################################################
BIN2BCD ;
PHX
LDX #-1
B2D1 ;
INX
SEC
SBC #10
BCS B2D1
CLC
ADC #10
STA B2DSTO
TXA
VIERASL * 16
ADC B2DSTO
PLX
RTS ENDE BIN2BCD
; CAS-ADRESSE ERHOEHEN #################################################
INCCAS ;
INC A
CMP #PIXEL+OFFSET+1
BMI INCCE
LDA #OFFSET ZAEHLER STARTEN
INCCE ;
RTS
; CAS-ADRESSE ERNIEDRIGEN ##############################################
DECCAS ;
DEC A
CMP #OFFSET
BPL DECCE
LDA #PIXEL+OFFSET
DECCE ;
RTS
; RAS-ADRESSE ERHOEHEN #################################################
INCRAS ;
INC A
CMP #BILDER-4
BCC INCRE
LDA #0
INCRE ;
RTS
; RAS-ADRESSE ERNIEDRIGEN ##############################################
DECRAS ;
DEC A
CMP #BILDER-4
BCC DECRE
LDA #BILDER-5
DECRE ;
RTS
; ZEILE ERHOEHEN #######################################################
INCROW ;
INC A
CMP #(312-ZEILEN-LPOFF)/2+1
BCC INCWE
LDA #UPOFF/2
INCWE ;
RTS
; ZEILE ERNIEDRIGEN ####################################################
DECROW ;
DEC A
CMP #UPOFF/2
BCS DECWE
LDA #(312-ZEILEN-LPOFF)/2
DECWE ;
RTS
; CCAS-RCAS ERHOEHEN ###################################################
ICCAS ;
LDA CCAS CAS-ZAEHLER LADEN
JSR INCCAS ERHOEHEN
STA CCAS UND ABSPEICHERN
CMP #OFFSET CAS-GRENZE ERREICHT ?
BNE ICRE NEIN
LDA CRAS RAS-ZAEHLER LADEN
JSR INCRAS ERHOEHEN
STA CRAS UND ABSPEICHERN
ICRE ;
RTS
; CCAS/CRAS ERNIEDRIGEN ################################################
DCCAS ;
LDA CCAS CAS-ZAEHLER LADEN
JSR DECCAS ERNIEDRIGEN
STA CCAS UND ABSPEICHERN
CMP #PIXEL+OFFSET CAS-GRENZE ERREICHT ?
BNE DCRE NEIN
LDA CRAS RAS-ZAEHLER LADEN
JSR DECRAS ERNIEDRIGEN
STA CRAS UND ABSPEICHERN
DCRE ;
RTS
; CRAS ERHOEHEN ########################################################
ICRAS ;
LDA CRAS RAS-ZAEHLER LADEN
JSR INCRAS ERHOEHEN
STA CRAS UND ABSPEICHERN
RTS
; CRAS ERNIEDRIGEN #####################################################
DCRAS ;
LDA CRAS RAS-ZAEHLER LADEN
JSR DECRAS ERNIEDRIGEN
STA CRAS UND ABSPEICHERN
RTS
; CRW1 ERHOEHEN ########################################################
ICRW1 ;
LDA CRW1 ROW-ZAEHLER LADEN
JSR INCROW ERHOEHEN
STA CRW1 UND ABSPEICHERN
RTS
; CRW1 ERNIEDRIGEN #####################################################
DCRW1 ;
LDA CRW1 ROW-ZAEHLER LADEN
JSR DECROW ERNIEDRIGEN
STA CRW1 UND ABSPEICHERN
RTS
; CAS-BEREICHSABFRAGE ##################################################
CCCAS ;
CMP #PIXEL+OFFSET+1 OBERE GRENZE UEBERSCHRITTEN ?
BMI CCC1
LDA #PIXEL+OFFSET
BRA CCCE
CCC1 ;
CMP #OFFSET UNTERE GRENZE UEBERSCHRITTEN ?
BPL CCCE
LDA #OFFSET
CCCE ;
RTS
; RAS-BEREICHSABFRAGE ##################################################
CCRAS ;
CMP #BILDER-4 OBERE GRENZE UEBERSCHRITTEN ?
BCC CCRE
LDA #BILDER-5
CCRE ;
RTS
; ROW-BEREICHSABFRAGE ##################################################
CCROW ;
CMP #(312-ZEILEN-LPOFF)/2+1 OBERE GRENZE UEBERSCHRITTEN ?
BCC CCW1
LDA #(312-ZEILEN-LPOFF)/2
BRA CCWE
CCW1 ;
CMP #UPOFF/2 UNTERE GRENZE UEBERSCHRITTEN ?
BCS CCWE
LDA #UPOFF/2
CCWE ;
RTS
RTS
; UPLOAD XILINX-KONFIGURATION ##########################################
XILUP ;
LDY #H(XILINXL) LAENGE XILINX-DATEN (MSB)
LDX #L(XILINXL) " " " (LSB)
BEQ XILUP0
INY BYTEZAEHLER KORRIGIEREN
XILUP0 ;
LDA #L(XILINXS) ADRESSE DER XILINX-DATEN (LSB)
STA R0
LDA #H(XILINXS) " " " " (MSB)
STA R1
XILUP1 ;
LDA (R0) XILINX-BYTE LADEN
STA PMCF UND INS KONFIGURATIONSREGISTER SPEICHERN
INC R0 ADRESSE ERHOEHEN (LSB)
BNE XILUP2
INC R1 ADRESSE ERHOEHEN (MSB)
XILUP2 ;
PHA ETWAS WARTEN
PLA
PHA
PLA
DEX BYTE-ZAEHLER (LSB)
BNE XILUP1
DEY BYTE-ZAEHLER (MSB)
BNE XILUP1
RTS
; WARTESCHLEIFE (LANG) #################################################
WAIT ;
PHX
PHY
LDX #0
LDY #0
WT1 ;
DEX
BNE WT1
DEY
BNE WT1
DEC A
BNE WT1
PLY
PLX
RTS
; WARTESCHLEIFE FUER LAUF-ROUTINE (HAUPTPROGRAMM) ######################
WTLAUF ;
PHX
PHY
LDX #0
LDY #WTVAL
WTL1 ;
DEX
BNE WTL1
DEY
BNE WTL1
PLY
PLX
RTS
; ZEICHENSATZ ZUR DARSTELLUNG IM BILDSPEICHER ##########################
CHSET ;
DB 00111000B 0
DB 01000100B
DB 01001100B
DB 01010100B
DB 01100100B
DB 01000100B
DB 00111000B
DB 00000000B
DB 00010000B 1
DB 00110000B
DB 01010000B
DB 00010000B
DB 00010000B
DB 00010000B
DB 01111100B
DB 00000000B
DB 00111000B 2
DB 01000100B
DB 00000100B
DB 00001000B
DB 00010000B
DB 00100000B
DB 01111100B
DB 00000000B
DB 00111000B 3
DB 01000100B
DB 00000100B
DB 00011000B
DB 00000100B
DB 01000100B
DB 00111000B
DB 00000000B
DB 00001000B 4
DB 00011000B
DB 00101000B
DB 01001000B
DB 01111100B
DB 00001000B
DB 00011100B
DB 00000000B
DB 01111100B 5
DB 01000000B
DB 01111000B
DB 00000100B
DB 00000100B
DB 01000100B
DB 00111000B
DB 00000000B
DB 00111000B 6
DB 01000100B
DB 01000000B
DB 01111000B
DB 01000100B
DB 01000100B
DB 00111000B
DB 00000000B
DB 01111100B 7
DB 01000100B
DB 00000100B
DB 00001000B
DB 00010000B
DB 00100000B
DB 00100000B
DB 00000000B
DB 00111000B 8
DB 01000100B
DB 01000100B
DB 00111000B
DB 01000100B
DB 01000100B
DB 00111000B
DB 00000000B
DB 00111000B 9
DB 01000100B
DB 01000100B
DB 00111100B
DB 00000100B
DB 01000100B
DB 00111000B
DB 00000000B
DB 00010000B A
DB 00101000B
DB 01000100B
DB 01000100B
DB 01111100B
DB 01000100B
DB 01000100B
DB 00000000B
DB 01111000B B
DB 01000100B
DB 01000100B
DB 01111000B
DB 01000100B
DB 01000100B
DB 01111000B
DB 00000000B
DB 00111000B C
DB 01000100B
DB 01000000B
DB 01000000B
DB 01000000B
DB 01000100B
DB 00111000B
DB 00000000B
DB 01111000B D
DB 01000100B
DB 01000100B
DB 01000100B
DB 01000100B
DB 01000100B
DB 01111000B
DB 00000000B
DB 01111100B E
DB 01000000B
DB 01000000B
DB 01111000B
DB 01000000B
DB 01000000B
DB 01111100B
DB 00000000B
DB 01111100B F
DB 01000000B
DB 01000000B
DB 01111000B
DB 01000000B
DB 01000000B
DB 01000000B
DB 00000000B
RSEG UNTERZ ZERO-PAGE
RSEG UNTERD RAM-BEREICH
B2DSTO DS 1 ZWISCHENSPEICHER FUER BIN2BCD
CCAS DS 1 CAS-ZAEHLER, 7 BIT + VORZEICHEN
CRW1 DS 1 ZEILENZAEHLER, 8 BIT
CRAS DS 1 RAS-ZAEHLER, 8 BIT
END