Mercurial > hg > Members > kono > nitros9-code
diff bootman/mach_coco3.a @ 2163:2db06bc0742a
Start of BootMan
author | boisy |
---|---|
date | Tue, 20 May 2008 14:43:00 +0000 |
parents | |
children | d280490500a8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bootman/mach_coco3.a Tue May 20 14:43:00 2008 +0000 @@ -0,0 +1,116 @@ + NAM mach_coco + TTL CoCo machine routines + + PSECT mach_coco,0,0,0,0,mach_init + + VSECT + ENDSECT + +PIA0Base equ $FF00 +PIA1Base equ $FF20 +DAT.Regs equ $FFA0 + +mach_init: +* CoCo 3 Initialization Code + clr $FFD9 go into fast mode + +* Setup MMU + ldx #DAT.Regs + leay MMUTbl,pcr + ldb #16 +MMULoop lda ,y+ + sta ,x+ + decb + bne MMULoop + +* Setup video + leau CC3Regs,pcr point to video setup data + ldx #$FF90 +Loop1 ldd ,u++ get the bytes + std ,x++ save in the hardware + cmpx #$FFA0 + bcs Loop1 + +* Set palettes up + leau PalTbl,pcr + ldy #$FFB0 palette register + ldb #16 + lbsr CopyRtn + +* Initialize PIAs + ldx #PIA1Base RG - Initialize the PIA 1 + ldd #$FF34 + clr 1,x cassette motor off, 0,x is DDR + clr 3,x 2,x is DDR + deca A = $FE + sta ,x cassette bit 0 input, all others output + lda #$F8 bits 7-3 output, bits 2-0 input + sta 2,x set DDR + stb 1,x 0,x not DDR + stb 3,x 2,x not DDR + clr 2,x + lda #$02 RS-232 bit hi + sta ,x set it + + lda #$FF all outputs + ldx #PIA0Base + clr 1,x 0,x is DDR + clr 3,x 2,x is DDR + clr ,x all inputs + sta 2,x all outputs + stb 1,x 0,x is not DDR + stb 3,x 2,x is not DDR + clr 2,x + + rts + +CopyRtn clra + tfr d,x +Copy1 ldb ,u+ + stb ,y+ + leax -1,x + bne Copy1 + rts + +* MMU +MMUTbl + fcb $38,$39,$3A,$3B,$3C,$3D,$3E,$3F + fcb $38,$39,$3A,$3B,$3C,$3D,$3E,$3F + +* GIME register default values +CC3Regs fcb $EC CC2, MMU, IRQ, Vector page, SCS + fcb $00 map type 0 + fcb $00 no FIRQ + fcb $00 no IRQ + fdb $0900 timer + fcb $00 unused + fcb $00 unused + fcb $00 + fcb $00 + fcb $00 + fcb $00 + fdb $0FE0 + fcb $00 + fcb $00 + +* Palette register default colors +PalTbl + fcb $12 green + fcb $36 + fcb $09 blue + fcb $24 red + fcb $3F white + fcb $1B cyan + fcb $2D magenta + fcb $26 + fcb $00 black + fcb $12 green + fcb $00 black + fcb $3F white + fcb $00 black + fcb $12 green + fcb $00 black + fcb $26 + + + endsect