E.2. Initialisierung und Hauptprogramm (START.S)

 

;// 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