ToBurdockUsersDateMarch27,1985FromHalMurrayLocationPARCSubjectBurdockManualOrganizationCSLXEROXIntroductionBurdockisaprogramtohelpdebugDLionandDicentramicrocodeandhardware.DickSnowdidsomeoftheearlyworkonBurdock.PittsJarvisdidmostoftheworkonAltoBurdock.ItwasusedtodebugtheearlyDLionhardwareandmicrocode.Ifyouareintotrivia,askyouroldtimerfriendsabouttheBurdockEtherKludge.TherearetwoversionsofBurdock.OnefordebuggingDLions,andanotherfordebuggingDicentras.Therearenopicturesinthismemosomanydetailswillmakemoresenseifyoucangetsomebodytogiveyouaquickdemo.DLionBurdockTheDLionversionofBurdockhastwowindows.Oneisfordebugging/controllingtheCPandoneforworkingontheIOP.Unfortunately,theoldLogicAnalyzerlashupfromAltoBurdocktotheTektronixlogicanalyzerpluginforascopehasneverbeenrevived.Ihaven'tworkedwithDLionburdockforalongtime,soyoushouldbeextrasuspiciousaboutpartsofthismemothetalkaboutDLions,expeciallypartsthattalkabouttheIOP.DicentraBurdockTheDicentraversionofBurdockalsohastwowindows.Again,thefirstoneisfordebugging/controllingtheCP.ThesecondoneistheHistoryBuffer.It'salogicanalyzerfortracingexecutionofCPmicrocode.(Dicentrasdon'thaveanIOP,sothereisn'tanyneedforanIOPWindow.)WheretofinditThereisprobablyaBurdocksubdirectoryonyourfavoriteAMesa/APilotarchivedirectory.Mesa11.1isarchivedon[Ramrod:OSBUNorth:Xerox]<AMesa>11.1>.TheDLionversionisBurdockDLion.bcd.TheDicentraversionisBurdockDicentra.bcd.TheyareontheBurdock>Friendssubdirectory.(Youdon'tneed��pÔ_/Ó‚qÔ_/Ô_/Ó8Ó«pÔ_/Ó-‰qÔ_/Ó89Ó<üÔ]àÓ‚pÔY¨Ó‚qÔY¨Ó8ÓÂpÔY¨Ó-‰qÔY¨Ó89pÔU–Ó‚qÔU–Ó8Ó«pÔU–Ó-‰qÔU–Ó89rÔNNÓqsÔG±Ó‚tÔDbÓ§ÓáÓG�ÓƒÓ ßÓ"©Ó&Ó*õÓ/_Ó2jÓ8dÓ?gÔBªÓ‚qÔ@@Ó§Ó˜ÓπÓ&Ó∞Ó `Ó"∑Ó&Ó)âÓ+ÜÓ1dÓ4vÓ8NÓ:ªÓ>Ó?æÔ>òÓ‚Ó∏ÓÓäÓ Ó öÓ#üÓ'4Ó);Ó-√Ó0|Ó4<Ó9Ó?gÔ<ÒÓ‚ Ó’ÓDÓËÓ(ÓÌÓ"∆Ó%Ó(DÓ*õÓ.2Ó2ªÓ6äÓ8÷Ó>SÔ;JÓ‚Ô8ŒÓ§ÓñÓ⁄ÓvÓ≥Ó!]Ó'4Ó*(Ó,VÓ3�Ó8=Ó:ÂÓ?·Ô7'Ó‚Óú Ô4¨Ó§Ó√Ó3ÓWÓ°Ó!mÓ$+Ó(ÅÓ*bÓ.JÓ2∑Ó5Ó9QÓ=Ó@ΩÔ3Ó‚ÓôÓ$ÓmÓ˙Ó®Ó!ñÓ$M�Ó%wÓ)BuÔ/∂Ó‚Ó;qÔ,gÓ§ÓùÓ.Ó!Ó#ÒÓ*¢Ó.8Ó2Ó9.Ó=TÓ?·Ô*¿Ó‚Ó¡Ó+Ó!àÓ$JÓ&ˇÓ)FÓ.ßÓ0∑Ó3!Ó6p Ó?æÔ)Ó‚Ó<ÓÓ√ÓÓ"qÓ%{Ó*˚Ó,öÓ.ÍÓ5/Ó8qÓ=ŒÔ'qÓ‚Ó�ÓIÓÓâÓTÓ∞Ô$ˆÓ§�Ó≥ÓéÓÓ†Ó$Ó)çÓ+“�Ó-Ó0#Ó3®Ó5sÓ81Ó<≥Ó>´Ô#OÓ‚ ÓWÓ*ÓÑÓ/Ó √Ó$ÌÓ'?Ó)ËÓ-ªÓ2˙ Ó9MÓ<ßÓ?gÔ!ßÓ‚ÓƒÓ#uÔYÓ‚ÓëqÔ Ó§ÓÅÓ,Ó˘Ó ∑Ó&LÓ)Ó+òÓ.IÓ4VÓ8øÓ;$Ó>Ó@≤ÔbÓ‚ÓÓÓ!LÓ#ıÓ& Ó+ZÓ.Ó/lÓ1…Ó6∞Ó;TÓ=¶�Ó>ÕÔªÓ‚ÓjÓ¬ÓnÓ!æÓ#íÓ&� Ó- Ó3fiÓ7çÓ:ÓÓ<˘Ó@ZÔÓ‚ÓkÓeÓÓbÓüÓêÓ"}uÔ≈Ó‚ÓRÓÓÀtÔvÓ§Ó|ÓΩÓe�ÓeÓ"ÀÓ*ÖÓ,aÓ/rÓ4SÓ=UÔ œÓ‚ ÓLÓ6ÓcÓÓ#‡Ó&'Ó0àÔ'Ó‚ÓÓŸÓ¯Ó!ªÓ/fÓ3ïÓ:ìÓ@≤Ô ÄÓ‚ÓjÓÒÓ"CÓ$HÓ&¶Ó1kpÓ9•Ô Ä�Ô ÄÓ:Ó<wÓ?Sˇ�������¶��������TVm$ü������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum2anythingelsetogetBurdockofftheground.TheCPKernelmicrocodeandthingslikethatareTableCompiledandBoundintotheconfig.)NumbersareHEXBurdockthinksinHEX!Exceptforafewplaceslikemessagesthatprintoutbits/second,ALLnumbersinBurdockdefaulttoHEX.Whentypinginnumbers,youhavetousealeading0ifitwouldstartwithaletter.Ifyouwanttospecifyadecimalnumber,appenda'd.Ifyouwanttospecifyanoctalnumber,appenda'b.Foruniformity,youcanappenda'x,butthat'sthedefault.User.cmBurdockusesthenormalToolsWindowroutines.Atstartuptime,theyscanyouruser.cmtodeterminewheretoplacethewindows.Isuggestyouaddthefollowingtoyouruser.cm.[CPPanel]WindowBox:[x:0,y:30,w:512,h:540][IOPPanel]WindowBox:[x:512,y:30,w:512,h:540][HistoryBuffer]WindowBox:[x:512,y:30,w:512,h:540]HardwareRequirementsYouneedaDLiontorunBurdock.TodebugasecondDLion,youalsoneedapairofSongboards.OneboardismountedoneachDLion.ItplugsintotheBurdockPortontheIOP.That'san18pinsocketonthebottomfrontoftheIOPboardasyoufacethemachine.It'soutsidethestiffeningbar.TheSongboardsareconnectedbysomecables.Idon'tknowthedetails.(YoucanalsouseaBurdockBox,butyouwon'tlikethatsincesomethingisflakey,andyouwillloosecontactwithyourdebuggeeatthecriticalpoint.)ThedebuggeeDLionalsoneedsaspecialKernelPROMontheIOPboard.It'sareplacementforthePROMcontainingtheboottimediagnostics.Beware:ADLionwithaKernelPROMwon'tbootunlessitisconnectedtoaSongboardoraBurdockBox.TodebugaDicentra,youneedaDebuggerboardanditscable.Oneendofthecableplugsintothe26pinconnectorontheDebuggerboard.TheothergoesintotheBurdockPortontheDLion'sIOP.BugsNomatterwhatyoutype,Burdockshouldn'tgotoCoPilot,CoCoPilot,915orwhatever.Ifyoufindaproblem,tellme.It'sprobablyeasytofixit.��sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�pÔ_eÓ‚Ó≤Ó ÓªÓ“ÓáÓ åÓ"¥Ó'Ó)öÓ+πÓ/≠Ó5HÓ7∑Ó;@Ó=¶Ó@'Ô]æÓ‚Ó¨ÓŸÓoÓµÓ õuÔZoÓ‚Ó≤ÓqÔWÓ§ÓWÓûÓoÓ!°Ó&VÓ(∑�Ó*Ó,…Ó1Ó3‘Ó9”Ó<≈ÔUxÓ‚ÓÆÓÓ‰Ó!ßÓ'KÓ,Ó-ÀÓ1ÃÓ5˘Ó:RÓ<ÔS–Ó‚Ó£ÓÛÓ´Ó*�Ó]Ó;�Ó yÓ!„Ó#CÓ'{Ó*ïÓ-∫�Ó.ÌÓ2„Ó4nÓ7/Ó:ïÓ<NÓ@Ù�ÔR)Ó‚Ó�ÓÅÓi�ÓèÓ!áÓ#Ó%πÓ)Ó*æÓ/XÓ1EÓ4îÓ:Ó>¸�Ó@#ÔPÇÓ‚Óç Ó¿ÓwÓÓ"Ï�Ó$Ó%˚Ó(|Ó,'Ó.ÜuÔM2Ó‚qÔI„Ó§ÓYÓxÓ˛Ó!·Ó%–Ó+ÖÓ1PÓ3qÓ85Ó;ÿÓ?ÔH<Ó‚Ó_Ó∑ÓßÓ kÓ$≈Ó&µÓ*åÓ--Ó3v�Ó4¡Ó9ÃÓ<≈Ó?æÔFîÓ‚ÓÙÓ£ÓfiwÔDÌÓËÓHÔCEÓË Ó/Ó"èÓ%Ó'ûÓ*˛Ó-ÜÓ1ΩÓ4EÔ?ˆÓËÓ Ô>NÓË Ó/Ó"èÓ&∆Ó)NÓ,ÆÓ/5Ó3mÓ5ıÔ:ˇÓËÓÔ9XÓË Ó/Ó"èÓ&∆Ó)NÓ,ÆÓ/5Ó3mÓ5ısÔ2∫Ó‚Ó{qÔ/jÓ§Ó≤Ó�Ó9Ó©ÓWÓ!ÌÔ,ÔÓ§Ó”Ó �Ó;Ó’Ó"¶Ó%eÓ(9Ó+û�Ó,–Ó/∞xÓ1qÔ,Ô�Ô,ÔÓ2MÓ4˘qÓ8√Ô,Ô�Ô,ÔÓ9ßÓ<≥Ó@≤Ô+GÓ‚Ó√ÓÿÓÓÌÓ sÓ$,Ó'Ó)ÄÓ/Ó21Ó4FÓ6¥Ó:Ó>:Ó@9Ô)†Ó‚Ó=ÓPÓ<ÓÅÓ0Ó!àÓ#'Ó%lÓ(?Ó,Ó-ØÓ0LÓ3Ó5ZÓ;Ó=UÔ'˘Ó‚Ó: ÓFÓÓ‹Ó SÓ$«Ó'Ó-èÓ/ÑÓ3Ó7x�Ó8zÓ<Ó?æÔ&QÓ‚ÓóÓ-Ó∆Ó†Ó#�xÓ [Ô&Q�Ô&QÓ!NÓ%‰qÓ(NÔ&Q�Ô&QÓ)9Ó+«Ó.åÓ2eÓ5Ó7˙Ó;{Ô$™Ó‚ÓNÓΩÓuÓ,Ó◊Ó _Ó%Ó(9Ó+tÓ1ûÓ37Ó5ñÓ:Ô"/Ó§ÓÄÓÆÓ"Ó!ÚÓ%◊�Ó'Ó+ÖpÓ0&Ô"/�Ô"/Ó0ŒqÔ"/Ó4Ó6"Ó8ÜÓ;wÓ? Ô áÓ‚�Ó Ó¡Ó˜pÓPÔ á�Ô áÓ¯qÔ áÓ 7 Ó&ÍÓ)BÓ,lÓ/ãÓ6◊Ó<(�Ó=ÆÔ‡Ó‚ÓÒ�ÓpÓ†Ô‡�Ô‡ÓHqÔ‡ÓÇÓ@Ó"eÓ&|Ó'∆Ó)%Ó/úÓ1?�Ó2\Ó5ŒÓ9πÓ;q�Ó<éÔ9Ó‚ÔΩÓ§ÓÂÓ/�ÓsÓåÓ"^Ó%’�Ó'Ó-ïÓ1ßÓ4yÓ6nÓ:tÓ=ìÓ@eÔÓ‚ÓUÓ¸Ó∫Ó•ÓÓ Ó"ôÓ)Ó+Ó-èÓ4Ó8fÓ;RÓ?ÔnÓ‚Ó∫ÓÓ©Ó≠Ó¥Ó!Ó&_sÔ–Ó‚qÔ ÅÓ§ÓÓmÓ–ÓçÓ!˚Ó'ëÓ-†Ó/ñÓ1KÓ6® Ó=æÓ@ZÔ⁄Ó‚ÓÓòÓOÓ=�ÓgÓ#DÓ%¢Ó(MÓ*°Ó0sÓ3wÓ5%Ó76ˇ�������Ä��������TVm$l����������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum3PanelsThebottompartoftheCPWindowandtheIOPWindowisacontrolPanel.Panelsdon'tfollowthenormalTajouserinterfaceconventions.EachPanelhasthreecolumnsoftiles.Eachtilehasaflagcharacter,aleftsidethatcontainsasymboliclocationtobedisplayed,andarightsidethatshowsthecontentsofthatlocation.AsyoumovethemousearoundinaPanel,thesideofthetileunderthemousewillbeblackened.Theflagcharacterisnormallyblank.Itisa*ifthecontentsofthattilehavechangedduringthelastrefreshofthatcell.Itisa~ifthelocationhaschangedbuttheCPorIOPisrunningsothecontentscan'tberefreshed.Ifyouclicktheleftmousebutton(Point)whileitisoverablackenedtile,thecontentsoftheTypeInfieldwillbestoredintotheblackenedtileslot.IfTypeInisempty,thecurrentselectionwillbeused.Ifthestoregoesintotheleftsideofatile,thecorrespondingcontentstotherightsidewillbedisplayed.Ifthestoregoesintotherightsideofatile,theywillbereadbackanddisplayed.NotethatthereisaseparateTypeInslotforeachPanel.Ifyouclicktherightmousebutton(Adjust)overtheleftorrightsidesofatile,it'stextstringwillbeappendedtoTypeIn.Ifyouclicktheleftmousebutton(Point)overatilewhileLeftShiftisdown,theleftsideofthetilewillbebumpedby+1andtherightsideofthetilewillberefreshed.TypeInisusedasaworkareaforthesymbolicevaluationoftheexpression.Thetextforthenewleftsidewillbenormalizedbythesymbolmachinery.(Ifthereisanameitwillbeused.Ifnottheclosestonewillbeusedtobuildasymbol+numberexpression.)Ifyouclicktherightmousebutton(Adjust)whileLeftShiftisdown,theleftsideofthetilewillbebumpedby-1andtherightsideofthetilewillberefreshed.(Again,TypeInisusedasaworkarea.)Ifyouclicktherightandleftmousebuttons(Menu)whileLeftShiftisdown,thecolumnwillbefilledbyadding+1totheleftsideforeachtileinthecolumn,andthecorrespondingrightsideswillbedisplayed.TypeInendsupwiththesymbolicexpressionforthelasttileused.Youcanscanthingsrapidlybyholdingthemouseoverthetoptileofacolumnandalternatelydoingstoresandfills.CPWindowTheCPWindowisusedtoexamineandcontroltheCP.Ithas3sections.ThetopsectionisaFileWindowusedtorecordarunningcommentaryofvariousinterestingthings.ThelogfileisCP.log$.ThesecondsectionisaFormSW.Mostofitiscommands,butthereareafewtypeinslotsandaslottoshowthecurrentstateoftheCP.TherestofthewindowistheCPPanel.CPStateBurdockkeepstrackoftheStateoftheCP.ManyoperationsrequirethatCP��sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�sÔ_Ó‚qÔ[≤Ó§ÓéÓiÓ_Ó*Ó úÓ#Ó(¢Ó+kÓ-›Ó0›Ó6~Ó7˚�Ó97Ó=¸ÔZÓ‚Ó1Ó≈Ó˝Ó]Ó"Ó%IÓ(BÓ-ËÔWèÓ§ÓÓ·ÓUÓfiÓ$WxÓ&ÔWè�ÔWèÓ&ÄqÓ(fÔWè�ÔWèÓ)AÓ,¥Ó/Ó1á�Ó2∞Ó5g Ó;ß�Ó<—Ó?FÔUËÓ‚ÓÃÓL�ÓëÓsÓ#∆Ó%ëÓ'ù Ó.0Ó1�Ó2IÓ5∑Ó8´Ó;ñÓ?æÔTAÓ‚ÓHÓ¯ÓΩÓBÓ JÓ"¯Ó&ÆÓ)Ó-UÓ2 Ó3Ø�Ó4–Ó8ÈÓ;?Ó>Ó?æÔRôÓ‚ÓAÓCÓ£Ó˝Ó®Ó ô ÔPÓ§ÓãÓRÓJÓ∆Ó$¶Ó(„Ó*jÓ+Ê�Ó-�Ó.cÓ/‘Ó2CÓ7¬Ó9ãÓ<iÓ>◊ÔNwÓ‚ÓJÓ≥ÓÓÉÓ"Ó# Ó&êÓ)kÓ*€Ó,?�Ó-b�Ó.ÁÓ0@Ó2òÓ7»Ó:5Ó?ùÔL–Ó‚ÓAÓïÓYÓGÓ≤ÓÈÓ ≠Ó# Ó(|Ó+ŒÓ-æ ÔJTÓ§Ó-ÓÏÓ0ÓóÓÓ"vÓ&ÔÓ+îÓ/PÓ0ÆÓ2"Ó5C�Ó6uÓ=�Ó?æÔH≠Ó‚ÓTÓÓrÓHÓ {Ó#)Ó%Ó)CÓ,Ó.ÄÓ5Ó7gÓ:WÓ;‹Ó@≤ÔGÓ‚ÓhÓºÓyÓ Ó"≤Ó$óÓ(Ó)ïÓ+ËÓ/9Ó2GÓ5Ó7gÓ9–Ó<úÓ>I�Ó?gÔE^Ó‚ÓAÓ8ÓßÓ!UÓ#¥Ó'Ó)›Ó,àÓ.y Ó4ÔÓ6qÓ8–Ó<,Ó?FÔC∑Ó‚ÓXÓ¿ÓÆÓ}�ÓΩÓãÓ ±Ó#rÓ%yÓ(™Ó,Ó.’ Ó5aÓ8ÓÓ;”Ó?rÓ@Ù�ÔBÓ‚Ó:ÓÓ§Ó·Ó!Ô?ïÓ§ÓÓ¬ÓÓBÓáÓ"‘Ó'8Ó,éÓ/õÓ1ÌÓ4TÓ6Ó9PÓ<üÓ>J�Ó?gÔ=ÌÓ‚ÓÓÃÓ¢ÓMÓ>Ó"ïÓ$DÔ;rÓ§Ó9ÓÓSÓ∆ÓNÓ"ºÓ'AÓ+ÒÓ/�Ó0[Ó2ÕÓ6ñÓ<|Ó=˚Ô9ÀÓ‚ÓDÓªÓïÓPÓ±ÓÓ¿Ó!≤Ó'$Ó)"Ó+πÓ.sÓ0‘Ó4(Ó7Ó8ΩÓ;Ó=ÄÓ@-Ô8#Ó‚ ÓÓ…ÓÓ#Ó´�Ó ÆÓ$Ó&◊Ó(ÌÓ+&Ó0∆ Ó7BÓ8’Ó; Ô6|Ó‚ÓØÓ\ÓéÓ‚Ó≈Ó/Ó ¸Ó#úÓ%Ç Ó,ùÓ.éÓ0‚Ó5ü Ó<§Ó>ïÔ4’Ó‚Ó¬�Ó`ÓìÓ]Ó}Ó‚Ó!ÈÓ#flÓ&»Ó)úÓ.jÓ1äÓ4©Ó7Ó:æÓ<·Ó@Ù�Ô3-Ó‚Ó≥Ô0≤Ó§Ó>Ó ÓaÓÿÓCÓ#µÓ(?Ó-∫Ó1áÓ7rÓ8ˆÓ=1Ó?©Ô/Ó‚Ó≥ÓeÓæÓÓ∫Ó§Ó"Ó$Ó%®Ó(XÓ*±Ó-¸Ó0ÕÓ2Ó4ÿÓ7/Ó9‘Ó;æ Ô-dÓ‚Ó¿ÓìÓˇÓ;ÓÈ�Ó Ó#èÔ*ÈÓ§Ó4Ó˙ÓEÓ≥ÓÓ!⁄Ó$^Ó(«Ó-ÃÓ2€Ó6üÓ<ÄÓ=˚Ô)AÓ‚ÓCÓ9ÓÂÓ◊ÓkÓ hÓ$˚Ó'ëÓ)AÓ+°Ó.Ó0ÒÓ3/Ó6aÓ8¡Ó:pÓ<—Ô'öÓ‚ÓsÓ¨Ó|Ó®Ó"›Ó%bÓ'- Ó-}Ó2*Ó5?Ó7*Ó:Ó<XÔ%ÛÓ‚ ÓöÓÿÓ7Ó∑ÓÔ#wÓ§Ó£Ó Ó Ó*Ó"ŒÓ$∫Ó)∂Ó,Ó0RÓ3]Ó5ÆÓ8Ó:dÓ<�Ó=)Ô!–Ó‚Óô ÓSÓ3Ó Ó"ÀsÔ3Ó‚Ó∫qÔ‰Ó§Ó|Ó—Ó`ÓÕÓ! Ó"∏Ó(2Ó*ÍÓ/ùÓ1˝Ó4©Ó6!Ó8ó�Ó9ÃÓ?FÔ<Ó‚Ó¶ÓíÓM�Ó∆ Ó!ˆÓ%ÅÓ'Ó,�Ó-ñÓ3 Ó;NÓ=VÔïÓ‚ Ó±Ó6Ó$ÓåÓ"Ó#çÓ)$Ó,Ó0πÓ5kÓ6Ï�Ó8+Ó>ïÔÓÓ‚Ó≠ÓÓìÓ‚ÓuÓ!Ó#v�Ó$±Ó'dÓ+ØÓ.€Ó1•�Ó2‡Ó5àÓ7HÓ:„Ó=TÔFÓ‚ÓÓÃÓ+Ó÷ÓØÓPÓ Ó"hÓ'îÓ(ˇÓ+_Ó-≤uÔ ¯Ó‚ÓAqÔ ©Ó§Ó@Ó#Ó£Ó ixÓ"÷Ô ©�Ô ©Ó#≤qÔ ©Ó&oÓ(6Ó*¢Ó-ZÓ1^ Ó8Ó<ÔÓ? �������fi��������TVm$ï����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum4tobeinareasonablestate.CP/IOPDeadmeansthattheCPhascrashed,theIOPhascrashed,ortheCPhasn'tbeenBootedyet.HaltedmeansthattheCPhasbeeninitialized(Booted)andisnowstopped.Itcouldhaverunsomealready.Ifsoithasbeenmanuallystopped.RunningmeansthattheCPisrunningusercode.(It'srunningtheCPKernelwhenit'sintheHaltedorCPBreakstates.)CPBreakmeansthattheCPhashitabreakpoint.IOPStoppedmeansthattheIOPisstoppedoratabreakpoint.TheCPmustbeStoppedbeforeitcanbemanipulated.TheCPcouldbestoppedautomaticallywhentheIOPstops,butrefreshingtheCPPanelusuallytakesseveralseconds,andthat'sawasteoftimeifyouarechasinganIOPbug.BurdockpollsthestateoftheCP.Whenitchangesamessageisprintedinthelogwindow.IfitchangestoHaltedorCPBreak,theCPPanelisrefreshed.Built-insymbolsTheCPsymbolmanipulatonroutinescontainalargecollectionofbuilt-insymbols..CRnislocationnofRealControlStore..CVnislocationnofVirtualControlStore.(Thenthinstructioninthemicrocodelisting.)Pass2ofMassdeterminesthemappingbetweenCRandCV..MRnislocationnofMainRealmemory..MVnislocationnofMainVirtualmemory..MAPnisthenthwordofthemap..RHn,.Rn,.Un,.TPCn,.LINKn,Q,andL0throughL7aretheobviousthings.Soare.IB,.PC16,.STACKP,.IBPTR,.MINT,.EKERR.Anumberisnormallyinterpretedasalocationinmainmemory.IfanexpressionforanRregisterintheleftsideofatileintheCPPanelisprefixedwitha$,theRH/Rpairwillbedisplayedasa24bitnumber.CPKernelTheCPKernelcurrently(11.1)useslocations0F6F,0F77and0F7Fthrough0FFF.(Exceptforatypingerror,theappropiatereservesareinInitDLion.mc.)IthinktheDicentraversionisactuallyafewwordssmaller,butIhaven'tgotteninterestedenoughtocheck.ForDiagnosticsandsuchwherespaceisn'tcritical,Ireserve0F5Fthrough0FFF.CPBreakpointsTheDLionCPcanhaveupto16breakpoints.TheDicentracanhaveupto256.WhiletheCPisstopped,thebreakpointsaretemporarilyremovedsotheywillbeinvisibleifyouexamineControlStore.WhentheCPisstarted,theinstructionateachbreakpointisreplacedwithajumptotheCPKernel.Breaksatc2andc3arerisky.Ifamemoryoperationwasstarted,theresultswillbelost.Youcan'tsetabreakatac*instructionbecauseBurdockneedsthecycleinfotobuildtherightbreakpointinstruction.Ifyouhitabreakpointonthewrongcycle,BurdockwillprobablydeclaretheCPtobedead.(Thiswholemessis���sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�qÔ_,Ó‚ÓïÓãÓ>�Óm Ó@xÓŒÔ_,�Ô_,Ó ÃÓ%ÉqÔ_,Ó)Ó-dÓ07Ó2úÓ4ÙÓ7nÓ<ÃÓ?0Ô]ÖÓ‚ÓZÓµÓ{Ó›Ó3Ó!8Ó$òÓ)XxÓ+˚Ô]Ö�Ô]ÖÓ-%qÔ]ÖÓ0zÓ4¡Ó7ëÓ9ÛÓ<JÓ>¡Ô[›Ó‚ Ó1Ó⁄ÓãÓÓ!ÌÓ'kÓ(‹Ó,°Ó/·Ó2pÓ5˝Ó;!Ó<úÓ>YÓ?©ÔZ6Ó‚ÓÓºxÓÅÔZ6�ÔZ6ÓqÔZ6Ó$OÓ(”Ó+‚Ó.ÇÓ1Ó2¡Ó88Ó;rÓ?QÔXèÓ‚ÓÓvÓ»ÓeÓ!Ó#JÓ$˜Ó'UÓ+‹Ó-üÓ3cxÓ7ËÔXè�ÔXèÓ8ÊqÔXèÓ=⁄ÔVÁÓ‚ÓªÓ%ÓÉÓÓ*�Ó_ xÓ#±ÔVÁ�ÔVÁÓ$LqÔVÁÓ+Ó/ŒÓ2ßÓ5Ó8 Ó9Ó>∑Ó@ÖÔU@Ó‚�Ó Ó@ÓÓXÓ∑Ó!ûÓ'Ó+IÓ,ïÓ/Ó0˛Ó9:Ó< Ó>RÔSôÓ‚Ó·ÓÓùÓ"aÓ$ŒÓ' Ó+ØÓ.> Ó4√Ó71Ó9íÓ=kÔQÒÓ‚Ó`ÓÓ_ÓÓ"¡�Ó#ÍÓ'™Ó)cÓ,âÓ-ÈÓ0†Ó2ÙÓ7fiÓ9ŒÓ<ºÔOvÓ§Ó1ÓÓ‹Ó Ó!¬Ó$Ó&«Ó*›Ó,1Ó1[�Ó2ÇÓ7◊Ó9AÓ>Ó?æÔMœÓ‚Ó5Ó∏Ó:ÓêÓΩÓ kÓ$ÛÓ&∑Ó,’Ó/4Ó1àÓ5RÓ6æ uÔJÓ‚Ó·qÔG0Ó§Ó«ÓeÓx Ó$«Ó*_Ó/â�Ó0˛Ó4∞ Ó;0Ó=3ÔEâÓ‚ÔC Ó§Ót�Ó¨ÓÓ*�ÓbÓ Ó"2Ó'5Ó+Ó-fi�Ó/Ó0pÓ5î�Ó6ÕÓ8sÓ=ÔAfÓ‚Ó⁄Ó-ÓØ ÓåÓ!<Ó#ùÓ*LÓ/6Ó2<�Ó3rÓ5-Ó8∂ Ó?æÔ?øÓ‚ÓûÓÓóÓNÔ=CÓ§Ó—�ÓÓnÓò�Ó◊ÓÉÓ#Ó&NÓ,Ó/(�Ó0fÓ1≈Ó6Ô�Ó8-Ó9⁄Ó=vÔ;úÓ‚Ô9 Ó§ÓØ�Ó˙ÓfÓ≈ÓFÓ ŒÓ"áÓ$ÁÔ6•Ó§ÓΩÓtÓnÓ&Ó5ÓÏÓ!ìÓ#KÓ'ÎÓ)¢Ó+ßÓ.sÓ0§Ó5Ó8!Ó:âÓ<˝Ô4˛Ó‚ÓRÓYÓ¨ÓLÓ∞Ó%äÓ*ÏÓ0Ô2ÇÓ§�Ó0Ó\Ó»Óò Ó&´Ó(Y�Ó)ÉÓ.∫Ó0hÓ3ÂÔ0Ó§Ó;ÓA ÓÓbÓ g�Ó" Ó&˛Ó(¬Ó+7Ó-¡Ó0ØÓ2}�Ó3ºÓ61Ó7ÙÓ:iÓ<“Ó@≤Ô._Ó‚ÓPÓk�ÓïÓ"ÓÅÓ ËÓ#¿Ó&kÓ(\Ó.{Ó0)�Ó1SÓ38Ó5UuÔ+Ó‚ÓAqÔ'¡Ó§ÓïÓÓ∏Ó!ÆÓ%ßÓ(πÓ.çÓ2≥Ó6IÓ9Ó<ÊÔ&Ó‚ÓEÓqÓŒ�ÓÓ }Ó$gÓ&Á Ó-„Ó39Ó5≠Ó7{ ÓA�Ô$rÓ‚Ó∑ÓMÓ)Ó 'Ó!»Ó'�Ó(uÓ+KÓ/éÓ4‰Ó7õ�Ó8⁄Ó=‰Ô"ÀÓ‚ ÓOÓ[Ó+Ó ÜÓ#S Ó*»Ó-°Ó0ÙÓ5.Ó9Ó<ÓA�Ô!$Ó‚ÓîÓHÓÄuÔ‘Ó‚ÓA qÔÖÓ§ÓòÓ$ÓîÓ;Ó!ûÓ#ÃÓ%óÓ'òÓ/ÄÓ2uÓ87Ó:fiÓ>AÓ@oÔfiÓ‚ÔbÓ§ÓªÓÓnÓŸÓ!_Ó#æ Ó+3Ó-Ü Ó4ÔÓ:üÓ<cÓ?sÔªÓ‚ÓÂÓpÓ‰Ó≠Ó 8Ó%`Ó)iÓ-îÓ0Ó2lÓ3ÍÓ8—Ó;C ÔÓ‚Ó{Ó¨ ÓúÓÓ!çÓ$®�Ó%—Ó)pÓ+Ó-~Ó/“ÔòÓ§Ó;ÓÒÓfiÓ≤ÓüÓ!Ó$‡Ó&�Ó'∆Ó-PÓ3óÓ6`Ó;RÓ=ŒÔÒÓ‚Ó≠ÓΩÓ…Ó¯ÓiÓ•�Ó ÓÓ$‰Ó&ú�Ó'ÂÓ)‘ Ó0ŒÓ6Ó;æÓ?æÔ JÓ‚ÓfÓZÓÓ…Ó:Ó ù Ó'ûÓ.‚Ó0uÓ3=Ó5k�Ó6¶ Ó=ßÓ?æÔ¢Ó‚ÓÓÊÓuÓ Ó$ÚÓ)∞Ó,Ó.cÓ0Ó2Ó5∂Ó9IÓ=VÓ@≤ˇ�������}��������TVm$Q������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum5askingtobecleanedup.Itmightnotbetoohard.)CPCommandsBoot!goesthroughvariousstepstoinitializetheCPandtheCPPanelsoyoucanstartdebugging.ItforgetsallthecurrentCPsymbolsandbreakpoints.ItthendoesalowlevelbootontheCP.OntheDLion,thiswillautomaticallyboottheIOPunlessitisalreadytalkingtoBurdock.ThentheCPKernelisloadedintoContolStore,andtheCPKerneltaskisstarteduprunningtheKernel.Dicentrasdon'thavetasking,buttheinnardsofBurdocksaveandrestoretheCP'sPCtofakethekernelandemulatortasks.AftertheCPKernelisloaded,BurdocklooksaroundforextrabanksofControlStore,andifitfindsany,itloadsacopyoftheKernelintoeachextrabank.Finally,BurdockreinitializestheCPPanel.AllofthevariousLoadcommandsusethecurrentselectiontospecifyafilename.Forloadingmicrocode,thedefaultextensionis.fb.Forloadingsymbols,theextensionis.st.Load!isusedtoloadmicrocodeintoControlStore.FirstitresetstheCPsymbols,CPbreakpoints,andCPPanel.Thenitloadsthemicrocode.ThentheCPPanelisreset.LoadMore!loadsmicrocodeandsymbolswithoutresettinganything.ThisisusefulifyouhavemorethanonebankofControlStore.(Thesymboltablesprobablygetconfusedifyouloadtwohunksofmicrocodeintothesamebank,eveniftheydon'tsmasheachother.Thiscouldbefixed.)Start!evaluatesthecurrentexpressionasaCPsymbol.Theanswercontainsatasknumber,acyclenumber,andacontrolstoreaddress.Ifthecyclenumberisc1,thentheTPCforthespecifiedtaskissettothecontrolstoreaddress.ThentheCPisContinue!ed.Continue!justletstheCPstartrunningagain.OnaDLion,theIOPwillbecontinuedtooifthatmakessense.Stop!stopstheCP.TheCPPanelwillbeautomaticallyrefreshed.Run!runsaBurdockcommandfile.ThefilnameisintheFile:slot.Ifthatisempty,thecurrentselectionisused.Thedefaultextensionis.burdock.LoadRaw!isahackforloadingadiagnosticorscopeloopwhentheCPistoosicktorunBurdock'sKernel.Itresetseverything,loadsthemicrocodeandsymbols,andthenstartsrunningtheCP'sKerneltask.ThusyourmicrocodeshouldspecifyaStartAddressfortask7.LoadNoSyms!islikeLoad!exceptthatloadingthesymbolsisskipped.Thissavestimeifyoudon'tneedthem.LoadSymbols!isusedtoloadsymbolswhenyouchangeyourmindafterusingLoadNoSyms.LoadGerm!isusedtoloadagermintomemory.Itassumesthattheinitialmicrocodehasalreadyinitializedthemap.Thedefaultextensionis.germ.LoadReal!isleftoverfromtheoldAltodaysbeforeLoadGermandLoadBootexisted.Thedefaultextensionis.cpr.ItloadsafileintoCPmainmemory.ThiswasalsousedtodumpfancypicturesintoDLiondisplaymemory.���sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�qÔ_'Ó‚Ó%Ó‘Ó≈Ó≈Ó/Ó¶Ó#ùÓ&Ó(Ó*muÔ[◊Ó‚ÓAqÔXáÓ§ÓxÓúÓfiÓ"±Ó&#Ó'€ Ó-tÓ/fiÓ2;Ó4˝Ó7fÓ9ƒÓ=ôÓ?gÔV‡Ó‚ÓqÓÑ ÓôÓÓ!ûÓ#íÓ%ıÓ*¬Ó-Ó2jÓ5%Ó8˛Ó=}Ó>¯ÔU9Ó‚Ó3�Ó}Ó=Ó£ÓÙÓÓ!õÓ$fÓ&ÂÓ)dÓ.MÓ1Ó3⁄Ó<mÓ?æÔSëÓ‚ÓÓWÓ‡Ó~ÓÑÓ#GÓ%(Ó+AÓ/Ó1§Ó4*Ó8˙Ó:òÓ?FÔQÍÓ‚ÓâÓóÓeÓ€ÓEÓ#˘Ó&ÁÓ(iÓ,¸Ó/%Ó4rÓ6ËÓ;ÙÔPCÓ‚ÓlÓ©Ó™Ó!ÓwÓ$WÓ&Ó+åÓ.ÜÓ13Ó5∞Ó8Ó;,Ó=uÓ?ÔNõÓ‚Ó4Ó_ÓÓÃÓ!rÓ%Ó'TÓ)öÓ.*Ó/àÓ4NÓ9–Ó=`ÔLÙÓ‚Ó,Ó¨ÓØÓuÓóÓ#õÓ&`Ó'ÕÓ)0Ó,∞Ó/µÓ1Ó4π�Ó5ÔÓ9NÓ;Ó=ÄÔKMÓ‚Ó∫ÓÎÓ^Ó(Ó!2Ó&¡Ó-˛Ó0]Ó2±ÔH—Ó§Ó—ÓeÓüÓAÓØÓ&oÓ(øÓ*˘Ó/ùÓ5Ó6¶Ó;�Ó<"ÔG*Ó‚ÓÎÓ1 ÓïÓ!RÓ&XÓ,”Ó.úÓ1mÓ4vÓ9ºÓ?æÔEÇÓ‚Ó�ÓlÔCÓ§ÓÚÓ†ÓÓÓ `Ó'QÓ*kÓ/¬Ó3˚Ó7ÉÓ9Ó=)Ó? ÔA_Ó‚ÓáÓ‹Ó™Ó!bÓ#∂Ó'ŸÓ+xÓ,œÓ0dÓ2ƒ Ó9 Ó=jÓ? Ô?∏Ó‚Ó¨ÓÔ=<Ó§ÓÓ„Ó#ƒÓ&≠Ó,,Ó1jÓ7,Ó=fÓ@≤Ô;ïÓ‚Ó‹ÓÓ∂ÓfiÓRÓ YÓ"ÊÓ&:Ó'‘Ó,ÀÓ0¢Ó3’Ó8~Ó<LÔ9ÓÓ‚Ó5ÓÓ|Ó=ÓVÓ! Ó%/Ó&ÚÓ-´Ó0çÓ2ˆÓ6~Ó:SÓ=£Ó?Ô8FÓ‚ÓvÓôÓ Ó¡Ó €Ó$¶Ó&óÔ5ÀÓ§Ó|ÓqÓ›Ó"≥ Ó)xÓ+3�Ó,jÓ. Ó3ˆÓ6€Ó;ÑÓ@Ù�Ô4#Ó‚Ó±Ó-�ÓMÓ∑Ó!3Ó#·�Ó%Ó)´Ó,˛Ó27Ó3∞Ó6Ó9pÓ>ìÓ?ˆÔ2|Ó‚Ó ÓjÓ¶Ó‰ÓEÓ"Ó$€Ó&HÓ(fÓ*Ó,vÓ1*Ó4áÓ9 Ó=jÓ? Ô0’Ó‚ÓNÔ.YÓ§ÓDÓÓ°Ó Ó"êÓ%ΩÓ+Ó/1Ó1≠�Ó2ıÓ7€Ó:XÓ=dÓ@-Ô,≤Ó‚ÓOÓπÓÓËÓ Ô*6Ó§ÓYÓ◊Ó7Ó‚Ó ∫Ó# Ó&ÿÓ)ÉÓ+tÓ3Á Ô'∫Ó§ÓCÓh�ÓùÓ8Ó%§Ó(pÓ+SÓ0]Ó1‘Ó3çÓ5¯Ó9SÓ<LÓ=ŸÓ@≤Ô&Ó‚ÓtÓ”ÓùÓ BÓ!ÆÓ%AÓ(Ó,¬Ó2‡Ó4LÔ#óÓ§Ó_ÓŒ�Ó˚ÓEÓ ÖÓ%q�Ó&û Ó-Ó.flÓ2≠Ó5’Ó9çÓ;ÔÓ>EÓ?¥Ô!Ó‚ÓôÓ<Ó«Ó'Ó!Ó"}Ó&= Ó-NÓ0÷Ó3*Ó9ÕÓ<yÔ IÓ‚Ó©ÓfiÓÅÓ«Ó 6Ó#uÓ("Ó+aÓ.ÓÓ28Ó8ˆÓ=ÅÔ°Ó‚�ÓÓ'ÓdÓ<Ô&Ó§ ÓÿÓiÓ9Ó#jÓ'flÓ*“Ó/‡Ó2eÓ7÷Ó9fÓ?Ô~Ó‚ÓjÓêÓÓßÓ;Ó òÔÓ§Ó∏Ó!ÓZÓ!Ó$Ó)\Ó-Ó/¬Ó4gÓ7†Ó;;Ó>tÔ[Ó‚ Ô‡Ó§Ó\Ó˜ÓaÓ >Ó#|�Ó$’Ó(ãÓ+íÓ1ÜÓ3,Ó8ßÓ;§Ó>2Ô8Ó‚ÓêÓÓŸ Ó#.Ó%éÓ(ˇÓ+ÿÓ0ÄÓ6ûÓ8 ÔΩÓ§ÓoÓ„ÓˆÓ"eÓ$ÕÓ'?Ó*`Ó-éÓ1ÂÓ8˛Ó;æÔÓ‚ÓÀÓóÓ4Ó!GÓ"ßÓ%µÓ'!Ó*®�Ó+«Ó.$Ó0ÒÓ39Ó6™Ó<dÓ?rÔnÓ‚ÓÆÓÍÓôÓúÓQÓ#~Ó&VÓ*∆Ó/x������� ?��������TVm$J������������������������������������������Inter-OfficeMemorandum6UsingLoadRealtoloadagermisakrock.Unfortunately,nobodyhastakenthetimetocleanupthemessinthiscorneroftheDLionworld.MostofthespaceinthegermRMfilesistakenupbyblankmapentrys,andthusmostofthetimespentloadingthegermiswasted.Ontopofthat,youneedaseparatefileforeachsizemachine.LoadBoot!loadsabootfile.LikeLoadGerm,itassumesthattheinitialmicrocodehasalreadysetupthemap.Thedefaultfileextensionis.boot.Refresh!refreshestheCPPanel.Thisinvolvesreadingallofthespecifiedlocationsandupdatingthedisplay.A*willappearnexttoeachslotthatchanges.ThedisplayisautomaticallyrefreshedeachtimetheCPisstoppedorhitsabreakpoint.Manualrefreshcanbeusedtoseeifthehardwarehaschangedit'smind,ortocatchthesneakycasewhenyouhavetwoslotspointingatthesameregisterandyouchangedoneofthemsincethedisplaywaslastrefreshed.What!evaluatesthecurrentselectionasaCPsymbolandprintstheansweroutinhex,decimal,andoctal.Iftheselectionisjustanumber,thiscanbeusedtoconvertfromonebasetoanother.ListBreaks!liststhecurrentCPbreakpoints.ClearAllBreaks!forgetsallofthecurrentCPbreakpoints.UnBreak!evaluatesthecurrentselectionasaCPsymbol,andifthereisabreakpointatthatlocation,itiscleared.Break!evaluatesthecurrentselectionasaCPsymbol,andsetsaCPbreakpointthere.Compare!usesthecurrentselectiontoreadamicrocodefile.EachwordiscomparedwiththecontentsofControlStore.Iftheyaredifferent,anerrormessageisprinted.(OnaDicentra,thiscanbeusedtocheckControlStorePROMs.SeetheDicentradocumentation.)CrossJump!isahacktohelpmicrocoderslocateinstructionsthatmightbeeasytobumout.Remember,it'sahack.Thustheuserinterfaceisabitcrude.FirstBoottheCPandLoadyourmicrocode.Then,withoutchangingtheselection,pokeCrossJump.Eachlineofprinoutcontainsalistofaddresses.Theinstructionsatthoselocationsareallidentical.Thetrickistolookat(all)thepreviousinstructionsofeachcandidatetoseeifanyofthemcanbechangedtojumptooneofthealternates.Lotsoftimesyoucan'tdoitbecauseofaddressingconstraints.Iftheconstraintisloadingalinkregister,youcansometimesmoveitbackaninstructionortwo.WhenIscannedthemicrocodeI'musingintheDicentra,theprintoutwas2.5pageslong.Ieasilyfoundadozeninstructionstomerge,andtherewereanotherdozen(orso)inpartsoftheEmulatorthatIhavenotchangedfromtheDLion.IOPWindowTheIOPWindowisusedtoexamineandcontroltheIOP.Ithas4sections.ThetopsectionisasmallFormSWwith2commands.ThenextsectionisFileWindowusedtorecordarunningcommentaryofvariousinterestingthings.Thelogfileis��sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�xÔ_,Ó§qÓëÔ_,�Ô_,ÓyxÔ_,Ó€ÓÓ w�Ó!¨Ó%Ó&Ä�Ó'¥Ó+Ó Ó4ÔÓ9òÓ< Ó?“Ô]ÖÓ‚ÓÔÓóÓïÓÂÓ'Ó–Ó"mÓ&£Ó(JÓ*öÓ.˚Ó3Ó6çÓ85Ó:ÖÓ>(Ó?“Ô[›Ó‚ÓÖÓEÓòÓDÓÓfiÓ#ìÓ&vÓ*±Ó-<Ó0Ó3<Ó4∆Ó6˙Ó9ÈÓ=SÔZ6Ó‚Ó.ÓòÓÓ∏ÓÓcÓ!Ó$1Ó&»Ó)�Ó+%Ó0iÓ2ΩÓ4ÂÓ8Ó:ÆqÔWªÓ§ÓÈÓÁ�Ó}Ó"Ó%EÓ(‡Ó0¥Ó2vÓ8.Ó;gÓ>2ÔVÓ‚ÓêÓÓŸÓˆÓ!Ó#gÓ&ŸÓ)±Ó.ZÓ0√Ó6·Ó8MÔSòÓ§ÓÜÓïÓ <Ó"ÿÓ'BÓ*•Ó0DÓ5ÅÓ7πÓ9∫Ó<bÔQÒÓ‚Ó¨ÓrÓHÓ∂Ó$œ�Ó&j�Ó'ÆÓ*hÓ.˝Ó2Ó3ŸÓ7Ó9ΩÓ<öÔPJÓ‚ÓÓ"ÓËÓ!µÓ(Ó+§Ó/$Ó1fiÓ4åÓ6RÓ;⁄Ó=¯Ó@Ù�ÔN¢Ó‚ ÓÓÓîÓ"Ó#·Ó'Ó(õÓ*◊Ó, Ó.gÓ4XÓ6µÓ<Ó>'ÔL˚Ó‚ÓπÓzÓ"ÓïÓ-Ó .Ó#ˆÓ&¿Ó*Ó,ŸÓ0Ó5íÓ7=Ó9ØÓ=?ÔKTÓ‚ÓôÓPÓøÓkÓ$Ó!≠Ó% Ó'Ó,2Ó.fiÓ1^ ÔHÿÓ§Ó‘Ó≤ÓÓ"«Ó(cÓ*�Ó+'Ó-qÓ20Ó4fiÓ8¿Ó;Ó?®ÔG1Ó‚Ó∑Ó◊ÓxÓVÓ &Ó!œÓ$VÓ*"Ó+µÓ.~�Ó/ŒÓ5zÓ8BÓ:ıÓ=Ó@oÔEäÓ‚ÓÃÓ3ÓflÓ˘Ó®ÔCÓ§ Ó’ÓóÓˆÓ"¿Ó%Ô@ìÓ§ÓñÓ Ó"Ó#≈Ó&%Ó*ÓÓ-BÔ>Ó§Ó2ÓSÓ ÌÓ%Ó+œÓ-∂�Ó/Ó1ßÓ7Ó9ÚÓ;åÓ?OÓ@Ù�Ô<qÓ‚ Ó”ÓkÓ9Ó»Ó!Ó"äÔ9ˆÓ§ÓÓfiÓ/Ó"ÍÓ(ÄÓ* �Ó+;Ó-ÄÓ2íÓ5;Ó7Õ�Ó8ËÓ;- Ô8NÓ‚Ô5”Ó§ÓNÓ|ÓÓ# Ó(ÁÓ* Ó.�Ó/vÓ6YÓ9NÓ<ıÓ@≤Ô4,Ó‚Ó;ÓMÓ§Ó Ó!∫Ó&«Ó*µÓ,.Ó/5Ó1Ä Ó7uÓ9]Ó<∆Ô2ÑÓ‚ÓDÓfÓ4�ÓTÓHÓ!‡Ó$aÓ&HÓ)zÓ+Ó.˜Ó4Ó7òÓ=2Ó?æÔ0›Ó‚ÓàÔ.bÓ§ Ó.Óé�Ó≠ÓËÓ ãÓ#õ Ó+FÓ/2Ó6ÜÓ9IÓ=5Ó?Ô,ªÓ‚ÓêÓÃÔ*?Ó§Ó#Óa�ÓïÓ ŒÓ$VÓ&¡Ó)≈Ó/vÓ0Ï�Ó2!Ó4IÓ9Ó<bÓ?æÔ(òÓ‚ÓØÓflÓÏÓ† Ó%Ó)åÓ/Ó5gÓ8@ Ó>∂Ô&ÒÓ‚ ÓÓèÓ\Ó+Ó$+Ó)§�Ó*‰Ó-8Ó/ Ó6"Ó9Ó@ÖÔ%IÓ‚ÓÅÓ<ÓêÓÄ Ô"ŒÓ§Ó{Ó´ÓÓ√Ó€ÓsÓ"UÓ$≥Ó*AÓ1†Ó3XÓ6àÓ<ΩÓ>jÓ@ΩÔ!'Ó‚ÓôÓhÓÓ®ÓÆÓ!3Ó"¯Ó&≠Ó(qÓ+3Ó-Ó/w Ó6®Ó9ÿÓ;ßÓ?gÔÄÓ‚ÓfÓûÓ%ÓyÓc Ó$YÓ,rÓ.%Ó0∂ Ó7>Ó8€Ó=ˆ�Ó?QÔÿÓ‚ÓÓ–Ó[Ó Ó#“Ó%)Ó(pÓ*` Ó1;Ó2ˇÔ]Ó§Óø�Ó ÓÓsÓ%$Ó'≤Ó+_Ó-Ó/rÓ5tÓ7÷Ó=2Ó?·Ô∂Ó‚Ó√Ó‰�ÓÓ„Ó �Ó!FÓ%iÓ,flÓ.£Ó3?Ó6Ó9¨Ó=ÔÓ‚ÓÔÓ,ÓiÓÓÓ8Ó òÓ&´Ó)z�Ó*ÇÓ-…Ó0>Ó5≠Ó9Ó;ssÔqÓ‚ÓèqÔ"Ó§ÓöÓßÓTÓflÓ":Ó$Ó)ûÓ,tÓ1FÓ3ƒÓ7(Ó8æÓ;R�Ó<•Ô{Ó‚ÓëÓfiÓQÓî�ÓïÓ Ó#fiÓ&–�Ó'‹Ó.Ó1üÓ4ÖÓ8˘Ó:< Ô ”Ó‚Ó3Ó˜Ó[�ÓöÓÁ Ó&flÓ(≠Ó-ä Ó4YÓ8fiÓ;ÀÓ>4Ó@≤ˇ������� T��������TVm$e������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum7IOP.log$.ThethirdsectionisaFormSW.Mostofitiscommands,butthereareafewtypeinslotsandaslottoshowthecurrentstateoftheIOP.TherestofthewindowistheIOPPanel.IOPStateBurdockkeepstrackoftheStateoftheIOP.ManyoperationsrequirethatIOPtobeinareasonablestate.DeadmeansthattheIOPhascrashed,orithasn'tbeenBootedyet.BootedmeansthattheIOPhasbeeninitialized(Booted)butthePChasn'tbeeninitializedyet.HaltedmeansthattheIOPhasbeenrunningandisnowstopped.RunningmeansthattheIOPisrunningusercode.(It'srunningtheIOPKernelwhenit'sintheBooted,HaltedorBreakstates.)BreakmeansthattheIOPhashitabreakpoint.CPHalt/BreakmeansthattheIOPisinlimbobecauseitnoticedthattheCPencounteredabreakpointoritwashalted(byBurdock)tohalttheCP.BurdockpollsthestateoftheIOP.Whenitchangesamessageisprintedinthelogwindow.IfitchangestoHaltedorBreak,theIOPPanelisrefreshed.IOPBreakpointsIOPBreakpointsuseanRST2instruction.Youcanassembleoneintoyourcodeto"CallBurdock".ThereisnolimittothenumberofIOPbreakpointsthatcanbeactiveatthesametime.Built-insymbolsTheIOPsymbolmanipulatonroutinescontainseveralbuilt-insymbols.B,C,D,E,H,L,M,A,PCH,PCL,SPH,SPL,Flags,andRIMaresymbolsfortheobviousregisters.BC,DE,HL,SP,PSW,andPCaresymbolsfortheobviousregisterpairs.ArawnumberisanaddressinIOPmemory.IfanexpressionforanaddressinIOPmemoryisprefixedwitha$,thatlocationwillbedisplayedinwordmode.IfanexpressionforanaddressinIOPmemoryisprefixedwith%,thatlocationwillbedisplayedasaninstruction.IOPCommandsStack!displaysclumpSizewordsfromthestack.Instructions!evaluatesthecurrentselectionasanIOPsymbol,andthenstartingthere,displaysclumpSizeinstructions.Boot!goesthroughvariousstepstoinitializetheIOPandtheIOPPanelsoyoucanstartdebugging.ItforgetsallthecurrentIOPsymbolsandbreakpoints.ItthendoesalowlevelbootontheIOPandestablishescontactwiththeIOPKernel.Finally,BurdockreinitializestheIOPPanelandpreloadsitwithadefaultcollectionoftiles.ThisoperationleavestheCPintheDeadstate.AllofthevariousLoadcommandsusethecurrentselectiontospecifyafilename.ForloadingIOPcode,thedefaultextensionis.bin.��sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�qÔ_'Ó‚ÓÓÈÓ[Ó Ó!w�Ó"™Ó)Ó,õÓ.]Ó/ΩÓ12Ó8yÓ;Ó>óÓ@Ù�Ô]Ó‚Ó¶ÓÓ?Ó�ÓfÓ Ó!Ó%õÓ(Ó- Ó0^Ó29Ó4ºÓ8$Ó;Ó=„Ó?æÔ[ÿÓ‚ÓÓyÓŸÓ∆uÔXâÓ‚ÓÚqÔU:Ó§Ó(ÓÙÓ\Ó xÓ"_ÔU:�ÔU:Ó#<qÔU:Ó%·Ó'èÓ)‰Ó-Ó1 Ó7ÆÓ<mÓ?0ÔSìÓ‚ÓîÓàÓ9�Óf Ó8xÓƒÔSì�ÔSìÓ ◊qÔSìÓ#ZÓ'°Ó*sÓ,÷Ó/∆Ó2?Ó7õÓ9bÓ:ªÓ>¡ÔQÎÓ‚ÓƒxÓäÔQÎ�ÔQÎÓ}qÔQÎÓBÓ´Ó"ûÓ%#Ó(5Ó*œÓ.Q Ó4ÀÓ:†Ó=FÓ? ÔPDÓ‚Ó‚Ó< ÓèxÓ-ÔPD�ÔPDÓ VqÔPDÓ#ßÓ'ËÓ*¥Ó-Ó/˚Ó2nÓ5»Ó:¸Ó=±Ó?ÔNùÓ‚xÓÔNù�ÔNùÓ}qÔNùÓ%ÓÇÓ!hÓ#‡Ó&ÁÓ(kÓ-∫Ó0ÃÓ4ÉÓ7iÓ<∏Ó?0ÔLıÓ‚ÓáÓBÓ|Ó0ÓñÓ"≥Ó'BÓ)Ó- xÓ1ñÔLı�ÔLıÓ2âqÔLıÓ5´Ó9ıÓ< Ó?0ÔKNÓ‚ÓÑÓœ�Ó& xÓõÔKN�ÔKNÓô�Ó2 qÔKNÓ&ÀÓ+=Ó.8Ó0≈Ó3‡Ó5yÓ7UÓ;yÓ@»ÔIßÓ‚Ó¬ÓêÓÓD Ó#�Ó$G Ó+8Ó,¸Ó.SÓ0ˇÓ5.Ó7£Ó=≠Ó?[ÔGˇÓ‚ÓAÔEÑÓ§Ó&ÓkÓæÓ‚Ó!éÓ#·Ó'Ó+%Ó,oÓ1é�Ó2´Ó7ˆÓ9UÓ>Ó?æÔC›Ó‚Ó5Ó∏Ó:ÓêÓΩÓ kÓ$ÛÓ&∑Ó+Ó-eÓ0SÓ4Ó5â uÔ@éÓ‚ÓÚ qÔ=?Ó§Ó∑ ÓrÓ Ó!#Ó$Ñ�Ó%flÓ-7Ó0kÓ3Ó9Ó;ÂÓ>„Ô;òÓ‚Ó)Ó◊ÓuÔ9Ó§Ó∫Ó;ÓWÓ≤ÓuÓ ÍÓ&+Ó'˘Ó*¸ Ó2ÜÓ5iÓ8 Ó:Ó>Ó?æÔ7uÓ‚Ó_uÔ4&Ó‚Ó·qÔ0◊Ó§Ó|ÓiÓ1 Ó$6Ó)ÉÓ.bÓ2ÛÓ7›Ô.\Ó§Ó{ÓhÓwÓOÓ^Ó6Ó{Ó!sÓ%RÓ(˘Ó,°Ó0Ó4%Ó6Ó:kÓ<—Ô,µÓ‚ÓÓMÓT ÓˆÓ ûÓ#hÓ&3Ó(èÓ,LÓ.ÍÓ1%Ó3_Ó8íÓ:∑Ó<˝Ô+Ó‚Ó¿Ô(íÓ§�Ó0Ó‹ÓÓtÓdÓ#NÓ$¸Ó'ÍÔ&Ó§ÓÓ‚ ÓÅÓ•Ó{Ó$LÓ%‡Ó(¥Ó.Ó/YÓ4ÆÓ7Ø�Ó8øÓ:2Ó<ÁÔ$pÓ‚ÓîÓåÓ±ÓfÓˆÓ#*Ó$≤Ó&™ Ó-iÓ/≠Ó1§Ó6ïÓ8JÓ;>Ó@≤Ô"…Ó‚ÓPÓkÓPÓÓ!UÓ$Ó%ÒÓ,Ó-æÓ/ØuÔzÓ‚ÓÚqÔ+Ó§Ó”Ó Ó!≠Ó%∫Ó)!Ó+ÄÔ∞Ó§ÓéÓfÓ!∂Ó&qÓ,Ó-•Ó/ÜÓ2dÓ7uÓ:Ó=4ÔÓ‚Ó√Ó˙ÓûÔçÓ§ÓbÓpÓúÓ"YÓ%µÓ'W Ó,⁄Ó/-Ó2Ó4ªÓ7Ó9Ó=ØÓ?gÔÊÓ‚ÓfÓn ÓxÓËÓ!gÓ#PÓ%®Ó*jÓ-QÓ2ñÓ5FÓ9Ó=àÓ>¯Ô>Ó‚ÓG�Ó•ÓzÓÙÓZÓîÓ"(Ó%KÓ(6 Ó//Ó4#Ó7rÓ:Ó=)ÔóÓ‚Ó„ÓjÓ ûÓ"ıÓ%€Ó)ùÓ,LÓ1«Ó3Ó6(�Ó7IÓ;È ÔÓ‚ÓõÓ÷ÓÓÓ!&Ó#ÖÓ%ŸÓ'áÓ)ÊÓ-úÔuÓ§Ó—ÓeÓüÓAÓØÓ&oÓ(øÓ*˘Ó/ùÓ5Ó6¶Ó;�Ó<"Ô ÕÓ‚ÓçÓwÓdÓÓcÓ$Ó**Ó+ï�������Ë��������TVm$����������������Inter-OfficeMemorandum8Load!isusedtoloadmicrocodeintoIOPRAM.FirstitresetstheIOPsymbols,IOPbreakpoints.ThenitloadstheIOPcode.ThentheIOPPanelisreset.Start!evaluatesthecurrentexpressionasanIOPsymbol,setsthePCtothatlocation,andContinue!stheIOP.TheCPwillbeautomaticallycontinuedfirstifthatmakessense.Step!letstheIOPexecuteoneinstructionandthenrefreshestheIOPPanel.Thisisimplementedbyautomaticallyinsertingabreakpointatthenextlocation,sothatinterruptroutinesmaygettorun.Iftheinstructiontobeexecutedisaconditionaljump,twobreakpointsareinserted.Continue!justletstheIOPstartrunningagain.Again,theCPwillbeautomaticallycontinuedfirstifthatmakessense.Stop!stopstheIOP.TheIOPPanelwillbeautomaticallyrefreshed.Run!runsaBurdockcommandfile.ThefilenameisintheFile:slot.Ifthatisempty,thecurrentselectionisused.Thedefaultextensionis.burdock.LoadNoSyms!islikeLoad!exceptthatthesymbolsarenotloadedintothesymboltable.Thissavestimeifyoudon'tneedthem.LoadSymbols!isusedtoloadsymbolswhenyouchangeyourmindafterusingLoadNoSyms.LoadModSymbols!loadsthesymbolsforthemodulespecifiedbythecurrentselection.Refresh!refreshestheIOPPanel.Thisinvolvesreadingallofthespecifiedlocationsandupdatingthedisplay.A*willappearnexttoeachslotthatchanges.ThedisplayisautomaticallyrefreshedeachtimetheIOPisstoppedorhitsabreakpoint.Manualrefreshcanbeusedtoseeifthehardwarehaschangeditsmind,ortocatchthesneakycasewhenyouhavetwoslotspointingatthesameregisterandyouchangedoneofthemsincethedisplaywaslastrefreshed.What!evaluatesthecurrentselectionasanIOPsymbolandprintstheansweroutinhex,decimal,andoctal.Iftheselectionisjustanumber,thiscanbeusedtoconvertfromonebasetoanother.ListBreaks!liststhecurrentIOPbreakpoints.ClearAllBreaks!forgetsallofthecurrentIOPbreakpoints.UnBreak!evaluatesthecurrentselectionasaIOPsymbol,andifthereisabreakpointatthatlocation,itiscleared.Break!evaluatesthecurrentselectionasaIOPsymbol,andsetsaIOPbreakpointthere.HBWindowTheHBWindowisusedtoexamineandcontrolthehistorybuffer.Ithas2sections.ThetopsectionisaFormSWusedtointeractwiththehistorybuffer.TherestofthewindowisFileWindow.Mostly,itisusedtodisplaythemicrocodePCsthatwererecordedbythehistorybufferhardware.ThelogfileisHB.log$.���sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�qÔ_/Ó§ÓûÓˆÓ ÓªÓ∑Ó%SÓ(Ó*ÛÓ/#Ó2VÓ3öÓ7RÓ9ûÓ<yÔ]àÓ‚Ó–ÓúÓ;ÓëÓ"$Ó$ÑÓ'rÓ+Ó.ØÓ1Ó3¸Ó7∆Ó92Ô[Ó§ÓãÓèÓ Ó"Ô Ó)√Ó+çÓ-ôÓ0¢Ó5fiÓ8õÓ;Ó=ÖÓ?PÔYeÓ‚ÓèÓe ÓâÓ!Ó$jÓ'aÓ)“Ó,úÓ.´Ó7<Ó=«Ó@ΩÔWΩÓ‚Ó∞ÓÈÔUBÓ§ÓcÓÓÇÓêÓ"•Ó%q Ó,lÓ/CÓ2âÓ8oÓ:ÓÓ=¸ÔSöÓ‚Ó˘Ób Ó±Ó©Ó&Ó+ª�Ó,‚ Ó3œÓ5eÓ7¡Ó:ŒÓ@ZÔQÛÓ‚ÓáÓ&ÓJÓ%Ó!EÓ"ÀÓ%êÓ&ÈÓ) Ó/—Ó1WÓ3Ó8≥Ó9ı�Ó:ˆ ÔPLÓ‚ÓŸÓÖ Ó˙ÓNÔM–Ó§ÓúÓ¥Ó´Ó!ÅÓ$ÂÓ(kÓ.Ó2êÓ7kÓ:AÓ=Ó@-ÔL)Ó‚ÓUÓ¬Ó öÓ!˚Ó$…Ó)ÔI≠Ó§ÓYÓ◊Ó7Ó|Ó!TÓ$BÓ(Ó*∑Ó,®Ó5 ÔG1Ó§Ó8ÓR�Ó|ÓÓ%mÓ(-Ó+Ó0™Ó2Ó3ƒÓ6$Ó9tÓ<bÓ=‰Ó@≤ÔEäÓ‚ÓtÓ”ÓùÓ BÓ!ÆÓ%AÓ(Ó,¬Ó2‡Ó4LÔCÓ§ ÓfiÓuÓKÓ#ÇÓ'˝Ó*ˆÓ-ÄÓ2˜Ó5vÓ8Ó<ºÓ?æÔAgÓ‚Ó™ÓjÓÑÓÓ!1Ó"íÓ%IÓ(›Ó,:Ô>ÎÓ§Ó∏Ó!ÓZÓ!Ó$Ó)\Ó-Ó/¬Ó4gÓ7†Ó;;Ó>tÔ=DÓ‚ Ô:»Ó§Ó®Ó!PÓ#ƒÓ)%Ó+wÓ-ÎÓ2ˇÓ8–Ó:‡Ó=TÔ9!Ó‚ Ô6•Ó§ÓxÓyÓ Ó#:Ó'ñÓ*ÎÓ0|Ó5´Ó7’Ó9»Ó<bÔ4˛Ó‚Ó¨ÓrÓHÓ∂Ó$œ�Ó&j�Ó'ÆÓ*hÓ.˝Ó2Ó3ŸÓ7Ó9ΩÓ<öÔ3VÓ‚Ó Ó ÓƒÓ!ÜÓ'›Ó+]Ó.—Ó1Ó4ªÓ6vÓ;ÒÓ>Ó@Ù�Ô1ØÓ‚ ÓÓÓßÓ"!Ó$�Ó'*Ó(«Ó+ Ó,XÓ.¶Ó4ùÓ7Ó<^Ó>'Ô0Ó‚ÓπÓzÓ"ÓïÓ-Ó .Ó#ˆÓ&¿Ó*Ó,ŸÓ0Ó5íÓ7=Ó9ØÓ=?Ô.`Ó‚ÓôÓPÓøÓkÓ$Ó!≠Ó% Ó'Ó,2Ó.fiÓ1^ Ô+ÂÓ§ÓÍÓfiÓJÓ# Ó(“Ó*çÓ,äÓ/ÑÓ4YÓ7Ó;Ó=ÇÔ*=Ó‚ÓWÓÓ˛ÓwÓ.Ó!◊Ó#YÓ%∏Ó+]Ó,»Ó/i�Ó0ìÓ6Ó8∏Ó;CÓ=4Ó@oÔ(ñÓ‚ÓÃÓ3ÓflÓ˘Ó®Ô&Ó§ Ó’ÓóÓˆÓ"¿Ó%ÆÔ#üÓ§ÓñÓ Ó"Ó#≈Ó&%Ó*ÓÓ-‹Ô!#Ó§Ó&Ó<Ó …Ó%¿Ó+ìÓ-o�Ó.«Ó1‚Ó70Ó:Ó;§Ó?[Ó@Ù�Ô|Ó‚ Ó”ÓkÓ9Ó»Ó!Ó"äÔ�Ó§ÓÌÓÆÓÁÓ"ãÓ( Ó)í�Ó*ïÓ-\Ó2VÓ4ËÓ7b�Ó8fÓ;- ÔYÓ‚sÔ∫Ó‚Ó qÔkÓ§ÓõÓFÓÙÓÓ!€Ó#®Ó)@Ó,Ó0ÈÓ3hÓ8Ó<æÓ>UÓ@È�Ô√Ó‚ÓZÓ2ÓßÓDÓØ�Ó ŸÓ&’Ó*Ó+øÓ0µÓ3œÓ6/Ó:¿Ó?FÔÓ‚ÓåÓMÓµÓÍÓ^ Ó$†Ó)ùÓ*¸Ó,pÓ/µÓ1lÓ6'Ó8èÓ?FÔuÓ‚Ó∞ÓÓΩÓπÓÓ#™Ó'ŸÓ.9Ó1Ó3dÓ5ŒÓ79ˇ�������i��������TVm$Ã����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum9HBOperationThehistorybufferisa256wordRAM.Eachtimetheclockticks,themicrocodePCand8extrabitsarewrittenintoawordoftheRAM,andthepointerintotheRAMisadvanced.WhenthePCmatchesthespecifiedTarget,nmorewordsarewritten,andthentheRAMisfrozen.Ifnisbig,thebufferwillcontainmostlydataforeventsafterthetrigger.Ifnissmall,thebufferwillcontaindataforeventsbeforethetriggerpoint.Thinkofthehistorybufferasahorizontalstripof256cellswithtimegoingfromlefttoright.Thetriggerpointmustbelocatedsomewherewithinthestrip.Thesoftwaredoesalltheworkneededtocorrectforthewraparoundofthebufferpointer.OffsetisaparameterslotintheHBWindowthatcontrolsthedistancefromtheleftedgeofthebuffertothetriggerpoint.IfOffsetissmall,yougetmostlyeventsafterthetriggerpoint.Whenthehistorybufferfinishescollectingasampleofdata,Burdockwillautomaticallyprintouttheinformation.Since256samplesisusuallywaymorethandesired,theHBWindowcontains2moreparameterstocontroltheprintout.Beforeisthenumberofwordstotheleftofthetriggertobeprinted.Afteristhenumberofwordstotherightofthetriggerpointtobeprinted.Warning:Before,Offset,andAfteraredecimalnumbers.HBPrintoutThehistorybufferprintoutisseveralcolumnsforeachsample.Thefirstcolumnisthedecimaloffsetofthislinefromthefrontofthebuffer.Itwillbeprecededbya*ifthisisthetriggerpoint.ThenextcolumnisthePCinhex.Thenexttwocolumnsarethe8extrabitsinbinaryandhex.Lookattheprintstoseethedefaultsetupfortheextrabits.Thenexttwocolumnsassumethestandardsetupfortheextrabits.Itwillshowa"D"isDoItison,andc1,c2,orc3dependinguponthecycle.ThelastcolumnisthesymboliclocationincontrolstorecorrespondingthethePC.Ifthecyclenumberofthatinstructiondoesn'tmatchwhat'sobservedintheextrabits,aconspiciouswarningwillalsobeprinted.HBClocksThereare4possibleclocksthatcanbeusedtowritedataintothehistorybufferClockwillshoweverymicroinstruction.Thisisnormallythedesiredcase.ARC(AlwaysRunningClock)willalsoshowwaitstates.Thereisatleastonewitheverymicroinstruction,butmemoryoperationsnormallyincludeseveralmore.Cycle1willshowthefirstmicroinstructionofeachclick.(Actually,ittriggersduringc3sincethat'swhenNIAispointingtoac1instruction.)Thisjustreducestheamountofdatathatgetsstoredbyafactorof3.Almostalways,youcanguesswhatthemissinginstructionswere.IBDispwillshowthefirstinstructionofeachnewMesabytecode.Exceptfor��sÔfÂÓ ‡Ó)‡ vÔfÂÓE…�uÔ_,Ó‚ÓÉqÔ[›Ó§ÓfÓ·Ó˘ÓO�ÓbÓ!‚Ó%TÓ)ÅÓ,›Ó/ÌÓ26Ó5¥Ó9&Ó;pÔZ6Ó‚ÓCÓ�ÓJÓ ÓyÓ⁄Ó"öÓ%Ä�Ó&∑Ó*MÓ,Ó.ÄÓ2—Ó5ñÓ8Ó<ŸÓ?æÔXéÓ‚ÓÁÓmÓÛÓ&Ó!üÓ$ Ó)uÓ+ÔÓ1≈Ó6ë�Ó7ˆÓ;£Ó? ÔVÁÓ‚ÓÂÓïÓ≥ÓÓÔÓ!SÓ%ÊÓ'`�Ó(§Ó*Ó,∑Ó/Ó36Ó5ŸÓ:±Ó?ÔU@Ó‚ÓMÓ¥ÓÓ™Ó îÓ"C�Ó#ºÓ%UÓ)yÓ,Ó0bÓ3;Ó8GÓ;zÓ=ÂÔSòÓ‚Ó1ÓëÓˆÔQÓ§ÓŸÓ∞Ó.Ó›Ó#*Ó$ˆ�Ó&= Ó,›Ó0 Ó1˜Ó4´Ó7ÿÓ;Ó>TÔOvÓ‚Ó>Ó©ÓMÓÎÓπÓ!Ó$®Ó(Ó)ÎÓ.üÓ5ªÓ9ıÓ<JpÓ?ΩÔOv�ÔOvÓ@vÔMœÓ‚Ó^ÓÓ≠ÓÆÓìÓ ÇÓ!ıÓ%∏Ó'ûÓ)û Ó/›Ó1XÓ3YÓ6ÃqÔMœÓ;"Ó?gÓ@Ù�ÔL'Ó‚ÓwÓ!Ó‚ÓUÓÙÓ$ñÓ'wÓ,¬Ó/4Ó4ñÓ8Ó:ÉÓ=Ó@eÔJÄÓ‚ÓcÓ¥ÓÑÓÓãÓ"§Ó$GÓ(åÓ*Ó.1Ó1 Ó3uÓ8Ó<aÓ?æÔHŸÓ‚ÓGÔF]Ó§ÓÓ•Ó|Ó!ÔÓ'4 Ó-£�Ó/Ó3˛Ó5¸Ó9ûÓ?rÔD∂Ó‚ÓVÓ∞ÓÓ&ÚÓ*®Ó-?Ó2kÓ3ÿÓ8ãÓ;dÓ>¯ÔCÓ‚Ó˙ÓPÓ“ÓWÓ#±�Ó$‹Ó(f Ó/cÓ1Ó5±Ó8Ó=ÆÔAgÓ‚ÓOÓ±ÓflÓôÓ®ÓXÓ!πÓ$0Ó%ÎÓ(LÓ,≥Ó.cÓ0UÓ5ÉÓ9#Ó:êÓ<ÒÔ?¿Ó‚ÓõÓ®ÓVÓ∂ÓÓ¿Ó Ó$ÖÓ($Ó)“Ó+√Ô=EÓ§ÓÃÓîÓ!Ó#«Ó'eÓ)πÓ.⁄uÔ9ˆÓ‚ÓÉqÔ6ßÓ§Ó|Ó Ó<Ó"ïÓ$Ó(ëÓ.Ó0HÓ3yÔ4,Ó§ÓÓ[ÓSÓ√Ó &Ó%JÓ)Ó*’Ó-zÓ04Ó3üÓ6Ó9xÓ;5Ó=òÔ2ÖÓ‚ÓYÓÓıÓfiÓ⁄�Ó�Ó8Ó ôÓ#:Ó$¶Ó'Ó+kÔ0 Ó§Ó|ÓãÓÄÓÏÓ KÓ"üÓ$MÔ-éÓ§ÓpÓtÓÓÅÓ!…Ó$�Ó%EÓ(¨Ó+BÓ,‰Ó1'Ó3”Ó6øÓ:QÓ;fiÓ>1Ô+ÁÓ‚ÓêÓ‰ÓCÓÏÓñÓ‘Ó"3Ó%¶Ô)lÓ§ÓoÓqÓÓ}Ó$9Ó&ãÓ,Ó/∑Ó1ËÓ4:Ó7†Ó:åÓ;˜Ó>ïÔ'ƒÓ‚�ÓÓÓ|ÓŒÓ9ÓòÓOÓ wÓ"ûÓ$bÓ&2Ó,˜Ó0ãÓ2ÍÔ%IÓ§Ó{Ó˘ÓÌÓXÓ∂Ó%{Ó*±Ó,^Ó1Ó4jÓ=`Ó?æÔ#¢Ó‚ÓÆÓRÓ”ÓgÓµÓ êÓ# Ó*|Ó/[Ó3°Ó7¸Ó=ÔÓ?æÔ!˙Ó‚ÓUÓN�Óx ÓÃÓ#Ó%ƒÓ(êÓ*ÅuÔ¨Ó‚ÓÉqÔ]Ó§ÓìÓ‘�ÓıÓ%Ó"*Ó$ÊÓ'^Ó)<Ó,eÓ.Ó1lÓ4^Ó7$Ó9pÓ=ÔÔ·Ó§ÓöÓEÓŒÓÇÓ*Ó-6Ó.¢Ó4rÓ6“Ó;õÔfÓ§ÓCÓêÓ WÓ$”Ó'ãÓ*cÓ-¯Ó0˝Ó5Ó9$Ó:úÓ<AÓ?rÔøÓ‚Ó˝Ó±Ó LÓ"ÕÓ(: Ó.ËÓ4∏Ó9òÓ>(ÔDÓ§ÓGÓÓµÓ1Ó"&Ó,ÜÓ.[Ó1™Ó5Z Ó;¡Ó=5ÔúÓ‚ÓeÓGÓÃÓâÓ PÓ#ñÓ%Ó*†Ó,a�Ó-ùÓ/Ó7=Ó:iÓ=ÔıÓ‚ÓJÓ^Ó Ó.ÓÓ €Ó%Ó'�Ó(>Ó,3Ó-ıÓ/äÓ4[Ó9 Ó;‡Ó>tÔ NÓ‚Ó?ÓüÓíÓ ÚÔ ”Ó§ÓjÓÓ∞ÓÓ!˙ Ó(flÓ*°Ó-€Ó0“Ó4ÖÓ7ûÓ;EÓ?·�������Ë��������TVm$D����������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum10unusualcases,thisisnotveryinteresting.HBCommandsArm!evaluatesthestringinTargetasaCPsymbol,andsetsuptheHBmatchertotriggeronthataddress.Display!displaysthedatainthehistorybufferusingthecurrentvaluesofBeforeandAfter.ManualTrigger!kicksthehardwaresothatitactsliketheaddressmatcherhasseenthetarget.Again,Burdockwillautomaticallydisplaythings.Thisishandyifyoudon'tknowwhatyourmicrocodeisdoing.YouneedtoArmtheHBbeforeManualTriggerwilldoanything.Ifyoucan'tthinkofanysymboltotypeintoTargetsoyoucanArmthings,use.CR0.Fineprint:IfyouareclockingonIBDisp,andyougetaCPBreakshortlyaftertriggeringthehistorybuffer,itmayappearasthoughithasn'tyettriggered.That'sbecausetherehaven'tyetbeenenoughIBDispstofinishfillingupthebuffer.ManualTriggerwillautomaticallyswitchtoARCclockingforlongenoughwhennecessarytoavoidthisproblem.LoadArmAndGo!doesaLoadRawofthefilespecifiedinFile,ArmsthehistorybufferatthelocationspecifiedatTarget,andthenContinuestheCP.ThisisaconvenientwaytostartalowlevelCPdiagnostic.BB!(BootButton)flapsINIT/ontheMultibusbackplane.ThereareseveralcommandsontheHistoryBufferWindowthataremostlyleftoverfromhardwaredebugging.Stop!stopstheCP.Step!letstheCPexecuteaninstruction.StepFast!goesintoaloopsinglesteppingtheCP.Thisishandyforscopingthestop/gooperations.StepFastFromCSA!islikeStepFast,buttheUseCSAbitislefton,sotheDebuggerboardprovidesthesamenextinstructionindependentofwherethemicrocodetriestojump.Go!undoestheeffectsofStop.UseROMisabooleanusedtoswitchthedebuggerboardintoworkingwiththeControlStoreROMontheCPboard.ThiscanbeusedtoComparemicrocodeonthediskwiththecontentsofPROMs.UseROMdoesn'tdoanythinguntilthenexttimeyouinteractwiththedebuggerboard,sopokeBB!orsomethingtomakesureitgetsnoticed.CommandFilesBurdockhasacomplicatedcommandfilefacility.Fortunately,reasonableproblemsareeasy.Theeasiestwaytogetacommandfilegoingistostartwithanexistingone,andmakewhateverchangesarenecessary.CommandfilescanberunfromtheRun!commandintheCPwindoworthe��sÔfÂÓ }Ó)} vÔfÂÓEqÔ_/Ó‚ÓÓ⁄Ó{ÓÁÓ\Ó!kuÔ[‡Ó‚ÓÉqÔXêÓ§ÓAÓÓ\Ó!Ó"≥Ó&˜Ó(è�Ó)¢Ó+flÓ0ÍÓ3ãÓ6Ó8Ó:[Ó<–ÔVÈÓ‚ÓêÓıÓ¸Ó ÔTmÓ§ÓdÓ◊ÓsÓ"¥Ó$üÓ':Ó,Ó0sÓ4YÓ6ıÓ;˚Ó@eÔR∆Ó‚ÓRÓ ÔPKÓ§ ÓìÓÓ!~Ó'éÓ)YÓ,.Ó-ãÓ0JÓ2¸Ó5cÓ:TÓ?©ÔN£Ó‚ÓÓëÓ‰ÓcÓ# Ó%”Ó.aÓ3.Ó7πÓ:ÌÓ<tÓ@ΩÔL¸Ó‚Ó∏ÓlÓKÓ«Ó "Ó&Ó({Ó,“Ó0Ó3}Ó5KÓ8•Ó;$Ó=œÔKUÓ‚Ó<Ó“Ó√Ó"∂Ó$#Ó&ƒÓ*Ó-ãÓ//Ó1∫Ó6mÓ8Ó;Ó=ƒÔI≠Ó‚Ó¶Ó]ÓËÓ#ÓìÓ Ó"ÎpÔG2Ó§ÓYÓîÓÍÓ6Ó3Ó!´Ó#jÓ'õÓ)ËÓ,4Ó.)�Ó/7Ó14Ó4Ó8GÓ:˛ Ó@ÔEäÓ‚Ó©ÓhÓöÓ#Ó‚ÓZÓ#=Ó$nÓ'√Ó)∑ Ó.ƒÓ24Ó6nÓ9bÓ=_Ó?SÔC„Ó‚ÓÕÓˇÓTÓbÓìÓ 9Ó"Ó%∑Ó-@Ó/`Ó6Ó9}Ó:“Ó=´ÔB<Ó‚Ó≠Ó(ÓÓ ÓÍÓ BÓ#AÓ%\qÔ?¿Ó§Ó…Ó‡�Ó ÒÓ'Ó(πÓ*ˇÓ-PÓ2ÛÓ4âÓ7üÓ;FÓ=åÔ>Ó‚ÓBÓÓùÓÓ"ÚÓ$ºÓ)†Ó,àÓ/‡Ó6ûÓ9/Ó<Ó?WÓ@Ù�Ô<rÓ‚ ÓfiÓµÓdÓt�ÓùÓ!>Ó$ÑÓ&◊ Ô9ˆÓ§ÓpÓ;ÓFÓ òÓ$flÓ&ÂÓ)EÓ/- Ô7{Ó§ÓöÓ„ÓhÓ#BÓ%=Ó'íÓ,qÓ0µÓ69Ó8¸Ó;DÓ?©Ô5”Ó‚Ó¸ÓcÓl Ô3XÓ§ÓYÓ◊Ó7Ô0‹Ó§ÓCÓ√Ó#ÓvÓ!lÓ#\Ô.aÓ§Ó∑ÓƒÓè�Ó¨Ó!ƒÓ%£Ó+Ó-nÓ0Ó3Ó4yÓ8õÓ:ÀÓ?æÔ,πÓ‚Ó¯ Ô*>Ó§Ó%Ó‘Ó"√Ó)Ó+ Ó.nÓ4KÓ6¨Ó8\Ó;Ó=∑Ó?æÔ(ñÓ‚ÓõÓÍÓ—Ó"àÓ&]Ó)ƒ Ó0˜ Ó9>Ó;OÓ?æÔ&ÔÓ‚ÓêÓîÓCÔ$tÓ§ÓÜÓDÓ§ÓÙÓ!¨Ô!¯Ó§Ó‘Ó1�ÓLÓtÓ"°Ó$AÓ(lÓ*ΩÓ0∏Ó4†Ó7jÓ<≤Ó?æÔ QÓ‚Ó˛Ó£Ó†Ó¨Ó Ó"kÓ&¿Ó)·Ó,rÓ.iÓ1´Ó3`Ó9cÓ@Ô©Ó‚ÓFÓ9ÓYÓΩÓ1Ó ÓÓ&óÓ,€Ó1ûÓ3©Ó9^Ó<™Ó?ÔÓ‚ÓÓπÓ¨Ó≈Ó"Ó%(Ó)uÓ+6Ó.õÓ1eÓ3'Ó9«Ó;sÓ?%Ô[Ó‚Ó8ÓsÔΩÓ‚Ó¢qÔmÓ§ÓûÓ�Ó Ó$,Ó*˘Ó-ÕÓ3Ó;O Ô∆Ó‚ÓÙÓQÓ∂ÓòÓ!ÒÓ$“Ó&äÓ(›�Ó*Ó0{Ó2ÓÓ6¬Ó87Ó9ÔÓ= Ó@-ÔÓ‚ÓÏÓÓ®Ó\Ó#9Ó(eÓ*∏ Ô£Ó§ÓmÓ`ÓÓÊÓ"ÇÓ%ÓÓ(SÓ+ÌÓ2SÓ4Ó6kÓ8ƒÓ=ıÓ?æ�������§��������TVm$Ä����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum11IOPwindow,orfromtheBurdock.~commandintheExec.Thedefaultextensionforcommandfilesis.burdock.Anyerrorinacommandfileterminatesexecutionimmediately.Theerrormessageincludesthepositionwithinthecommandfileoftheoffendingstatement.CommentsTextenclosedwithmatching|sisignored.FunctionsMostofthecommandsavailableintheCPorIOPwindowsarealsoavailableasfunctionswithinBurdockcommandfiles.TheyuseMesaprocedurecallsyntax.Ifthenameswouldclash,thenamesfortheIOPcommandsaresuffixedwith"IOP".Forexample,"Boot[];"willboottheCP,"BootIOP[];"willboottheIOP,and"Break[Foo];"willsetaCPbreakpointatlocationFoo.Argumentstocommandsshouldbequotediftheymightconfusethescanner.Commandsthatstartexecutiontakeanadditionalparameter:thenumberofmillisecondstowaitfortheCPorIOPtostoprunning.(Thenormalreasonforstoppingisabreakpoint.)Anomittedparametermeansdon'twaitatall.(Ofcourse,youcan'tdomuchwhileit'sstillrunning.)Avalueof0meanswaitforever.Remember,numbersusedtospecifywaittimesareinterpretedashex.HereisachecklistofCPcommands:Boot[];Break[where];ClearCPPanel[];Compare[filename];Continue[(waittime)];Load[filename];LoadBoot[filename];LoadGerm[filename];LoadMore[filename];LoadNoSymbols[filename];LoadReal[filename];Reset[];SetBank[bankNumber];Start[filename(,waittime)];Stop[];Unbreak[where];HereisachecklistofIOPcommands:BootIOP[];BreakIOP[where];ClearIOPPanel[];ContinueIOP[(waittime)];LoadIOP[filename];.LoadIOPModuleSymbols[filename];LoadIOPNoSymbols[filename];LoadIOPSymbols[filename];StartIOP[where(,waittime)];��sÔfÂÓ }Ó)} vÔfÂÓEqÔ_/Ó‚Ó–ÓUÓÓÇÓ‚Ó%“Ó,4Ó-„Ó0CÓ4}Ó7VÓ;ˇÔ]àÓ‚ÓÓÄÓnÓ⁄Ô[Ó§ÓÙÓ¥ÓØ�Ó&Ó"’Ó%å Ó,áÓ3 Ó;ÜÓ>¨ÔYeÓ‚Ó9ÓùÓ˝Ó!>Ó%ÉÓ'‚Ó.CÓ0≠Ó2fÓ4≈Ó; uÔVÓ‚qÔR∆Ó§Ó‘ÓnÓâÓ#áÓ$ËÓ&TuÔOwÓ‚qÔL(Ó§Ó8Ó˝ÓhÓ ZÓ&!Ó'€Ó*FÓ,¶Ó.uÓ1oÓ7+Ó9ãÓ<cÔJÅÓ‚Ó¢Ó≤Ó Ó ™Ó'Ó*tÓ.Ó0ïÓ4QÓ:ÂÓ=ÇÔHŸÓ‚ÓLÓîÓ¿Ó◊ÓäÓ “Ó$˛Ó'#Ó)kÓ,AÓ3Ó5JÓ:uÓ=xÔG2Ó‚Ó‘ÓÏÓ%Ó!Ó$èÓ'5Ó*(Ó2…Ó5ºÓ93Ó;⁄Ó?fÔEãÓ‚Ó◊ÓÇÓü�Ó…Ó Ó' Ó(•Ó-‹ÔCÓ§ÓµÓcÓ!HÓ%ƒÓ'µÓ,^Ó-æÓ0ŒÓ4∆Ó9—Ó<0Ô@îÓ§ÓÓÓ<Ó%òÓ(∑Ó*Œ Ó1k Ó8çÓ;Ó@eÔ>ÏÓ‚ÓÿÓ±Ó‘Ó;Ó ƒÓ#BÓ%/Ó(GÓ*Ó-CÓ2˚Ó6vÓ;]Ó?·Ô=EÓ‚ÓsÓ‘�ÓÛÓ´Ó ÙÓ&�Ó,xÓ0±Ó4;Ó7*Ó8πÓ:ˆÓ=vÔ;ûÓ‚ÓËÓâÓfiÓÓ Ó"âÓ%yÓ+œ�Ó-´Ó1£Ó3´�Ó5/Ó9¡Ó= Ô9ˆÓ‚ÓWÓÓCÓ ÚÓ%éÓ(àÓ,1Ó.Ö Ó5óÓ7EÔ7{Ó§ÓÓÉ�Ó¨ÓGÓ�Ó!TtÔ5”Ó◊Ô4+Ó◊xÓ¨Ô4+�Ô4+ÓîtÓ Ô4+�Ô4+Ón�Ô2ÑÓ◊Ô0‹Ó◊xÓ≥Ô0‹�Ô0‹Ó"tÓ£Ô0‹�Ô0‹Ó�Ô/4Ó◊ xÓ8Ô/4�Ô/4Ó tÓ(Ô/4�Ô/4Ó°Ô-åÓ◊xÓJÔ-å�Ô-åÓ∏tÓ9Ô-å�Ô-åÓú�Ô+ÂÓ◊xÓÔ+Â�Ô+ÂÓÖtÓÔ+Â�Ô+ÂÓi�Ô*=Ó◊xÓ«Ô*=�Ô*=Ó6tÓ∂Ô*=�Ô*=Ó �Ô(ïÓ◊xÓÑÔ(ï�Ô(ïÓÛtÓtÔ(ï�Ô(ïÓ◊�Ô&ÌÓ◊ xÓ2Ô&Ì�Ô&ÌÓ°tÓ#"Ô&Ì�Ô&ÌÓ#Ö�Ô%EÓ◊xÓ�Ô%E�Ô%EÓotÓÔ%E�Ô%EÓS�Ô#ûÓ◊Ô!ˆÓ◊xÓ$Ô!ˆ�Ô!ˆÓ’tÓ ¿Ô!ˆ�Ô!ˆÓ!$�Ô NÓ◊xÓÔ N�Ô NÓftÓ"nÔ N�Ô NÓ"ÁÔ¶Ó◊ÔˇÓ◊qÔÉÓ§ÓÓÉ�Ó¨ÓGÓ�Ó!ÓtÔ€Ó◊ Ô4Ó◊xÓÔ4�Ô4Ó˝tÓtÔ4�Ô4Ó◊�ÔåÓ◊Ô‰Ó◊xÓ¢Ô‰�Ô‰ÓâtÓ!ëÔ‰�Ô‰Ó" Ô<Ó◊xÓ≥Ô<�Ô<Ó"tÓ£Ô<�Ô<ÓÔïÓ◊xÓ#eÔï�ÔïÓ#‘tÓ(UÔï�ÔïÓ(∏�ÔÌÓ◊xÓ úÔÌ�ÔÌÓ! tÓ%ãÔÌ�ÔÌÓ%Ó�Ô EÓ◊xÓæÔ E�Ô EÓ,tÓ#≠Ô E�Ô EÓ$�ÔùÓ◊xÓrÔù�ÔùÓYtÓ–Ôù�ÔùÓJ�xÓ&Ôù�ÔùÓ tÓ#Ôù�ÔùÓ#èˇ�������‚��������TVm$G��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum12StopIOP[];UnbreakIOP[where];HereisachecklistofHBcommands:Arm[where];PanelSetupCommandfilescanalsoinitializetilesinthePanelareas."CP[3,0]!Foo"stores"Foo"intotheleftsideofthetileinthethirdrowofthefirstcolumnintheCPPanel."CP[3,0]!Foo_13"setsitupandthenstores13(hex)intoFoo."IOP[..]"isusedtosetupIOPtiles.Tilescanbenamed(forusewithconditionalsandWriteLoc)bypreceedingtheCPwithtileName=.It'sagoodideatousethenameoftheregisterinthetileasthenameofthetile.Conditionals,Branching,HackingSetMP[tileName]putstherightsideofatileintotheMP.(Thisnumberwon'tbeinhex.)Tag:definestagatthecurrentpositioninthecommandfile.GOTO[tag]resumesexecutionofthecommandfileatthepositioncorrespondingtotag.Forwardandbackwardjumpsarebothlegal.IFoperandrelationoperand{...};.EachoperandiseitheratileNameorahexconstant.Therelationsinclude>,>=,<,<=,=,and#.Conditionalscanbenested.LogFilesClose[];closesthecurrentlogfileifthereisoneopen.OpenToAppend[filename];opensalogfileinappendmode.OpenToWrite[filename];opensalogfileinwritemode.Write[quotedstring];writesitsargumentintothelogfile.(Write[]islegal,anddoesn'tdoanything.)WriteLine[quotedstring];writesitsargumentintothelogfile,andthenwritesaCR.WriteLine[]justwritesaCR.WriteLoc[tileName(,width)];writestherightsideofthedesignatedtileintothelogfileinhex.Ifwidthisspecified,leadingblankswillbeaddedtomakethestringwrittenatleastthatwide.WriteTime[];writesthecurrenttimeintothelogfile.Simplenontrivialexample|Mumble.burdock,HGM,March22,19852:18:56amPST|Boot[];Load[MemTest];errorCount=CP[00,0]!errorCount_0;passCount=CP[01,0]!passCount_0;��sÔfÂÓ }Ó)} vÔfÂÓEtÔ_,Ó◊ Ô]ÑÓ◊ xÓ€Ô]Ñ�Ô]ÑÓ¬tÓ9Ô]Ñ�Ô]ÑÓú�qÔ[ Ó§ÓÓÉ�Ó¨ÓGÓ�Ó!åtÔYaÓ◊xÓÒÔYa�ÔYaÓÿtÓOÔYa�ÔYaÓ≤�uÔVÓ‚Ó¬qÔR√Ó§ÓeÓPÓŸÓ £ Ó&/Ó)Ó*ªÓ-Ó0‡Ó4≥Ó:≠Ó>=ÔQÓ‚Ó:Ó(ÓùÓ'ÓÓ‚Ó"WÓ$ÀÓ&éÓ)Ó,ÅÓ/XÓ1&Ó3õÓ6àÓ;íÓ=VÓ? ÔOtÓ‚Ó˝ÓÛÓœ�ÓUÓ‰Ó"Ó#ŒÓ%⁄Ó(ãÓ+™Ó/ÑÓ1cÓ4Ó7¬Ó:ıÓ@≤ÔMÕÓ‚ÓÓÃÓwÓeÔKQÓ§ÓıÓvÓ\ÓÿÓ ÖÓ"ÔÓ&�Ó-°Ó0NÓ6‹Ó8Õ Ó?æÔI™Ó‚ÓExÓpÔI™�ÔI™Ó‡qÓÔI™�ÔI™ÓÓf�Ó†Ó#"Ó&+Ó'ÍÓ*oÓ,fiÓ0≠Ó2vÓ4ÊÓ9‘Ó;íÓ>Ó@pÔHÓ‚ÓAÓÓ∫ÓuÔD≥Ó‚Ó1 ÓqÔAdÓ§xÓ ÔAd�ÔAdÓyqÓOÔAd�ÔAdÓ3Ó5Ó!ëÓ$flÓ'≥Ó)i�Ó*èÓ,ÍÓ/æÓ2Ó5öÓ9*Ó>SÔ?ΩÓ‚Ó”ÓÅxÔ=AÓ§qÔ=AÓÈÓßÓÓàÓËÓ$±Ó)ÛÓ+°Ó.Ó4bpÔ:∆Ó§qÓÔ:∆�xÔ:∆ÓgqÓ8Ô:∆�Ô:∆ÓÓNÓ#tÓ%Ó'nÓ-¿Ó0Ó1§Ó3ÙÓ9'Ô9Ó‚ÓêÓ1Ó ÓÇÓ!∑Ó%⁄Ó(.Ó+jpÔ6£Ó§xÔ6£ÓaÓõÓ´qÔ6£Ó"ÂÓ&∏Ó*BÓ/ºÓ1>Ó5A�xÓ6ÅÔ6£�Ô6£Ó6ÒqÔ6£Ó<bÓ><�Ó?}Ô4¸Ó‚ÓìÓVÓ–Ó!öÓ#Ó%ÍÓ'bÓ*:Ó,bÓ/Ó1,Ó9%Ó;õÓ=vuÔ1¨Ó‚ÓπqÔ.]Ó§Ó≠ÓôÓ¯Ó!¬Ó$Ó&~Ó'flÓ+iÓ,‘Ó/ÄÔ+‚Ó§xÓπÔ+‚�Ô+‚Ó(qÓ ©Ô+‚�Ô+‚Ó!�Ó" Ó&�Ó'*Ó)}Ó+ÁÓ-ïÓ2ÄÔ)fÓ§xÓLÔ)f�Ô)fÓªqÓ<Ô)f�Ô)fÓü�Ó ùÓ$î�Ó%æÓ(Ó*zÓ,(Ó/¶Ô&ÎÓ§xÓcÔ&Î�Ô&ÎÓÓÀqÓÔ&Î�Ô&ÎÓy�ÓÅÓ"çÓ$rÓ*ßÓ-äÓ/ÙÓ2QÓ5Ó:HÓ;æÓ?fÔ%DÓ‚Ó†Ó¶ Ô"»Ó§ xÓÔ"»�Ô"»Ó ÓoqÓ∫Ô"»�Ô"»Ó �Ó!Ó%Ó&flÓ-Ó/—Ó2(Ó4sÓ7-Ó9‹Ó<˙Ó@Ù�Ô!!Ó‚Óƒ Ó"Ó√Ó≈�Ó ÔÔ•Ó§xÓ°Ô•�Ô•ÓqÓÁÔ•�Ô•Ó`�xÓ9Ô•�Ô•Ó qÓ!aÔ•�Ô•Ó!⁄Ó#7Ó'5Ó)êÓ,fiÓ/≥Ó1hÓ3√ Ó:èÓ<ÍÓ?æÔ˛Ó‚Ó%Ó~ÓÓxÓÍÓªÓ Ó%Ó)fiÓ.'Ó0¬Ó2£Ó6∑Ó8UÓ;˘Ó>HÔWÓ‚ÓïÓ-ÓSÓ!Ô€Ó§ÓfiÓ‡Ó ?Ó% Ó(.Ó+Ó-fÓ/πuÔåÓ‚Ór ÓötÔ=ÓÛ�Ó–ÓÓ!ÄÓ%ÊÓ(#Ó+iÓ0RÓ2¶Ó5™�ÔïÓÛÔÌÓÛ Ô EÓÛ Ô EÓÓzÓ ã Ó'≥�Ó)@ÔûÓÛ ÔûÓÓzÓ ãÓ':�Ó(«�������&��������TVm$z������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum13reason=CP[02,0]!reason_0;address=CP[03,0]!$address_0;expected=CP[04,0]!expected_0;found=CP[05,0]!found_0;Break[Error];|reason=1|Break[AnotherGoodPass];|reason=2|Loop:Continue[0]:SetMP[passCount]:IFreason=2{GOTO[Loop];}:OpenToAppend["Mumble.log"];WriteTime[];WriteLoc[errorCount,4];WriteLoc[passCount,5];WriteLoc[address,8];WriteLoc[expected,5];WriteLoc[found,5];WriteLine[];Close[];IFerrorCount<100{GOTO[Loop];}:Wantmoredetails?Lookatthecode.It'sCommandFiler.mesa.OddsandEndsBecauseitalreadycontainedrelatedcode,theBurdocksubdirectoryand/ordffilealsoincludeseveralotherhandyprograms.HardwarecheckoutTestUmbilicalisaprogramforcheckingoutDLion-DLionBurdockBoxes.IassumeitworkswithSongboardstoo,butI'venevertriedit.TestUmbilicalisprettysimpleminded,butIhaveforgottenallthedetails.Itprobablyincludesseveralscopeloops.Lookatthesourcecodeifyouhaveanyquestions.TestDebuggerBoardandTestHistoryBufferareusedtodebugtheDicentradebuggerboard.SeetheDicentraManualformoreinformation.CSBankTesterisusedtotestextrabanksofCPControlStore.ItispackagedwithBurdockasaninactivetoolbecausetheDLionusestheCPKerneltosetthebankregister.CPKernelTesterisleftoverfromwhenIwastryingtounderstandhowtheCPKernelworked.Itmightbehandyifyouarechasingobscureproblems.IttooispackagedwithBurdockasaninactivetool.MakingDicentraPROMsMakeControlStoreMBandMakeGermMBareusedtomakeDicentraPROMs.��sÔfÂÓ }Ó)} vÔfÂÓEtÔ_,ÓÛÔ_,ÓÓzÓ ãÓ$Â�Ó&rÔ]ÑÓÛÔ]ÑÓÓzÓ ãÓ&&�Ó'≥Ô[‹ÓÛÔ[‹ÓÓzÓ ãÓ&H�Ó'’ÔZ5ÓÛÔZ5ÓÓzÓ ãÓ$ô�Ó&&ÔXçÓÛÔXçÓ"O�Ó#,Ó'Ü�Ó)k�Ó*ü�ÔVÂÓÛÔVÂÓ"O�Ó#,Ó'Ü�Ó)k�Ó*ü�ÔU=ÓÛÔSïÓÔQÌÓÔPEÓÓÙÓN�Ó3�Óh�Óú Ó&æÔNûÓÔLˆÓÔKNÓÓ ÅÔI¶ÓÓ ÔG˛ÓÓDÔFVÓÓÔDØÓÓgÔCÓÔA_ÓÔ?∑ÓÓÙ Ó�ÓPÓÊ�Ó! Ó*<uÔ<hÓ‚Ó¨Ó)qÔ9Ó§ÓAÓ⁄Ó9ÓÿÓ+sÔ2zÓ‚Ó-ÓTqÔ/+Ó§ÓÓÓMÓ(Ó#|Ó(Ó+æÓ.%Ó3ΩÓ;™Ó@YÔ-ÑÓ‚ÓKÓÓ˜ÓàÓ!'Ó%VuÔ*4Ó‚Ó7xÔ&ÂÓ§qÔ&ÂÓvÓ�ÓVÓ# Ó%lÓ+NÓ-Ë Ó6‚Ó<óÓA�Ô%>Ó‚ÓòÓ‹ÓÀÓ‘Ó?Ó#®Ó&XÓ(«Ó+kÓ/#Ó2XÓ3ÛÓ<¡Ó>Ô#ñÓ‚Ó-ÓwÓfi�ÓÕÓ˙Ó$”Ó&©Ó(ÔÓ-|Ó.⁄Ó4íÓ9‹Ó>SÔ!ÔÓ‚Ó„ÓÅÓÓyÓ»Ó"Ó#pÓ&'Ó)mÓ, xÔsÓ§qÔsÓ(xÓ!FÔs�ÔsÓ"-qÔsÓ,ÆÓ/hÓ3 Ó5Ó9≥Ó<xÔÃÓ‚ÓÎÓ:Ó–Ó0Ó#÷Ó(ÎÓ+)Ó.ºxÔQÓ§qÔQÓ÷ÓVÓßÓ!jÓ$ Ó'ëÓ+ùÓ-kÓ/”Ó4˝Ó9Ó:îÓ<Ô©Ó‚ÓÓ£Ó\ÓXÓ zÓ#RÓ(Ó*ÍÓ/eÓ2jÓ4‘Ó73Ó;‹Ó=ñÓ?æÔÓ‚ÓUxÔÜÓ§ qÔÜÓóÓÓ"-Ó%§Ó)i�Ó*ÇÓ->Ó1OÓ3 Ó:GÓ=[Ó? ÔflÓ‚ÓüÓˇÓñÓ≠Ó ΩÓ%Ó&ãÓ)aÓ+‘Ó0›Ó6Ó<íÓ>)Ó@≤Ô8Ó‚ÓÎÓÓïÓCÓ!4Ó&JuÔËÓ‚ÓÓ∞xÔôÓ§qÔôÓéxÓ"lÔô�ÔôÓ#¡qÔôÓ+˘Ó.sÓ1÷Ó3¨Ó7ápÓ=TÔô�ÔôÓ=¸qÓ@æÔô�ÔôÓAB��������^��������TVm$u������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inter-OfficeMemorandum14TheyregisterExeccommandswiththecorrespondingname.MesaDebuggingWhenbringingupthefirstmemberofanewfamilyofmachines,thereisatimewhenitmostlyruns,buttheEmulatororGermdoesn'tworkwellenoughtobeTeleDebugged.Atthisstage,youendupdoingalotofpointerchasingtofollowstacksandsuch.Machinesaregoodatthatsortofthing.I'mlazy.CPMesaisatoolthatisincludedwithBurdock.Normallyit'sinactive.Ithastwocommands.DispStackdisplaysthecurrentstackinHEX.Eachframeisaseparateline.ListProcdisplaysthecurrentlistofprocesses.CPSymbolsCPSymbolsDebugisanothernormallyinactivetoolthatcomespackagedwithBurdock.It'sleftoverfromwhenIwasdebuggingthesymboltablemachinery.Itwilldumpthesymboltablesintoalogfile.Ifyouaretryingtounderstandalltheusesforalloftheregisters,thismightbehandy.(UsetheWhatcommandifyouarejustinterestedinafewregisters.)���sÔfÂÓ }Ó)} vÔfÂÓEqÔ_/Ó‚ÓkÓIÓ•Ó!ãÓ$•Ó'Ó/¸uÔ[‡Ó‚Ó¨qÔXíÓ§Ó›ÓÉÓ∑Ó 9Ó#2Ó(¬Ó*ù�Ó+ÈÓ.¯Ó3^Ó59Ó;ªÓ?gÓ@Ù�ÔVÍÓ‚ÓÓ’Ó8Ó¥Ó3Ó!¡Ó$-Ó*MÓ,Ó0+Ó4ˆÓ8Ó;yÓ@oÔUCÓ‚Ó»ÓOÓ@Ó◊Ó"óÓ%DÓ'ÒÓ)¯Ó-œ�Ó.ÓÓ0ıÓ2§Ó7bÓ<BÓ=ÊÔSúÓ‚ÓŸÓëÓÓNÓ!¢Ó%Ó&≠Ó){Ó,2Ó-ÎÓ1◊Ó4aÔQ!Ó§Ó0Ó∞�ÓÓӌӱÓ!0Ó&ÎÓ*Ó0Ó6UÓ8úÓ>Ó?©ÔOyÓ‚ÓtÓñÓˇÓ$Ó&`Ó+Ó.hpÓ/˚ÔOy�ÔOyÓ0‚qÓ2oÔOy�ÔOyÓ30Ó6âÓ:eÓ;∂�Ó<≈ÔM“Ó‚ÓÓ^ÓïÓÙÓ#æÓ%¸Ó'µ uÔJÉÓ‚ÓAxÔG5Ó§ qÔG5ÓÿÓcÓ#éÓ)~Ó.≥Ó1üÓ4çÓ8⁄Ó?ÔEçÓ‚ÓÂÓVÓ}Ó �Ó#—�Ó$ˆÓ'æÓ.îÓ1Ó5ıÓ9y Ó@¶ÔCÊÓ‚ÓòÓ¶ÓÓ‰Ó €Ó#æ�Ó$ÛÓ'QÓ*Ó+©Ó.kÓ0 Ó4÷Ó6ê Ó=√Ó?æÔB?Ó‚ÓÚÓFÓLÓÓí Ó dÓ#Ó'*Ó)1Ó-ŒÓ1+Ó3°Ó7xÓ=ÔÓ?gÔ@óÓ‚Ó5Ó◊ Ó"Ó–�Ó˙Óõ �������5��������TVm$ê������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ˇ TIMESROMAN����������˛ü����ˇGACHA����������������˛ü����ˇ HELVETICA������������˛ü����ˇ TIMESROMAN����������˛ü����ˇLAUREL���������������˛ü����ˇ TIMESROMAN����������˛Y����ˇLOGO�����������������¸¥����ˇ TIMESROMAN�����������˛ü�����ˇ TIMESROMAN�����������˛Ê����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ç�����S��� � �˚���� �o��� � ����)� ����3�����;� �˛���D� �G���M��≠���U��«���\��r���c��€���i��‘��m�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������j/�p��n���ûraR��ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ[]<>BurdockManual.tioga������������������������������������������������������������&Wednesday, March 27, 1985 11:35 pm PST�������������������������������������������������������������������������������������������������������������������������������������