;===============================================================è; 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Á†ex�tw Ý±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 ” M�nè;===============================================================è; TÁ GÜbaØVaÍabÙs...èRecord dw 0 ; ÉcorÐcoætèInÑx db 0 ;…nÑx‚ ±x�by‘…°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èM�n:é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èM�nWÅÙ:éoË a ; cÁck�nd-of-fiÙ fÛg…°Aéjnz M�nEndè;écall TypeCRLF;‚ypˆ˜bÛnk ݱémvi b,64 ; Ô 64‚im� (coæ�® B)èM�n4:émov a,c ; pâ Ó“ by‘…°A,écall Oâpâ ; ..wÍ‘…t.écall GŠcÃÈ; C :=†ex�by‘, A := fÛgéDJNZ M�n4 ;�nÐÔ.è;écall SÄwRecorÐ;‡Äw‚Á ÉcorÐnumber,écall EndL®ˆ; ..ŽÐtÁ fiÏ�ݱ,éTESTCON M�nEnÐ; ..¹ˆif wˆsÄulÐqåt.è;émvi b,64 ;‡Š up foÈ2nÐݱ.èM�n5:émov a,c ; gŠ Ó“ by‘,écall Oâpâ ; ..wÍ‘…t.écall GŠcÃÈ; fÛg gЏ¹�¦‚Á 128tÀcalléDJNZ M�n5 ;�nÐÔ.è;écall EndL®ˆ;�nÐtÁ 2nÐݱ,élhld Recordé®x héshld Record ; RecorÐ:= RecorÐ+ 1éTESTCON M�nEnÐ; ..¹ˆif wˆsÄulÐqåt.éjmp M�nWÅÙ ;�nÐwÅÙ.è;èM�nEnd:écall GoToNormaØ; gŠ‚erm®aØback‚ ´rmal.éÉt ; back‚ pÌÜg, Ô warm‡“Ê.è;---------------------------------------------------------------è; GŠcÃr: Étu΂Á†ex�by‘ 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è