;===============================================================è; pÌgËm VDUMP (fiÙ³me)è;è;€VDUMP‚ak‚Á (æambigäç)†amˆofƒny fiÙƒnÐdump¸tÁè;€fiÙ‚ tÁ c¦¼Ù…°phy½cal, 128-by‘ Écor×.è;è;€EacÀÉcorЯ ÕspÛyeП‚wo, 3-ݱ gÌups, wªÀtÁè;€ÉcorÐnumbeÈ® ÁxƒppŽÑД‚Á fiÏgÌup.è;è;€I°tÁ fiÏݱ‚Á Ó“…¸sÄw°® cÃËc‘Ï, wªhè;€c¦tÌØcÃËc‘Ï…°ÉveψviÑo.€TÁ†extw Ý±sè;€sÄw‚Á Ó“…°Áx, wªÀ‹cÀby‘'¸Áx Õgª¸Ý±Ðupè;€veÊically.è;€€*****************************************************è;€€* € TŸpÌgËm wŸ„Íg®ally pubÝsÁЮ *è;€€* €A€PROGRAMMER'S€NOTEBOOK€€€€€€€*è;€€* €€U•Ý• foÈCP/M-80 *è;€€* €€ by DaviÐE. CoÊi *è;€€* CopyÍg (C) R”°PubÝsÅng Compžy Inc. 1983 *è;€€*****************************************************è;===============================================================éMACLIB CPMEQU ;‡“nÓrÐeqã‘-³méMACLIB PROG ;…mpoÊžmacÌséPROLOG ;²er,‡Š up‡“ck, g ” Mnè;===============================================================è; TÁ GÜbaØVaÍabÙs...èRecord dw 0 ; ÉcorÐcoætèInÑx db 0 ;…nÑx‚ ±xby‘…°BufferèSwªch db 0 ; Normal/ReveψswªchèU¹dNormaØequ 00h ; valá¸tÃmay bˆ® Swªch.èU¹dReveÏqu 80hè;è; TÁ folÜw®g c¦ºž—ƒÉ‚erm®al-ÃrdwaÉ-ÑpŽÑ².è; SubºªâˆtÁ‡eqáncˆof cÃËc‘Ï‚Ãmak yourè;‚erm®aØg ÉveÏe-viÑ ”†ormal-viÑ žÐvicˆveÏa.è; EnЋcÀ¹qáncˆwªÀ'$', foÈwÍ•ng v« TypeM»ge.è;èNormalSeq: ;‡eqáncˆtÃcžceß ÉveψviÑoédb Asc­ESC,'q','$' ; H‹tÀH19, ZŽªÀZ19èReveÏSeq: ;‡eqáncˆtúaʸÉveψviÑoédb Asc­ESC,'p','$' ; H‹tÀH19, ZŽªÀZ19è;è; Tw buffeÏ foÈ»v®g‚Á Áx ÕspÛys,ƒnÐtÁiÈ®Ñx:è;èHexInÑx: dw 0èHexHi × 64 ; 64 by‘s,‚Án...édb '$' ; ...˜ÔlÛȽg°”nÐtÁ‡tÍng.èHexLo × 64édb '$'è;===============================================================è;€tÁ m°pÌgËm --…µ•aÝzš¬nèMn:éSERVICE BÔsOpŽ,CpmFcbé®r a ;rÌÈcoÑ FFÀbecom 00héjz NofiÙ ;† fiÙ --rÌÈcoуŽd.éSERVICE BÔsSŠBuffer,BuffeÈ;…npâ‚ ouÈBufferémvi a,128éºa InÑx ; InÑx := 128 (Buffeȯmpty)élxi h,1éshld Record ; RecorÐ:= 1émvi a,U¹dNormaléºa Swªch ; SwªcÀ:= U¹dNormalélxi h,0éshld HexInÑx; HexInÑx := 0è;===============================================================è;€tÁ m°pÌgËm€-- m°Üopè;écall GŠcÃÈ; A := GŠcÃrèMnWÅÙ:éoË a ; cÁcknd-of-fiÙ fÛg…°Aéjnz MnEndè;écall TypeCRLF;‚ypˆ˜bÛnk ݱémvi b,64 ; Ô 64‚im (coæ® B)èMn4:émov a,c ; pâ Ó“ by‘…°A,écall Oâpâ ; ..wÍ‘…t.écall GŠcÃÈ; C :=†exby‘, A := fÛgéDJNZ Mn4 ;nÐÔ.è;écall SÄwRecorÐ;‡Äw‚Á ÉcorÐnumber,écall EndL®ˆ; ..ŽÐtÁ fiÏݱ,éTESTCON MnEnÐ; ..¹ˆif wˆsÄulÐqåt.è;émvi b,64 ;‡Š up foÈ2nÐݱ.èMn5:émov a,c ; gŠ Ó“ by‘,écall Oâpâ ; ..wÍ‘…t.écall GŠcÃÈ; fÛg gЏ¹¦‚Á 128tÀcalléDJNZ Mn5 ;nÐÔ.è;écall EndL®ˆ;nÐtÁ 2nÐݱ,élhld Recordé®x héshld Record ; RecorÐ:= RecorÐ+ 1éTESTCON MnEnÐ; ..¹ˆif wˆsÄulÐqåt.éjmp MnWÅÙ ;nÐwÅÙ.è;èMnEnd:écall GoToNormaØ; gŠ‚erm®aØback‚ ´rmal.éÉt ; back‚ pÌÜg, Ô warm‡“Ê.è;---------------------------------------------------------------è; GŠcÃr: Étu΂Á†exby‘ fÌm‚Á fiÙ…°Ég¯‘ÈC,è;ƒnОnÐof fiÙ fÛg…°Ég¯‘ÈA.€If‚Á curɲè; ÉcorЯxÃç‘d, ÉaО¢ÁÈÉcorЮ”‚Á buffer.è;è; A¿um:‚ÃBuffeȯ„°˜pagˆboæÓry.è; Oâpâ: by‘…°C.€End-of-fiÙ fÛg…°A.è; Pɹrv:ƒlØbâ A, C, fÛgs.è;---------------------------------------------------------------èGŠcÃr:élÓ InÑxéoË a ; InÑx > 127?éjp GŠcÃr2 ; ..´, c¦•náè; €...tÁ buffeȯmpty, ÉaИÉcorЮ”…t.éSERVICE BÔsR‹d,CpmFcbéoË a ;†¦-zeÌ…f phy½caØŽÐof fiÙ.éÎz ; qåt, A†¦zeÌ,…f‚rá.é ;„tÁrw¯ˆc¦•ná, A=InÑx=00èGŠcÃr2:épçh h ;‡avˆcalÙr'¸HL, formƒddÉ¿émvi h,HIGH(Buffer) ; ..of Ó“ fÌm pageémov l,a ; ..plç InÑx (® A).émov c,m ; C :=‚Á by‘é®r aéºa InÑx ; InÑx := InÑx + 1éxË a ; ÉtuÎ zeÌ fÛgépop héÉt ;nÐGŠcÃr.è;---------------------------------------------------------------è; Oâp⇎ׂÁ by‘…°A‚ tÁ c¦¼Ù.€FiϺow‚Áè; Áx valá¸of‚Á by‘ foÈpͲ®g Û‘r.€TÁ°¹offè;‚Á ÅgÀbª, beca爼mˆworÐpÌc¼Ï‡Š Bª 7…nè;‡pec«l-purp§ˆcarÍagˆÉtuÎs,tc.€TÁ°if‚Á…npâ…s:è;è;€ƒ pͲabÙ cÃËc‘r,‡Š†ormaØviÑ žÐtypˆª.è;€ƒ c¦tÌØcÃËc‘r,‚Ë·Û‘…”ƒ pͲabÙ„±,è;€€‡Š ÉveψviÑo,ƒnÐtypˆª.è;è; Pɹrv:ƒll.è;---------------------------------------------------------------èOâpâ:épçh pswécall S”ÉHex€ ;‡avˆtÁ Áx valás.éži Asc­DEL€ ;‚u΄ff‚Á ÅgÀbª.écpi Asc­BÛnk ;…f A<' ' (carry‡Š), c¦tÌl.éJRC C¦tÌlécpi Asc­DEL€ ; Ýkew¯ˆif…t'¸˜DELéJRZ C¦tÌlè; € ...pͲabÙ, gŠ…² ´rmaØviÑoécall GoToNormaléJMPR Oâpâ2èC¦tÌl:;€...fix c¦tÌØcÃËc‘r,‡Š up ÉveψviÑoéaÕ 40h € ; makˆe.g. SUB…² Zéjp C¦tÌl2€ ; ..bâ DEL becom BFhémvi a,'~' € ; ..makˆtØ•lÑ.èC¦tÌl2:écall GoToReveÏeèOâpâ2:écall TypecÃÈ€;‚ypˆtÁ cÃËc‘répop pswéÉt € ;nÐOâpâ.è;---------------------------------------------------------------è; GŠ‚Á‚erm®aØ®”†ormaØviÑ moÑ…f…¯n't.è;---------------------------------------------------------------èGoToNormal:épçh pswépçh démvi a,U¹dNormalélxi d,NormalSeqéJMPR GoToEªÁrè;---------------------------------------------------------------è; GŠ‚Á‚erm®aØ®” ÉveψviÑ if…¯n't.è;---------------------------------------------------------------èGoToReveÏe:épçh pswépçh démvi a,U¹dReveÏélxi d,ReveÏSeqèGoToEªÁr:épçh hélxi h,Swªchécmp m ;…¸ª Äw wˆwžª?émov m,a ;€(ª…¸´w)épop hécnz TypeM»gˆ;‡ŽÐ¹qáncˆif…wŸn'tépop dépop pswéÉtè;---------------------------------------------------------------è; S”ÉHex‡av‚Á Áx ÕspÛy„fƒ by‘…°HexH¨žÐHexLo.è;---------------------------------------------------------------èS”ÉHex:épçh h ;‡avˆtÁ Ég¯‘Ï we'lØçeépçh d ; ..foÈ®Ñx®g.épçh psw ;‡avˆtÁ by‘ foÈtÁ calÙr,épçh psw ; ..žÐfoÈç,‚¤.élhld HexInÑxéxchg ; DE := HexInÑxécall HexD¯pÛyL ; pâ‚Á ÙfÁx Õgª…°Aélxi h,HexHiéÓd d ; HL-->HexHi[HexInÑx]émov m,aépop psw ; ÉcoveȘcopy„f‚Á Ó“écall HexD¯pÛyR ; pâ‚Á Íg Áx Õgª…°Aélxi h,HexLoéÓd d ; HL-->HexLo[HexInÑx]émov m,aé®x d ; HexInÑx := HexInÑx + 1éxchgéshld HexInÑxépop psw ; ɺoÉépop d ;€‚Áépop h ;€€€Ég¯‘ÏéÉtè;---------------------------------------------------------------è; D¯pÛy‚Á ÉcorÐnumber:‚Á cuÏoȯ†ow…°colum°65.è; Typˆtw spac,‚Á°fouÈÁx Õgª¸of "Record".è;---------------------------------------------------------------èSÄwRecord:écall GoToNormalécall TypeBÛnkécall TypeBÛnkélhld Recordécall TypeXXXX ; TypeXXXX(Record)éÉtè;---------------------------------------------------------------è; EndݱnׂÁ curɲ 64-by‘ ݱ„f Ó“ by:‚yp®gè; CR, LF‚ ŽÐtÁ‡cÉŽ ݱ,‚Á°pͲ®g HexH¨žÐHexLoè;acÀ¦…—„w°Ý±.€F®allyƒ´tÁÈbÛnk ݱ forè; v¯ãعpaË•¦.€HexInÑx…¸É¹t.è;---------------------------------------------------------------èEndL®e:épçh décall GoToNormaØ;ƒv¥ÐpͲ®g Áx…°ÉveÏeécall TypeCRLF€ ;nÐtÁ curɲ ݱélxi d,HexHiécall TypeM»gˆ; pͲ‚Á uppeÈÁx Ìwécall TypeCRLF€ ; ..žÐŽÐª.élxi d,HexLoécall TypeM»gˆ; pͲ‚Á ÜweÈÁx Ìwécall TypeCRLFéxchg € ;‡avˆHL foȘmomŽtélxi h,0 € ; ..wÅÙ wˆcÙaÈHexInÑxéshld HexInÑxéxchgépop d € ;‚ypˆ˜bÛnk, v«ƒ éjmp TypeCRLF€ ; ..call-žd-Étu΂ TypeCRLFè;---------------------------------------------------------------è; NofiÙ:‚Á…npâ fiÙ Ôn'ex¯t.€AboÊ wªÀtÁè; m»gˆN FiÙ,ƒv¥Õng‚Á pÌbÙm¸wˆÃЮ FDUMP.è;---------------------------------------------------------------èNofiÙ:éABORT NoFiÙMsgèNoFiÙMsg: db 'N FiÙ','$'è;===============================================================è;€tÁ…ncluÑÐsubÌâ®...è; #®cluÑ TypeSubs.Inc,TypeComm¦ -- TypeCÃr, -M»ge,tc.è; #®cluÑ TypeSubs.Inc,TypeXXXX (®cluѸHexD¯pÛyL/R)è;===============================================================è; TÁ ÉcorÐbuffer,ƒtÁnД makˆtÁ .COM fiÙ‡malÙr.è; Aß ¦ƒ pagˆboæÓry, Ôn'forgŠ.éORGPAGEèBuffer: × 128è;è; FoÈMP/M,‚Á .HEX fiÙ‡ÄulÐaccoæfoÈtÁ fulؽzˆofè;‚Á pÌgËm,‡ ŽabÙ‚Á†ex®ºruc•¦:è; db 0éENDè