;// dienstag, 27.februar 1990 18.34 uhr
;
; DATEI START.S
; PROJEKT EDDI3
ADRE
GLOBAL
RSEG START
STTA ; RESET-EINSTIEG
SEI
LDX #$FF STACK SETZEN
TXS
CLD DEZIMAL-MODUS AUS
LDA DCMP
LDX #0 RAM LOESCHEN
STTC ;
STZ $0,X
STZ $100,X
STZ $200,X
STZ $300,X
STZ $400,X
STZ $500,X
STZ $600,X
STZ $700,X
DEX
BNE STTC
STA DCMP
INC DCMP
JSR ATINIT ANZEIGE U. TASTATUR INITIALISIEREN
JSR XILUP XILINX-KONFIGURATION LADEN
LDA PMCPIX CPIX LOESCHEN
LDA PMREC RECRQ LOESCHEN
LDA #UPOFF/2+50
STA CRW1 ZEILE RUECKSETZEN
STA PMROW1
LDA #10000000B
STA PMPORT WIEDERGABE-IRQ FREIGEBEN
JSR BFUELL BILDSPEICHER FUELLEN
LDA PMCPIX CPU-MODUS AUS
LDA #OFFSET
STA CCAS BILD-OFFSET RUECKSETZEN
JSR ANZNEU ANZEIGE AUFFRISCHEN
CLI IRQ FREIGEBEN
; HAUPT-PROGRAMM-SCHLEIFE ##############################################
LAUF ;
JSR TASLOW LOW-LEVEL-TASTATURFUNKTIONEN AUSFUEHREN
CMP #36 REC ?
BNE LAUF1
; RECORD-FUNKTION
LDA #01000000B
TRB ANZLED1
JSR ANZNEU REC-LED EINSCHALTEN
STZ PMCAS AUFNAHME VORBEREITEN
LDA IBUFB
STA PMRAS BILD-# ANWAEHLEN
LDA #20/2
STA PMROW1 ZEILE SETZEN
LDA #01000000B
STA PMPORT AUFNAHME-IRQ FREIGEBEN
STA PMREC REC-MODUS EIN
LDA #1
STA VMODE VIDEO-MODUS UMSCHALTEN
LAUF01 ;
LDA VMODE AUFNAHME BEENDET ?
BNE LAUF01 NEIN
LDA #10000000B
STA PMPORT WIEDERGABE-IRQ FREIGEBEN
LDA PMREC AUFNAHME-MODUS AUS
LDA #01000000B
TSB ANZLED1
JSR ANZNEU REC-LED AUSSCHALTEN
BRA LAUF
LAUF1 ;
BRA LAUF
; #######################################################################
; BILDSPEICHER FUELLEN
BFUELL ;
STA PMCPIX CPIX EINSCHALTEN
STZ DPUT BILD-NUMMER
STTX1 ;
; ADRESSZAEHLER INITIALISIEREN
STZ PMCAS
LDA DPUT
STA PMRAS BILD-# ANLEGEN
STZ PMCAS
LDA #ZEILEN/3
STA R1
STTX2 ;
LDA #3
STA R2
STTX3 ;
; ZEILE AUFBAUEN
SEC
LDA #ZEILEN+3
SBC R1
SBC R1
SBC R1
SBC R2 ZEILENNUMMER BERECHNEN
JSR MKZEIL ZEILE BERECHNEN
; ZEILE AUSGEBEN
LDX #0 PIXELZAEHLER
STTX4 ;
LDA ZEILE,X
STA PMCRO CHROMA EINSCHREIBEN
EOR #$FF
STA PMLUM LUMINANZ EINSCHREIBEN
INX
CPX #PIXEL
BNE STTX4 PIXELZAEHLER
DEC R2
BNE STTX3 ZEILENZAEHLER L
LDX #256-(3*PIXEL) PIXELOFFSET
STTX5 ;
STZ PMCRO
STZ PMLUM DUMMY-DATEN EINSCHREIBEN
DEX
BNE STTX5
DEC R1
BNE STTX2 ZEILENZAEHLER H
INC DPUT
LDA DPUT
CMP #BILDER
BNE STTX1 BILDNUMMER
RTS ENDE BFUELL
; EINBLENDZEILE AUFBAUEN ################################################
MKZEIL ;
XOFF EQU 10 HORIZONTALE POSITION DER EINBLENDUNG
YOFF EQU 1 DTO. VERTIKALE POSITION
CMP #0
BEQ MKZC LOESCHEN
CMP #YOFF+8
BEQ MKZC LOESCHEN
CMP #YOFF
BCC MKZE UEBER
CMP #YOFF+8
BCS MKZE UNTER
MKI ;
SEC
SBC #YOFF
STA R4 ZEILENOFFSET
; 1.ZIFFER
LDA #L(ZEILE+XOFF+10)
STA MKCHP
LDA #H(ZEILE+XOFF+10)
STA MKCHP+1
LDA DPUT
JSR BIN2BCD
VIERLSR
JSR MKCH
; 2.ZIFFER
LDA #L(ZEILE+XOFF+19)
STA MKCHP
LDA #H(ZEILE+XOFF+19)
STA MKCHP+1
LDA DPUT
JSR BIN2BCD
AND #$F
JSR MKCH
; 3.ZIFFER
LDA #L(ZEILE+XOFF+30)
STA MKCHP
LDA #H(ZEILE+XOFF+30)
STA MKCHP+1
LDA DCMP
JSR BIN2BCD
VIERLSR
JSR MKCH
; 4.ZIFFER
LDA #L(ZEILE+XOFF+39)
STA MKCHP
LDA #H(ZEILE+XOFF+39)
STA MKCHP+1
LDA DCMP
JSR BIN2BCD
AND #$F
JSR MKCH
BRA MKZE
; ZEILE MIT ZEICHEN AUFBAUEN ############################################
MKZC ;
LDX #0
MKZC1 ;
LDA DPUT
ZWEIASL
IF STEH
LDA #0
ENDIF
STA ZEILE,X HINTERGRUND-HELLIGKEIT
INX
CPX #PIXEL
BNE MKZC1
BRA MKZE
MKZE ;
RTS
; ZEICHEN AUFBAUEN ######################################################
MKCH ;
DREIASL * 8
CLC
ADC R4
TAX
LDA CHSET,X PIXELMUSTER
STA R5
LDY #8
MKCH1 ;
LDA #0
ROR R5
SBC #0
IF .NOT.STEH
; EOR DPUT
ENDIF
STA (MKCHP),Y
DEY
BNE MKCH1
RTS
; SPEICHERBELEGUNG ######################################################
RSEG STARTZ ZEROPAGE
R0 DS 1
R1 DS 1
R2 DS 1
R3 DS 1
R4 DS 1
R5 DS 1
R6 DS 1
R7 DS 1 8 UNIVERSALREGISTER
MKCHP DS 2 2 BYTE PTR FUER MKZEIL
RSEG STARTD RAM
ZEILE DS 80 80 BYTE ZEILENSPEICHER
DPUT DS 1
DGET DS 1
DCMP DS 1
VMODE DS 1 VIDEO-MODUS
; 0 = WIEDERGABE
; 1 = AUFNAHME
; INTERRUPT-VEKTOREN ####################################################
RSEG VEKT
DW NMIA
DW STTA
DW IRQA
END