Post by jusalak on Jan 28, 2024 12:09:31 GMT
Below is a dump of a PAL Z80 raster timing test program. I tested it on two flat PAL C128s and it produces a stable result.
Z64K is remarkably, but not completely, accurate.
The test program uses both IM 1 and IM 2 interrupts and two slighty differetly timed interrupt handlers.
(Note: Apparently Ultimate II+ may interfere with real hardware, but this does not always happen.)
>01c00 00 0b 1c 0a 00 9e 37 31
>01c08 38 31 00 00 00 a9 be 8d
>01c10 00 ff 78 a9 00 8d 30 d0
>01c18 a9 c3 8d ee ff a9 44 8d
>01c20 ef ff a9 1c 8d f0 ff a9
>01c28 b0 8d 05 d5 ea a9 cf 8d
>01c30 ee ff a9 00 8d 00 ff 58
>01c38 20 56 e0 20 09 e1 20 00
>01c40 c0 6c 00 0a 31 00 32 ed
>01c48 4b 38 00 c5 ed 4b 40 00
>01c50 c5 21 00 04 01 00 10 3e
>01c58 0f 02 3e 20 77 03 23 78
>01c60 fe 14 20 f3 01 f0 04 16
>01c68 00 7a c6 30 02 fe 39 20
>01c70 02 16 ff 03 14 79 fe 18
>01c78 20 ef 01 20 00 21 2b 1e
>01c80 11 04 04 ed b0 01 21 00
>01c88 21 4b 1e 11 2b 04 ed b0
>01c90 01 24 00 21 6c 1e 11 52
>01c98 04 ed b0 01 19 00 21 90
>01ca0 1e 11 80 04 ed b0 01 59
>01ca8 54 ed 43 b3 04 01 00 30
>01cb0 3e 31 02 0c 20 fc 04 02
>01cb8 3e c3 32 31 31 32 38 00
>01cc0 3e 30 ed 47 01 11 d0 3e
>01cc8 1b ed 79 0c 3e 59 ed 79
>01cd0 01 19 d0 3e 01 ed 79 0c
>01cd8 ed 79 0e 2f 3e ff ed 79
>01ce0 01 00 dc 3e 7f ed 79 01
>01ce8 4c 1d ed 43 32 31 01 4b
>01cf0 1d ed 43 39 00 fb ed 5e
>01cf8 76 00 76 ed 56 76 00 76
>01d00 01 bc 1d ed 43 32 31 01
>01d08 bb 1d ed 43 39 00 ed 5e
>01d10 76 00 76 ed 56 76 00 76
>01d18 01 4c 1d ed 43 32 31 01
>01d20 4b 1d ed 43 39 00 01 01
>01d28 dc ed 78 e6 80 20 c7 f3
>01d30 01 12 d0 3e ff ed 79 01
>01d38 19 d0 3e 01 ed 79 c1 ed
>01d40 43 40 00 c1 ed 43 38 00
>01d48 c3 e0 ff 0b f5 c5 01 19
>01d50 d0 3e 01 ed 79 01 21 d0
>01d58 1b 00 00 00 00 00 00 00
>01d60 00 00 00 00 00 00 00 00
>01d68 00 00 00 00 00 00 00 00
>01d70 00 00 00 00 00 00 00 00
>01d78 00 00 00 00 00 00 00 00
>01d80 00 00 00 00 00 00 00 00
>01d88 00 00 00 00 00 00 00 00
>01d90 00 00 16 00 00 00 00 7a
>01d98 cb 3f ed 79 0e 11 14 7a
>01da0 e6 07 f6 18 ed 79 0e 21
>01da8 3e 00 ed 79 7a fe 96 20
>01db0 e3 0e 11 3e 1b ed 79 c1
>01db8 f1 fb c9 0b f5 c5 01 19
>01dc0 d0 3e 01 ed 79 01 21 d0
>01dc8 1b 00 00 00 00 00 00 00
>01dd0 00 00 00 00 00 00 00 00
>01dd8 00 00 00 00 00 00 00 00
>01de0 00 00 00 00 00 00 00 00
>01de8 00 00 00 00 00 00 00 00
>01df0 00 00 00 00 00 00 00 00
>01df8 00 00 00 00 00 00 00 00
>01e00 1e 00 16 00 00 00 00 7a
>01e08 cb 3f ed 79 0e 11 14 7a
>01e10 e6 07 f6 18 ed 79 0e 21
>01e18 3e 00 ed 79 7a fe 96 20
>01e20 e3 0e 11 3e 1b ed 79 c1
>01e28 f1 fb c9 1a 38 30 20 12
>01e30 01 13 14 05 12 20 14 09
>01e38 0d 09 0e 07 20 14 05 13
>01e40 14 20 02 32 30 32 34 30
>01e48 31 32 38 01 20 12 05 01
>01e50 0c 20 10 01 0c 20 03 31
>01e58 32 38 20 10 12 0f 04 15
>01e60 03 05 13 20 01 20 13 14
>01e68 01 02 0c 05 03 0f 0c 0f
>01e70 15 12 20 10 01 14 14 05
>01e78 12 0e 20 17 09 14 08 20
>01e80 01 20 13 14 12 01 09 07
>01e88 08 14 20 05 04 07 05 2e
>01e90 10 12 05 13 13 20 3c 12
>01e98 15 0e 20 13 14 0f 10 3e
>01ea0 20 14 0f 20 05 18 09 14
>01ea8 2e
The dump can be pasted to an emulator in MONITOR and saved with the command
S "Z80RASTERTIMINGT",8,1C01,1EA9