;===============================================================è;è; €€€TABBIT€…npâ-Éf€„âpâ-Éfè;è;€RepÛc‡tÍng¸of bÛnk¸®ƒ°ASCII fiÙ wªÀ“bs, wÁÉè;€p§½bÙ.€A¿um‚Á‡“nÓrÐCP/M‚ab…ncÉmŽofigÂ.è;€TŸpÌgËm‡ÄulÐNOT bˆappÝeДƒ fiÙ wĹ Ó“ willè;€bˆpÌc¹ÐfuÊÁÈbefoÉ bng pͲeÐoÈtyped.è;è;€®pâ-Éf ::€[x:]…npâ³mˆ[.typ]è;è;€If‚Á dÍvecoÑ x:…¸omª‘ÐtÁ ÑfauÚ dÍvˆ¯ çed.€Anè;€®pâ fiÙ³mˆ¯ ÉqåÉd. A fiÙtypˆ¯„p•¦aØ(or,‚oè;€bˆpÉc¯e,ƒ fiÙtypˆof 3 bÛnk¸¯ƒlÜwed).è;è;€oâpâ-Éf :: [y:] [oâpâ³me] [.typ]è;è;€EacÀomª‘ÐpaÊ„f‚Á„âpâ fiÙÉf…¸suppÝeÐfÌm‚Áè;€®pâ-Éf.€Thç‚Á ÑfauÚ dÍvˆ¯‚Á…npâ dÍve,‚Áè;€ÑfauÚ†amˆ¯‚Á…npâ†ame,ƒnÐtÁ ÑfauÚ‚ypˆ¯‚Áè;€®pâ‚ype. IfƒlØaÉ„mª‘d,‚Á„âpâ fiÙ ÉpÛc‚Áè;€®pâ fiÙ.è;€€*****************************************************è;€€* € 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éMACLIB PROGéPROLOGè;===============================================================è; VaÍabÙ¸eqã‘Д Ég¯‘Ï:èColumn equ D ; Colum°¯…°tÁ DE prèColumnÜ equ E ; Üw by‘„f ColumnèT equ H ; 'T'…¸® Ég¯‘ÈHèK¹vŽ equ L ; c¦ºž0111B…°Ég. Lè;===============================================================è; U•Ýty I/O vaÍabÙs...è; #®cluÑ âiÝo.®c,IOVaÏè;===============================================================è;€tÁ m°pÌgËm --…µ•aÝzš¬nèMn:écall SŠUpInpâ ;„pŽ‚Á…npâ fiÙélxi b,InFCB ; BC-->ÑfauÚ fiÙÉfélxi d,OBspace ; DE-->ºaÊ„f buffeÈspaceè; €€€pÌÜg‡Š¸HL-->ŽÐof buffeÈspaceécall SŠUpOâpâ ; pÉpaÉ‚Á„âpâ‡tuffè;===============================================================è;€tÁ m°pÌgËm -- m°Üopè;écall SÅft ;‡Š up‚Á B, C‚exw®Ôwécall SÅftélxi Column,0 ; cÙaÈtÁ colum°coætémvi K¹vŽ,0111b ;‡Š up‚Á Ãndy c¦ºžtè;èMnWÅÙ:émov a,b ; wÅÙ (B<>EOF)...écpi CpmEoféjz MnEndè;éži Asc­DEL ; cÙaÈtÁ ÅgÀbªè;écpi Asc­DEL ;…f (B=Asc­DEL)éjz MnSÄâ ; tÁ°µl.è;è; Ôƒ 3-way‡pÝbŠw‰°c¦tÌØcÃËc‘Ï,‚Á bÛnk,è;ƒnÐtÁ pͲabÙ cÃËc‘Ï.è;écpi Asc­BÛnkéjz IsBÛnkéjnc IsPͲabÙè; eße IsC¦tÌlè;écpi Asc­TABéjnz IsC¦t2 ;…f (B=Asc­TAB)‚Ánémov a,ColumnÜ ; Colum°:= 1+(Colum°oÈ0111b)éoË K¹vŽémov ColumnÜ,aé®x Columnéjmp MnSÄâè;èIsC¦t2:écpi Asc­CRéjnz IsC¦t3 ;…f (B=Asc­CR)‚Ánélxi Column,0 ;€ Colum°:= 0éjmp MnSÄâè;èIsC¦t3:écpi Asc­BSéjnz MnSÄâ ;…f (B=Asc­BS)‚Ánémov a,Column ; Colum°:= max(Column-1,0)éoË ColumnÜéjz MnSÄâédcx Columnéjmp MnSÄâè;è; HždÙ bÛnks.€TÉšƒ‡®gÙ bÛnk,„ȘbÛnk jçbefoÉè;ƒ‚abºop, Ýkˆžy pͲabÙ cÃËc‘r.€Ttw bÛnksè; foÈp§½bÙ‚ab‡ubºªâ¬°ç®gƒ ÉcuÏivˆpÌceduÉ.è;èIsBÛnk:écmp c ;…f B<>C‚Á°C<>BÛnkéjnz IsPͲabÙémov a,ColumnÜéža K¹vŽ ; A := Colum°moÐ8émov T,a ; (»vˆª)émov a,K¹vŽésub Témov T,a ; T := 7-(Colum°moÐ8)éjz IsPͲabÙ ; Ô‚¦ly…f T>0.écall TTabéjnz IsPͲabÙ ;‚fÙd, pͲ Ûº bÛnkémvi B,Asc­TAB ;‚o.k.,„âp⃂abè; ...falØ®” IsPͲabÙ‚ ®cÉmŽColum°” 8è;è; ComˆÁÉ wªÀColum°corÉcfoÈtÁ cÃËc‘È® B,‚oè;…ncÉmŽColum°¼…¯ corÉcfoÈtÁ cÃËc‘È® C.è;èIsPͲabÙ:é®x Columnè;è; ComˆÁÉ wªÀColum°corÉcfoÈtÁ cÃËc‘È® C,‚oè; wÍ‘ BƒnÐmakˆC‚Á curɲ cÃËc‘r.è;èMnSÄâ:écall SÄâéjmp MnWÅÙ ; ..ŽÐwÅÙè;èMnEnd:écall F®¯hOâpâ ; compÙ‘„âpâ fiÙéÉt ;nÐmn.è;---------------------------------------------------------------è; RecuÏivˆpÌceduÉ TTab:‡walÜw bÛnk¸æ•ؘ“bºop…sè; ÉacÁd.€Ifƒ†¦bÛnk‚uθup, ÉgurgªšˆtÁ‡walÜwedè; bÛnks.€En× wªÀColum°corÉcfoÈtÁ cÃËc‘È® B.è; A¿um‚ÃB…¸alway¸˜bÛnk„°Žtry.èTTab:é®x Columnécall SÅftédcr Térz ;…f T=0,xªémov a,bécmp c ;…f (T>0)ƒnÐ(C=BÛnk)‚Ánécz TTab ;€€...TTabépçh psw ; (»vˆTTab ÉsuÚ ZfÛg)émvi a,Asc­BÛnk ;…f (T<>0)‚Ánécnz PâCÃÈ ;€€...PâCÃr(Asc­BÛnk)épop psw ; (ÉtuÎ ZfÛg„f‚t)éÉtè;===============================================================è;€tÁ…ncluÑÐI/O‡ubÌâ® -- GŠCÃr, PâCÃr, DumpOâpâè; #®cluÑ âiÝo.®c,IOSubsè;===============================================================è;‚Á fiÙ pÉpaË•¦ coÑ -- SŠUpInpâ, SŠUp-, F®¯hOâpâè; #®cluÑ âiÝo.®c,IOSŠupè;===============================================================è; TÁnÐof‚Á pÌgËm,ƒnÐtÁ‡“Ê„f‚Á buffeÈspace.è; TÁ‚ecÆiqá„f ç®gƒlغoËgˆfoÈbuffer, çeÐÁÉ,…sè;ƒ ÝabiÝty…°MP/M. TÁÉ,‚Á²iÉ„âpâ buffeÈsÄuldè; bˆÑf®eЮ‚Á pÌgËm„Èob“®eÐwªÀXDOS‡ervicˆ129.è;èOBspacˆequ $éENDè