-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtms9918_debug.spin2
66 lines (52 loc) · 1.72 KB
/
tms9918_debug.spin2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{
TMS9918 Emulation Example
Written by Marco Maccaferri <[email protected]>
}
CON
_clkfreq = 160_000_000
video_pin = 32+7*3 addpins 1
VAR
byte tms_bitmap[256 * 192]
OBJ
tms : "tms9918_cvbs"
'tms : "tms9918_vga"
PUB main() | addr, back
debug(`BITMAP TMS9918 POS 1250 50 SIZE 320 240 DOTSIZE 2 LUT8 LONGS_8BIT)
debug(`TMS9918 LUTCOLORS $00_00_00 $00_00_00 $20_C0_20 $60_E0_60 $20_20_E0 $40_60_E0 $A0_20_20 $40_C0_E0 $E0_20_20 $E0_60_60 $C0_C0_20 $C0_C0_80 $20_80_20 $C0_40_A0 $A0_A0_A0 $E0_E0_E0)
tms.start(0, @tms_regs, @tms_vram, @tms_bitmap, video_pin) ' NTSC
'tms.start(1, @tms_regs, @tms_vram, @tms_bitmap, video_pin) ' PAL
'tms.start(@tms_regs, @tms_vram, @tms_bitmap, 8) ' VGA
addr := @tms_bitmap
back := byte[@tms_regs][7] & $0F
byte[@back][3] := byte[@back][2] := byte[@back][1] := byte[@back][0]
debug(`TMS9918 SET 0 0)
repeat 24
repeat 80
debug(`TMS9918 `UHEX_(back))
waitms(1)
repeat 192
repeat 8
debug(`TMS9918 `UHEX_(back))
repeat 64
debug(`TMS9918 `UHEX_(long[addr]))
addr += 4
repeat 8
debug(`TMS9918 `UHEX_(back))
waitms(1)
repeat 24
repeat 80
debug(`TMS9918 `UHEX_(back))
waitms(1)
repeat
DAT
orgh
tms_regs
' file "tms9918_ascii.regs"
' file "tms9918_nyan.regs"
' file "tms9918_mandel.regs"
file "tms9918_bombjack.regs"
tms_vram
' file "tms9918_ascii.vram"
' file "tms9918_nyan.vram"
' file "tms9918_mandel.vram"
file "tms9918_bombjack.vram"