cp4
The cp4 is a raster line based Commodore Plus/4 emulator. It's nearly CPU clock exact, it has I/O support, it emulates the 1551 disk drive in a pin-compatible manner, and it's able to handle the installed printers as a MPS printer, and able to use an external real 1551 disk drive, it's equipped with full keyboard and joystick emulation. The program is able to create diverse statistical data with a conditional recompiling.
download![]()
![]()
![]()
![]()
![]()
Screenshots:

The icon of the cp4 (created by Csaba Kemeri)

Start screen with a DIRECTORY command

Preferences window

Internal monitor and debugger
Some games:

David's Midnight Magic

Icicle Works

Pinpoint

Total Eclipse

Genetic

BlockOut 3D

Zylon

Dizzy Dice III

Robin of Sherwood

Terror News
Note
GNU General Public Licence
Need to compile
Files for compiling
Makefile
createpublic.c (Public version generator)
ver.c (Version control)
assp4.c (7501 macro assembler)
save1541rom.c (for saving the 1541 drive ROM
to a file)
MakeROM.c (Legal ROM generator)
Main sources
licence.h (GNU General Public Licence)
common.h (common include file)
macros.h (common include file)
cp4.c (main source)
cp4.h
ted.c (TED chip handler)
ted.h
7501.asm (7501 CPU emulator in 68k assembly)
cp4_cpu.h
cp4_defs.h
cp4_loc.c (Localize module)
cp4_loc.h
cp4_locstrs.c (strings in english - default
language)
cp4_mac.h
cp4_rom.c
cp4_rom.h
cp4_ver.c (version file)
cp4_ver.h
prefs.c (prefs loading and saving)
prefs.h
samples.c (for TED sounds)
scans.asm (length of the scanlines in CPU cycle)
shadow.i (variable cache implementation)
snapshot.h (data for the snapshot creating)
stat.h (Statisztics support)
stat.i
szamok.h (pictures of numbers for the speed meter)
Graphics modules (68k assembly)
dogfx.i
dogfx_error.asm
dogfx_exttxt.asm
dogfx_mltgrf.asm
dogfx_mlttxt.asm
dogfx_none.asm
dogfx_nrmgrf.asm
dogfx_nrmtxt.asm
dogfx_offscr.asm
grftabs.c
IEC bus handler modules
iec_dispatcher.c (IEC command dispatcher)
iec_dispatcher.h
pin_iec.c (Serial IEC handling - only for the printer
yet)
pin_piec.c (parallel IEC bus handler [for 1551])
soft_iec.c (D64 support - disk image handler)
soft_iec.h
soft_printer.c (printer support)
soft_printer.h
iectrace.c (IEC bus handling - special debug module)
GUI modules
p4req.c (common requester module)
p4req.h
preferences.c (Preferences window)
preferences.h
preferencesgui.c
prefsc2p.c
prefsc2p.h
dbg.c (internal debugger and monitor)
dbg.h
debug.c
debug.h
debug_ext.h (Debugger interface)
modetxt.c
keymapedit.c (keymap editor)
keymap.h
keymapedit.h
keymapeditgui.c
External video drivers
c2p_module.c (external video driver interface
- EVDI)
c2p_module.h
c2p_module.i
c2p.asm
c2pi.asm
c2p_card.c
c2p_carddelta.c
c2p_carddeltaasm.asm
c2p_card_palette.c
c2p_color_priority.c
c2p_ehb.c (Extra Halfbrite Mode driver)
c2p_ehbasm.asm
c2p_grey16.c (16 greyscale driver)
c2p_grey16asm.asm
c2p_interlace.c (for very slow machines)
c2p_mono.c
c2p_monoasm.asm
c2p_ocs.c
c2p_ocsasm.asm
c2p_ocs_palette.c
c2p_palette.c
c2p_perdevpernull.c (for benchmarking
only)
c2p_windowamiga.c (window driver for AGA
chipset)
c2p_windowamigaasm.asm
c2p_windowamiga_palette.c
c2p_windowcard.c
c2p_windowcarddelta.c
c2p_windowcard_palette.c
c2p_windowmono.c
c2p_windowmonoasm.asm
c2p_windowscale.c
c2p_windowscale_palette.c
c2p_zavacki.c
c2p_zavacki_palette.c
Special version for MMU supported memory handling (only in the version 0.68)
mmu.c
mmu.h
mmuhandle.asm
Executed system clock: 563639491
Average instruction clock: 3.1%
Emulated 11807 frame.
OpCode Statistic
00 .BRK.IMP............-..........-.-%
01 .ORA.(ZP,X).........4..........0.0%
02 !CRA.NONE..........14..........0.0%
03 !SLO.(ZP,X).........-..........-.-%
04 !NO2.IMP............-..........-.-%
05 .ORA.ZP........134852..........0.0%
06 .ASL.ZP........320414..........0.1%
07 !SLO.ZP.............-..........-.-%
08 .PHP.IMP........91484..........0.0%
09 .ORA.#BYTE.....190297..........0.1%
0A .ASL.ACC.......243003..........0.1%
0B !ANC.#BYTE..........2..........0.0%
0C !NO3.IMP............-..........-.-%
0D .ORA.ABS.....10567709..........5.9%
0E .ASL.ABS.........9327..........0.0%
0F !SLO.ABS............-..........-.-%
10 .BPL.REL......4799492..........2.7%
11 .ORA.(ZP),Y......7658..........0.0%
12 !CRA.NONE...........-..........-.-%
13 !SLO.(ZP),Y.........-..........-.-%
14 !NO2.IMP............-..........-.-%
15 .ORA.ZP,X...........-..........-.-%
16 .ASL.ZP,X.......26930..........0.0%
17 !SLO.ZP,X...........-..........-.-%
18 .CLC.IMP......1815699..........1.0%
19 .ORA.ABS,Y......30573..........0.0%
1A !NOP.IMP.........1441..........0.0%
1B !SLO.ABS,Y..........2..........0.0%
1C !NO3.IMP............-..........-.-%
1D .ORA.ABS,X.....125654..........0.0%
1E .ASL.ABS,X..........-..........-.-%
1F !SLO.ABS,X..........4..........0.0%
20 .JSR.ABS......3166083..........1.7%
21 .AND.(ZP,X).....46452..........0.0%
22 !CRA.NONE...........-..........-.-%
23 !RLA.(ZP,X).........-..........-.-%
24 .BIT.ZP........210190..........0.1%
25 .AND.ZP.........77822..........0.0%
26 .ROL.ZP.......1510853..........0.8%
27 !RLA.ZP.............-..........-.-%
28 .PLP.IMP........91477..........0.0%
29 .AND.#BYTE....1155196..........0.6%
2A .ROL.IMP.......319278..........0.1%
2B !ANC.#BYTE..........-..........-.-%
2C .BIT.ABS......4142441..........2.3%
2D .AND.ABS........28624..........0.0%
2E .ROL.ABS............-..........-.-%
2F !RLA.ABS............-..........-.-%
30 .BMI.REL.......353698..........0.1%
31 .AND.(ZP),Y.......529..........0.0%
32 !CRA.NONE...........-..........-.-%
33 !RLA.(ZP),Y.........-..........-.-%
34 !NO2.IMP..........256..........0.0%
35 .AND.ZP,X........4270..........0.0%
36 .ROL.ZP,X...........-..........-.-%
37 !RLA.ZP,X...........-..........-.-%
38 .SEC.IMP.......528955..........0.2%
39 .AND.ABS,Y......49401..........0.0%
3A !NOP.IMP.........1370..........0.0%
3B !RLA.ABS,Y..........4..........0.0%
3C !NO3.IMP..........539..........0.0%
3D .AND.ABS,X......30471..........0.0%
3E .ROL.ABS,X..........-..........-.-%
3F !RLA.ABS,X..........1..........0.0%
40 .RTI.IMP........50536..........0.0%
41 .EOR.(ZP,X).........-..........-.-%
42 !CRA.NONE...........-..........-.-%
43 !SRE.(ZP,X).........-..........-.-%
44 !NO2.IMP............-..........-.-%
45 .EOR.ZP.........57904..........0.0%
46 .LSR.ZP........435634..........0.2%
47 !SRE.ZP.............-..........-.-%
48 .PHA.IMP.......659124..........0.3%
49 .EOR.#BYTE.....304855..........0.1%
4A .LSR.ACC.......564320..........0.3%
4B !ASR.#BYTE..........1..........0.0%
4C .JMP.ABS......2280458..........1.2%
4D .EOR.ABS........74555..........0.0%
4E .LSR.ABS........31947..........0.0%
4F !SRE.ABS............-..........-.-%
50 .BVC.REL........40964..........0.0%
51 .EOR.(ZP),Y.....65590..........0.0%
52 !CRA.NONE...........-..........-.-%
53 !SRE.(ZP),Y.........-..........-.-%
54 !NO2.IMP............-..........-.-%
55 .EOR.ZP,X...........-..........-.-%
56 .LSR.ZP,X........4116..........0.0%
57 !SRE.ZP,X...........-..........-.-%
58 .CLI.IMP.......851056..........0.4%
59 .EOR.ABS,Y.......3754..........0.0%
5A !NOP.IMP..........314..........0.0%
5B !SRE.ABS,Y..........1..........0.0%
5C !NO3.IMP............-..........-.-%
5D .EOR.ABS,X.......1232..........0.0%
5E .LSR.ABS,X..........-..........-.-%
5F !SRE.ABS,X..........-..........-.-%
60 .RTS.IMP......3193368..........1.7%
61 .ADC.(ZP,X).........-..........-.-%
62 !CRA.NONE...........-..........-.-%
63 !RRA.(ZP,X).........-..........-.-%
64 !NO2.IMP............-..........-.-%
65 .ADC.ZP........666168..........0.3%
66 .ROR.ZP.......1572456..........0.8%
67 !RRA.ZP.............-..........-.-%
68 .PLA.ACC.......606498..........0.3%
69 .ADC.#BYTE.....636418..........0.3%
6A .ROR.ACC.......132615..........0.0%
6B !ARR.#BYTE..........-..........-.-%
6C .JMP.(ABS).....276295..........0.1%
6D .ADC.ABS........16263..........0.0%
6E .ROR.ABS..........721..........0.0%
6F !RRA.ABS............-..........-.-%
70 .BVS.REL..........545..........0.0%
71 .ADC.(ZP),Y.......402..........0.0%
72 !CRA.NONE...........-..........-.-%
73 !RRA.(ZP),Y.....30739..........0.0%
74 !NO2.IMP............-..........-.-%
75 .ADC.ZP,X.........624..........0.0%
76 .ROR.ZP,X......155857..........0.0%
77 !RRA.ZP,X...........-..........-.-%
78 .SEI.IMP.......836152..........0.4%
79 .ADC.ABS,Y.....146565..........0.0%
7A !NOP.IMP..........455..........0.0%
7B !RRA.ABS,Y..........1..........0.0%
7C !NO3.IMP............-..........-.-%
7D .ADC.ABS,X......24292..........0.0%
7E .ROR.ABS,X..........-..........-.-%
7F !RRA.ABS,X..........1..........0.0%
80 !NO2.IMP............-..........-.-%
81 .STA.(ZP,X).....30326..........0.0%
82 !NO2.IMP..........256..........0.0%
83 !SAX.(ZP,X).........-..........-.-%
84 .STY.ZP........355558..........0.2%
85 .STA.ZP.......4052953..........2.2%
86 .STX.ZP........371429..........0.2%
87 !SAX.ZP.............-..........-.-%
88 .DEY.IMP......6389537..........3.6%
89 !NO2.IMP............-..........-.-%
8A .TXA.IMP.......255994..........0.1%
8B !ANE.#BYTE..........-..........-.-%
8C .STY.ABS.......129842..........0.0%
8D .STA.ABS......3236411..........1.8%
8E .STX.ABS.......108026..........0.0%
8F !SAX.ABS.........1168..........0.0%
90 .BCC.REL......1793770..........1.0%
91 .STA.(ZP),Y...1938462..........1.0%
92 !CRA.NONE...........-..........-.-%
93 !SHA.(ZP),Y.........-..........-.-%
94 .STY.ZP,X.......85807..........0.0%
95 .STA.ZP,X......119018..........0.0%
96 .STX.ZP,Y...........-..........-.-%
97 !SAX.ZP,Y...........-..........-.-%
98 .TYA.IMP.......390917..........0.2%
99 .STA.ABS,Y.....452786..........0.2%
9A .TXS.IMP..........111..........0.0%
9B !SHS.ABS,Y..........-..........-.-%
9C !SHY.ABS,X..........3..........0.0%
9D .STA.ABS,X....2970340..........1.6%
9E !SHX.ABS,Y..........-..........-.-%
9F !SHA.ABS,Y..........2..........0.0%
A0 .LDY.#BYTE.....902998..........0.5%
A1 .LDA.(ZP,X).....34126..........0.0%
A2 .LDX.#BYTE.....618849..........0.3%
A3 !LAX.(ZP,X).........2..........0.0%
A4 .LDY.ZP........552709..........0.3%
A5 .LDA.ZP......16706578..........9.4%
A6 .LDX.ZP........493474..........0.2%
A7 !LAX.ZP.............5..........0.0%
A8 .TAY.IMP.......454258..........0.2%
A9 .LDA.#BYTE....1457983..........0.8%
AA .TAX.IMP.......688374..........0.3%
AB !LXA.#BYTE..........-..........-.-%
AC .LDY.ABS........92071..........0.0%
AD .LDA.ABS......1971582..........1.1%
AE .LDX.ABS.......141312..........0.0%
AF !LAX.ABS...........14..........0.0%
B0 .BCS.REL......1709654..........0.9%
B1 .LDA.(ZP),Y...2446580..........1.3%
B2 !CRA.NONE...........-..........-.-%
B3 !LAX.(ZP),Y.........-..........-.-%
B4 .LDY.ZP,X.......43230..........0.0%
B5 .LDA.ZP,X......143223..........0.0%
B6 .LDX.ZP,Y.........431..........0.0%
B7 !LAX.ZP,Y...........-..........-.-%
B8 .CLV.IMP............-..........-.-%
B9 .LDA.ABS,Y....2904444..........1.6%
BA .TSX.IMP........59935..........0.0%
BB !LAS.ABS,Y..........-..........-.-%
BC .LDY.ABS,X.....227864..........0.1%
BD .LDA.ABS,X....3097037..........1.7%
BE .LDX.ABS,Y.......3775..........0.0%
BF !LAX.ABS,Y.......3499..........0.0%
C0 .CPY.#BYTE.....406806..........0.2%
C1 .CMP.(ZP,X).........-..........-.-%
C2 !NO2.IMP..........256..........0.0%
C3 !DCP.(ZP,X).........-..........-.-%
C4 .CPY.ZP.........79598..........0.0%
C5 .CMP.ZP........758906..........0.4%
C6 .DEC.ZP........518182..........0.2%
C7 !DCP.ZP.............-..........-.-%
C8 .INY.IMP......5887671..........3.3%
C9 .CMP.#BYTE....2504495..........1.4%
CA .DEX.IMP......1464767..........0.8%
CB !SBX.#BYTE..........-..........-.-%
CC .CPY.ABS.......963239..........0.5%
CD .CMP.ABS.......145494..........0.0%
CE .DEC.ABS.......132223..........0.0%
CF !DCP.ABS.........1290..........0.0%
D0 .BNE.REL.....31338199.........17.6%
D1 .CMP.(ZP),Y......8712..........0.0%
D2 !CRA.NONE...........-..........-.-%
D3 !DCP.(ZP),Y.........-..........-.-%
D4 !NO2.IMP............-..........-.-%
D5 .CMP.ZP,X.........297..........0.0%
D6 .DEC.ZP,X...........-..........-.-%
D7 !DCP.ZP,X...........-..........-.-%
D8 .CLD.IMP.........4422..........0.0%
D9 .CMP.ABS,Y.......4549..........0.0%
DA !NOP.IMP...........91..........0.0%
DB !DCP.ABS,Y..........-..........-.-%
DC !NO3.IMP............1..........0.0%
DD .CMP.ABS,X.....529450..........0.2%
DE .DEC.ABS,X......78931..........0.0%
DF !DCP.ABS,X.......2817..........0.0%
E0 .CPX.#BYTE....1262872..........0.7%
E1 .SBC.(ZP,X).........-..........-.-%
E2 !NO2.IMP............-..........-.-%
E3 !ISB.(ZP,X).........-..........-.-%
E4 .CPX.ZP........296026..........0.1%
E5 .SBC.ZP........878878..........0.4%
E6 .INC.ZP.......1195918..........0.6%
E7 !ISB.ZP...........120..........0.0%
E8 .INX.IMP.....12611549..........7.1%
E9 .SBC.#BYTE.....327405..........0.1%
EA .NOP.IMP.......297775..........0.1%
EB !SBC.#BYTE..........-..........-.-%
EC .CPX.ABS........52778..........0.0%
ED .SBC.ABS........49851..........0.0%
EE .INC.ABS........59313..........0.0%
EF !ISB.ABS...........58..........0.0%
F0 .BEQ.REL.....14289723..........8.0%
F1 .SBC.(ZP),Y......8202..........0.0%
F2 !CRA.NONE...........-..........-.-%
F3 !ISB.(ZP),Y.........-..........-.-%
F4 !NO2.IMP...........64..........0.0%
F5 .SBC.ZP,X........1298..........0.0%
F6 .INC.ZP,X.........679..........0.0%
F7 !ISB.ZP,X...........-..........-.-%
F8 .SED.IMP............-..........-.-%
F9 .SBC.ABS,Y........756..........0.0%
FA !NOP.IMP...........25..........0.0%
FB !ISB.ABS,Y........256..........0.0%
FC !NO3.IMP..........186..........0.0%
FD .SBC.ABS,X.......6104..........0.0%
FE .INC.ABS,X......33788..........0.0%
FF !ISB.ABS,X.........37..........0.0%
Total:.........177446045........100.0%
Addressing Statistic
#BYTE....9768177..........5.5%
ABS.....27402800.........15.4%
ZP......31246627.........17.6%
ACC......1546436..........0.8%
IMP.....36947693.........20.8%
(ZP,X)....110910..........0.0%
(ZP),Y...4506874..........2.5%
ZP,X......585349..........0.3%
ABS,X....7128026..........4.0%
ABS,Y....3600368..........2.0%
REL.....54326045.........30.6%
(ABS).....276295..........0.1%
ZP,Y.........431..........0.0%
NONE..........14..........0.0%
Total:..177446045.......100.0%
Instruction Statistic
-ADC.....1490732..........0.8%
-AND.....1392765..........0.7%
-ASL......599674..........0.3%
-BCC.....1793770..........1.0%
-BCS.....1709654..........0.9%
-BEQ....14289723..........8.0%
-BIT.....4352631..........2.4%
-BMI......353698..........0.1%
-BNE....31338199.........17.6%
-BPL.....4799492..........2.7%
-BRK...........-..........-.-%
-BVC.......40964..........0.0%
-BVS.........545..........0.0%
-CLC.....1815699..........1.0%
-CLD........4422..........0.0%
-CLI......851056..........0.4%
-CLV...........-..........-.-%
-CMP.....3951903..........2.2%
-CPX.....1611676..........0.9%
-CPY.....1449643..........0.8%
-DEC......729336..........0.4%
-DEX.....1464767..........0.8%
-DEY.....6389537..........3.6%
-EOR......507890..........0.2%
-INC.....1289698..........0.7%
-INX....12611549..........7.1%
-INY.....5887671..........3.3%
-JMP.....2556753..........1.4%
-JSR.....3166083..........1.7%
-LDA....28761553.........16.2%
-LDX.....1257841..........0.7%
-LDY.....1818872..........1.0%
-LSR.....1036017..........0.5%
-NOP......297775..........0.1%
-ORA....11056747..........6.2%
-PHA......659124..........0.3%
-PHP.......91484..........0.0%
-PLA......606498..........0.3%
-PLP.......91477..........0.0%
-ROL.....1830131..........1.0%
-ROR.....1861649..........1.0%
-RTI.......50536..........0.0%
-RTS.....3193368..........1.7%
-SBC.....1272494..........0.7%
-SEC......528955..........0.2%
-SED...........-..........-.-%
-SEI......836152..........0.4%
-STA....12800296..........7.2%
-STX......479455..........0.2%
-STY......571207..........0.3%
-TAX......688374..........0.3%
-TAY......454258..........0.2%
-TSX.......59935..........0.0%
-TXA......255994..........0.1%
-TXS.........111..........0.0%
-TYA......390917..........0.2%
!CRA..........14..........0.0%
!NOP........3696..........0.0%
!NO2.........832..........0.0%
!NO3.........726..........0.0%
!SLO...........6..........0.0%
!ANC...........2..........0.0%
!RLA...........5..........0.0%
!SRE...........1..........0.0%
!RRA.......30741..........0.0%
!ARR...........-..........-.-%
!SAX........1168..........0.0%
!ANE...........-..........-.-%
!SHA...........2..........0.0%
!SHS...........-..........-.-%
!SHY...........3..........0.0%
!SHX...........-..........-.-%
!LAX........3520..........0.0%
!LAS...........-..........-.-%
!DCP........4107..........0.0%
!SBX...........-..........-.-%
!ISB.........471..........0.0%
!SBC...........-..........-.-%
!ASR...........1..........0.0%
!LXA...........-..........-.-%
Total:.177446045........100.0%
TED access
NAME.................READ.........WRITE
------------------------------------------
Cnt1LO........:......9832............21
Cnt1HI........:.......120............21
Cnt2LO........:.......152............21
Cnt2HI........:......5142............21
Cnt3LO........:........19............21
Cnt3HI........:........19............21
Gfx1..........:.......960..........7239
Gfx2..........:......2646.........42421
KeyRd.........:....346906........338974
IRQFlag.......:....128484.........51203
IRQEnable.....:.....26073..........5148
Raster........:....362738.........50392
CurPos1.......:........19...........464
CurPos2.......:........19...........464
Snd1Freq1.....:........19..........5180
Snd2Freq1.....:.....32823.........24009
Snd2Freq2.....:.......107..........4425
SndCtrl.......:.....14419.........28743
Gfx3..........:......7395.........11950
ChrGen........:........26.........98752
VideoMatrix...:........22..........4575
Color0........:........23.........10769
Color1........:........63.........12975
Color2........:........63.........12097
Color3........:........20............21
Color4........:....551511.........68515
1stCharAddr1..:........19.............0
1stCharAddr1..:........19.............0
ActRas1.......:....114940...........414
ActRas2.......:.....80132..........1035
HRas..........:....397552.............0
Flash.........:.....62513.............0
Instruction fetch table:
0000.##########
0100.
0200.######
0300.############
0400.
0500.
0600.
0700.
0800.
0900.
0A00.
0B00.####
0C00.
0D00.
0E00.#########
0F00.#########
1000.####################
1100.#
1200.#####
1300.
1400.###
1500.####
1600.#########
1700.
1800.
1900.#
1A00.######
1B00.
1C00.
1D00.
1E00.
1F00.#
2000.
2100.
2200.#
2300.############
2400.#####
2500.
2600.#
2700.##
2800.####
2900.##
2A00.
2B00.#####
2C00.##
2D00.#
2E00.###################################
2F00.################
3000.#####
3100.#
3200.#
3300.
3400.
3500.
3600.
3700.
3800.
3900.
3A00.
3B00.
3C00.
3D00.
3E00.
3F00.
4000.#
4100.##
4200.
4300.
4400.
4500.
4600.
4700.###
4800.#
4900.
4A00.
4B00.
4C00.
4D00.
4E00.
4F00.
5000.
5100.
5200.#
5300.
5400.
5500.
5600.
5700.
5800.
5900.
5A00.
5B00.
5C00.
5D00.
5E00.
5F00.
6000.##
6100.
6200.
6300.
6400.
6500.###
6600.
6700.
6800.
6900.
6A00.
6B00.
6C00.#######
6D00.
6E00.
6F00.
7000.
7100.
7200.
7300.
7400.
7500.
7600.
7700.
7800.
7900.
7A00.
7B00.
7C00.##############
7D00.
7E00.
7F00.
8000.
8100.
8200.
8300.
8400.
8500.
8600.
8700.
8800.
8900.#####
8A00.
8B00.#
8C00.
8D00.
8E00.
8F00.
9000.#
9100.
9200.###
9300.
9400.
9500.
9600.#
9700.
9800.
9900.
9A00.
9B00.
9C00.
9D00.
9E00.##
9F00.
A000.#
A100.#
A200.
A300.
A400.
A500.
A600.#
A700.
A800.
A900.
AA00.
AB00.
AC00.
AD00.
AE00.
AF00.
B000.
B100.
B200.
B300.
B400.
B500.
B600.
B700.
B800.
B900.
BA00.
BB00.
BC00.
BD00.
BE00.
BF00.
C000.
C100.
C200.
C300.
C400.
C500.
C600.
C700.
C800.
C900.
CA00.
CB00.
CC00.
CD00.##
CE00.#
CF00.
D000.
D100.
D200.
D300.
D400.
D500.
D600.
D700.
D800.#######################################################################
D900.#
DA00.########
DB00.#
DC00.
DD00.
DE00.#
DF00.
E000.
E100.
E200.
E300.
E400.###
E500.##
E600.
E700.
E800.
E900.
EA00.#
EB00.
EC00.
ED00.
EE00.
EF00.
F000.
F100.
F200.
F300.
F400.
F500.
F600.#
F700.
F800.
F900.
FA00.#
FB00.#
FC00.
FD00.
FE00.
FF00.