BUF1 equ $A000 ;Screenbuffer for Fontscreen BUF2 equ $A800 ;Screenbuffer for Fontscreen2 ;GTIA PRIOR equ $D01B ; PORTA equ $D300 PORTB equ $D301 ;ANTIC CHBASE equ $D409 ; Characterfont base WSYNC equ $D40A ; wait sync VCOUNT equ $D40B ; vertical line count (0-131 PAL, 0-156 NTSC) NMIEN equ $D40E ; Interupt enable CNT equ $14 FONTORG equ $E000 ;Atari font LOWEST equ $2400 ;lowest safe adress for prg FONT equ $2400 ;own fonts for foreground fontsForeground equ FONT FONT2 equ FONT+8*$400 ;own fonts for background fontsBackground equ FONT2 org FONT-4 jmp startup nop ins "brightness.bin" ins "hue_colors.bin" startup mva #0 559 jsr GR4TEXT jsr initDLI ; jsr copyFont mva #34 559 ; initialize screen buffer with 8 times 3 lines from 0 to 119 mwa #BUF1 200 mwa #BUF2 202 ldx #8 ;8 times txt0 ldy #0 txtl tya sta (200),y sta (202),y iny cpy #120 ; 3 lines (120 chrs) bne txtl clc ; add 120 to buf1 and buf2 lda 200 adc #120 sta 200 lda 201 adc #0 sta 201 clc lda 202 adc #120 sta 202 lda 203 adc #0 sta 203 dex bne txt0 chrready lda #>FONT ; activate Font sta CHBASE main lda cnt sync cmp cnt beq sync lsr ;Use bit 0 to select font bcs use_font2 mva #$00 PRIOR mva #COLORS c_loop5+2 lda #>FONT sta $d409 ; DLI vorbereiten mva #1 tabIndex ; DLI mode4 lda #ant2 sta 561 jmp setclrs use_font2 mva #$C0 PRIOR mva #COLORS2 c_loop5+2 lda #>FONT2 sta $d409 ; DLI vorbereiten mva #8+1 tabIndex ; DLI mode2 lda #ant4 sta 561 setclrs ldy #0 ; set colors 704-712 c_loop5 lda COLORS,y sta 704,y iny cpy #712-704+1 bne c_loop5 jmp main GR4TEXT lda #ant4 sta 561 lda #BUF1 sta 89 ldy #0 ; set colors 704-712 c_loop4 lda COLORS,y sta 704,y iny cpy #712-704+1 bne c_loop4 rts COLORS dta $0E,$0A,$3E,$3A ;color player 0-3 dta $02,$06,$0A,$0F,$02 ;color field COLORS2 dta $0F,$3F,$5F,$7F ;color player 0-3 dta $02,$06,$0A,$0F,$00 ;color field initDLI mva 0 NMIEN mva dli $201 mva #$c0 NMIEN rts ; displaylist interrupt dli pha txa pha ldx tabIndex ; index for font and lda chbaseTab,x sta WSYNC sta CHBASE ;lda priorTab,x ;sta PRIOR inc tabIndex pla tax pla rti tabIndex dta 1 chbaseTab .rept 8 dta >(fontsForeground + #*$400) .endr .rept 8 dta >(fontsBackground + #*$400) .endr ;----------------------------------------------------------------------------- .align $1000 // ANTIC PROGRAM ant4 dta d'ppp' ;$70,$70,$70 dta b($40+4) ;$44 1x40 Bytes dta a(BUF1) ;adr of screenbuf dta 4 ;1 Line characters .rept 7 dta 4+$80 ;1 Line with dli dta 4 ;1 Line characters dta 4 ;1 Line characters .endr dta 4 ;1 Line characters dta $41,a(ant4) ;$41,$49,$40 jmp/load // ANTIC PROGRAM2 ant2 dta d'ppp' ;$70,$70,$70 dta b($40+2) ;$22 1x40 Bytes dta a(BUF2) ;adr of screenbuf dta 2 ;1 Line characters .rept 7 dta 2+$80 ;1 Line with dli dta 2 ;1 Line characters dta 2 ;1 Line characters .endr dta 2 ;1 Line characters dta $41,a(ant2) ;$41,$49,$40 jmp/load