;
;Source for PCIN-Mode-Pictue done with GraphicsTileMaster (V0.0.0.x)
;
;Made changes for PCIN mode hi-res (Antic 4 - Antic 2) ... PF0-PF3 unchanged between cycles.  Display lists are unaltered
;$80 (128 decimal) is stored in PRIOR
;Altered Antic 4 display list for horizontal scrolling
;
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
HSCROL  equ $D404
COLBAK equ $D01A

CNT	equ $14

FONTORG	equ $E000	;Atari font
LOWEST	equ $2400	;lowest safe adress for prg
FONT	equ $2400	;own fonts for foreground
FONT2	equ FONT+8*$400	;own fonts for background

	org BUF2
	ins "outr12a.scr",+120,960
	org BUF1
	ins "outr10a.scr",+120,960

        org FONT-4
        jmp startup
        nop
	org FONT
	ins "outr12a.fnt",+$400,8192
	org FONT2
	ins "outr10a.fnt",+$400,8192
	;.rept 8192
	;.byte 0
	;.endr
startup
    
	mva #0 559
        jsr GR4TEXT
        jsr initDLI
;	jsr copyFont
	mva #34 559
	mva #14 HSCROL

   
	
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 #15 HSCROL
        mva #<COLORS c_loop5+1 
        mva #>COLORS c_loop5+2 
        lda #>FONT
        sta $d409
	; DLI vorbereiten
	mva #0 tabIndex
	; DLI mode4
	lda #<ant2
	sta 560
	lda #>ant2
	sta 561
        jmp setclrs
use_font2
        mva #$80 PRIOR
		;mva #14 HSCROL
        mva #<COLORS2 c_loop5+1 
        mva #>COLORS2 c_loop5+2 
        lda #>FONT2
        sta $d409
	; DLI vorbereiten
	mva #24+0 tabIndex
	; DLI mode2
	lda #<ant4
	sta 560
	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 560
	lda #>ant4
	sta 561

        lda #<BUF1
        sta 88
        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 $00,$22,$06,$60;color player 0-3
	dta $a4,$f6,$0c,$d2,$00 ;color field
COLORS2	dta $00,$22,$06,$60	;color player 0-3
	dta $a4,$f6,$0c,$d2,$00	;color field

initDLI	mva 0 NMIEN
	mva <dli $200
	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
	lda colbaktab,x
	sta COLBAK
	inc tabIndex
	pla
	tax
	pla
	rti
tabIndex	dta 1
chbaseTab
	.rept 4
	dta >(FONT  + #*$800)
	dta >(FONT2 + #*$800)
	dta >(FONT  + #*$800)
	dta >(FONT2 + $400 + #*$800)
	dta >(FONT  + $400 + #*$800)
	dta >(FONT2 + $400 + #*$800)
	.endr
	.rept 4
	dta >(FONT2 + #*$800)
	dta >(FONT  + #*$800)
	dta >(FONT2 + #*$800)
	dta >(FONT  + $400 + #*$800)
	dta >(FONT2 + $400 + #*$800)
	dta >(FONT  + $400 + #*$800)
	.endr
priortab
	.rept 12
	dta $00,$80
	.endr
	.rept 12
	dta $80,$00
	.endr
colbaktab
	.rept 12
	dta $0,$84
	.endr
	.rept 12
	dta $84,$00
	.endr

	
;-----------------------------------------------------------------------------
.align $1000
// ANTIC PROGRAM
ant4	dta $70
	dta $70
	dta $70+80
	.rept 12
	dta b(4+$10+$40+$80)
	dta a(BUF2 -1 + #*80)
	dta b(2+$40+$80)
	dta a(BUF1 +40 + #*80)
	.endr

	dta $41,a(ant4)	
// ANTIC PROGRAM2
ant2	dta $70
	dta $70
	dta $70+80
	.rept 12
	dta b(2+$40+$80)
	dta a(BUF1 + #*80)
	dta b(4+$10+$40+$80)
	dta a(BUF2 -1 + 40 + #*80)
	.endr
	
	dta $41,a(ant2)

	run startup