A latency-hating emulator of: the Acorn Electron and Archimedes, Amstrad CPC, Apple II/II+/IIe and early Macintosh, Atari 2600 and ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 and Amiga, MSX 1/2, Oric 1/Atmos, early PC compatibles, Sega Master System, Sinclair ZX80/81 and ZX Spectrum.
There are some errors in the way that Clock Signal handles inverse text on the Apple II series which I wrote a program to demonstrate. Here are screenshots of this program showing the problem in Clock Signal and a corresponding screenshot from MAME showing how it should look.
On the Apple II and II plus, Clock Signal draws characters $00–$3F (rows 0–3 in my program) in "normal" but they should be drawn in inverse. Clock Signal correctly draws these characters in inverse when emulating the IIe.
Clock Signal
MAME
In the alternate character set on the unenhanced Apple IIe, Clock Signal draws characters $40–$7F (rows 4–7 in my program) in "normal" but they should be drawn in inverse.
Clock Signal
MAME
In the alternate character set on the enhanced Apple IIe, Clock Signal draws characters $40–$5F (the MouseText characters, rows 4–5 in my program) in inverse but they should be drawn in "normal", and it draws characters $60-$7F (rows 6-7 in my program) in "normal" but they should be drawn in inverse.
Clock Signal
MAME
Instructions for running my program
You can poke my program into memory by entering the monitor from BASIC:
```
CALL -151
```
And then pasting in:
```
C00:20 84 FE 20 2F FB 20 93 FE 20 89
:FE 20 58 FC AD 58 C0 AD 5A C0 AD 5D
:C0 AD 5F C0 20 C3 0C 20 8E FD 20 8E
:FD A0 0C 84 24 A2 00 8A 20 E3 FD E8
:E0 10 D0 F7 88 84 20 20 8E FD A9 AB
:20 F0 FD A9 AD 20 F0 FD CA D0 FA 86
:3C 88 84 20 20 8E FD 8A 20 E3 FD A9
:A7 20 F0 FD A5 3C A0 02 91 28 69 01
:C8 C0 12 D0 F7 85 3C 20 8E FD E8 E0
:10 D0 E0 A2 00 86 20 20 8E FD 20 D3
:0C 20 8F 0D AD B3 FB C9 06 F0 0E A9
:5D 8D A9 0C A9 5C 8D B0 0C A0 00 F0
:03 AC 1E C0 84 D7 20 DB 0D 8D 10 C0
:AD 00 C0 10 FB C9 8D D0 12 24 D7 10
:07 8D 0E C0 A0 00 10 E4 8D 0F C0 A0
:FF 30 DD C9 9B D0 DE 8D 10 C0 20 58
:FC 6C FC FF A2 00 A9 45 85 3C A9 0E
:85 3D 20 C2 0D 4C 17 0E A2 00 A9 56
:85 3C A9 0E 85 3D 20 C2 0D AD 1F FE
:C9 60 D0 2F AD B3 FB C9 06 D0 5B AD
:C0 FB F0 37 A9 67 85 3C A9 0E 85 3D
:20 C2 0D AD C0 FB C9 EA F0 5B AD DD
:FB C9 02 F0 14 A9 6A 85 3C A9 0E 85
:3D D0 73 A9 7B 85 3C A9 0E 85 3D D0
:69 A9 73 85 3C A9 0E 85 3D D0 5F A9
:78 85 3C A9 0E 85 3D 20 C2 0D AD BF
:FB C9 05 D0 50 20 BA 0D A9 60 85 3C
:A9 0E 85 3D D0 40 AD 1E FB C9 8A F0
:31 A9 5C 85 3C A9 0E 85 3D 20 C2 0D
:AD B3 FB C9 38 F0 2A 20 BA 0D AD B3
:FB C9 C9 D0 0B A9 5E 85 3C A9 0E 85
:3D 20 C2 0D A9 60 85 3C A9 0E 85 3D
:D0 08 A9 64 85 3C A9 0E 85 3D 20 C2
:0D 4C 17 0E A9 17 20 5B FB A2 00 AD
:B3 FB C9 06 F0 04 C9 C9 D0 0B A9 9E
:85 3C A9 0E 85 3D 20 C2 0D A9 B7 85
:3C A9 0E 85 3D 20 C2 0D 4C 17 0E A9
:5B 85 3C A9 0E 85 3D A0 00 F0 05 9D
:00 02 C8 E8 B1 3C 30 F7 09 80 9D 00
:02 E8 A9 00 9D 00 02 60 A9 16 20 5B
:FB A2 00 20 BA 0D AD B3 FB C9 06 F0
:04 C9 C9 D0 19 24 D7 30 0A A9 7F 85
:3C A9 0E 85 3D D0 08 A9 87 85 3C A9
:0E 85 3D 20 C2 0D A9 91 85 3C A9 0E
:85 3D 20 C2 0D 20 BA 0D 8A 49 FF 38
:65 21 4A 18 65 20 85 24 A2 00 F0 04
:20 31 0E E8 BD 00 02 D0 F7 60 AC B3
:FB C0 06 F0 0A C9 E1 90 06 C9 FB B0
:02 29 DF 4C F0 FD C3 C8 C1 D2 D3 C5
:D4 A0 C9 CE D3 D0 C5 C3 DD DB 52 C1
:F0 F0 EC E5 20 DD 5B EA 2D F0 EC F5
:73 AF AF 2F AF AF 65 A0 E5 EE E8 E1
:EE E3 E5 64 A0 E3 E1 F2 64 AF AF 63
:C9 C9 C7 53 D0 F2 E9 ED E1 F2 F9 20
:C1 EC F4 E5 F2 EE E1 F4 E5 20 E3 E8
:E1 F2 E1 E3 F4 E5 F2 A0 F3 E5 74 D2
:E5 F4 F5 F2 EE A0 BD A0 E3 E8 E1 EE
:E7 E5 A0 E3 E8 E1 F2 F3 E5 F4 BB 20
:C5 F3 E3 A0 BD A0 E5 F8 E9 74
```
Run it from the monitor with:
```
C00G
```
Or from BASIC with:
```
CALL 3072
```
There are some errors in the way that Clock Signal handles inverse text on the Apple II series which I wrote a program to demonstrate. Here are screenshots of this program showing the problem in Clock Signal and a corresponding screenshot from MAME showing how it should look.
On the Apple II and II plus, Clock Signal draws characters $00–$3F (rows 0–3 in my program) in "normal" but they should be drawn in inverse. Clock Signal correctly draws these characters in inverse when emulating the IIe.
In the alternate character set on the unenhanced Apple IIe, Clock Signal draws characters $40–$7F (rows 4–7 in my program) in "normal" but they should be drawn in inverse.
In the alternate character set on the enhanced Apple IIe, Clock Signal draws characters $40–$5F (the MouseText characters, rows 4–5 in my program) in inverse but they should be drawn in "normal", and it draws characters $60-$7F (rows 6-7 in my program) in "normal" but they should be drawn in inverse.
Instructions for running my program
You can poke my program into memory by entering the monitor from BASIC: ``` CALL -151 ``` And then pasting in: ``` C00:20 84 FE 20 2F FB 20 93 FE 20 89 :FE 20 58 FC AD 58 C0 AD 5A C0 AD 5D :C0 AD 5F C0 20 C3 0C 20 8E FD 20 8E :FD A0 0C 84 24 A2 00 8A 20 E3 FD E8 :E0 10 D0 F7 88 84 20 20 8E FD A9 AB :20 F0 FD A9 AD 20 F0 FD CA D0 FA 86 :3C 88 84 20 20 8E FD 8A 20 E3 FD A9 :A7 20 F0 FD A5 3C A0 02 91 28 69 01 :C8 C0 12 D0 F7 85 3C 20 8E FD E8 E0 :10 D0 E0 A2 00 86 20 20 8E FD 20 D3 :0C 20 8F 0D AD B3 FB C9 06 F0 0E A9 :5D 8D A9 0C A9 5C 8D B0 0C A0 00 F0 :03 AC 1E C0 84 D7 20 DB 0D 8D 10 C0 :AD 00 C0 10 FB C9 8D D0 12 24 D7 10 :07 8D 0E C0 A0 00 10 E4 8D 0F C0 A0 :FF 30 DD C9 9B D0 DE 8D 10 C0 20 58 :FC 6C FC FF A2 00 A9 45 85 3C A9 0E :85 3D 20 C2 0D 4C 17 0E A2 00 A9 56 :85 3C A9 0E 85 3D 20 C2 0D AD 1F FE :C9 60 D0 2F AD B3 FB C9 06 D0 5B AD :C0 FB F0 37 A9 67 85 3C A9 0E 85 3D :20 C2 0D AD C0 FB C9 EA F0 5B AD DD :FB C9 02 F0 14 A9 6A 85 3C A9 0E 85 :3D D0 73 A9 7B 85 3C A9 0E 85 3D D0 :69 A9 73 85 3C A9 0E 85 3D D0 5F A9 :78 85 3C A9 0E 85 3D 20 C2 0D AD BF :FB C9 05 D0 50 20 BA 0D A9 60 85 3C :A9 0E 85 3D D0 40 AD 1E FB C9 8A F0 :31 A9 5C 85 3C A9 0E 85 3D 20 C2 0D :AD B3 FB C9 38 F0 2A 20 BA 0D AD B3 :FB C9 C9 D0 0B A9 5E 85 3C A9 0E 85 :3D 20 C2 0D A9 60 85 3C A9 0E 85 3D :D0 08 A9 64 85 3C A9 0E 85 3D 20 C2 :0D 4C 17 0E A9 17 20 5B FB A2 00 AD :B3 FB C9 06 F0 04 C9 C9 D0 0B A9 9E :85 3C A9 0E 85 3D 20 C2 0D A9 B7 85 :3C A9 0E 85 3D 20 C2 0D 4C 17 0E A9 :5B 85 3C A9 0E 85 3D A0 00 F0 05 9D :00 02 C8 E8 B1 3C 30 F7 09 80 9D 00 :02 E8 A9 00 9D 00 02 60 A9 16 20 5B :FB A2 00 20 BA 0D AD B3 FB C9 06 F0 :04 C9 C9 D0 19 24 D7 30 0A A9 7F 85 :3C A9 0E 85 3D D0 08 A9 87 85 3C A9 :0E 85 3D 20 C2 0D A9 91 85 3C A9 0E :85 3D 20 C2 0D 20 BA 0D 8A 49 FF 38 :65 21 4A 18 65 20 85 24 A2 00 F0 04 :20 31 0E E8 BD 00 02 D0 F7 60 AC B3 :FB C0 06 F0 0A C9 E1 90 06 C9 FB B0 :02 29 DF 4C F0 FD C3 C8 C1 D2 D3 C5 :D4 A0 C9 CE D3 D0 C5 C3 DD DB 52 C1 :F0 F0 EC E5 20 DD 5B EA 2D F0 EC F5 :73 AF AF 2F AF AF 65 A0 E5 EE E8 E1 :EE E3 E5 64 A0 E3 E1 F2 64 AF AF 63 :C9 C9 C7 53 D0 F2 E9 ED E1 F2 F9 20 :C1 EC F4 E5 F2 EE E1 F4 E5 20 E3 E8 :E1 F2 E1 E3 F4 E5 F2 A0 F3 E5 74 D2 :E5 F4 F5 F2 EE A0 BD A0 E3 E8 E1 EE :E7 E5 A0 E3 E8 E1 F2 F3 E5 F4 BB 20 :C5 F3 E3 A0 BD A0 E5 F8 E9 74 ``` Run it from the monitor with: ``` C00G ``` Or from BASIC with: ``` CALL 3072 ```