EXTENDED CPC DSK File Disk-Info WinAPE 2.0B03 (Track-Info  RSHAKE23ABIN SHAKE23ABINMSHAKE23BBIN !"#$%&'()*+SHAKE23BBINC,-./01234SHAKE23CBIN56789:;<=>?@ABCDSHAKE23CBINBEFGHIJKLMSHAKE23DBIN+NOPQRSN!cFʙA!A ~ʞAñ@@"ASA!"!A~_#Vʱ@#"AAկ͠_>0{202Y2FX֞!Fss!AXs! Cs>s= T"YS[]^2c5c>aXe=fπ΀̀̀ˀ~dZsnx}_i ݕ "&kGGGGGJJJKKKQMqMxMMMSSST.OHSYNC DELAY< (2.1.0)(3 TST)(CAPS) INTERACTIVE TEST MODE X TO Y (16 INTERACTIVE TST)(TAB) HSYNC START POSITION (4 INTERACTIVE TST)(T) R2 UPD DURING & AFTER HSYNC (6 TST)(Y) R3 UPD DURING HSYNC (8 TST)(U) R4 & R9 CHECKING (54 TST)(I) VSYNC CONDITIONS (413 TST)(O) R1 STORIES (8 TST)(P) R6 STORIES (13 TST)(COPY) CRTC 2 OFFSETREAD THE COMPENDIUM: HTTPS://SHAKER.LOGONSYSTEM.FRC0vs=0 DEFINED WHEN VSYNC PPI.PORTB.0=1!"!oFϟG2F>?2FI͹II!͹sJ@͹0sJI$III!?@͹><2F:F <2J!H"{H!lJ" HT>2J!H"{H! J" H>22$J<>2J!12$J$!I"{H>2J!:J" H!I"{H>2J!XJ" H>2J>2H!GϟdHI͹I IJIA0sJII͹ JI(I sJ_͹III I͹1sJͯ͹GY!H*f!AX f!HpfI>GyR6 STORIES (3 RUPTURES ON SCREEN)T01-R6=0 IN 5 SEC. (PRESS SPACE, OR WAIT 4 SEC IN AUTO MODE)T02-50 L. PATCHWORK R6=0/8 FROM VERY 1ST LINE OF MIDDLE SCREEN RUPT (C4=0,C9=0)T03-50 L. PATCHWORK R6=0/8 FROM 2ND LINE OF MIDDLE SCREEN RUPTURE (CSHAKE23ABIN@eB@e=00|006ffff>fff<ll8lfff>|~L2~0123456789ABCDEF 0<3? ( ĐДԁ ( "*ç@I!@@II!@@I!m@.1͛@Aͧ!"!ע!BFʞA!CNʞA!BNʞA!pFʙA!BNʞA!$BFʞA!0BNʞA!%FʙA!R0T05-50 L. FROM 2ND LINE IN DISP AREA : PATCHWORK R6=0/R6=8 WHEN R1>R0><2J 2Hɾ̀>2qIqIqI=(͞qI!@ai͎>(y ͹I@II͘Y ͹ IQ IY>@2 K!-$"J> 2J19>B.>2 K!#"J>2J18>C>2 K!#"J> 2J09>A2PKy2]Kz2lK!JϟKI#͹I @IYIYIYIY(ͦ͹ͯ<͹̯Y!:K f!AXf!MKPfR6 STORIES -AGAIN-T06A-ON C4=9/C9=0 PATCHWORK R6=9/25 IN DISP AREA FO(1ST HALF SCR. OUTC/2ND HALF OUTI)R1 IO B >> R1>R0 >> R1=63 ON C0=63 (1ST HALF SCR. OUTC/2ND HALF OUTI)>7!C@>8!C?>9!C>>A!C=")TS7T2T!TϟGTGTIC͹IA@͹ͯ͹Y!pT f!AXf!Tf!TfR1TST : C4=R6-1, C9=R9, PREV R1=40, OUT R1>R0 ON C0vs=#25CRTC-VMA'=#C000+(80x24)CRTC-VMA'=#C000+(80x25)!TϟWI͹!>zUQ =( B>ͬUQ =(B> WO =(B>͓UQ =( ͯ. ͹TsR 64 LINES!@"L! "K!CM"0L!L"LL!%"L>!@"L! "K!CM"0L!L"LL!"L!@"L!"K!5M"0L!lL"LL!"L!Kϟ/LI͹IYIYIYIYI(ͦ@͹ͯH͹!5MɟY!UL f!AXf!lLPfR6 STORIES -LAST LINE-R6=0/FF FROM C0=2 ON C4=R4, C9=0..7, PREVIOUS R6=R4+1R6=0/FF FROM C0=2 IN V.ADJ ZONE (R5=16) (C4=fnc(CRTC)) PREVIOUS R6=R4+3R6=R4+1/FF FROM C0=2 IN V.ADJ ZONE (R5=16) (C4=fnc(CRTC)) PREVIOUS R6=R4+3?(.&'0?(.$'0>2M>2M!N"bN!q"M"M>E;>F4!N"bN!6|g  6s|g  U"U"(6#6+|g U"USZ6#6+|g !U"U"6#6+|g >"!V266|g> YV+6|g  II+6|g  >g6|g  6|g  76|g  76|g 46|g s*W+6+6##|g 1sPWU㾾6#6+|g 1!RW6#s#r#uW6#s#rsWR+6+6##|Q"M>E!>F>2M=2M!y"M>E!N"bN2Nx2 Ny25N!M:ϟI2IBNI͹! >aqiqIYͨ̀̀̀̀̀̀ͅq%aQiYQ>yI ͹Iͯ/͹MI>WyY!AXf!tNf!Nf!tNfBORDER STATE NOT IRREVERSIBLE: R6=0 ON LAST LINE C4=R6 ON C0=#3EREVERSE FROM C4=0,C9=0REVERSE FROM C4=0,C9=7REVERSE FROM C4=1,C9=3 .YOU SHOULDN'T BE ABLE TO READ THIS: EMUL BAD TRIP!!OP"LP!O"O !hP"LP!O"O!NOϟOI͹! ai$aY$a-i$aAg 166|g s6|g  >02X2 Y<_>42X>72X![Xf!X4P !Xf!X4P !Xf!X5P !Xf! Y4P CRTC x, TZSV V 1.1, PG 1LD(HL),A VS+6144us(+nx64),OFS PTR HL=00, A=#FFLD(aaaa),HL VS+6144us(+nx64),OFS PTR=00, H=#FF L=#55PUSH DE VS+6144us(+nx64),OFS PTR=00, D=#FF E=#55LD(HL),#FF VS+6144us(+nx64),OFS PTR HL=00!(YϟYI͹!>͌WQ =(!>ͯWQ =(!g>UQIQq͹!OI(>^Y͌#= Q͹! 0 aqiQ,iY$$aIͯ͹TO'&%$#"! @@@@@@@((((((((@YI>Wy!P f!AXf!f!4@f!Pf!Pf!P0fOP!P͙!PPf!Qf!͙!YQPf!Qf!͙!QPf!RfR1 STORIES(L1)AT #C000+(5x80)(L2)AT #C000+(6x80))(L3)AT #C000+(7x80))STORY 1 : UPDATE VMA/VMA' CONDITIONS - DISPEN OFF/ON COND.PROCESS : UPDATE R1 ON 16 LINES FROM L1 (R1=40-n, n=1..16)STORY 2 : R1 > R0 WHEN C9=R9 & C9<>R9PQ =(!>UQ =(!>VQ =( ͯ3 ͹.Y>72Z2Z2Z2[>52J[>2_!Zf!ZsZP !Zf!ZsZP !Zf!ZsZP !Zf![sZP !,[f!J[sZP ~<: >Aw~=@ >9wLD(IX+0),#FF OFFSET PTR IX=00LD(IX+0),E OFFSET PTR IX=00, E=#FFLD(aaaa),DE OFFSET PTR=00, D=#FF E=#55LD(aaaa),IX OFFSET PTR=00, IXH=#FF IXL=#55LD(aaaa),A OFFSET PTR=00, A=#FF!Y[ϟ \I͹!>Y>GyI( ͕RͶy >Wyͯ(͹WR.IYqYqYqY-ͦ!)_S >?!(S2R2^S"RSSC.S!Rϟ SI)͹I@dQI͌ d͈!^SI͒ ͬͯt͹RY!AXf!_S fI@ITqI!GaiI>KyP͹R1 IO A >> R1>R0 >> R1=0 ON C0=0 Track-Info  R!6>}VQ =(͹ITYQ!>͚VQ =(I͹ ITYQ!>ʹVQ =(Iͯ(͹_[>52{\<2\>3_!`\f!{\sZP !\f!\sZP !\fP!\fLDI OFFSET PTR DE=00, (HL)=#FFRRD OFFSET PTR HL=00, A=#0FSET 2,(HL) OFFSET PTR HL=04,05,06,07 (RED+BLACK=UPDATE)RL (HL) OFFSET PTR HL=04,05,06,07 (BLACK=UPDATE)!]ϟ]ISW͹!>-WQ =(!:>jWO =(͹ITYQ!>f!gfP!hf!͘g!f!6`͘g!hf!f:eg!k)!j@f!Re+f>f)#= !ef-GET PPI.B LAST LINE BEFORE C4=R7 ON C0=62.63.0.1.2.3 >xx,xx,xx,xx,xx,xx!CfϟY!AXf!P"s:Ug!if!iPf>E2i2j2Qj!6B"j>/2i!b¡f>F2i2j2Qj!38"j!i4fi)fj)fHj)ffj)fj)fj)!isssss s>02k=2Lk!,c!Lk~VQ =(Iͯ%͹%]>62L^>A2w^>4_!1^f!L^sZP !\^f!w^}ZP !^fP!^fEX (SP),HL OFFSET PTR SP=00, H=#FF, L=#55CALL Z,aaaa OFFSET PTR SP=00, PC=#FF55RL (IX+0) OFFSET PTR IX=0A,0B,0C,0D (BLACK=UPDATE)INC (IX+0) OFFSET PTR IX=08,09,0A,0B (RED+BLACK=UPDATE)!^ϟ*_I͹!>ZVQ =(ͯ.-͹^>62b_>5_!N_f!b_sZP INI OFFSET PTR HL=00 I/O=#FF STORED IN CRTC R152|i)!chssss-f)#> >,PLEASE WAIT... PPI.VSYNC ST. EACH 6us FROM UPD R7=C4,IO ON C0vs=#1E (C4=1,C9=0)INI/INC B INST. FROM C0vs=#21UPDATE R7=C4 (C4=1) ON C9=0 FROM C0vs=0,1,2,... PPI.PB IN on C0vs+5GHOST VSYNC - OUT R7,C4=1 IN HSYNC (C0inst=R2=46), THEN...PPI.B IN HSYNC (C0inst=51):#xx / AFTER HSYNC (C0 inst=60):#xxEVENT: OUT R7,16/OUT R7,1 ON C4=1,C9=0,C0inst=10,18: PPI.B=#xxEVENT: OUT R7,2 ON C4=2,C9=0,C0inst=5 : PPI.B=#xxEVENT: OUT R7,3 ON C4=3,C9=1,C0inst=34: PPI.B=#xxLYX͠_l> 2GX!AXf2GX!ՠY!_÷TKTULeI͹I>Xyh`"`͍h`"`>yPS`!"`!6`͹I͹I>yxw>y#*`#"`I ͹I>y͹xXPh`H!`wsrutqI!86,6y,6,6#6#6#6!I͹I>I!Daϟ͞l! l!mk͞l!vl!mk͞l!m8lͷ_ͼ`ͻl-e:(pOST & DEAD VSYNCR3h=0OUT R7,C4=1 ON C0vsio=0 PPI.B0 ON C0vsio=6:#xx (Exp xE)(xE=VS OFF)EVENT: OUT R7,16/OUT R7,1 ON C4=1,C9=0,Cvsio=17,25: PPI.B0=#xx (Exp xE)EVENT: WAIT C4=C9=1,C0vsio=2: PPI.B0=#xx (Exp xE)/ +R7=16/1 PPI.B0=#xxEVENT: OUT R7,2 ON C4=2,C9=0,C0vsio=10:PPI.B0=#xx (Exp xF)R7=C4=1 on C0=0, THEN R7=2 on C0>1, VSYNC LENGHT=#xx (Exp #6B=VS FROM C4=2)WAIT VSYNC ON R7=C4=1, THEN R7=2 > VSYNC LENGTH=#xx (Exp #66)R4=0/C4=0/C9=1 > R7=0 on C0io=0 : PPI.B0=#xx (Exp #xE)WAIT VSYNC FROM C4=0/C9=1/CI͹I>yx2ax2a8<>y>yx2a8)͹>yx2a8@͹>yx2a>y!b!"2b!"Xb*b*2b#"2b*Xb#"Xb!,c!.bbbͭbI͹I>yxw>y>yxwͥxw>y>yxw͹>yxw!#x8u>y !bI͹>Iy*͹Iqc*b#"bI͹Iq.͹Iqxw!,(x0u>y!&ai##>2Qc<2Yc!Dcϟ!""d! "d>ćc>c͒c!""d!-1"d:Qcc͒c:Ycc͒c-0vs=21 > DELAY TO VS=#xx (00=VSYNC DEAD Exp #00)R4=1/C4=0/C9=1 > R7=0 on COio=0:PPI.B0=#xx, DELAY TO VS=#xx (Exp:#57)> l!l4##= ͹I@͹ II͹ IXxsw͹I@͹I+ ͹ ͆> y"<͹ IXxsw͹I:lyM͹Xxsw II> 2lyI2II!mͷI.IY!mf!nf!8nf!mm!mm>52n> 2n!mͭm!nf2n!n`f:`g.o):`geo):`go):`go)!nssss:`go):`g;p)!o@f!oYSs!AXf:.dgd):/dgd):0dgd):1dgd)!2dssssss2c02Cd3>- >/2dx2d5I!.dM͹>-qyxw#Ixw#QYͰxXw#sƟLOST VSYNC ON R0=0 (EVENT)R4=38 R9=7 R7=30/C4=29 C9=7 C0vsio=0 >> PPI.PORT B=#xxEVT R0>2 SAME LINE>> PPI.B=#xxR0>2 SAME LINE ON C0=R0 >> PPI.B=#xxR0>2 ON C4=30 >> PPI.B=#xxeI͹I>ỳ>y!#x8>y}2e͹ù!Re>e*Ee#"Ee#ƟIM͹xw!^eϟY!gfa_dva'e!AXTrack-Info  Rf!`np>f#)= !>pf!AXffn)fn)!n>22n>ͭmf!n4P ##= ɎJKTVSYNC MANAGEMENT DURING R3R3 APPLIED ON ALL VALUES OF C4R3 APPLIED ON ALL VALUES OF C4, EXCEPTED WHEN C4=R7-1 (C9=R9)(THEN R3=12)R2=50, R3=12, R0=63 :V1=#xx, V2=#xx(CRT2:+R3<15 FROM LINE C4=R4/C9=R9-1/C0=5)VSYNC CONDITIONS IN HSYNC (R2=#2E/R3=14)>> UPD R7=C4 ON C9=0,C0v=#35 PPI.B ON C9=0,C0v=#3A:#xx>> UPD R7=C4 ON C9=0,C0v=#35 PPI.B ON C9=0,C0v=#3E:#xx>> UPD R7=C4 ON C9=0,C0vqq>?͸y͹ I@II>II͹IIq IqII!@4ͯ ͹ÿv:!wϟ~II}II~IIII͹II I@It!qIQA|͔QqAiqiqiqiqiq Qqq>7y! aiqI?ͩI I I[͹I>I II͹IIIq IqII><2x:5x 25xͯ͹w>2Uy2y2y>2->2~>2Uy2y2y> 2-> 2~!{> !!}2W~>xx[!12: !{F2W~7!!~!{!~> !{> =#35 PPI.B ON C9=1,C0v=#3A:#xx>> UPD R7=C4 ON C9=0,C0v=#35 PPI.B ON C9=1,C0v=#3E:#xxPPI.STATUS 5us BEFORE R7=C4 :# PPI.STATUS 5us AFTER UPD R7<>C4 (R7=C4 BEFORE)(VSYNC CANCEL)(C9>0):# PPI.ST C0=46 15 LINES AFTER R7=C4 ON C0vsio=#1E:xx,xx,xx,xx,xx,xx"pSpIII&IBI͹!p?q͘I9͹Xx2pƟ!pϟ!i"p!`M"qs!s>Ii͹qI?I`M͹Xxw#͹*p#"p*q+"q= !c"r!s!G"r!IͰr!G"rͶr!G"r!>IͰr!G"rͶr!#"r!s!G"r!!2W~>xx[!12!}:> > n!{> !2W~>: !{>2W~!}!01!{> !2W~>: !{>2W~!}!0:> > "z2{2sz02~>12}"|}!32"H~z2_z{2zx2zy2;{"~>*2}!Szϟ?}IIxIIyIIII ͹II !@͊II͹ IQ IYp!qIQi( ͒aq!IQaIq>?y[QY 0IQ IY II͹I?I͙II II͹Iq IQ IYII͂{ͯ-͹IͰr!G"rͶr!G"r!>IͰr!G"rͶr:(!s>2Hs> 2sr2Hs>2sr!s!97t)N#!>t ;t!tfP $- "s!9̀p:pgt)!ots!9̀p:pgt)!tss! "u!<>"u!swr> wr> !=="uwr:( !=0"u> wrͯ52 u>02tf#n# u%!ts>12tf#n# u)!ts"r2rIc͹;?qQYI YY͹IG͹xw#ù!?"s!I$s!?"s*s!?"s!>I$s!?"s"is2ksIqI&IBIIIII ͹;?qQYI YY͹IYz><2{!  "{S{|22 }2!! . "{S{"!  "{S{"IaiQQ&a,,,,i%ai$Q>>2W|02~>32}!16"H~!~"|}!12"~2W~2}!7|ϟ?}IIxIIyIIII͹IIp!qIQi( IIQͦaq#IQaIq>?ynQY 0IQ IY͹I?I͘II͹Iq IQ IY>24{!@!~w##z@ ͑~!I I?͹IIxw#ùSsfsf!P"s͠_!AXf!sf!AtPfR0=3F / CRTC IO ON R0 (OUT(C),C)UPDATE R0=7F, OUT ON HCC=3A :xxOKOOK: C0=..3F..40..41.. / KO: C0=..3F..00..01..OUTI ON C0vs=#3c:xx (01:IO>=5TH NOP / 00:IO ON 4TH NOP)OUTI ON C0vs=#3b:xx (01:IO>=6TH NOP / 00:IO ON 5TH NOP)UPD R0=3F ON C0vs=1 (PREVIOUS LINE R0=1) :xxxx(LINE C9=R9/C4<>R4 )!qu"8u!u"8u!7uϟquI ͹I!ͭdu͗ ͯ$͹=u>ia=͎>?2v!z"u!~"}6f!}f!3~f!t~f!AXf****xx** ****xx** ****xx**R0=3 / TEST FOR CRT 2 (NOT EXCLUSIVE :-)) / YELLOW = BORDER ONLY / C9=R9 NOT IN HSYNCCYAN COLOR >> C9=0 - 16 RUPT / LINE / 3 UPD R13 COvsio=29,39,49TEST WITH R1=3, R9=7, R4=120!~N#N# !~zW@ UUUUUUUUUU!8ɟ!FͷY!@ |!P!{!>͛!AX f!/fR0=7 - RVMB NO BORDER BYTE (CRTC 0)!ɟ!FͷY!@@ !H @ !P)@ ͔vu~!P!{!@vu>@2v!"u!"vu!P!{!Xvu!vɟ!vͷY f!AXf>7zg2v)!vf~͛R0=3 / TEST DISPTMG SKEW VERSUS BORDER / 3RD VERTICAL ZONE: NO SKEW / YELLOW = BORDER ONLYAw#|g0?&x0?&x?&x0JDKSL]RUMFK_GWYNEiqу/a˄%UK{<<<<: >2ˁ2:2>20aF<<<<: >2ˁ2>20>2:y!<<<<: >2ˁ2:2>20m:Ox2s!  ~#fo>"(! 6#!Y!$ϟ̓I>yIIIII͹I III>q,!'qIaiϟ!ӊ"1II͹T>yxq  !JTI(͐( =y=͞ I͹Iͯ&͹TKQYQY IYl!͙!f!4@f!Qf!f!f!AXf:>8>2jSPLIT RASTER ON INK 0. 1ST COLOR=MODE 3 / 2ND=M2 / 3RD=M1 / 4TH=M0C0=06 (CALC FROM VSYNC) INST:OUTI (5 usec)OUT(C),R8 (4 usec)OUT(n),A (3 usec)00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E 20 22 24 26 01 03 05 07 09 0B 0D 0F 11 13 15 17 19 1B 1D 1F 21 23 25!  IqqY>7aqqQaiqY=(>IyIq>*y>yq> y>yq>?y͹ IqI>?yTQYQ>KyII II͹I͹Iq͹IILQYFQYͯ$͹4!<ͷY!>w,>w,w,> w,w,>w,w,>pw,!B6,C6,.|g0!Fw|g0!B6,C63,.|g0M!w|g0!P!{!n6#!уf!Tf!ɟJLFRUKTMx8PXP4CRTC x / C0=0=Red+Magenta/C0=1=Grey/C0=2=Gre 27!ϟƋI͹.Eͬͯ͹&QͮY (ͣ͠% ɯY!ͷ!<f+x`)a) !fP!P>xw# @= !AXf!0fMODE UPDATE (2 TO 0) BEFORE AND DURING HSYNC (R2=#2E/R3=#E/1ST C0=#2B)OUT(C),R8 ON C0=#xx, MARKER xxSPOIL : CRT 0.1.2 >> READABLE MARKER 08 / CRT 3.4 >> R. MARKER 09KDJSLKTUMF^_GRYDW> 9!> !A> !B2Gx2u|2}2ʔ!"!+ϟ0I͹!I.& .>>(ay IaiiͷY IQ= <>(aen/C0=3=Blue/B&W Grid=Offset updatedR3A R0=3 OUT R13 >>>>>>>******** C0=3.0.1.2R3A R0=3 OUT R13 >>>>>>>>>******** C0=0.1.2.3R3B R0=3 OUT R13 >>>>>>>>>>>******** C0=1.2.3.0R3C R0=3 OUT R13 >>>>>>>>>>>>>******** C0=2.3.0.1R3D R0=3 OUT R13 >>>>>>>>>>>>>>>******** C0=3.0.1.2R3E R0=3 OUT R13 >>>>>>>>>>>>>>>>>******** C0=0.1.2.3R6A R0=1 OUT R13 >>>>>>>******** C0=1.0.1.0R6A R0=1 OUT R13 >>>>>>>>>******** C0=0.1.0.1R6B R0=1 OUT R13 >>>>>>>>>>>******** C0=1.0.1.0R6C R0=1 OUT R13 >>>>>>>>>>>>>******** C0=0y IaiiͷY IQ=(>(ay IaiͳY IQ=  I><2 2ύ: S2>_yͯ͹1J!>0:!>1J>3!ʕ *!>22S?T]"nSَC!|2}2ʔ͉>~(>2S!:~#w#!_ϟSI͹!I. & .>>ay IaiiͷY IQ= >ay IaiiͷY IQ=(͊!>!{ayyA.iiY G>2%O!* ~2V#~2W!* ~#fo>>>>>>>>>>>>>>******** C0=1.0.1.0R6E R0=1 OUT R13 >>>>>>>>>>>>>>>>>******** C0=0.1.0.1R7A R0=0 OUT R13 >>>>>>>******** C0=0.0.0.0R7A R0=0 OUT R13 >>>>>>>>>******** C0=0.0.0.0R7B R0=0 OUT R13 >>>>>>>>>>>******** C0=0.0.0.0R7C R0=0 OUT R13 >>>>>>>>>>>>>******** C0=0.0.0.0R7D R0=0 OUT R13 >>>>>>>>>>>>>>>******** C0=0.0.0.0R7E R0=0 OUT R13 >>>>>>>>>>>>>>>>>******** C0=0.0.0.0??&&0!+ϟ}I͹g,͹ITJY IQgTKY IQͯd͹.>y   yɯY2{Q͹eFIND G.A. 1/16MHZ END DISPLAY ON HSYNCBYTE IN (#C100)=(#C101)=#80JIT R2 OUT(C),r8STD R2JIT R2 OUTIHSYNC START FROM GFX MODE xCTRL KEY 1ST HSYNC ON/OFF@@ DD""DD""UUUUUUUU!I!D!?!:!5!0!+!&!!!!!! !!!"}2\2|\2>2_>S2>2!"!|2}2ʔ:82 >2k!4,*4"Y!ϟI͹!I.& .>>Pay IaiiͷY IQ= ͹I!Ps#r+@P Hs|g{2q!ׇͷJQY!f!PN!އ!N0!Kf!>0N@= !އɎTKTTL>r#@s#q@= LINES MODE 2,0,2,... [BORDER/INK 0] / BLACK RECT. [INK 0/INK 1] RED:L. MODE 0LINES MODE 2,0,2,... [BORDER/INK 1] / BLACK RECT. [INK 1/INK 0] RED:L. MODE 0!"u!"1![">2>22,>-2#%!"u!"1!JT">i2>2>,2,2#!ϟII͹T>yQYq  !JTiI(͓( =y,͞ I!Kai͹I_ͯ͹JKLM><2`> 2h_ !s@!Track-Info  RI>< 2> 2O! ͯ͹O!w ~#fov͉2aͥ2x2͗2[:_g)!Vf:g)!`fo͹KSͭ͘KEY 1<>2=INC DATA IN RAM / KEY 5<>6:PTR DATA / KEY 7<>8=INC PEN (COLOR SWAP)DATA=#xx / PEN=#KEY 3/4:DATA--/++ , SHIFT:1ST BYTE OK=0/255 ,CTRL=HS ON/OFFMODE x TO MODE y02!"y!Ē"{!"{!"y!_4!"ͦ>52Ւ͋>42Ւ͋!"!"!"!"!><2!,O Y"&$(!"!J"!"!<":y:<2yO! ~2f)PREV R9=7 R4=1 >> UPD R4=0 WHEN C4=1 & C9=7 (UPD FROM C0vsio)(01:C4=0 00:C4 ovf)!ͷY!f!AXfJKTRESULT OF CRT-R4 & R9 CHECKI͹ II*͹I(QY QY9͹XxwƟ!'"u!d" *u#"u*+"I'͹ II͘Id͹9͹XxwB#Ɵ!"͜!d" *͜#"͜*+"I͹II͘&Id͹[7͹XxwB#Ɵ!"9!"I!(*9#"9*I#"II͹II͹ II͢>yI$III7͹XxwI&I<:٢o>(>:آO>+(>:٢( :::ߢ0"0$:ޢ0#0%:ݢ0$0&:ܢ0%>0>Ú>Ý>ä>ç>î>ñ>ø!T>X͚!f!ef!f!TPf!UD>͚!"@f!lf!f!T>D͚!`f!Џzf!f! f!f!f!f2|2}2Y!ͷ>U!@>~,˭>@ !͙!f!4Pf!AXfKDJSL]WUMF^_GRYNETESTS : R2 UPDATE / R3 LENGHT FOR MODISATION / R3=0 SETTING (ON 3RD ZONE)OUT R2,#09 ON C0=7.8IIB#ƟI͹II͹IIͲI$III7͹Xx<(=2<Ɵ!"!d"; *#"*;+";I͹II͹IIͲI$IIId͹_7͹Xx<(=wI&IIIB#Ɵ>$͐wƟ&͐wƟ2z2{2I͹͹II@͹$IQY7͹Xx!a"!m"!y"ǀ:_>2d>2Y2ˁ{(2>2*{#"{2!_"!k"!w"ǀͯ5x8x0555Kyٷ'@̀ !PP!.9.A (CRTC C0=SCREEN C0-1)YELLOW COLOR ONLY IN MODE 2 / INK 10=#5F<->#5AKTKKKKKKKKKKKKKKK>!11!>!12>!13>!14 !15>!16>"2.!ϟGI͹I>X. Q&aͮYͧ= ͯ͹Ͷ!]f!tPfR2 UPDATE DURING HSYNCR2=#0B / R3=10 / ON C0=#0D0E0F10, OUT R2,#xx (+ R2=#2E ON C0=#23)I I!ͷY!f!4@f!`f!4f!Pf!͙!AXfJKT>>>> >>>2I02З!6ϟxI͹I ! >X. QIiͳa I Yͯ= ͯ͹<Ͷ!Kyٷ'@̀ (Bs##|g ͧ:ܢ!+|"!ՠBs1m@*"!ՠͪ_1?(.&0! (<(!fOKxKOx)e@|O |O |g}Po|gO6T]!w?~#̀~͛# &o))) ~#zW@W &o))) ~#{P_>W~(y#~Iy#~Iy# sFI YI QI YI QI YI QI YI QI YI QI YI QI YIQ1!Mx0x8x0x8͹x8M͹Mùf!fR3 UPDATE DURING HSYNCR2=#0B / R3=10 / ON C0=#0D0E0F10, OUT R3,#0x (+ R2=#2E ON C0=#2A)!ϟ!Gͬ!Q͒!=T!%sԛ![>f~P #= S!`f!=Ͷ!9Ͷf!GͶ!Ͷf!(fĘ)>,#!ĘͶf:> UPD R9=1 WHEN C9=3>>C9=0!{OB:::z֡YIH IPH{x Ox (   !  x0x8x0x8"|!Mx0x8x0x8͹x8M͹M͹͹x8!M[|R͹*|+"|*| > !עPIXIqI? CIB= Iqllllllll>X<|0f8l8vv0 000 0 0f<> UPD R4=1 WHEN C4=1 & C9=7 >> C4=0 :PREV R9=7 R4=38 >> UPD R4=0 WHEN C4=1 & C9=7 >> C4=2 (Ovf) :PREV R9=7 R4=1>> UPD R9=1 WHEN C4=1,C9=7,LASTLINE FROM C0=#29 R2=#2E(01:C9=0)PREV R9=7 R4=38 >> UPD R9=0 WHEN C4=1 & C9=0 (UPD FROM C0vsio)(00=Upd Ok) >>3C=xx/3D=xx/3E=xx/3F=xx/00=xx/01=xx/02=xx/03=xx/04=xx/05=xxPREV R9=7 R4=1 >> UPD R4=3 WHEN C4=1 & C9=7 (LAST LINE):xx (00:C4ovf 01:C4=0)PREV R9=7 R4=38 >> UPD R4=1 WHEN C4=1 & C9=7 (UPD FROM C0vsio)(01=C4 OvTrack-Info  Rf<0 0`0 ~~`0 0`fff~fff~~ xflxlf```bf8ll8ff|``8lvff|lf< <$0 x |v`|fffff>|`lvff8<ff<`flxl8<lffffE(>O2C!CP"`œ`œ:s2sgC!CP">2!08>2!16>*!32>*!642HG>?2DG2CG>.2IG2}G>2FG2GGy2bG"H:8 !"NG>2KH!Fl*lH:H_R"cH2H2H>2'G!"GnHEIIIII:H.?!- ͘qyqYI*ͧIqQ?͉I-„00|006ffff>fff<ll8lfff>|~L2~`.͉͉yœIIIIœ I*G|0y Ii(œIII>yœIq>?2H?:'G = zO2'G*G0 Z˜"G>2H:HgH!H"Iœ!Gd!H͑II!KTa Ii>A2H!@>!H"!H4`= VERTICAL SUBPIXEL SCROLL BASED ON UNICORN PRINCIPLE (1/64) A01?0.&&0! Il2 JII>2VEœ!J!K>28~(^!Do"pI#F#I~#!aIv>0!nIvœ>28!I"9SHAKE23BBIN@`B@`fff>|~L2~` #PJF#f#]Jf嚯~(g><2 J> mJ##SHAKER KILLER (CRTC/GA/Z80A)xx xx xx xx:#xx>WRONG (Exp #xx)!VERY BAD TRIP!ݎJ>9FFS/'5++Vxp64p642KCK"K"K W_4NDˆˇA^!BA!B^AV!cAf!ZAF!rBAf!BA~!aAN!|BA!pB ~A@@"ASA!"!pB~_#V@#"AAկYB>0{202WBͳ!RB"0!.F"!E"!RC>"P #= CRTC x!͑!iBsTKTULFFFFe+e5eDewdfIffEf f28 œ!L!"8Ix0JSKUMF^_GWELCOME IN OTIR ZONE (FOR FUN)!HLlV>28II>2!M2NʹL>ʹL>2NʹL!M!RB"!&M "!"LP!ML!ML!"L!MLb2NSN"P>nf xMn~?g MnfMѷR>(> 2M!gM"P = R52 BIT 5 RESET (R2=46/R3=8/CLOSE END HSYNC) FROM R52=#1F to #20FROM LAST INTER:#xxxx useEM(1) INTERLACE C4/C9 COUNTERS (Y=PARITY CRT 0/2:O)(Z/X)=R9 BASE (xx)(2) INTERLACE CRTC 2 C9 STRANGER THING(3) FAKE VSYNC ON CRTC 2(4) CRTC 2 FIND C0 MIN(5) CRTC 2 RLAL(6) CRTC 1 BUG OUTI R0(7) CRTC 0 BUG OVF C4(9) INTERLACE VM (27 TST) (Y PARITY CRT 0/2) (O) CRTC 1-A OR 1-B? (RETURN) R5 STORIES(F0) BOUNGA!(CAPS) RVNI LTD(P) ANALYZER / FORCED STAB CRTC 0 R0=0 (4 CONF)(R) INTERRUPT DELAY FROM R2 (18 CALC)(U) CRT 000 (CRTC 0)(I) R3 JIT (8 TST)(T) R3 JIT INTERACTIVE MODE ANALYZER(S) CRTC 1 :Track-Info  Rc >> NEXT INTER:#xxxx usec (Exp:#xxxx)WRONG!>> EI/NOP (1+1)>> EI/CP(HL) (1+2)>> EI/EX(SP),HL (1+6)             Eœ!vNvvvvvvvvvvvvvvvvvvvv>0!N^Vœ!Nut !Nl:82*O>IO!ONO!"P>qN!RB"!O "!OP"!O"bIKtO>28!gO"9EKv!/Ov"9IIq";O=e!I?IIII.ITII &IqODE 2>0 /DATA=#00 /PEN=#02>!Y%>! Z>!,Z >!NZ!`Y2.>I2Y>>!Y%>! Z>!,Z >!NZ!>Y2nX>C2Y"pXSYCX"sX>2X2aX!6Xl:8:YC!*> +>2X"YXXE*œ!d!.Ͷ>Y*XX!lZ2XuZ"X2X!>2X} h"X^X͹*XgZ!gZs"V_:`X(Gx2aXI3œXXPXXs|g0 ɯI!KFa Ii!RB"!Y"!Y@"!Y"!Y"!NZZ"I ii ͺaaI QaI ii ͻaaICa +I IPœI!6#w#]T q6#nOs#rR52INC IN HSYNCR0=1/R3=1/R52 CALC=#xx (Exp:#34)(REF #xxxx)R0=0/R3=1/R52 CALC=#xx (Exp:CRTC 0:#34 OTHERS:#FF)(REF #xxxx)!!&! !  }02iR!?S"ISSS6R 210!Rx23RyQ!-Q> BIT 0..7R3JIT. R2=R3=14 / R3=1 ON C0io=15R3JIT. R2=R3=14 / R3=2 ON C0io=16KEY COPY/CTRL >> PTR++=>#C1AA @:O>#(>!uZ!Z:>#(>!Z!uZ!l]"[!H]"[>!w2^go==G!0]"[!]"[!81V"" [x2a\#"\"\\s#r!ZlͫO!S B"3[g0]>28\I!t]>I_YœES œ.u#= I>y!t]<Po-&@~2m\Bͳɯ!RBP"!Q"! s#I>_yCRT000LL B/ R0=0 ON C0=0 AFTER ADD LINE (FROM C4=R4+1=3 C9=0) R8=#x0CRT000LL A/ R0=0 ON C0=0 ON ADD LINE (FROM C4=R4=2 C9=7) R8=#x0CRT000LL R0=0 ON ADD LINE - IN 'C0=0 ZONE' UPDATE Rx TWICECRT000LL R0=0 AFTER ADD LINE - IN 'C0=0 ZONE' UPDATE Rx TWICE                                                                     Fxo~2\xo~2\!d\"P #= I>nyœ\!\P"!\">02\Iœ\!\"!]"Vb! \"9!\"9:[RYB!RB"!1\"DELAY BETWEEN HSYNC (C0=R2) AND INTERRUPTION (IM1)WHEN R3=0E, INTERRUPT OCCURS #xx uSEC AFTER C0=R2 (#FF=NO INT)VSYNC DURATION (6=&180 ON CRT 0,3,4)(0=&400 ALL CRT / n=&400 CRT 1,2)R3 High=6 >> SIZE=&xxxx uSECDELAY OF 'CALL TO #38' ON INTERRUPTION IS xx uSEC (RST#38=4 uSEC)DELAY OF INTERRUPTION CALL (IM2) IS xx uSEC                                 !U%! U !U!U!"U!*U !2U!:U :>&2gT>2pT>2yT2T:TTTT!3TlͥTEœ.?!HqIͥaqY-(qQ!ai!ai!aiœ!PG>(x2yTIœ9T!RB"!T"!Ps|g0I>_yCRT000 / R0=0 ON C0=0 (R4=38, C4=10)/ (R9=7, C9=x)0(@1h234(@5h67!FUl:8 !)"_U>2V#VE*œ!d!.ʹ>YY>2^!` 2^!`>2^>y2^$!`>2^>2^>q2^>!`2^2^>q2^>2_"_!]l*T"?^d_!J_:_!]D^>=(.:_=2_ `*_"!Ua"!RB"b!P_:_@`:_g!1`"!"TEIIIIIIIIImœ II IIIII@I5!? >qqQAayQͧqqYayqͥiIqͺI>K>E&DyQ(͙>yIIqI>+yI?II yj82œXxw!acXxG^:o>(>!ac!as!@_!O!cV ~#fouV!XcWW:Ug:fU02W:gU02W!W@"uZ"U2U!]K>2U}2UFYQqIy>< 2U> 2UO!!V !"TI&œ^UKTI!KFa> Ii= !RB"!Y"!W"!=W"vVzVvVVvVVvVVvVͦ!vV"eV!V"gV!fU3!vV"gV!zV"eV!fU"!vV"iV!V"kV!gU!vV"kV!V"iV!gU><2Vw!vV"mV!V"oV0!vV"oV!V"mV !vV"qV!V"sV!vV"sV!V"qV:U2UR3JIT/INTERACTIVE ANALYZER PIXEL MODULEKEY 1/2:MODE L, 3/4:MODE R, 5/6:DATA++ 7/8:DATA-- CTRL/COPY:PEN++MTrack-Info  R4@_! @_ 0z!!!>5!C`"!RB"!M`"!`"!`"! a"Aw#|g0CRTC ANALYZERTEST R01 : R0=0 WHEN R4<>0, R9<>0R4 SYNC FOUND:#xx>>>>x<<<<PRESS KEY 1 TO 8: IDENTIFY THE 1ST FLASHING COLOR UNDER 1ST PATCHWORK LINE AT >>>x<<< X POSTEST R02 : R0=0 WHEN R4<>0, R9=0TEST R03 : R0=0 WHEN R4=0, R9<>0TEST R04 : R0=0 WHEN R4=0, R9=0NOTE : EXCEPT INK 0 + RED/WHITE RASTER, ONLY ONE EXTRA INK EACH 2KB BLOCKUNABLE TO FIX : PRB NOT ISSUED FROM C4/C9 /i!li"i<&:g02g:iz({2g:ix(<2i!i~w:g?2gO2iG!i "i#"hIQY!lk > 2k!l"k! "k>2k:з >2k>2k>2k>2k2*l2mk!n"m[>2k>2k>2*l2k<<2k:>!l l > 2k>:l!l@2k"kSk`ik >2mk!Gn"m02m!kllEIIœIIIIII œII>yq,!+qIai I OTHER PROBLEM TO IDENTIFY?&x0JDKSL]RUMFK_GWYNE!al2a<2ä́bIKLE><2a )ˈCa! "@b!B"Sb02c͔:a?g|c!|c"+œ I IIœœQIYœI I0II!cO ~w2a'œa!_c"!c!RB"">Ab!b"P W !bw###R5 SHAKER : MAGIC COCKTAIL / KEY 1 TO 8 TO MODIFY SCANNER SPEEDUPDATE R5 FROM 0 TO 1 ON C0=#00, aqY!@>6ͻqQFNY=( ͳ ,I>yq>Ry>y=yQY IqyQI?Y> y>yqYQYQYIKQYœIq II0 IQ IYIqœ IIœIILQY:k  >2`k>2k=(2k>2k>2k>2`k!RB"!m"!m":!n(!Gn"!@! oc!os: :mk(?!>em!>em!>em>2UḱḿḿḿmT].C9=0?:!clcEœͿeœ I(IͿIIq2œ IqIœàc!d"!dP"!Gd"CRTC 1 IDENTIFIERIF THIS LINE IS REPEATED BELOW, YOUR CRTC 1 IS 1-ABUT IF YOU CAN READ THIS, YOUR CRTC 1 IS 1-B !!!}dldIEœdddddddd0I>02d>D2dIKœÈd>Dy<2d>0 Iy˷2dœɯI&I!e͔bI@IPœCRTC 1 R5DOFF TEST >2we!e>A!e!>B>02we!>Ce!e>DSie"e2e!\eleEœͯœ II Iw,w,!m!~#w$% >2Uk 01 ON LAST H COL). C9==> 0=RED/ 1=BLUE/ 2=GREENC4=0=FULL COLOR C4>0=COLOR C9+BLACK [ CRTC 0: R5 ADJUST AFTER C9=R2=2 > C4=1]CRT1.3.4:[2,0,1,2,0,1,2,0,1,2,0],[1,2,0,1,2,0,1,2,0,1,2],....(C4=0)CRT0:[2,0,0,1,2,0,0,1,2,0,0],[1,2,0,0,1,2,0,0,1,2,0],[0,1,2,0,0,1,2,0,0,1,2]...CRT1.2.3.4:[2,0,1,2,...,2,0,1],[2,0,1,2,...,2,0,1],....(C4=0)JTL_R??&&0:!9ol:>(02òpEIIIIIIœII>IIIq IIIœ I0IͿe'œbeIIqɯI&I!e͔bPœRFD CRTC 1 TEST A![j"f!"zg>V2h>2_j![j"zg!"f>P2h2_j>&!>2_j>+!@2fy2fx2`j02h"gSf!rfl2g!"f>02g>Q2ejgE IIœII&IœI!KL_R!0 Ia IiQiͮI!i@ ~<( =yai {?|(zyiq#~#<(= QyI Yi; Y I>0y IqYiIV_2i(Hy2i9O!h ~#fo iO!h ~#fo iͿi[j*fyqX!AqI IQai! )>ͺy>6qQa-iqY=(Ͳ>Iyaq%aqy=yIy&yYqY?YyYIYQYIKQYQYœIq0 IQ IYœœIILQYI|$œPol!pl*T"p>2q!qq!pp> -:q=2q( gpr`!RB!rI"b!qqr:qg!"TqEQYYIIœ 0IQ IY œI͡ Iq͖QY͍qV! 0aQiY (ͥͿ III|0g"f>2g*ifKh>g>@2fSh*f^h*hfmhY!Kh"T"œœÌf!g͔b!AhP"!ph"I&IR5 STORIES V2 (UPD R5 ON C0=#3F) KEY 1/2=VPage,3/4=Offset,+Shift=+/-R5 VALUE=FF LINE=01, R12/13=3000, R12 Line=FF5/6:Line, 7/8/Right:Upd R5, Up/Dn/Left:Upd R12 / ClrFlag:x AP ih ihh! i"h!h"h! i"h!h"h!i>02hw>*iwͯ>*hwͯ ii i*i iLi ili iͦ! i"h!i"hp! i"h!i"hb! i"h!;i"h+#^! i"h!*i"h+#M! i"i!\i"i<I! i"i!Li"i<9! i"i!|i"i<6! i"Track-Info  R         qIͪœIqII+ œXxw!rcXxp>!r͑!rs!r rPw# 0w# !$> >>>>> >> > 2(s!sl{2s02v>O!u ^#V#Ss^#V#Ss~2v#~2 w!s"s!&"zsvqtmw!u͑PœPœE&I?yQY 0IQ IY IIœI?I͡II IIœIq IQ IY>p!5{02|!|"!1}"!RB"q|gUPDATE R13 HERE =====>yy AND ====>xx (yy swap to xx/yy each 1.28secCRTC2 TEST - C4 BEHAVIOUR ON R0=3 (R4=0/R9=7)R0=3 ON C9=0 (EACH C9=DIFFERENT COLOR. YELLOW ON BORDER ONLY)EMU ADVICE : WHEN C9=5, C9=7 IN HSYNC >> SCREEN KO ON REAL CRTC 2? &xQ IY œ]I IIIIœq^IͰ IITIœ*s[s"s!s#x0))))|N8 } [zs!NRZt:{sNRZt:{sWSzs!Nt"s!LKsB"OtEweLwasœIvs<T͎t͎t|II|I|EIIE IIjœII͗q IIKœxXIIEœII"<œXxqttII|IEII IIMœxXIIq_!(œEII IIMœJDKSL]RUMFK_GWYNE!"-!"62>622 <2<2#<2%! "+~!"J~>2~!~"-!À"6! "+~!"J~>2~!@:"~>2~2&~> 2~:!~l EIIIIII œ;?qQYI QYœI0 IQ IYIIœI͉͉II IQ IYœIIq~!&~~"I%œ ~><2~~ <  xwg{!p!Hc!Vs!i;x!q"!`"!"!1 "?0(&0JDKSL]RUMFK_GWYNE 0<CRTC 0 - OVF C4xXIIq!_(œ?(.&0 00 10` p20 030 40 50` p60 070 002 p04 06!t:> :CE!jt(>O!qt2Ow"\s: :C!uE(>O! u2Ow"\s!gxs!RB"!v"!v"!v"!w"!Ow0"dw INTERLACE VM TESTS - C4/C9 COUNTING IN IVM PERIOD (MAUVE ZONE)NEXT SCREEN : C4=6, C9=0 >> UPD R9=6, R8=3 (+3105)EXIT IVM MODE ON C9=0 >> UPD R9=7, R8=0AUTOSYNC ON PREVIOUS SCREEN TEST: R4=#xx R5=#xxE FRAME ON THIS CRTC| !TxsIw! ON COvs=2 WHEN R0 Upd (VAL>1) ON C0vs=1 WHEN R0=1ON C4=6, C9=4 + 5/6 (pink/grey)>> C9=R9=7 (white) LAST LINE CHR & SCRON C9=7, C0=0.1: C4=6 /C0=2 & + C4=7 C9=7.8.9 (3 LINES)C9>>0=CYAN/1=RED/2=PURPLE/3=GREEN/4=BLUE/5=PINK/6=GREY/7=WHITECURRENT R6=07ON C4=6, C9=3 + 4/5 (blue/pink)>> C9=6 (grey) R9=7 NOT LAST LINE CHRON C9=6, C0=0..63 >> C4=6. NO OVF C4!8"~> 2>02΂<22Y!!@:"~>2>62΂<2>2Y! |2~2c}2~!"-!"6:!ClEIIIIII œ;?qQYI@ ͏w!2͏wͧw s#{ _>!ʹw>!2w>dT] = >2w!w!w4|g0><@ r#{@8rq######= !@!~w##z !@!~w##z@ ɌJTKSL]RUMFK_GWYNEJTK::C!uE(! u"x!xlmw uEIIœ]I>%!xsx6I#= ITIIj/œÑxQIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII!xl: >2Ay@zEIIIIIIœII>yqO!AqI IQai! )>ͺyqQa-iqœ I IIq0 IQ IYœIII͉ IIIIœIIq Iq Iq~!c~"IœI!Hc!Vs!i;x!q"!U`"!"! "!1"OVF OF C9 FROM C9=7 ON LAST LINE CHR & SCR (C4=R4) (=0)C9=4 >> C9=5/6 (pink/grey)>> C9=R9=7 (white)ON C9=7, C0=0.1>>C4=6 / C0=2..63>> C4=7 / C9=7..31 (OVF C9)2>22!> 2>O2>2> 2>O2202>2_!5lEI IIIIII IIœ I0IGI Y=(Ͳ>y>=Iy=yy>yI> y>yQYIKQYQYœIq0 IQ IYœœIILQYI-œy>p25{!"/{>2{>z>o25{!%"/{>2{>z>n25{!e"/{> 2{>f>m25{!"/{> 2{>R>l25{!"/{> 2{>>>k25{!%"/{> 2{>*>j25{!e"/{> 2{>>i25{!"/{>2{>>2 {!zl|EIIIIIIIII œIqœp!qIQi( I I@IQ͵aq#IQaIq>Track-Info  R         II͉͉͉͉ IœII>JyIIIIIqœIq Iq!_ "I(œ;!Hc!s7x*!RB@"!V"!"!݄"@!"!1"I? .#%0R5 STORY : C9 INTERACTION IN VERT. ADJUST. MODER4=10, R5=24, R9=7 / ORANGE BORDER : ADJUST. ZONER6=#09ON LINE 5 IN ADJ. ZONE, R9=10ON LINE 1 IN ADJ. ZONE, R9=3JDKSL]RUMFK_GWYNE><2~ < xwg!!;|g@ M@ { {@8rq##!flEIIIqD FRAME SIZE:xxxxINTERLACE VIDEO MODE (FRAME x)R8=3 ON RASTER LINE 2 / R8=0 ON LINE 43 / FRAME SIZE=#CALC WITH R6=#xx:R7=#18, BEFORE R6DELAY FOR EVEN+ODD FRAME (E/O R6=50/50,7F/50,50/7F,7F/7F)L"P!P"M>02ss>12Nœs>02W!:8#"S$L!">=ӎL">>ӎL">?ӎL">12WӎL">ӎL"*+"*$#"$g^`͑`IIIqœE IIIͥI͓œ!#x0))))po!LR8=3 ON C9=0, C0=#xx : FRAME SIZE=#xxxx usec (R9=7)II?IIII œIqœ!  p !IQqIBYB(ͺIaIIII IœIqcI@œl!чc!߇s7x!~6## !0"χ!"!RB"o!ֆ~ !Ԇ~#~#*f~Ԇ ##"fLOGON SYSTEM PRESENTS THE 1ST ONE-LINE-SPLITTING (RLAL) ON CRTC 2?~;zz;~?~;zz;~?~;zz;~?~;zz;~?~;zz;~?~;zz;~?~R8 UPDATE DELAY + 0 FRAME DELAY>2G>2 >2x2x2/>02W`IqœE IIIIIMII2I6œ!#x))))"Pd(RRœI2I!#x0))))pRg!p> 2}!J>>22:!lEMœI2IIIœIIœ>=2 IÇ! "! Z"!0"CRTC 2 - TRYING FAKE VSYNC VIA PPI PORT BR2=50 / R3=14 >> VSYNC OFF ON CRTC 2FAKE VSYNC OK IF SCREEN STABLE!!"r!`l͕EIœ!>Uai= ;zz;~?~;zz;~?~;zz;??&&JDKSL]RUMFK_GWYNE>62!!:>82 É!!&>72!!>92 É!!"CSE:( 2>2!jl EœI Iœ1QY͉q QYqI!?Y"QY QYQYœ QYI0œp!??Q!?III1II?II>Jyœ!W"!~"!RB"CHECKING BUG OUTI ON R0 UPDATE WHEN C0=0+œ>=2 IÇ!"!P"!RB "TRYING FAKE VSYNC VIA PPI PORT B MIDDLE SCREENFAKE VSYNC OK IF VSYNC BLACK BAND! l~EIQIqœ!   IQqIBYB(͸IIIIœIq II͎IW œ!~< !~#"o&) T![~< !~#"o&) j!f~< !~##"ْo&) R!~< !~#"C!3~< !~#"C!e~< !~#",C&o6,6,6,60000;1z11172v2000v27211z1;1000!LON C4=C9=0, R9=1, 1ST R0=49/2ND R0 'OUTI'=6 FOR 14 usec ON C0vs=46ON C4=C9=0, R9=1, 1ST R0=49/2ND R0 'OUT(C),r8'=6 FOR 14 usec ON C0vs=48ON C4=C9=0, R9=1, 1ST R0=49/2ND R0 'OUTI'=13 FOR 14 usec ON C0vs=46!Ul! "E EœI Iœ1QY QYqI!Ԋ?Y"QY QYQYœ QYI0œa !ۊl2}2>֋>֋L!">2<֋`b!t:>2! > 2:C2E!jtqt(": > 2:C2E!u u(":(> 2:C2E!cu$u("!RB"!͑͋ޓɯ!0s#r#2s#r!>w#<=w#6#6!^>w<#^=w#6!}6!RB.!.!7"!RC " LOGON SYSTEM - ONE LINE SPLITTING (RLAL) ON CRTC 2 POC POC POC POC....??&&:=!elEœ!Ԙͪ1œ!ͪ!"Eœxo*(#"R>2g2!C"ECœxo* #"CR>2gfEœIq`Q͗qhQeʗEPIXx`AhHg$`a`aEehE!AIxx_x"!P"MEÐ!lYLL! "͠L"ͥL"ͫL"ͱL"`b2g!L":=(=(>22%22ڏ>62u2}!W60>I2!IIII͗L"!W61>q!IIII͗L"!W62>q!IqII͗L"!W63>q!qqII͗L"!W64>q!qqIq͗L">q2!IqII͗!L"!g"2݌|2}2z2{2`͑`IIIqœœEII III͡I͉I͉I͉IœœIII II!#x0)))) g!JR8=3 ON LINE 0 : FRAME SIZE=#xxxx usec (R9=7)(R7=0) MITrack-Info  R          ez 嚯!9"!M"Ԙ#!ږ"!"#!ږ"!"!5"!ip"!"`!͗"!"!'"P!H"!k"bږ. g>,- CRTC 1 - BE00 CHECKFROM C0=#3A BEFORE 1ST LIGNE (C9=C0=C4=0), EVERY 6 USEC (INI+INC B) :FROM C0=#20 ON VERY LAST LINE BEFORE C4=R6, EVERY 6 USEC (INI+INC B) :FIRST DETECTION (BIT 5=0) WITH IN A,(C) WHEN C0=#xxFIRST DETECTION (BIT 5=1) WITH IN A,(C) WHEN C0=#xxSTATUS WHILE R6=0 IN DIfff<<ƌ2f<00000<< <$0 x |v`|fffff>|`lvff8<ff<`flxl8<lfffffff<ll8lfff>|~L2~`0>ã>æ>í>ð>÷>ú>:000:>0>ͼ>Ϳ>I|I(=W*:w],w2z2ͦ><2_ > k(2ͼ>! w,w:=(=({2sgC:_>2]2]:=ȯ2z^>2^Kyٷ'@< !P!Kyٷ'@< (Bs##|g p:҇!+|ʇ"T!͑œs1m@*"T!͑cB1?(.&0>28!M"ƚ"ӚE*ƚ#"ƚMœx0*ƚB>e@|O |O |g}Po|gO6T]!w?~<#~W# &o))) ~#zW@W &o))) ~#{~_>W~(y#~SHAKE23CBIN@`B@`fff>`fff<l0123456789ABCDEF 0<3? ( ĐДԁ ( "*ç@I!@@II!@@I!m@.1͛@͹A*| 2! BÖAӜ!"!!FʑA!2BNʖA!֔NʑA!BFʖA!NʑA!~BFʖA!S|NʑA!LBFʖA!xBNʖA!FBVʖA!"BVʖA!]VʑA!\^ʑA!(B^ʖA!:^^ʑAV!\BʖAf!TʑIy#~Iy# sI YI QI YI QI YI QI YI QI YI QI YI QI YIQ1YIH IPH{x Ox (   !Mx0x8x0x8œx8MœMœx8x0!{OB:::zߜ!  x0x8x0x8"E!Mx0x8x0x8œx8MœMœœx8!M[ERœ*E+"E*E > !PIA! B ~ʖA@@"ASA!"! B~_#V@#"AAկ B>0ޛ{202BЙ!B0!nE!;E!B>P #= CRTC x!j!BLTKTUL[e|VWYZɋދiinwwwyz zzH4HEELN`NNIpJJJLKGKvrÃȃ̓҃׃Ãȃ̓҃׃zwˏۏ0Jdx^xwˏۏ0Jdx^xCPC SHAKER 2.3 MODULE C / LONGSHOT. LOGON SYSTEM(1) CRTC 1 : RFD & PARITY STORY(2) CRTC 1 : R8 IVM ON ODD C9(3) CRTC 1 : PARITY SWITCH STATUS(4) CRTXIqI? CIB= Iq IQ IYllllllll>X<|0f8l8vv0 000 0 0f<f<0 0`0 ~~`0 0`fff~fff~~ xflxlf```bf8ll8ff|``8lvff|lf2O<2S2 T02lS2oT>A2O!t>1OO>03O>13OoP!fN{:!qP(=!9R( =! Q(!Q>B2O!t>1O:S͹Ro"G=2S02lS>2O͹R2SoP!N{:!P(=!yR( =!IQ(!Q!t>C2O>1O: TͯSo"G=2 T02oT>2OͯS2 ToP2O!B!O!PXSrO2-P>OGO >E2PSlO>!30bO!002O")PoNOII N VSYNC PPI.PORTB.0=1!E{:!G(.! H(!G(!G>2@F02SG>I2WF!"^F!%"xFEoPG>E E:o"GG>OS8F2hG> F:>2sF02^G>,F>,F,F>2iF02nGo  IIIIIqqIͦIIII!Ex#{F,ͦD x#ғF,ͦD x#ҫFGFGF))))^V##}(|( Gͺ x2GGͺ!PG\!G\))))ú!B!-G!PXӜ:"GINTERLACE ADD LINE R6 VS NEW FRAMER9=7,R4=6, R6=4, PARITY=E, R7=1 FROM C4=2, CPU=#IIIMII> R4=77/R7=xx + FR>> CPU TO VSYNC=#xxxx WRONG (EXP:#xxxx)<@N <  N<@N <  N@@``@@``        @ ``@ ``        @x@2IHoP:=!?H{XI!I>2H02I!}>"I2I>B2I>zH>zH>zH>zHoP2II>͆H>2H<2H/2I!}>lOͣH!=>E"I2Ix2I>H>H>H>H>H>2I02Ioͦ IIIIIIII}ͦII!lx#I))))^V##}(|( Iͺ x2IIͺ!I\!B!tI!PXTEST DELAYED    <N < `N < `N<N@```    @@@@````@``@`    @@@@```` < ` < ` < ` < `````@        @@@@```` `` ```        @@@@````>0R>12~Sx2S>OR>E 2SSR>R>R>R>2S02So IIIIII͚!Iͣx#)S))))^V##}(|( Sͺ x2SSͺ!iS\R9=7.R8=3 ON C4=0/C9=x, VSYNC CRTC 1PARITY O. TO R7=1, R4=x, CPU=#xxxx WRONG (EXP:#xxxx)@ `` @  `` :!I{qM> 9L IIII͉>9LqqIqmmmq II>9L II)II!I9BͦJ:!|J{qM > 9L IIII͉>9Lq II>9L III>9L III9>ͦÂJ! !:"J!J{qM>9L IIII͉>9LqqI)II!I9DͦK! !:"bK!^K{qM>9L IIII͉PAR:x, C9 O/E PAR R7=x:#xxxx WRONG (EXP:#xxxx)!$>0S8!(>12TST"'T>OS>E 2TSS>S>S>S>2T02Toͦ IIIIII͚!$͝x#,T))))^V##}(|( Tͺ x2TTͺ!lT\R9=7.R8=3 ON C4=1/C9=0, PAR:x, R7=x >>#xxxx WRONG (EXP:#xxxx)!T{!t@:(= @>2U!U"U=(x2Uͦ!@Iqx#%U))))2U|N>(gU;> 2U UͺR5 ADDITIONAL LINE IN INTERLACE MODEFR>9Lq I I> 9LII)II!I9BͦdK! !"K!K{qM> 9L IIII͉>9Lq I I> 9LIIIqI)II!I9BͦKy=q= :!QL{:(0>`2/M>62M>2LqM!,"L!L"L!toMIͦSIII IIIIôLxͦI%I3ͦ IIIII-I!+"L|!L M "L98ͦÃLII!#x#M))))| }( x2MMͺoI!B!M!PX!M\!M\P!6LITrack-Info  R         AME LENGTH WITH R5=8 AFTER 304 INTERLACE LINESRESULT:#xxxx WRONG (EXP:#4Exx)III%III͡II IyIKIII21V!|W IIIItIͦ!E x#HVut##ͦ!BHVq II!V{!B!8W!P>O ͵V!x>E@͵VP2aWx2WSVX>V>0V:W@2WV>1V2WW!QW\!|W!W nf##))))} | x2hWdWͺnfvWͺ!cW\##COMP VSYNC PERIOD IN IVMON C9=0, PARITY=x#xxxx WRONG! (EXP:#xxxx)D ADD LINE,R5=1,R8=3/ CPU TO NEW FRAME:#xxxx (#0084 expected):!tnͦ!IIqIq#x0*`ͺ͉e!`\CANCEL IVM ON LAST LINE/ CPU TO C4=0:#xxxx (#0004 expected):!tnͦ!IIIqII͘q͡#x0`ͺ͉e!`\R5=1/R8=3, R8=0 ON 1ST R5 LINE/ CPU TO C4=0:#xxxx (#0004 exp):!tnͦ!IIIqII͘mq͡#x0gaͺ͉e!-a\R5=1/R8=3, R8=0 ON 2ND LINE AFTER LAST LINE/ CPU TO C4=0:#xxxx (#0B1C exp):! N N N N N N N N N N!W{!Y͟Xͳ!QY> yaIiͦFIͦmSIͦFIͦmSIͦRIIq IIIIEͦWI IIͦ I0IIFISIIIII II ͦI94ͦóW8Y!6LI͵'|!@!B!XPIDOUBLE PARITY (C9/FRAME)ODD PARITY WITH EVEN R9EVEN PARITY WITH EVEN R9FR 1.2.3.4.5 (R4=1/R9=6) FR 6 (R4=0/R9=5) FR 7 (R9=7) FR 8 (R4=31)EVEN tnͦ!IIIqII͘mq͡#x0 bͺ͉e!a\R5=1/R8=3, R5=0 ON 2ND LINE AFTER LAST LINE/ CPU TO C4=0:#xxxx (#0004 exp):!tnͦ!IIIqII'͛mqQY#x0bͺ͉e!|b\R5=1/R8=3, R8=0,R4++ ON 2ND LINE AFTER LAST LINE/ CPU TO C4=0:#xxxx (#0020 exp):> 2c!9dd>! ! Ϳc>'! !MͿc>&! !1Ϳc>'! !IͿc>! ! Ϳc>'! !Ϳc2c!;dd>&! !ͿcR5=x/R8=x,R9=x OPARITY WITH ODD R9FR 1.2.3 (R4=1/R9=7) FR 3 (R4=0/R9=5) FR 4.5 (R9=7) FR 6 (R4=33)!Y{!Y͟X!QY> yaIiͦmFIͦSIͦmFIͦSIͦmRIIq IIIIͦWI IIͦ I0IIFISIIIII II ͦI94ͦY!Z{!{YY͢X!QY> yaIiͦmFI-ͦWIIq IIIIͦSI IIͦFIͦ I0IISIFIN LAST LINE/ CPU TO C4=#xx:#xxxx (#xxxx exp) (UPD R7 IN HSYNC)}02scy02xc{02}cgc;_!!tnͦQYQYQYQY͟#x0cͺ͉ecͺ!pc\Y͟Y:з͉eͦ!aiQYQI I y( ͡ygx0d;2d͉e!d\!!!"d> R8=0/R5=1/R9=6 ON LAST LINE. C4=#xx (exp #26) NOT FOUND:͉eͦ!aiQYQI I y(͒ygx0re;2~e͉e!Ge\!!!"re> R5=1 ON LAST LINE-1/R9=6 ON LAST LINE. C4=#xx (exp #26) NI!III II ͦI98ͦZ![{!\e!"/\>32n\>E2o\>62a\\>02n\>02o\>72a\\!"/\>32n\>E2o\\P!\Uh!S\\!o\4*/\#"/\IIͦImIqx>N0>Y2\ON C4=R4+1/C9=7/R5=8/C0io=#3E : NEXTLINE: C4=0:xR5=0 ON LAST LINE OF ADD LINE!\{]ͦ>s\1d]zW|gzW|g͓wwwwA͖19ͦ!d]!,]!@^ut###P O      O O     OOT FOUNDIqIqII III&Iˀ!e{!ee͡gohͮhi͎iP!PX!BR5 ON LAST LINE. IF C4=#FF >> EMULATOR VBT!ON C4=R4=#26/C9=R9=7/C0io=#xx, R5=1, NEXTLINE:C4=#xxR5>0 ON LAST LINE WHEN C0>2 > ADDLINE CANCELED:xFROM LAST LINE, R5=1 ON C0=0, CPU TO C4=0 IS #xx (#xx Expected) WRONG!R5=2 / ON 1ST ADD LINE, R5=1 / CPU TO NEW FRAME:#xxxx (#0004 expected)R5=1 / ON 1ST ADD LINE, R5=0 / CPU TO NEW FRAME:#xxxx (#xxxx expected)R5=3 / ON 2ND ADD LINE, R5=1 / CPU TO !]{!]eͮ]P:!8+ͦIIx>Y8>N2+^I!]\VSYNC R7 UPDR4=38/R9=7.UPD R7=2 ON C4=1/C9=7/C0io=R0. VSYNC ON C4=2:x (N=TOO LATE)!@^{!q^e_́^;_@``xabb@ddIIPR8 ON LAST LINE:>!͔^!'>2^02_ _ͺ!tnͦIIII!#x0_ͺ͉e!^\R8=3 ON LAST LINE/ CPU TO C4=0:#xxxx (#xxxx expected):!tnͦIQ!pIII̓YIq#x0_ͺ͉e!v_\R5=3/ON 2NTrack-Info  RNEW FRAME:#xxxx (#xxxx expected):!"$h!"Bh>2hg!"$h!"Bh>.2hg!"$h!"Bh><2hghQf;*$h#"$h*Bh#"Bh&:f;!f\!h4!jhUhͦIII~#<(=́ygx0Uh&IqIIˀ&':ͦIII'ͦIx>Y8>N2fUh!Tf\:>& h>&h>&h>&12h02ff|2 i;ͦIIIq&$x0f|> >2f;Uh!f\!ffTi: !  !8!Kgͺ!DggTiͦIQ!pYIq#xIoͦIx>Y8>NwI.IIhp2q"qx2rjrͦ2 ! iqaqQ͗QQYIQY͎IIx>Y8>NwhpjrxͦII!  ́iaIQaYa>2yY͜qx>Y8>N2OohpI2II Iˀ!r{!tnI II!"t!<"t!1t!@t@!tt!tzLt-(O<(+!ts*t#"t*t+"t x !u:ʹs!uʹs!sIu!u!uv!vfs;fs;fs;fs;!ysIIPIVM OFF0ͺUh\:!8!gͺ!gZgͮiͦIQ!pmYIq#x0ͺUh\!i{Ͱj́kP!j{Ͱj!j!I"no>Qo>Qo!"no>Qo>Qo!j͏o!j;o!jo.p͂pp!+n!pT]p!Ln!mpp>!mn!mT]p>!jRq#Rq!j>!mͬq#goͬqrjP!B!ko!j>-2Ol>12Pl>4P;k>5;k! "Ol>4;k>50;k!ulkp!lk!lk!"m!cm!mP!m! n!-nD!Nn!on>12n:j2n!on>02n:j2n0 BEFORE C4=R4 :xx,xx,xx / ON C4=R4+1:xx (00=OVF C4)"s!2"u!<")uu-(O<(+!ts*u#"u*)u+")u x CRTC 2 ADD LINE TRIGGER (+)=AddLine (-)=No AddLine (O)=OuchPlease Wait...IVM ON FROM C4=R4/C9=3/C0io=58d TO C4=0/C9=1/C0io=3IVM OFF FROM C4=R4/C9=4/C0io=58d TO C4=0/C9=2/C0io=57IVM OFF FROM C4=R4/C9=4/C0io=58d TO C4=0/C9=2/C0io=57 (!!) ͦYm<ͦqoXx0uͦY2ͦq<ͦ!jI InI0uͦYqI(I!x#0uͺ0uo:j2 o>22n=2n!nP:j2 o>12n=2n!n! o2'l!#lfol;frl;P Yl##GHOST VSYNC VS LASTLINE - ON RUN R2=50/R3=12/R4=38/R7=30R3=14 AFTER VSYNC, THEN R3=12 ON C4=R4/C9=R9-1/C0io=5ON NEXT VSYNC (C4=R7):xx,xxR3=15 AFTER VSYNC, THEN R3=12 ON C4=0/C9=0/C0io=5R3=15 ON C4=C9=0 C0io=5, THEN R3=12 ON C4=R7-1/C9=R9/C0io=56R3=15 ON C4=R4/C9=R9 (7), THEN R9=0/7 TO FORCE LAST LINE EVALR4=0/R9=0 ON C4=R4(38)/C9=R9(7).Y IF C4=0 ON 2ND LINE OF FRAME:xR4=0/R9=0 ON C4=R4(38)/C9=R9(YII!x#0Iqvͺ0uCANCEL ADD LINE ON C4=R4+1. DELAY BEFORE C4=R4+2 IS #xxxxSET ADD LINE ON C4=C9=0. DELAY BEFORE C4=1 IS #xxxx0u!{v!vnf"ivnf"sv[v!8"iv!;"sv[vw# ͦY2ͦq<ͦu2<3<4<*<!v{!tnIٯ!B!"w v!2wPIIIIPͦYI III!x#0IqIqiwͺADDLINE RQ & R5IVM-ON ON LINE 0, THEN R5 0 >> 1, CPU TO C4=1/C9=0 IS #xxxx!x".x!#y"1x!8y"4x7).Y IF C4=1 ON 3RD LINE OF FRAME:xR4=0/R9=0 ON C4=0/C9=0 (1ST LINE).Y IF C4=1 ON 2ND LINE OF FRAME:xR4=C4/R9=C9 ON C4=R4=4, THEN R4=R9=0Y IF C4=0 ON 1ST LINE OF FRAME:xY IF C4=0 ON 2ND LINE OF FRAME:xY IF C4=1 ON 3RD LINE OF FRAME:xR4=0/R9=0 ON C4=R4(38)/C9=R9(7). ON 1ST+2ND LINE:HSYNC OFF. C4=1 ON 3RD LINE:xR4=0/R9=0 ON C4=R4(38)/C9=R9(7). ON LINE 0 NB x:2 HSYNC. C4=1 ON NEXT LINE:xHSYNC ON C0=0 ON LAST LINE (C4=R4/C9=R9) THEN REBOOT LAST LINE.C4=0:x2aojr@ͦI) ͦ IqIt;ͦ>1!x"1x>2!x".x>32y:!w{fy!thͦSI!IiQYͦFIͦSIQqaiͦFIaAͦSIͦFIx#y8yQqaiͦ I0I͆FIaAIIII I II ͦI9 ͦòwQYQt%a$`ͦ$a%#ͦSIr IIͦIͦFIrQYQa`ͦ$a%#ͦSIQqͦFIrQYQa`ͦ$a%#ͦSI!6LI͵'|!Xxsw##jr@ͦI ͦ I;ͦXxswjrͦI;ͦ IXxswjr@ͦIi ͦ IqI;ͦI IXxsw##jrͦ IqIqI>͏myx>Y8>N2amI III&Ijrͦ IqIqI>͏mmyx>Y8>N2mjrͦ IqIqI>͏yx>Y8>N2mhp"7qS:q25qjrͦͦ! aiiiqaqI>́ṕp͛yx>Y8>Nwhp2qjrͦP! iqaqQ͏YTrack-Info  R@!yP!yICRTC 2 : ADDLINE STATUS VS IVM ON/OFFTEST NUM >2iz2z2|>q2z2z>I2z>Y2z2z2z>2z!n"Qz!{"~{9>2iz>2z> >q2z2z>I2z>Y2z2z2z>2z!h"Qz!{"~{!Iz{!tP{hͦIIIIIq͍Iͦ-{ͤqmYͦ-{ͤYmY>0 Iyͦ-{͙I III IIͦIII! Ia IiͦI9ͦVz>Ky ( Iqͅ>JQ̈́y!6LI͵'|!@!{!{UI!n">O2+>2e><2!߅8!h">E2+2e2!߅!!!!! !!!:"!{!U!nͦIyKL&TIQ IYIIqa IaͦIͦI@ͦ9!ͦf>?Ӆ~g>Ӆ!Tai!Jainf"nf"D~2~2 !!@!B!:g̅;:gЅ;!0!B>>>>>>12345678<<<<<<<<<<<<<<<<<<<<<<<<<<C9=0 TO C9.IVM=0 , PARITY= (IVM PARITY SWITCH)BAD TRIP IF NOT WHITE COLOR ON POS 12345678 OF COLORED LINE (WP!|ICRTC 2 : ADD LINE BUG ON ODD PARITY, R4=1, R4=1, R4=1, R4=32ODD PARITY - IVM ON 1xC4=C9=0EVEN PARITY- IVM ON 1xC4=C9=0 R6<=R4 >> PARITY SWITCH>!4|>!2@|>dT] ՚՚= !Y|{II!B P!}*}! ~*}!ـ!X~V}!#ـ0!~V}!<ـ!~V}!Mـp!9V}ہį2!Ł`> 2!́!Ků2 !5P> 2 !PI.III!f};>,#P !}!!}YN@z8{w##pP !}HITE OR RED)(OTHER COLOR = PARITY ERROR AND/OR C9.IVM ERROR)FRAME STATUS #xx,#xx.PTQwO@00 12J2436@40 52J6476!%{+P III3IIfIII( III3IIfIII!L!!^{s# x |g#JLJLTTTTTTTTTT !Æ{222O>2m2͵IIq>2݆ͦI!KL_RI!!A>^#V#= ! Ia Ii IIQiͦI!z ~<( =yqai{ |(zyiپ͎#  I>0yR9=7 R4=1>> UPD R9=1 WHEN C4=1,C9=1 FROM C0io=2C->3F (01 if C4/C9=0)R9=7 R4=1>> UPD R9=1+UPD R9=29 WHEN C4=1,C9=1 FROM C0io=2C->3F (01 if C4/C9=0)R9=7 R4=38>> UPD R4=C4/R9=C9 WHEN C4=C9=4 FROM C0io=0->3F (Y=LASTLINE TRUE)R9=7 R4=38>> UPD R4=C4/R9=C9+UPD R9=7/R4=38 WHEN C4=C9=4 FROM C0io=0->3FR9=7 R4=38>> UPD R9=C9/R4=C4 WHEN C4=C9=4 FROM C0io=0->3F (Y=LASTLINE TRUE)R9=7 R4=38>> UPD R9=C9/R4=C4+UPD R4=38/R9=7 WHEN C4=C9=4 FROM C0io=0->3 IqYi9™2(Hy2͙O! ~#foNO!F ~#fo*f;>g> 2b;:zIO>Gx!!G >2(}2m`;>g ;':zg;!P!"Dͦ܆gggggggggͥ͘ IIIqqYiپ饜ͥQi͐!܈a!P!*I&IR8 PARITY WITH RFD / KEY Shift=+/-R5 LINE=00 VAL=FF/R8 LINE=00 POS=00/VAL=711/2/3/4/Left/Right:R8 Line/Pos/Val, 5/6/78:R5 Line/Val!B>A͎!FLASTLINE ACTIVATION ON R9x2 UPD:x (AFTER HSYNC)LASTLINE ACTIVATION IN VSYNC:xC4<>R4/C9<>R9 on C0=0. LASTLINE ACTIVATION ON C4/C9=0 UPD:x (AFTER HSYNC)!A!"k!@"[!"n!*[#"[*n#"nͦII@ͦ II͏>yIIIIͦXxwI&IIIˀ#oUUU"!"!@ͦ! &iqf*#"IIaIͅIIaIiIQ͓aIIIͅaIIIQai͓xw#aiIQiP W !w###XX1!X"!"!X"!"*6ͥ!X"!1">I2z͠!X"!">q2z͠X\X~XXŠX͊!X"H!m"J!Oq!X"J!\"H!O`!X"L!"N!O!X"N!~"L!>!X"P!"R!-!X"R!"P!!X"T!Њ"V!X"V!Š"T <:x(qwYˀI IIIˀͦ! &Iqaiquiquiquiqx>Y8>N2YaiIQ}ˀI IIIˀͦ! &Iqaqi͈qx>Y8>N2 ͦ! &IYiqyx>Y8>N2II IIMͦxXIIq_!(ͦII IIMͦxXIIq!_(ͦIIͦII"<ͦXxqws11UIITrack-Info  Rq!"!"!@2/>1!>3!@>5!>72>O2\F!"!"> 2/!@>1!>3!@>5!>72>E2"nSCG!5{Ȍ2>2y>2JIIq>2Jͦ>I!KLͦ IIIIqai IͦI>2>(x2y@ͦ͛E9a&ͦI!a!P!/I&IR8 IVM ON/OFF ON ODD C9, C4.0=1C9=0x ON FRAME:x (O:ODD/E:EVEN) R9 UPDATE ON C9=6 AFTER C0=R1 (HEY DMANU!!)IIq>2JMͦ!:!=T 1: xx,xx WRONG!IIqMͦxXw#s#IIq&NͦIqMͦIqMͦxXw#s#2&IIq>Mͦ=(͈Iq!MM0ͦxXw#s#IIq&ͦItqnMͦxXw#s#:(!h"!n"!1"!{!>"5!B!?!X!Y\!#!i\*!x\!1"5IIP>Gf;>E >O2;!\>= PARITY SELECT ON CRTC 0/2FIX EVEN PARITYFIX ODD PARITYSWITCH P>0!:!=> !8=!:>!V=!:>"fS2x2")!ύ{LIͦ>IIqͦI: IIIIq IIͦI=E90ͦՍmͦͦɯ͙!B!ݎ!P!s͋!LI&I>P!w#!!^s# x |g#JTKTLJUTTTTTTTTTTTKSLWRUMFK_GWYNEPARITY TEST 1. EVEN FRAME. C4.0=1EVEN R9 BEFORE IVM ON ODD C9ODD R9 BEFORE IVM ON ODD C9EVEN R9 BEFORE IVM ON EVEN C9ODD R9 BEFORE IVM ON EVEN C9 r9r9r9r9 ARITY O/E/O/E...PARITY CHECK :xx,xx : xͦIIqͦͦIIqMͦ!t:!*( =(=³!n"*ͦ!t:!#(=(=!h(GGUIIUIUII IIjͦII{q IIKͦxXwsU  s#{ _՚>2Ҙ!͘!Ҙ4|g0><@ r#{@8rq######= !@!~w##z !@!~w##z@ ɌJTKSL]RUMFK_GWYNEJTK: 0"0$: 0#0%: 0$0&:0%>0>Ç>Ê r8r8r8r8R8R8R8R8/;!v!y>0!v!y> !8y!v>!Vy!v>"S42R2zIͦ>IIqͦI: IIIImq IIͦI=E90ͦmɯ͙!B!!!ڐP! ͋!LI&IPARITY TEST 2 (C4.0=1):EXIT IVM ON NEXT LINE R8R8R8R8 r9r9r9r9 r8r8r8r8!<"!ג-!0>!B!-!0>!.!1"!0!->!!.0!>Ñ>Ô>Û>Þ>å:000:>0>͠>ͣ>:o>(>:_Kyٷ'@ !ڙP!Kyٷ'@ (Bs##|g Ӝ:Җ!+|ʖ"D9U"cbP!P"c!jæs1m@*"D!jB1?(.&0;e@|O |O |g}Po|gO6T]!w?~#~0# &o))) ~#zW@W &o))) ~#{~_>W~(y#~Iy#~Iy# sۛI YI ->!"S֑2ޑx2">2!{uͦIIqMͦͦ>I- IIIIq1 IIͦI>w20ͦIE9-ͦǑmmzIqmr!x#0nͺ!eIPHL CALC=#xxxx ͙!B!!P!K͋!LI&IPARITY TEST 3 (C4.0=1). ODD FRAMEEVEN R9 BEFORE IVM ON ODD C9ODD R9 BEFORE IVM ON ODD C9EVEN R9 BEFORE IVM ON EVEN C9ODD R9 BEFORE IVM ON EVEN C9 r9r9r9r9 r8r8r8r8R8R8R8R8>2>>QI YI QI YI QI YI QI YI QI YI QI YIQ1YIH IPH{x Ox (   !Mx0x8x0x8ͦx8MͦMæx8x0m!Ҝ{OB:::zÜ> !PIXIqI? CIB= Iq IQ IYllllllll>X<|0f8l8vv0 000 0 0f<12 2ɒ2֐2Ӕ2!"!"!"!"r!P"!"!">2>>2E>02 22ɒ2֐2Ӕ!"!@"!"!"r!"!"!"! {>T2!"uͦIIqMͦͦ>I- IIIIq IIͦ IIIIq IIͦIͦIIqEI9<ͦ5ODD/EVEN PARITY (C4.0=1)!ܔ{>A2!ͭ > ӕ]!B!`!X! x bbbf;f|ݖ>:(>2;##!}\!4PPARITY FRAME SWITCH (CRTC 1)TESTrack-Info  R0~ 0`||8~f<0 0`0 ~~`0 0`fff~fff~~ xflxlf```bf8ll8ff|``8lvff|lf< <$0 x |v`|fffff>|`lvff8<ff<`flxl8tOD:Dg7O![DtO>32?D>82SDXD:Dg7O!D0tO>42?D>92SD>224DXD:Dg7O!DtONREADING CRT STATUS 1 BIT 0 ON C0=63 (=1) / IN A,( C) ON C0=60 >>#xxREADING CRT ST1.1 ON C0=31 (=0) R0=63 / IN A,(C) ON C0=28 >>#xxREADING CRT STATUS 1 BIT 0 WITH INI ON C0=59 :#xx!DNF́I͗PPPP>28!D!fHIv!DP QWJQYͲNj2QãDSK 2-UNRELIABLE INTERRUPT SYSTEM BETWEEN CPCsCRTC-HSYNC NOT RELIABLE ON CPC FOR R52 MANAGEMENT >> Z80A INT SIGNAL01020304050607 INT DELAYED 7us (SET n,(IX<lfffffff<ll8lfff>|~L2~`Ky!D!sAtO!DtO!EPtO!WEtOtO!EtO!FtO>2nH!I"7H6HfE7O!kI"7H6HfE7OfE7O!UI"7H6Hf+F7O!EtO0!EtO!FtO>^I6#6>28!GݾGReoF7O!GF3O!IFtO!GDGReF7O!F tO>2nH!]IH(!UII !YIH!QII!kI!I!I3I"7HSH!6HN]IshH!"8!fH>v!II81I!01!IgO!sAtO!HtO!HtO&!P͠H!x͠HNN|$gH7OnfH3O!HN++INT Z80A SIGNAL#xx : #xxxxNOP (4 TC)CP (HL) (7 TC)DEC DE (6 TC)ADD HL,DE (11 TC)CP (IX+d) (19 TC)SET d,(IX+d') (23 TC)gH> >>!w !6#6#6++ SHAKE23DBIN@B@fff<l0123456789ABCDEF 0<3? ( ĐДԁ ( "*ç@I!@@II!@@I!m@.1͛@*A*| 2!AALQ!"!|Q!BVA!Iv^!AA!A ~A@@"ASA!"!A~_#V@#"AAկzA>0WP{202xAIN!sAtO0!kBtO!8BtO!A>tOP #= CRTC x!%OO!6#6#6#6+++ !JN͗PQI@IQqI>yP>?yI(I IIQIͲN0Q!ZJNͲJ͗PQ>sJ1KzW|gzW|g QwwwwAQ1ͲNQ!K!J!@^ut###P O      O O     O͗PII IIMQxXIIqgO!AOTKTULDG HHHH!HCPC SHAKER 2.3 MODULE D / LONGSHOT. LOGON SYSTEM(U) CRTC 3/4 : STATUS(I) SHAKER KILLER 2 (WARNING : NOT RELIABLE ON CRTC 1)(0) READ THE COMPENDIUM: HTTPS://SHAKER.LOGONSYSTEM.FRC0vs=0 DEFINED WHEN VSYNC PPI.PORTB.0=1P=P= :!BN͗PIPx!Dw#Pxw#Pxw#>Pw#PQxw# Q@qIIQxw?qIgO!sAtO! C"D>02DD:Dg7O!CPtO>12DD:Dg7O!CtO>22DD:Dg7O!CtO!FF"D>12D24DD:Dg7O!C@Track-Info  R_!(Q͗PII IIMQxXIIq!_(Q͗PIIQII"<QXxqwsKKPIIPI͗PQIIqQ͗PQIIqMQ!L:!L( =(=NK! L"vLͣL͗PQ!L:!L(=(=!L(ÍKLLPIIPIP͗PII͗P IIjQIIPq IIKQxXwsP  s#{ _NO>2KM!FM!KM4|g0><@ r#{@8rq######= !@!~w##z !@!~w##z@ ɌJTKSL]RUMFK_GWYNEJTK:Q0"0$:Q0#0%:Q0$0&:Q0%>0>Q>Q> Q> Q>Q>Q>Q:|Q000:}Q>0>Q>Q>:~Qo>(>:_Kyٷ'@͎O !SNP!Kyٷ'@͎O (Bs##|g LQ:QO!+|O"NͲNP"NNtOP!P"N!%OOQs"O1m@*"N!%OÖ́A1?(.&07Oe@|O |O |g}Po|gO6T]!w?~͎O#~ͩO# Q&o))) ~#zW@W Q&o))) ~#{~_>W~(y#~Iy#~Iy# sTPI YI QI YI QI YI QI YI QI YI QI YI QI YIQ1YIH IPH{x Ox (   !Mx0x8x0x8Qx8MQMQx8x0P!KQ{OB:::z !|QPIXIqI? CIB= Iq IQ IYllllllll>X<|0f8l8vv0 000 0 0f<f<0 0`0 ~~`0 0`fff~fff~~ xflxlf```bf8ll8ff|``8lvff|lf< <$0 x |v`|fffff>|`lvff8<ff<`flxl8<lfffffff<ll8lfff>|~L2~`