mirror of
https://github.com/irmen/ksim65.git
synced 2024-05-29 03:41:30 +00:00
added c64 test programs
This commit is contained in:
parent
2410ca48f9
commit
d7b443a677
BIN
c64testprgs/apaw.prg
Normal file
BIN
c64testprgs/apaw.prg
Normal file
Binary file not shown.
BIN
c64testprgs/charset.prg
Normal file
BIN
c64testprgs/charset.prg
Normal file
Binary file not shown.
BIN
c64testprgs/concubism.prg
Normal file
BIN
c64testprgs/concubism.prg
Normal file
Binary file not shown.
BIN
c64testprgs/deadsun.prg
Normal file
BIN
c64testprgs/deadsun.prg
Normal file
Binary file not shown.
BIN
c64testprgs/gotmyeyesonyou.prg
Normal file
BIN
c64testprgs/gotmyeyesonyou.prg
Normal file
Binary file not shown.
BIN
c64testprgs/keyboardtest.prg
Normal file
BIN
c64testprgs/keyboardtest.prg
Normal file
Binary file not shown.
BIN
c64testprgs/mabooty.prg
Normal file
BIN
c64testprgs/mabooty.prg
Normal file
Binary file not shown.
BIN
c64testprgs/makeup.prg
Normal file
BIN
c64testprgs/makeup.prg
Normal file
Binary file not shown.
BIN
c64testprgs/medusa.prg
Normal file
BIN
c64testprgs/medusa.prg
Normal file
Binary file not shown.
30
c64testprgs/rasterIRQ.asm
Normal file
30
c64testprgs/rasterIRQ.asm
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
*=$0801
|
||||||
|
.word (+), 2005
|
||||||
|
.null $9e, format("%d", start)
|
||||||
|
+ .word 0
|
||||||
|
|
||||||
|
* = 2084
|
||||||
|
|
||||||
|
|
||||||
|
start
|
||||||
|
sei
|
||||||
|
lda #$7f
|
||||||
|
sta $dc0d
|
||||||
|
and $d011
|
||||||
|
sta $d011
|
||||||
|
lda #123
|
||||||
|
sta $d012
|
||||||
|
lda #<irq
|
||||||
|
sta $0314
|
||||||
|
lda #>irq
|
||||||
|
sta $0315
|
||||||
|
lda #1
|
||||||
|
sta $d01a
|
||||||
|
cli
|
||||||
|
rts
|
||||||
|
|
||||||
|
irq
|
||||||
|
inc $0400
|
||||||
|
asl $d019
|
||||||
|
jmp $ea31
|
BIN
c64testprgs/rasterIRQ.prg
Normal file
BIN
c64testprgs/rasterIRQ.prg
Normal file
Binary file not shown.
BIN
c64testprgs/scarecrow.prg
Normal file
BIN
c64testprgs/scarecrow.prg
Normal file
Binary file not shown.
BIN
c64testprgs/spritepos.prg
Normal file
BIN
c64testprgs/spritepos.prg
Normal file
Binary file not shown.
134
c64testprgs/testTOD.asm
Normal file
134
c64testprgs/testTOD.asm
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
CIA1 = $DC00
|
||||||
|
CIA2 = $DD00
|
||||||
|
SCREEN = $0400
|
||||||
|
|
||||||
|
*=$0801
|
||||||
|
.word (+), 2005
|
||||||
|
.null $9e, format("%d", start)
|
||||||
|
+ .word 0
|
||||||
|
|
||||||
|
* = 2084
|
||||||
|
|
||||||
|
|
||||||
|
start
|
||||||
|
jsr $e544 ; clear screen
|
||||||
|
lda CIA1+15
|
||||||
|
and #%01111111
|
||||||
|
sta CIA1+15
|
||||||
|
lda CIA2+15
|
||||||
|
and #%01111111
|
||||||
|
sta CIA2+15
|
||||||
|
|
||||||
|
lda #$08
|
||||||
|
sta CIA1+11
|
||||||
|
lda #$13
|
||||||
|
sta CIA2+11
|
||||||
|
lda #$59
|
||||||
|
sta CIA1+10
|
||||||
|
lda #$20
|
||||||
|
sta CIA2+10
|
||||||
|
lda #$50
|
||||||
|
sta CIA1+9
|
||||||
|
lda #$40
|
||||||
|
sta CIA2+9
|
||||||
|
lda #$00
|
||||||
|
sta CIA1+8
|
||||||
|
sta CIA2+8
|
||||||
|
|
||||||
|
lda CIA1+8 ; start TOD timer in CIA1
|
||||||
|
lda CIA2+8 ; start TOD timer in CIA2
|
||||||
|
|
||||||
|
loop
|
||||||
|
lda CIA1+8
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+0
|
||||||
|
|
||||||
|
lda CIA2+8
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+0+40
|
||||||
|
|
||||||
|
lda CIA1+9
|
||||||
|
tay
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+2
|
||||||
|
tya
|
||||||
|
and #$0f
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+3
|
||||||
|
|
||||||
|
lda CIA2+9
|
||||||
|
tay
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+2+40
|
||||||
|
tya
|
||||||
|
and #$0f
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+3+40
|
||||||
|
|
||||||
|
lda CIA1+10
|
||||||
|
tay
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+5
|
||||||
|
tya
|
||||||
|
and #$0f
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+6
|
||||||
|
|
||||||
|
lda CIA2+10
|
||||||
|
tay
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+5+40
|
||||||
|
tya
|
||||||
|
and #$0f
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+6+40
|
||||||
|
|
||||||
|
lda CIA1+11
|
||||||
|
tay
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+8
|
||||||
|
tya
|
||||||
|
and #$0f
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+9
|
||||||
|
|
||||||
|
lda CIA2+11
|
||||||
|
tay
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+8+40
|
||||||
|
tya
|
||||||
|
and #$0f
|
||||||
|
ora #'0'
|
||||||
|
sta SCREEN+9+40
|
||||||
|
|
||||||
|
jmp loop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
c64testprgs/testTOD.prg
Normal file
BIN
c64testprgs/testTOD.prg
Normal file
Binary file not shown.
BIN
c64testprgs/timer32.prg
Normal file
BIN
c64testprgs/timer32.prg
Normal file
Binary file not shown.
BIN
c64testprgs/wizzine.prg
Normal file
BIN
c64testprgs/wizzine.prg
Normal file
Binary file not shown.
BIN
c64testprgs/woolonhermind.prg
Normal file
BIN
c64testprgs/woolonhermind.prg
Normal file
Binary file not shown.
|
@ -233,9 +233,11 @@ internal class Screen(private val chargenData: ByteArray, val ram: MemoryCompone
|
||||||
private val coloredCharacterImageCache = mutableMapOf<Triple<Int, Int, Boolean>, BufferedImage>()
|
private val coloredCharacterImageCache = mutableMapOf<Triple<Int, Int, Boolean>, BufferedImage>()
|
||||||
|
|
||||||
private fun drawColoredChar(x: Int, y: Int, char: Int, color: Int, charsetAddr: Address) {
|
private fun drawColoredChar(x: Int, y: Int, char: Int, color: Int, charsetAddr: Address) {
|
||||||
// The vic 'sees' the charset rom at these addresses: $1000 + $1800, $9000 + $9800
|
// The vic 'sees' the charset ROM at these addresses: $1000(normal) + $1800(shifted), $9000(normal) + $9800(shifted)
|
||||||
// so we can use pre-loaded images to efficiently draw the characters.
|
// so we can use pre-loaded images to efficiently draw the default ROM characters.
|
||||||
// If the address is different, the vic takes charset data from RAM instead.
|
// If the address is different, the vic takes charset data from RAM instead (thus allowing user defined charsets)
|
||||||
|
// A user-supplied character set in RAM must begin at an address that is 2048 byte aligned,
|
||||||
|
// and lies within the same 16K VIC bank as the screen character memory.
|
||||||
// TODO: currently custom charsets taken from RAM aren't supported
|
// TODO: currently custom charsets taken from RAM aren't supported
|
||||||
val shifted = charsetAddr and 0x0800 != 0
|
val shifted = charsetAddr and 0x0800 != 0
|
||||||
val charImage = getCharImage(char, color, shifted)
|
val charImage = getCharImage(char, color, shifted)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user