Shinra team

Differences between CRTC types

This list was created to enable Caprice Reloaded to support all the CRTC types. It gathers infos from Quasar CPC 21, Amslive 16, 18 and 19 (Madram articles), Grimware, and should be completed with any other info (quasar 11, 12 & others). This list may or may not be correct, we're looking for advice, particularly for things marked (?).

Type 0 1 2 3 4
BExx and BFxx ports
Reg 12 and 13 readable on port BFxx Yes No (get 0) No (get 0) Yes Yes
Reg number on port BFxx is fully decoded Yes (reg4 reads 0) Yes Yes No (reg 4 reads reg 12)No
Reading reg31 on port BFxx 0 Hi-Z (unpredictable value) 0 reg 15 reg 15
Read VBL end on REG10 bit 5 port BFxx No No No Yes Yes
Read block count on reg11 port BFxx No No No Yes Yes
Status info on port BExx (VBL, border) No (Hi-Z) Yes No (Hi-Z) No (mirrors BFXX) No (mirrors BFxx)
Registers
R1 > R0 removes all border No Yes No No? No?
R2+R3=R0+1 Shift screen down Shift screen down No VBL Ok? Ok?
R2+R3>R0+1 Ok Ok Only border Ok? Ok?
R2+R3=R0 Ok Ok No VBL Shift screen down Shift screen down
R3 bit 7 changes VBL duration Yes (1=normal, 2=double length)No (always double)No Yes Yes
R6=0 leaves artifacts on screen Yes No No No No
R8 allows interleave mode Bad 100Hz screen Good 100Hz screen Ok ? ?
R8 allows border shifting (bits 4 and 5) Yes No No Yes Yes
Special demomakers tricks
Split border Reg 8 Reg 6 Not possible Reg 6 Reg 6
"Display enable" bug (?) Yes No Yes No No
Offset reg validation Next screen Immediate Next screen Next screen Next screen
R9 and R4 validation Buffered Immediate Buffered Buffered Buffered
Line to line splitting (R9=R4=0) Yes Yes No Yes Yes
R0 minimal value 1 0 0 (with C4>0)0 0
PPI (used in CRTC tests, but does not really belongs here otherwise)
Setting up PPI resets port value Yes Yes Yes No Yes
PPI port B can be used as output No No No Yes No
Valid HTML 4.01 Strict Site fait à La Rache