IMD 1.18: 16/06/2019 19:33:14   é‡MINDSET pÐý  Non-System disk or disk error... Replace and press any key when ready.io sysmsdos sysß% *ÿPöú3ÀŽÐ¼|ŽØŽÀÇx|Œzû¡||P‹6|»€èÉ_è¸`ŽÀ3Û‹.~èS‹.:~è XŠ|ê`Æ|S‹Å‹ØS‹6 |ÑèèÅ€‹FöÃtÁè%ÿ‹è=øs‹È+Ë€ùw6 |‹ØëÒè ëà ötèÃYX[QW-Š |2í÷áÇèF_à|˜÷&|ÇP¾»~è0_¸ ÷.|ÿ÷6 |ÇP¿~¾i|¹ € Še €Ì :d u^¦u[âí_ÃU½‹ø™÷6|ŠÊþÁ™÷6|ŠèÀä ÌŠòŠ|¡|þÀŠá€ä?*Ę;Æv‹ÆP´ÍXrP÷& |ØX+ðtÇë¸]ÃP2äÍXMuݾ|¬$t ´»Íëò´ÍÍUªýÿÿ@`€   À à @ðÿ€ Ààÿÿ/ÿÿÿÿÿÿÿÿÿÿÿÿÿÏÿï/ÿ/ÿO5`7€9ðÿÿÿÿÿÿÿÿÿÿÿÿÿC@E`G€ÿ¯ÿÏÿÿÿOðÿQðÿÿÿÿÿÿÿÿÿÿuéyÿ3í‹6%/³+¿Ñ.èÁríöÇ€tèöÇuîèÿ¿\¸)Í!¡z.€ü:t°@,@¢\´èÅœèótéQÿ2À†ë, Àt ¹ ¿ÿ-¾¼-ó¤2À¢)/‹>w.¾½-è¸ú€>Û,uöy.t ºz.è3ûè ò莀>Û,u èIrÆå,€>Û,t èör.ÿtéáüèIuÆæ,ë¦éAÿöFu"‹ÕƒÂ¸=Í!r‹Ø¸DÍ!´>Í!ö€uAöFt;‹V€þ:t²@€ê@è»ó‹ÕƒÂŠ~€ç€ÿu‹v€|þ:uÆFëÆFNëc€ÿuÆFÃè€ç´;Í!r(‹ú3À‹ÈIò®OŠ&Ï,°:ÆF;Eþ†àtªÆF€Nè;ÃÆFŠ~öÇtóÆF‹v€<t€<.t€|þ:tÆFN2Û†è#ç´;Í!†sÈé8ñ‰~€F ¸?.¹óª†Äª†Ä±óª2ÀªÃQP¾z.¿.ŠÚ,Šé€|:u­,AŠÈ€}:uŠGG,AŠè:éu èòît‹Dÿ‹MÿP"ÁXu<.uýÿÿ@`€   À à @ðÿ€ Ààÿÿ/ÿÿÿÿÿÿÿÿÿÿÿÿÿÏÿï/ÿ/ÿO5`7€9ðÿÿÿÿÿÿÿÿÿÿÿÿÿC@E`G€ÿ¯ÿÏÿÿÿOðÿQðÿÿÿÿÿÿÿÿÿÿuéyÿ3í‹6%/³+¿Ñ.èÁríöÇ€tèöÇuîèÿ¿\¸)Í!¡z.€ü:t°@,@¢\´èÅœèótéQÿ2À†ë, Àt ¹ ¿ÿ-¾¼-ó¤2À¢)/‹>w.¾½-è¸ú€>Û,uöy.t ºz.è3ûè ò莀>Û,u èIrÆå,€>Û,t èör.ÿtéáüèIuÆæ,ë¦éAÿöFu"‹ÕƒÂ¸=Í!r‹Ø¸DÍ!´>Í!ö€uAöFt;‹V€þ:t²@€ê@è»ó‹ÕƒÂŠ~€ç€ÿu‹v€|þ:uÆFëÆFNëc€ÿuÆFÃè€ç´;Í!r(‹ú3À‹ÈIò®OŠ&Ï,°:ÆF;Eþ†àtªÆF€Nè;ÃÆFŠ~öÇtóÆF‹v€<t€<.t€|þ:tÆFN2Û†è#ç´;Í!†sÈé8ñ‰~€F ¸?.¹óª†Äª†Ä±óª2ÀªÃQP¾z.¿.ŠÚ,Šé€|:u­,AŠÈ€}:uŠGG,AŠè:éu èòît‹Dÿ‹MÿP"ÁXu<.uFMUG5 ARC #¤á €ODIAG EXE Ýa‹ê#DOC ñ^L €EJX80 EXE {`!!æIBM80 ASM · #ÈIBM80 COM È· $ IBM80 DOC à‘· %„IBM80 OBJ Á· &7MAKEQUIPBAT øŽ· 'VMAKERAM BAT Øf¶ (QMKIBM80 BAT ¸· )GMKTVMON BAT · *GMLI EXE Ë[k +êMPI EXE `KM -) PRINTER EXE {`!1æRAMDISK ASM ìh¶ 3 RAMDISK DOC cr· :çRAMDISK OBJ øh¶ ;˜RAMDISK SYS ýh¶ <1READ ME ;¥Ø =ïSETEQUIPASM Ž· >#SETEQUIPCOM ºŽ· ?!SETEQUIPDOC Ɔ· @§SETEQUIPOBJ §Ž· ANSETGEN ASM ‰· B­SETGEN DOC •s· I·SETGEN EXE Z · K«SETGEN OBJ U · MèTEK EXE ¶ ØfD¸Q mÂÌiBN˜6dÒÌY³£6iܬ)x0ᆠÊà)#CLDŠ®q¡± H‹#çä™ãL6'E’ÜèPMKIBM80.BAT9· ¸~ØG mÂÌi"˜68`ìh €M7k L¸PAZ@wÀœ¸nɢ勗ž9²|:ÉèaÃнêø¨B)uÀ1;ZnA€œrèp(/Ø"Ê™ ˜€Ôñ€ €ð   ã ¸t´À  P&ØCÄÔá> À:%d¸a^` | á!ˆ4ú„èäCaAë!:áBø ß#þ@kŒ3ˆ1A¼W¡ƒEסÓÑ0ªHº4´Â?éŒã|¨ø^{¬‰^dÿ)ˆ1`ð±$0¹@ñ¤èÂåƒøðÂCt¤JœQÄBÀ"ØHŽ4äH³Ž4ï,0L&$BÀ”ˆsM îÀ þ€G}®˜ :s0Ì{ñq@.´…/= KdèL@èÜ@ ´ øÐ}ôj;è !+¹âÞujxÌ‘€*Ž=X ¥ ‹€ +A@4èTðÐ(ñ¡Ë„ì2¡À:©œ; èÐÐÑ­õ6Ëù¨äqL.’œ¯½ @œï͹f|*p °àÅ„Š(¼–Í‘ :Â0Ì"Ä©H1*´3ˆ>ÿÔ¡Ì2£H35›€HGâPâˆóN’ù 3%P   £b¹JpLæbÑ"\é#Ú,B@ û8T‡†³4(Óf ÿP‡ˆóO<‹¨Óiƒ#€¸Ú|`%FÃHÅ"½àA(ºMFK*3Úr0ð^ âZ 3 ç 'Ûâ¸s|Œ· zccƒ ?\>Ê¡XL:->€íÖw»qšßMPI.EXEBATÃM `Kò˜) M´¤p@A ø÷KnärÉ!B…š8 Ð!‹ŽÜ€l²HZ*–’bCHƦP 2d‰Lš6gÖ¼¹SgNœ<öê3¨Ñ¢H‰*ÊT¨Ó£KŸ&m µfBCž@É"%É$T@©"¥ë”'FÂÆÈƒÆ 5Ò€’°ÀKAt@éê„J).Š`)’ð¥áˆ!†d‹£@À HÀ€иÀƒ„%p‰v„Ñcè*@' ÀèÚX× "#d¬u•€«@‰f!ty@+òeª8– ]i-Ø¥ï@³wÕør¸ˆPwhìЫg§ˆ-‹ðE;·¨‰ñ@0Șqß ãV\!ES@k±Áv Xl‘…_xqÀÏ8ò-I 7 -|çš$â|@3 £9,£¡C&„òÑ(·0»ä¨‹Ä°r¹¬–Í0‹c QÀ‡Í"ÁDƒÎØ sŒM‚ÀèœóÏ'Jg‰÷Ø È$<°Ž©É&<РSçèl1ŒP,bÌõ 0ÈÉÁÀ•`$4À(r@¨Å0£$Š…Xì‰`Ÿ4ºˆxÀg„b°† ? ÷Á(ËE8á‡>,’)ƒN6þøD¿ À•YÂVl.À–(:CÀ¦Â?u$ƒI Ç;ë´„Nÿ 3Ù:Îà2Y3 s*K0ÊôàrÏ•G(ze´ Sî.zè(0‹X³iÄqtnº›¶{% -ÈcÀQLäi´¸}` ˆ0D;8S‡<ÿmÉ?-d‘DUf1LR\1ˆð@ï!Ê ã‹?ïEN|õí÷…2ï sJxPRINTER.EXE!{`€jæ M´˜0€  ø÷KÈ©qXá`š8  âˆŽ|€„Ô’µ)T‚ Y‚R%Ë”+[Æ„ùҥ̚3mÒ¼És§O@s ÅI´gТ?‡]™PAE”`Á#a$”ÀPU•„ªxUån—Ø„ÎBBеJ[´ Žýºö$rÅÒe[’€×„Ôˆ àïݸwÿþJ ` àRÀ6F@‡#d–u!ÄU¡D³º¼ ãô2P&WƆ¥G:(zh¥³¡GA:3Ð Ù¼#€lGÀv9ÄÅ1ÞÏÐÝØìÀ:{‰,\ÈCÏ&pwðas ëáe^äôºk»TÓRrz­Í. ƒ¥€û5€? sŒ\äQ˜ÁE蘲Ùwè„Âd!N:è\ó:Îü3 :§ÊvHŒRÑ@¨ÁfÛ¡CÁ„°xÑ?T”:ÿðà0¿„‹C‹ØPV ƒ^<áD À 3HCy¬ƒN!ôØâ0'KA+RÑÞ¡A¬àSl¸cW®`]˜ JkÚ9QEBšcT|!Ä `Qê›EŒ)…‚ šPÄÅHªg©Å¿*ÛqÈ ‘S¿™„rIhQ¨>©ÙŽ|še’R|Y¦_ H]ºN0ºn»ï¶Û(u캋i»0¨ºn²ÌJúÅF±c¿ùÆ+êÀ86û…XG,L°Ä!°€ $°Ð³‚5Ä:H·îX¿é°íWé }%…INE®,'€i-Ä`Òh’ÞFXD\Q ¢¤£å_Ñ:aÅÄLzD&UÜpÅél4Ë_Tk¨Ô_8AÑBð(Ÿ¬´ZŠpGRáI{‘ö  ?¤p+†×môŠ;8æ„hÁ ™Û ‹¥ žá—uhÛQ…pf¡õ›®IIEÜÖÚ‚LHN8ÛµÊö6¬¯pÓ”Újd«¹–æõäª ùÚ«E ÑÚÌ XáÑ5 &‘Ü¿îL¸ó±?º ì“NQ©lùB¸©B<ñD®Ž™f÷ä,À¾jJÌ Ý:§}‚a´ADs°døÉJ^C «ÚAl$¼áÁï|’r “œÑqåÒ七8H,R“–:¿ê¨F³Í÷$gƒÔ8* å^@Ð9)Àè{°;ÔlPÊÐ59r˜6añÙÁŸ¾U¬qIŽ6º Ó c÷›’bÉ“\¶0šN!mL¸bŒ°+cu jÝ’ Ô†¸, o tƒšªé*Yi4šÍ€Gn9Á³c”f+«yMÙÊ ÛÄåjpG@Ṧ› æ„\5±à™ŸÎœf1­yLÙ@‹ ñÜÁAÅc„zo„é Ò‡Obê ÿì®@ÃË!ø+S*Cg4ªOÜõsŨ›),bÅÐ>Ç‚Z‚@’ @ #$PêHʺ½KšÄ4ÞA×,|a æ\䄈ÊðtT²{BGH6…$Ð ® KXPU€®Ò¢ãSÎu”—!`¡-B‚}@ÀNˆFsÅRw ƒØ€­°„¥`G7µ§"æ*9Wvn§StÛ(Ç¢ Xm…-ÄÇÀÖØ¦]-!‰NDC<‡¼•dË4¤K’Ì–-àÆÔj4Xc›ZeË*½o±QkYx´†Ÿâ€ S"xˆÛ°E+³¦á,ÝÌC i†‘S(­˜ŒÈÜÞÌ­cÕUårÉÔ×b–»ù<çw›Kñf·«Ø¯A¶–`IhAcÊ¡T(ž%…"NêÖp’‰D×-FLç:Á‰Ì#uéDDˆ' Þ€b´•ÛT.ås÷ÁGÂ#±ºhD¿*gÁs]Y("€N”yÕÙV ËÈ ;!Ã̘ã覄&@!†•%1]¼ !lÁ ] b@Âø­·hA¥ãXuàÙT’ô¹KV˜±©ÎÜns¯;Þîž4;*l˜I(/CH‚™ªTUqñ$DáÉVy{§*6ÔºOT_ô»mq¸(F°z°V–É­XHhÍØR E#°l²•¼ƒ%,ž4"“#ú`’ÅÓCâ³/è¸×‘$H=)¨ &nC°±Ç0zì/JH[~©`Lv,Ö7þð rpë\ƒ…Ìl£ÙøzÍäߘƖs­Ùœö\˜'ˆZ;§t ¬eýá÷ÌÕÕÍiè®iì-$àÅŒirx,¹2€8K¾"š*0A‚5¾ñÆ×æq™Ù³Úô[W‰ –†°N`›ÀS)\~zm6CK¯ÿèl.Šdikx­o la44Bm‰ì †¢é%¯x#ºÊ÷ÓÞá].^t&ÞŸ´¼¬xó}î’›…äϧ¬ÍÊ‚X‡‘F}›Ð­&Ì*ä`!”‚hˆbuÝè&‘:¨^²¡¯’ê4NÛ¾I®œ`WÀØû­¿½QŒáKˆÆÇf•ù¡ÍH\¹Pjqf }Ÿ:ÂiݘËZîÍÈæÚÑ÷RèR™òC5Bãéæ^eŒÝ+T„¼‰ Í¡ÈhXH¥É‡è V2û01šFJi á‘é@rZ ¿Ò­â,^ªG­‘ñ”ž8>ÝÙͱ0We‰%-©éMS«ƒÎURI•cÊÒ¶I/Dõ4çêÏ¥P²’žNÿò^JY°Ò¥’Ù¡ü}ÛFJ¾"!uåÅ;`=&üU–7ÚŸcâÌ+|˜ ²Ä0ÿ/ –«aaûyšâ߀È$€ð –e)ÖJN?B Ö(;ÀáA 8PíÔc0£`›‡”VTxZ%Ø.£`#³h†TAuhQ>°tUYe,°^)§xPv€GUI°gá3>Í!%vyG…OU¥yã^MH>ÁkEbu«$­·Ti5yYhŽqcÂ4Úbr[õ?G·Tâ"âANä`éóC½]†B2EDoC}Õj˜y> n 2Ws,€DÁ£nØ`²e7yj‚8@h ¶CQ7¶ˆj¸H°´z ‡Ox|Qx37…v·U1W¯¥ÁUÒP°B›(A§U(B‘膎‰C uef(ŠM6Ø1Xå‰:7W¬Xj)ä’å…,°Œ*ÀŒ¡8Š„9u a0tPaÀò& ÐŽT1Q‘ n@obÀN!01sgPtÓo` xÀsPêør0ªñ9‘ƒöŽ   Pb3h  Ùp·T nðwhs ‘(t.ÀeÀk3Y“ @u~Ó1©b@’·Tdv€?y ™s,ðf`)Eyo€R¡ Pntð’U –&AIL†™dÐm9Wc@“*mÉe`Yti”i€tÓ—F™A9W'Ih ùï1uIhrPmn€r@7VAlÉ,°qpÙ’nP И‰’ \é’ci ”@™t —p@B1s [Д]ÀdÀòçxRüèOA7H1L™s…•ZIšûèx@•ip`ynœM1œ³– É I˜nÀšh€g0wù›ÕÉ?@7jàzf9p0WyPsÐjPm`r°œt€zÙ×9™>¹”Û)›ªÉ–sÀx a€,  sEoð’pПùs›â™ mù”Q9•ÖùòA³Y—Ê™/É•'@'@šOÑøXJ±¡z™Õh°h<÷Ië2%5c YT+©Ãai”610 ¦>'Ð>I³?½Ö(çó¢·v¥7©õs?ùÓn°¡òh(`1€0'°`Lš˜-º?`æsBDf4u—¤ pd„0c§ûCFHÒ§KRêf¼RP’+¶4&k@Š[kÔFU"¤3U‚æÑq§_$?‘Š"$(ûó©K’-„Zƒ"ˆ¨Ù²,Í‚‚W¨‚pÔ‚©€Éª’¢M¶t›3Ø1?ÚIT´-ŽE~ÄÕ©yúx´?ÈJ„ÊK©ó£$'°¶@ùDVe æ^°£€â×1¦bxG2âô+,òÂú òHF,„Ç…t†Ïh4ˆÈTrâ ç )zx¾Š[WàB„2¬|Å1t„”¬w‘HÌ:­ËaGÑjDÎZ­LàQù¢燮R¶®ÜJ*®(‹˜5s2Wx7éj6D,Õ¢_$C„ê&„èÅhG%ŒÄ4®ˆR®Âê›ã2;Bpõ®Î˜†ÑˆkŽº¯qÚQò@HLfx*vy-«´8‡]3—wP»wæ5sر‡‹7ƱŠ6Õ2r·å|;BÐñ#7B?ÇE(ã&¡RAMDISK.DOCp· crËøç R´!’fÎDž i €aÀNÉ2DAa@)c'͘2失SFˆ;h<¢ÁȆ͛1aè”™bNž92Û€hS¦Í9y†¡™ÆŒE:'K‚ÌhÆ%8y4Ft‚ sÒèùÆ(”4O‰xL7 Ä”a8N™1EÓ”!ƒ‘f7y¾¦qs„9otαF :o@ب£°Æ2nÝŒå â Ú0v¤aF ›µ xúJ•Jâ:s@>$h8œ?¾ê÷MË7wööe³ä^yÞÔ‘ÃpÈ'F’q1±¢™Íet0dH¤ˆ•$CŠô¤ ‘$S–0§ ¤Ó TZþ¼Eš_±jõÖq×Ù åkðpbµfÉQFLs¹^F™7À{ ¸ñRm½×\®Å  ¢V C¶·àEŸÍw0˜kƒe˜*С‚ ž! &}Uâb0¸†£Š* RAMDISK.OBJñ¶ øhò˜ €d‡¥ò„H"˜¢‰!Ò€Á@=˜ð$@ø`§Ä 0 1+=Pj„€FJ¦ ‘4sÖˆ¼€ 3𠩃‰EG¸•ðéS«B¥€U ´tæ"TÂX¦s1@%GØfØ+{ÚEÈÈ2rë"‘‡„Ë<€2%Š+WL;"0€ EG@v>ÿJ%d„ ®)&ˆ}‘ðørðÈagÁ êÀËÀ:䪪èÂ@ê`Ò—àÎ[¤àRà^8-„á]WnP>sä(Ÿ"r´®¯ƒ„[8Ђë,iè€Dïêb‘…³iÅEWµj¢«&sDŽ-–“WŒ<Á•#nÍðø’?¹`À<¤üb,ü¨‚Ë?ÿ¬’K?ÈÌ<ªðÁ"÷âìFÀ<¥ÌÌn̳ ]DƒÎ.ÌIÀ Òܳ ÂÀà"8±0uÄÃ\´$ KBÍ„NB (Ђ |´† ðäPB%áÆt„Áe VÄà 0¤Ð% M<”D DC,`T¬ƒDnBT‘D€ Bðw  R°Ž ¹%áUPNB£ŠEŒÒ¸¹=*¨¢’š,â ÅØj)ëÛ^h‘ÅXðÁ2¦prBĘ°Ò .¡°Ò..©°R6̲°’:̺° ÃJü0+÷áÒ€.1º¸Äà°Òáê0o¸<¬‹ª»ð"Åo¸H¬ÄKP¬ô1X¬d!1b¬t1g(ì+ià»DÈJ¸”ÈJ9sÊJöÓÏJ3P HîRTÌFîZ\LÇî¦\Ì +É[Œ¼1«üÃJ"ãÊ*Û±’+ãÈJ§PHKÿÃͳ²ÎJTTý¢»w¨<À"Öa°RׯœçîÀg(‚P0+%Ä RAMDISK.SYS¶ ýh¹i1 ÿ bO€„AJ˜6DÒÌY€€  H¿+ì-€º(<¢2å/[²`bÑ.FqPó„œxÚ¤ƒÐ#hÈiÀ0¡ŒÆ*0 œ‹4p„m†=¨Mc!¨ºÙSF(,MäA€e @™EŠ•+&ŽЄ¢# SºŸ‹¥t`„Œ«)&ˆ}‘à÷rðÈagÁ êÀËÀ:äÀSÑ…!€ÔÁ¤/Á¶HÁ¥À½pZ+»®Ü | æ ÈU1P¾Žr–wŒÎE"3l9à@ ®b˜†ˆðœZ],²}ê4qÂóÞdm"‘OÆŽ4 _žŒ€ƒ ˆPàÄÀÔc\Ñ’€.§ÐLé@ ´à­!A$EI¸1a°ÁFd€€‚1¸ )`IBE‘D DC,ßM¬ƒDjBT‘D€ Bô’ R°Ž ©%áUPNþ S‡?.ãÃNü°¸©=Ñ)§žúªþxpÀ"¤cªªÚ^h‘ÅXðÁ2READ.MESYSíØ ;¥Ùï TДQÆÍ6oæ”!Žœ7dꌡ3D9ݼqÓbN8pÞÈ¡³Äœ7fèܹ8Ðá›3r´™Ó@™4sèÈI#¦I†bò€h’Æ …t@ 2&4-V c²Œ;iÆ ¤ó ê(”ã¢&Q£HAÜœs0Lš™Ù°Á&M1iêÒz'ÍWçÀ)3ÑkׯÅDé Κ'S®ÄÈ¢Qm¬)SQ#ˆ¶o§VäÚx ƺwóú*Òâ˜1ubŽÉS“1b… Fœ8Lj*c¥zlÃ9îÜsÖˆ>9ÆîO}ÿ"«°¶™Ò¸]î¦èûìÑ2Iq†5j„ç7bêž ó4*é1"1ㆶ«åT¼ãx ÌaU8…ç†e¬]w[KºID­‘æVd DŸ}o &fˆÔ„×y’HIu¸á‚¹Aä`o5Õg ªÈ€B‰±ULnÌa~%‘FÕWiÈÁí¡l•†‚Õ¤ )T0•QiÓMˆT9‚ؘxkFY $áFMaqS{nTiÇØ›yìtÏi·"æe‚^á¨#d8ÙÕ…_BIäH|ù…Æ>5dU8ÍÁ¥—ÓÑi'ž <ÊF…dÕ¤SETEQUIP.ASMU· Žœ¤# P‚)’À 1fÈh €J*LN)BD‘(U’@iRÄIE#L‚ òÄ*R¤t¬h% ‘"%›öÑq6ÝjCì¸Û‘ïPºos§m7E+ú)Ü·@¸JuõM«ki¬‹éoÏÁP“™mÇço|A¯ê0”a†É®ÓÓ3 -³pËÏQ6F_œêTäÔÃá“N¾ù §_2ËÌÛE>ÎÒó޾Èe”½("žñÚg¶±”eû‹ ``ìQ™£OXÆ2î•á 0ÊÚ:A™„&uƒ·Ìr‚•¡J H€æP0‚pO<ßüCÌÁo *dè®Æd‡,3ä@‡)˜Å{C’€"2;Þf5pÁïД/äk=cH€à :$KÛO|³äuq m€C^¸…¶€® ,€¾ÜÈ;“ðî]TArø:ÒA_ j F®„#`Àòà–Œ‹e|ôã»Ð4;¬ÑomìïàØ‚ÀV~´cFÌ–3t‚s0Yðк9„ái9;Mž÷†¢hna§,ŠÉºÒÊW%–5™%Îl9"\¦•&sK/a‰™`Ò’˜‹I…` î\ç;‰™ e‚yCêà1…•T!â(ƒ²/…ôŠA[÷ºT^ó–kyK\À“¡‹R!X0ƒÖh#K\ƈ¹Œ¸Ó;‘ËââyÆ4ꓟ­ÏšªI†ò¸á› Ðc*ŠF2´Ž‘s$!Où5*öé\݆RL‘¼ˆ d¥Æ/'T]¹©8»N6úŽrÜ`Ò‚”PBf”¥Ì£CÉPŸ6Ñd6µÓÁ¶F†ÓÉ® ,ãhÈ0IÁ¤!‘;h‹¦†²àãj)>9ŠÇŒDM…ˆ*ªX‘z­¤40I6KYŒàzçu³ÀI'@,UB‹ñe‹aÐ9€6©§0ÇX;ÚÆé>OƒŒë‹vvȪ¢”@‡A…fyº3B‹c¼u? Äÿ4qÍN;Éï(]—«¥°èÕ ƒ0\ï ã»uúæwÀ÷-¤2Tœ +ƒËÁ½ñ¼ž@ìtνó#›8&oÈÔ׸ԕ›aìaÈÎÓNpw›× î³æùÇÁΜý hbƒ€8gºÄ)¾àTTEë™Î›æ\†(=åÝð ì0ö»<W¾*˲ çÍè|¤êÎqÄWÀ_…w½û{›)Ù¼ûE^Ú¥•a Ø^## J¨ƒHPn>\}“ò~¯cÃÀ!­çI—ÏÚQ¾ùx»Cyº‹Ä§tU÷¾ª-ÓjøÊ×ÿ޳š7<{÷™îúêfnlO|8ÅýÆk4N1K©”sa¤ogˆ;ÖsFc´QMSÂ[`=VU7Xµ`t§FÝwbPz´Â&n’%q²zƒöGl{˜g`×J!è#èçv„|wrðñ1A Ö ×t0vJq|’P“b‚òòzŠ–Bè'k´5ŽANæ$9{ò#Øb|j„tƒ:¸,#/?¸U7 ˆMŠñH˜E)¸„ôæ„2(…föI©5o4¨… À…Ná…=8aX%4vCEFH*&XrN¸†…”Oof 6×b¡,ƒ‡;ÈÛWk,Pfƒâ¥K¨H¸E (7 HlÈT0øThhƒÓ¶| fˆ—€±@ SKæeqTa6f釚Ö?…%•“‹¯Xn[Å2•ñ³HW`&f»ÇxgFŒv\äÅ<ð^Öå9Ñ5]Ðå\Ñ5N«„]»¥RŽ1f`:Ñ eLâuŒå•Bç•^Äæ-`Õ ¢%/¯5|óUèXWÑXh 5Î4L3ÑR’ÅY_FHDV ð#!u¿§•Zn°ZuÐZnðZÓuXúòRàâ[…r…:uR»6"ë¨S¼4Gn±R:%’+)“êæSšD@‰DFÅ;g‘TèÔt€!BAaU”/çE.3Yy,QyD@_—‘%üe_ ¶”å3‘Cµ”úoà=R‘4ƒEn¡5³FU¨6åQ? /B/'Pr3$t„x­wcoyˆ`™s©]+uy—‰È"pSBSCÀ2~”HdðqAõ“H%ž·Uœùq‡)~5kv¦2È™w`˜c9(¨B‚€)•PyM#ÑWûÅR &X ¸%õq ñk3cx )&p„C[¶%˜ p·ÖE™'P0(Ñn€B* 7@AWâ!¿t!-àt‘<‘z 8£_”A/QÅ$BH©"þtókV©•@I–Þ%²CÀ5CTDfј~Ae ”ÿÆ eWh™jyC=⓵d!eþvõÓ./!™SLœãŸÃ;øy%,1 °-ïŸóù5n 4àW“9S¥¡Š_ PiR!Ô1‘eaw%Ãçm)²˜A”lq!@º.38b|QQ/z”„EZÄEȋŀïE“cÿ6_‹Ó_÷D!sQ=×;u³&Ö³Ž%)™Iª0žcù1 Êoj©rᙢ¸ 3êTE`H€,ðÉU0H`/0AÀL[°©_`E0TðR+¸a†cƒ©fû¤§H°{G3fáªX¤‚Ù˜å8YÂ:Ä:˜+ °áAÔ¼¢¨s1lÑ@)75À§Q4YKHaQóÇ7£S:¹{û/ó¢?;¡Y0xôò«p†U:îÂ\‚ƒ:›çD¼s{g•¬På–ÆÊ\ËôKü‡ÈšŠÊJ°üÚ¬z¶t$I ¡3®·ê<ü*‡y¡Üx¸ÇêJ$쪗N$'ÈS4ïj0E–lÐ75N\9c9¤(òor³¡lé«H£^G9àc¥9”«Õ#î5N²E+³‡A;` ºtCa $}ÓÜC8döGô:–C‹§Cµ®4`—Yõ1 ps¦Qd2I†ªª^@@™EJ+Wä:ÈéŸL S‡€îu+¤ c;ä8×qÐ>§»ðÖ5Ð>¦„@&’ÿëGKAóçÒEù—‹ ¹tA N>éñ€u}ð…]h‘ÅXèãÈ5û,ŽPD¹„’FɤsÐÆk€°Qˆ#–x¢ˆ$š8Š-®˜¢‹0ªø"‹6ÖH#Ž;Î(cŒ7ú$:þ˜#FöH$’C)d‘M*éä’O2 å•Vf)¤Fá ¼aS”AÇe¸16´ÔË;  Í„~Œ CmÂR@œs2U§ x– g1ÀV´$ Ë"9… ‹ ÈpV q¢éo´H…aÀ‚1¸ $áŠl°Q.4  SETGEN.OBJJ· U Óûè €8Ð$‰"SŠPábɆa:Í*02d °”ŽîsÈHèxæÂ˜‡ÿ €rÅ.šY 1€Gо`)z¨Rÿ\<ÔÇè#dŽ -"¶×C(S¢H©b劇³Ž°9F+€T:hºŽ®šA,•dž:Ò=ä€;Eð[p Y2Êt¶)‚È@ú`̰ÎRÔ9î¤ƺ ¥Oë ³z]š×úÌÜCû vê  e@‘°fîÖ‘Bdã¡ {´ìz˜+'§ö|(¦çëVŒw©‹€“ÕVFá§Ô3Jýd€,œd1€Ó€ŒÐHL 8êÈŽ4Ô˜Ž@@È8F!t$Yã,8öP£.8úP£08âP£1QÖM—Ä`Seà€yΘļ¦=hþ“e…€còÀœ£B~Á0S´€rTZ>(ÈHãOh J22V sÐÆk€Ô ¼©œP„d€ð† LQG”á^ØÐR,ï4B"2r¶ÂR€®¼>äëC´” l1 - Pé¬.ÕÉÀW ºÆêop r„VÄà 0€„™†ÁeáB P '+¼ØÁ›Ä„€ãMÄä‹S 5Þ€# 5ú„Ó"¨£IÁà…YTEK.EXEBJJL à‘€"Æ  (Í"ñ("ŒyDÎ=¶‹À³È7ŠI ËèpKè@A a8ƒ‘ @(ͽWCèH€"Á #ߊÓŸĠƒ‰TÈ öÈ£2ŠC ²(©"è €*10˜‰æS°A‰R@a….]šžXh1 TEST.ASMJJÔk ¦[v€ S¨²$A‚)EŽ4)â„ (A¤pà'*<Ñ@A"B@Ì€‚H( Pd¸1EG0$2¥c‚ŽWžHYò%b‘ .l˜¢Ä‡U„0I2#‘ 9*è‘I*_„T1b$‘+ bÜ(y .§* R$`Ö­Fz‘âìÙŽlÝjåúᑺ îª5’Äê'Az’àDTÚR™2DŠP˜ž`#ÁŽ!H‚89R$I¦˜~"Ë“*R@¶ŠxaGœ:yú:³¦Ú!~ úJ¥hĉP’.mzbȶRm™2¥ÊBÀuOÈ‚¦Žœ;{JùÉ‚º˜·T”R¼¨”'C‰˜Þ`ò)H¼úž4A,,ügSQUàçõ%ÐÄVÈxºÄ€ 6HS€ªeÐA0ÁDPXQfÙ ²5 ‡&@Zˆ•ÁЉ~ÈÄAÑW‹/z”Š"„UUW¥ÐP|‘:$à‘. E“Lê¨DPD‘FR!¤@ì4Ó“j­xãx ¹_‚ú‡g5äÉ;$áeÈQt€0Æd”‚oÈh”1`DÁP„nÂyFyö9i¸¥o¸‚u˜aF. É W’½ÅWR° žQƤ•^šF¦›vú© ox:¤ŽšV{Åå mµú*¥–bª)§žÖ ®g´QÆœ¡j˜ÀxZ†yÕ˜.:!“D€ÙÑŒ5r[&ï !ª…>Á•òVÄa‰áÙi©ïi¥ÍVZmEôÚàª,¸k¼@ ×½¬‘K!@,qÄ!ì`pÆY¥0W·…¡ÅD$Ñ]©ÁÊ%…ÅSˆü«©Â&” ¢ÅÁ n°CKP)vâ ‚eŒAG *ŸÃ_!Å{t½ùYrÈ‘‡Îs< ©ÎfØÉ;„¡ir ÂcŒQ‡¯Vk¶é!­4ÓI²­Ò"vûm¸Bn›°™êZ›æÆ`ƒA7¿ô …‚po°á'a°á8t‚ `gžMAÔyÞ‘¡z6.ö0Xü_y Ù×á¶Áv<ÅÇ:¦yºÁ¯¾±¦¯)sÍ;Lq5䓇ާéLp–$6 hŸ‚îɆØ=€PºŽ0¶( Êý’Þ¶ß-®zÛŠè‰ÏÙ‹î™~„î˜÷~õc =-mðéçžÃÇ®~ñ2¾kžC‰ H‚ €  ^–¨ë H{àcшJd¯/¥g;¹›o4Šp)[ééˆ ñTEST.EXEJJÂk â[Ì/< M´ð À @ðï–üZñÐB…41xX€E É!$kS¨²$åÊ–*Yº”æË™6iÞ¬‰³'ÏŸ;ƒêš³¨O¡F=ÊR!Œ :¨I9eˆ'. $¢‡À àRÀ6tI [ ¶‚ZŠÊ]·Vfïy€‘†é2`×ñe-òÁw‘ ÀÍ@É 0lX.t&뮇´À€w-°”TEST.OBJJJk Ø[\þT €d‡¥ò„H‘…SŠ!@$• ¦\²$Á•'R–| "¥HS˜ c @˜¤€¦䚉† €\%a`BF€4 ãÆ%°D= a„¤K&ÄêUK ÑA¥ˆÆ)C¤8q%É*@ùyt0(¸:†.a_ÿBZJxÝ>Zš½K„# ‡éJ¸+a^Ž€-ò‘p‘„Í@É 0lX.&¸œù2-°(F ,³ÃpÚYªlRðs@„×€õ€'O(1ÀÁ#œ;1ÀMX_A@€d.Ê F#»uÝ{O4OŒ‰úŠT+žTVMON.ASMJ3· QŽxy P‚)’À 1fÈh €J*LRyräHDM’8!2¥B<^)RÄ *V@Ùˆñ‰“‡O¤´$R„!Ã1oÈ”I0§Ì™6eÜÐafΜ:@Œ™£§N› ÄøLãFG‚6oì$ƒ!ÃTé$€QÆ š vœ)CÄœ1rÊU'3lœ™"ìbð@½šu+bΦ 8MÛ4@ô£¯tì|•ó†a¯ pöæpŒ¯aÜùíŽÒ ܼ¹ã–-ˆ:pƒùÍ™3l¨ž¡›³ÌW¬Z¹²áºg[2iæÀÉ›„N;iÆv¬\4PËàqlùV<,hŒÃèÃDÕKÙMÝTá @€ @€ÿÿUUªªðð (08@ððU35 U34 U33 U32 U31 U30 U29 U28 U36 U47 U46 U45 U44 U43 U42 U41 U37 U66 U65 U64 U63 U62 U61 U60 U38 U85 U84 U83 U82 U81 U80 U79 --> FAULT IN CHIP  Enter RAM Memory size code: 0= 128K, 1= 160K, 2= 192K, 3= 224K , 4= 256K: --> RAM Error at address . Write / Read Data = A = automatic testing M = manual testing R = data retention testing Enter segment and offset: Enter Data word: Completed Pass Looping - to stop Segment Test with Data Pattern = ¸T¹Iè–Æ&Æðè—tû$ßðÿuéÃÆ&ÿ¸Ô¹OèÇ ètû<0|è<4ä%Ñà‹Ø.‹‡*£"¿¹3Àü󫾸ŽÀ¸¹èÐ.‹„èR¸ù¹ 迌ÀèD.‹„è_ŒÀŽÀ;"|æ€>&ÿuè>¸ŽÀ.‹„èRŒÀŽÀ;"|ëè²è‰€>ðÿuÃFFƒþ*|¸Ì¹ècÿ ¡ èéuÿéuÿ3Û¹ =ððu&‰ë&‰CCâïÃÇ$3Û¹ =ððu&‹;Út ‹Ãèëè€CCâëÃ&‹;Âtè ëèlCCâíÃPSQV3Ð3ö.‹Œ4‹Â#ÁtŒÀ†ÄÑèÑèÑè‹ÞÑãÑãØÆ‡FFƒþr×^Y[XÃV¾¸<¹ €<tÆQP¸¼.‹Òè­XP¹è¥XYFâÛ^Ãÿ$ƒ>$1PQP¸#¹èƒŒÀè°:èo‹Ãèþ¸>¹èkX‹Èèï‹ÂèêYXÃQ¹P@uý°.èGâöYà I/O TRAP TEST Trap FAILED to occur for OUT Trap OCCURRED for OUT Trap FAILED to occur for IN -- TOO MANY ERRORS -- Looping - to stop Test in Progress Test Complete Enter Trap Address: Trap occurred at wrong address: ú3ÀŽÀ&¡£7&¡ £9&¡0£;&¡2£=¸º&£&£0ŒÈ&£ &£2èû¸€¹èÆð3À£5¸¹èôºÆ4‰0‹Â2à£2ï 4<t(5 {Æ4í 4<t(<‚t ¸Æ¹è‘ë ¸O¹"膋Âè ÿ5ƒ>5 DBBöÆ€ué{ÿÆ4ºïí€>4tÆ4¸®¹èJ‹ÂèÏBB€þàuÚ¸*¹è5ë ¸ä¹è)ú3ÀŽÀ¡7&£¡9&£ ¡;&£0¡=&£2ûÃPRº0ÿí%ÿïºH€íº"ÿ¸ ïZXûèÏüSQVRP¸ŽØ¾?¹‹Ç Àt2öÄ€tÆ4‹Ø€ç;0t"€4€ëFFÆ4;0t€4€FFâăùtè ºH€íXZ^Y[úÚÿ¸G¢ïJJ¸ï±JJŒÛÓãŒØÓÀ%Ã?s@ï‹ÃJJïJJ3ÀïJJ¸@€ïºD€ïȘ   h  Ð@ €¬¶ÈôúÈôúÐã÷  9 SECTORS, 1 SIDE 9 SECTORS, 2 SIDES 8 SECTORS, 1 SIDE 8 SECTORS, 2 SIDES DISK DIAGNOSTICS V1.0 Specify drive (A or B): Place test diskette in drive, then type any key ENTER COMMAND CODE S - seek time measurement R - read sector W - write sector V - verify disk X - exit Error on Read Error on Write Enter logical sector number (hexadecimal): Status = Writing data ... # SECTORS READ: IO errors = Data errors = ILLEGAL DISKETTE FORMAT CODE DETECTED DATA WORD = Completed Pass Specify Drive Manufacturer / type: 1= SHUGART SA455, 2= other Disk Rotation Time (msec) = Spec = Track 1-77 SEEK Time (msec) = 3ÀŽÀ&¡p£`&¡r£b´5Íî‰d¸Ò&£pŒÈ&£r´4¹Íîû¸ ¹2èè*tû Í ><| ¸” ¹'è¥ézÿ2äÑà‹ð.‹„À.‹ŒÈè.‹´€.‹£T.‹D£Z.‹D£\.‹D£X¸‚ ¹wèfÆðèltû$ßðtïèÄè,ÃèÇfÇtè Æl¡\@£V¸R ¹è  ¼ èÇ€>ðÿtgÆlÿf¡\@£Vèȃ>tt0¾ÿnV‹„v£VÆlèëÆlèã<tÿR^FF;6tr×€>ðÿt¸É ¹èX ¡fnè éqÿá\@£VÆlè¥3À£p£r¡XH£Vè“¡p‹ÈÑàÑéÁP¸E ¹ è XèÆ Ã3ÀŽÀú¡`&£p¡b&£r‹d´4ÍîûÃèYèú €>ðÿt ÿV¡V;X|æÃè>ÿP<u‹6t¡V‰„vÿtÿtèÄ €>ðÿt¡P%?uèìÿV¡V;X|ÀÃ3À¿>¹ó«è'Ís 2À†àèå°À>lt¡n¿>¹ó¯°u°Ã¡V™‹T÷ñþˆjÆi‹ZIÓÈsþi¢k‹h‹jŠ&l°»>€üt»>ËP¡p‹r÷ñ‹ÈÑàÑéÁP¸ ¹è Xè¶ ¸; ¹ è÷ ‹6^.‹è£ ÃP¸ŽØÿpuÿrXϸ» ¹èÏ è £nèánü¹¿>ó«Ã¸d ¹è¯ ¡Pè3 ¸„ ¹è  ¡Rè$ ÃQP¸ ¹€>lt¸ù ¹è Xè YÃABCDEFGHIJKLMNOPQRSTUVWXYZ[\]6- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÿQWERTYUIOPASDFGHJKLZXCVBNM            1234567890-= ÿÿSHIFT CTRL ALT &-4;BIPHOME PAGE UPEND PAGE DNINSERT DELETE PRT SCNSTART PAUSE ESCAPE KEYBOARD DIAGNOSTICS PROGRAM Next Page via key PART 1: ASCII CHARACTER SET. Hit each key and watch a  appear. PART 2: ALT, FUNCTION, & SPECIAL KEYS. Hit each key combination shown.**** KEYBOARD PASSED - TEST COMPLETE ****All keys shown are functioning correctly INSTRUCTIONS FOR USING KEYBOARD DIAGNOSTICS This diagnostic program tests 221 keys and key combinations. They have been arranged into three groups of displays. The first group includes the standard ASCII character set. The second and third group include the function keys and the special keys. Hit each key [combination] shown on the screen. A  character is displayed for each key hit. The user will detect erroneous keys by the absence of this special character, or its appearance adjacent to another key. Once all keys on the display have been hit, the program proceeds to the next group of keys. To proceed to the next group without hitting all keys, enter CTRL PG_UP. To start this program, type any key. MOUSE DIAGNOSTICS INSTRUCTIONS: This part of the keyboard diagnostics tests the mouse/joystick interface. Insert the joystick into the left port, the mouse into the right port. Move the mouse and joystick and watch the cursor; verify that the appropriate movements update the screen cursor correctly. Start by pressing left mouse button.Terminate by pressing right mouse button.ŒØŽÀ´°ÍïèÔ¸¹ÚèÇ´Íèĸ¥¹Bè·»¶²èÏ€û s°è™.Ї`<ÿtèƇ`C€Â€âü€úOrÖ€ÆëÏ´Í<u€ü„uóëH˜‹ØÆ‡`H±öñP±öáŠðXŠÄ±öáŠÐèq°è@¿~°"…`t¾Ou÷ºèX¸W¹(è-èUÆà»àè#¸ç¹Gè¾¶²è.Æ„`.‹ ÀuÆ„`ël€üÿuëw©t P¸ù¹èáX©t P¸ô¹èÑX©t P¸î¹èÁX©tP°Fè«X˜èfë!©tPS˜HÑà‹Ø.‹‡ý¹è•[XëèƒFCC€Â€úOrþÆ€þrN´Í<uø€ü„u ëaéVÿéUÿ†à€>àuàwéÚþºè¸.¹)èíèèë¸Y¹_èÞ´Ít ´Í€ü„tA´Íî÷ÐöÄu¨tâ´°ÍïºèÖ¸¸¹)è«·³´Íï¾<¿`èoV´Íî÷Щ t^èt3Û3ɨtI¨tA¨tK¨tC^ë‹Ú‹Î^ Ûu ÉtÅè1óƒþü}¾üÿë þ||¾{ùƒÿü}¿üÿë ÿÄ|¿Ãèë‘RQS¹²¶»P´ Íïº@è3‹Æè¿‹Çè·[YZÃS3ɺO°·´Í3Òè ¸W¹Nèà[ÃS·´Í[ÃQ¹@uýâûYÃQ3Ò3ÀÍ<u覹° ´ ͱÓêëæ< u° èŽ<0|<9~ $ß A>MLI (CR) PROGRAMMING INFO: To call MLI use INT 0A0H DS = DOS FILE NAME SEGMENT DX = DOS FILE NAME OFFSET ES = DESTINATION PALLETTE SEGMENT BX = DESTINATION PALLETTE OFFSET SI = DESTINATION SCREEN SEGMENT DI = DESTINATION SCREEN OFFSET REGISTERS RETURNED: Carry SET = AN ERROR HAS O  CCURED. AX = 0FFFFH ONLY IF AN ERROR HAS OCCURED. AX = 0 FOUR_POINT FILE WAS LOADED. AX = 1 MGI FILE WAS LOADED. AX = 2 DESIGNER FILE WAS LOADED. AX = 3 LUMENA FILE WAS LOADED. ALL OTHER REGISTERS REMAIN UNCHANGED. öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööMZæ ÿÿ–äj š #>STACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKEJX80ÿÿªUUªUªî»UªUªÿÿªUÿÿªUÿÿªUªUÿÿÿÿªUªUÿÿªUUªÿÿªUÿÿªUªU 0À¸ ŽØŒèhŒÈŽØº ¸%Í!º^´1Í!ËP¸ ŽØX=t(=t=t3èBè;¸ ŽÀ»¸¹Ïè7è.ëö‰‰Œ‰è%ëᎴIÍ!ë×»^´JÍ!ôÍð èð èüÃǹQÇè¦èèáÿÿYâéè×ÿèÎÿÃè§¡H£ÇèèèèÇÿyèÿÿ¸‹6PVè^ONy¸[ Ãÿyëè…ÿá¹+Ïöᎋ؋6´&Š‹ðÑæ‹ãó‹±ÓãóŠ„!"…¡Ã°è=°rè8V‹6Š„ è,^ðè%°Lè ¡ÑàÑàèŠÄèðè °Aè°èÃRQPº´ÍXYZÃöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööPAGE 60,132 TITLE SET IBM SCREEN MODE 3 code segment assume cs:code begin: mov ax,0003h int 10h ;set ibm screen mode 3 mov ax,4c00h int 21h ;return to dos code ends end begin öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö¸Í¸LÍ!C #¤á €ODIAG EXE Ýa‹ê#DOC ñ^L €EJX80 EXE {`!!æIBM80 ASM · #ÈIBM80 COMG!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö  öIBM80.DOC This program sets IBM screen mode 3 (80 column color character). (If you don't like "Invalid Transition" messages.) 0 ASM · #ÈIBM80 COM È· $ IBM80 DOCH!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€SETŒ–CODED˜` ó ¸Í¸LÍ!ÇŠÁ¬a‹ê#DOC ñ^L €EJX80 EXE {`!!æIBM80 ASM · #ÈIBM80 COM È· $ IBM80 DOC à‘· %„IBM80 OBJI!ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööömasm setequip; link setequip; exe2bin setequip.exe setequip.com del setequip.exe ñ^L €EJX80 EXE {`!!æIBM80 ASM · #ÈIBM80 COM È· $ IBM80 DOC à‘· %„IBM80 OBJ Á· &7MAKEQUIPBATJ!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööömasm ramdisk; link ramdisk; exe2bin ramdisk.exe ramdisk.sys del ramdisk.exe ñ^L €EJX80 EXE {`!!æIBM80 ASM · #ÈIBM80 COM È· $ IBM80 DOC à‘· %„IBM80 OBJ Á· &7MAKEQUIPBAT øŽ· 'VMAKERAM BATL!ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö  masm ibm80; link ibm80; exe2bin ibm80.exe ibm80.com del ibm80.exe  ñ^L €EJX80 EXE {`!!æIBM80 ASM · #ÈIBM80 COM È· $ IBM80 DOC à‘· %„IBM80 OBJ Á· &7MAKEQUIPBAT øŽ· 'VMAKERAM BAT Øf¶ (QMKIBM80 BATM!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööömasm tvmon; link tvmon; exe2bin tvmon.exe tvmon.com del tvmon.exe  ñ^L €EJX80 EXE {`!!æIBM80 ASM · #ÈIBM80 COM È· $ IBM80 DOC à‘· %„IBM80 OBJ Á· &7MAKEQUIPBAT øŽ· 'VMAKERAM BAT Øf¶ (QMKIBM80 BAT ¸· )GMKTVMON BATN!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööMZê ÿÿ–2¹ š *u÷STACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKCOPYRIGHT FURRISOFT 1984/85’‚ÈÚ“˜3ê³ "1£ÀCÂCRÓlb=â$sÿó¸ ŽØŒè֌Ȏغ ¸ %Í!º^´1Í!ËVWRQSŒÙ¸ ŽØ‰!‰#Œ'‰)‰6+‰>-ès¸ÿÿ[YZ_^ÏŽ´IÍ!ÃÃè/¡+£9¡-£7Ç;€èråè8¡+ŽÀ‹6-&ŠD&8Du&€< t èθë<&€| u&öDu èû¸ë%&€|Au&ƒ|Cu&ƒ|>t èù¸ëè¸øÃ¡+ŽÀ‹6-VŒÂƒÆAÇ%ÿèX^èÃ&€|tºÿÿ+ÿéãÇ;Ç7Ç9 ‹6-Æ`|¡+ŽÀ¹PVè„^ƒ>/t)¡Q±‹ØÒàÒäÒëÒï ÃY&‰ƒÆâ×î@ƒþx¹PëÉèsÃÇ;œ¹´Q¾=º èÓYè77 >7}}âíèHÃP¹€>¡+ŽÀ‹6-&ǃÆâöXÃŒÂ&‹D&+DÑè£;&‹L&+L 멌Â&ŠDèt<t Ç;}èØèùá+ŽÀ‹>-ºÇ7Ç9 Ç;WVè°^_ƒ>/tÑèsÙèÂËŠÅ*íƒúÿu ‹ŠÁŠÍ*í&ˆGÿ}t ƒÿxâïøÃùÃÆPèXË>)¡'ŽÀ¹‹%ŽÚ‹ûÿu†Ä‹ÐÊ%ÿuâÿñ‹ê&‰ƒÇƒÆâÚÇ%ÃRP‹#¡!ŽØ´=*ÀÍ!r Ç1£5XZã1XZÃRQSP‹5‹;‹7¡9ŽØ¸?Í!£/X[YZô>‹5Í!ûd´JÍ!ÃöööööööööööööööööööööööMZ) ÿÿ–7¹ š ,n­½´Ò  STACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKCOPYRIGHT FURRISOFT 1984/85PÿA:PRINTER.EXE  ¸ ŽØŒèè’sèmë ŒÈŽØºe¸%Í!º^´1Í!˸ ŽÀ¹º´ »úÍï¹¾‹„úÐìÐìÐìÐìŠÄ´‹øÑç‹…‰„<ƒÆâßÃVWRQSP¸ ŽØèè×X[YZ_^ÏŽ´IÍ!ôÍïŒZ‰\ôÍÃ*äÍÃŽ&¡,£¸ ŽÀ»ºb¸KÍ!¹ ŽÙËÂö&Q‹Ø‹ÁÑèØÃÇQ Sèçÿ\ŽZ÷Át&Š$ë&Š$ðÐèÐèÐèÐè[ÃRP‹p´=*ÀÍ!r Ç`£rXZã`XZXÃRQSP‹r‹x‹t¡vŽØ¸?Í!£^X[YZô>‹rÍ!ÃÃèÙþ¾@¿ÈÇQ è%è.è`èCè*ÿu 9>Irïëè!ÿèëθÍøVWÍ_^ÉK£O=t‡÷ÇGÇIÃVW»z¸ ŽÀ‹Ö‹M¸Í_^ËKÇM¸ ŽÀ»zQ¹‹Iè&ˆCA;ÎuòÿIÿM9>ItYIuØÃYÃQRWƒ>Ot‡Êè¾þ´Ñà‹ø‹…<_ZYû̴JÍ!ÃAT Øf¶ (QMKIBM80 BAT ¸· )GMKTVMON BAT · *GMLI EXE Ë[k +êMPI EXEQ!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööMZæ ÿÿ–äj š #>STACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKEJX80ÿÿªUUªUªî»UªUªÿÿªUÿÿªUÿÿªUªUÿÿÿÿªUªUÿÿªUUªÿÿªUÿÿªUªU 0À¸ ŽØŒèhŒÈŽØº ¸%Í!º^´1Í!ËP¸ ŽØX=t(=t=t3èBè;¸ ŽÀ»¸¹Ïè7è.ëö‰‰Œ‰è%ëᎴIÍ!ë×»^´JÍ!ôÍð èð èüÃǹQÇè¦èèáÿÿYâéè×ÿ  èÎÿÃè§¡H£ÇèèèèÇÿyèÿÿ¸‹6PVè^ONy¸[ Ãÿyëè…ÿá¹+Ïöᎋ؋6´&Š‹ðÑæ‹ãó‹±ÓãóŠ„!"…¡Ã°è=°rè8V‹6Š„ è,^ðè%°Lè ¡ÑàÑàèŠÄèðè °Aè°èÃRQPº´ÍXYZà OBJ Á· &7MAKEQUIPBAT øŽ· 'VMAKERAM BAT Øf¶ (QMKIBM80 BAT ¸· )GMKTVMON BAT · *GMLI EXE Ë[k +êMPI EXE `KM -) PRINTER EXER!öööööööööööööööööööööööööööööööö; RAMDISK.ASM MS-DOS V2.0 RAM DISK PROGRAM ; Mark DeSmet, 1984 ; J. Blair - Added Banner at load time CODE SEGMENT PARA PUBLIC 'CODE' OPEN EQU 3DH CLOSE EQU 3EH READ EQU 3FH MSDOS EQU 21H FATSEC EQU 4 ;SECTORS PER FAT IBM EQU 21H ;INTERRUPT TO CALL IBM COCODE EQU 2 ;CODE FOR CONSOLE OUTPUT VIDEO EQU 10H ;VIDEO INTERRUPT TTY EQU 14 SHR EQU 0 ;STATIC REQUEST START SRH_LEN EQU 13 ;LENGTH SRH_LEN_FLD EQU 0 ;LENGTH FIELD SRH_UCB_FLD EQU 1 ;UNIT CODE FIELD SRH_CCD_FLD EQU 2 ;COMMAND CODE FIELD SRH_STA_FLD EQU 3 ;STATUS FIELD SRH_RES_FLD EQU 5 ;RESERVED AREA FIELD MD EQU SRH_LEN ;MEDIA BYTE DTA EQU SRH_LEN+1 ;DATA TRANSFER ADDRESS COUNT EQU DTA+4 SSN EQU COUNT+2 ;START SECTOR NUMBER RET_BYTE EQU DTA ;RETURN BYTE BPBA_PTR EQU COUNT ;POINTER TO BPB ; INITIALIZE UNITS EQU SRH_LEN BR_ADDR_0 EQU SRH_LEN+1 BR_ADDR_1 EQU BR_ADDR_0+2 BPB_PTR_OFF EQU BR_ADDR_0+4 BPB_PTR_SEG EQU BPB_PTR_OFF+2 ASSUME CS:CODE BEGIN: ; DEVICE HEADER NEXT_DEV DD -1 ATTRIBUTE DW 2000H STRATEGY DW DEV_STRATEGY INTERRUPT DW DEV_INT DEV_NAME DB 1 ;NUMBER OF DEVICES DB 7 DUP (?) RH_OFF DW 0 ;REQUEST HEADER OFFSET RH_SEG DW 0 ;SEGMENT ; CURRENT INFORMATION TOTAL DW 0 ;NUMBER OF SECTORS TO TRANSFER START_SEC DW 0 ;FIRST SECTOR VDISK_PTR DW 0 USER_DTA DD 0 ;USERS DATA TRANSFER ADDRESS BOOT_REC DB 0,0,0 ;JUMP DB 'RamDisk ' BPB DW 512 ;PER SECTOR DB 1 ;ALLOCATION UNIT DW 1 ;1 RESERVED DB 2 ;2 FATS DW 64 ;DIRECTORY ENTRIES SECTORS DW 650 ;SECTORS TOTAL DB 0FCH ;MEDIA BYTE DW FATSEC ;SECTORS IN FATS BPB_PTR DW BPB FUNTAB LABEL BYTE DW INIT DW MEDIA_CHECK DW BUILD_BPB DW EXIT DW INPUT DW EXIT DW EXIT DW EXIT DW OUTPUT DW OUTPUT ;DONT BOTHER VERIFYING DW EXIT DW EXIT DW EXIT IN_SAVE:MOV AX,ES:WORD PTR DTA[BX] ;SAVE CALLERS DTA MOV CS:WORD PTR USER_DTA,AX MOV AX,ES:WORD PTR DTA+2[BX] MOV CS:WORD PTR USER_DTA+2,AX MOV AX,ES:WORD PTR SSN[BX] ;START SECTOR MOV CS:START_SEC,AX MOV AX,ES:WORD PTR COUNT[BX];COUNT OF SECTORS MOV AH,0 MOV CS:TOTAL,AX RET CALC_ADDR: MOV AX,CS:START_SEC MOV CL,5 ;TURN SECTORS INTO PARAGRAPHS SHL AX,CL ADD AX,CS:VDISK_PTR MOV DS,AX ;MOVE ADDRESS TO DS:SI XOR SI,SI MOV AX,CS:TOTAL ;CALC CX=LENGTH IN WORDS MOV CL,8 ;256 WORDS PER SECTOR SHL AX,CL MOV CX,AX ;WORD COUNT RET ; STRATEGY ENTRY DEV_STRATEGY PROC FAR MOV CS:RH_SEG,ES ;SAVE ES:BX MOV CS:RH_OFF,BX RET DEV_STRATEGY ENDP ; DEVICE INTERRUPT HANDLER DEV_INT PROC FAR PUSH DS ;SAVE STATE PUSH ES PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI ; SET STATUS TO ALL OK AS NO ERRORS POSSABLE MOV ES:WORD PTR SRH_STA_FLD[BX],100H MOV AL,ES:[BX+2] ;GET FUNCTION BYTE SHL AL,1 ;TIMES 2 MOV AH,0 MOV DI,AX ;FUNCTION OFFSET JMP WORD PTR CS:FUNTAB[DI] ; INITIALIZATION INIT: MOV AX,CS ;TINY CASE MOV DS,AX PUSH ES PUSH BX ; GET THE SPECIFIED SIZE. THE BPB POINTER FIELD HAS POINTER TO FIRST ; BYTE AFTER = IN DEVICE=XXX LES BX,ES:DWORD PTR BPB_PTR_OFF[BX] NCH: MOV AL,ES:[BX] ;LOOK FOR A DIGIT BEFORE A LF CMP AL,'0' JB NOTDIG CMP AL,'9' JBE GETNUM NOTDIG: INC BX ;NEED TO LOOK FOR MORE CMP AL,10 ;LF IF NOT JNZ NCH MOV CX,128 ;128 k DEFAULT JMP GOTSIZE GETNUM: MOV CX,0 ;TOTAL NNUM: MOV DL,ES:[BX] ;NEXT DIGIT INC BX SUB DL,'0' CMP DL,9 JA ENDNUM MOV DH,0 PUSH DX MOV AX,10 MUL CX POP DX ADD AX,DX MOV CX,AX JMP NNUM ENDNUM: CMP CX,32 ;32 K MIN  IMUM JAE TEST650 MOV CX,32 TEST650:CMP CX,650 JB GOTSIZE MOV CX,650 GOTSIZE:SHL CX,1 ;2 SECTORS PER K MOV SECTORS,CX POP BX ;RETRIEVE BLOCK ADDRESS POP ES PUSH CS ;CALC START ADDRESS OF RAMDISK POP DX MOV AX,OFFSET VDISK ;RAM IS AT END OF THIS CODE MOV CL,4 ;MAKE PARAS SHR AX,CL INC AX ;1 FOR ROUND UP ADD AX,DX ;BASE PARAGRAPH MOV CS:VDISK_PTR,AX ;REMEMBER BASE MOV DX,SECTORS ;CALC END ADDRESS MOV CL,5 ;GET SECTORS OF RAM DISK SHL DX,CL ADD AX,DX  ;NEXT FREE BYTE MOV ES:WORD PTR BR_ADDR_0[BX],0 ;SET FREE ADDRESS MOV ES:WORD PTR BR_ADDR_1[BX],AX MOV ES:BYTE PTR UNITS[BX],1 ;ONE UNIT MOV ES:WORD PTR BPB_PTR_OFF[BX],OFFSET BPB_PTR MOV ES:BPB_PTR_SEG[BX],CS MOV ES,CS:VDISK_PTR ;SET BOOT RECORD XOR DI,DI PUSH CS ;SET DS:SI TO BOOT IMAGE POP DS MOV SI,OFFSET BOOT_REC CLD MOV CX,24 ;LENGTH OF BOOT REP MOVSB MOV DI,512 ;ZERO OUT FAT MOV AL,0FCH ;SET FIRST 3 BYTES OF FAT STOSB MOV AX,0FFFFH STOSW MOV CX,FATSEC*512-3 ;SIZE OF REST OF FAT XOR AL,AL REP STOSB ;FAT IS ZERO PUSH ES POP DS MOV SI,DI ;MAKE SECOND COPY OF FAT SUB SI,FATSEC*512 MOV CX,FATSEC*256 REP MOVSW XOR AX,AX ;ZERO DIRECTORY MOV CX,256*6 REP STOSW ;Put actual kb allocated into banner message mov ax,sectors ;sectors = kb * 2 shr ax,1 ;ax now has kb (32 .le. kb .le. 650) mov bx,10 ;divisor mov si,offset dig1 ;point to units digit looop: xor dx,dx ;clear dx before divide idiv bx ;ax = ax/10, dx = remainder add dl,'0' ;change remainder to ascii mov byte ptr cs:[si],dl ;put it in banner dec si ;point to next digit in banner or ax,ax ;anything left in ax? jnz looop ;yes-jump ;Print the banner mov ax,cs mov ds,ax mov ah,9 ;dos print string mov dx,offset banner ;ds:dx points to '$' terminated string int 21h JMP EXIT BANNER LABEL BYTE DB 13,10,'-> ' DIG1 DB ' ' DB 'kb RamDisk Installed (V1.00)',13,10,'$' ; MEDIA CHECK DB 'MEDIA CHECK' MEDIA_CHECK: MOV ES:BYTE PTR RET_BYTE[BX],1 JMP EXIT ; BUILD BIOS PARAMETER BLOCK DB 'BUILD BPB' BUILD_BPB: MOV ES:WORD PTR BPBA_PTR[BX],OFFSET BPB MOV ES:WORD PTR BPBA_PTR+2[BX],CS JMP EXIT ; READ A SECTOR DB 'INPUT' INPUT: CALL IN_SAVE CALL CALC_ADDR ;GET SECTOR ADDRESS LES DI,CS:USER_DTA ;LOAD DESTINATION ADDRESS CLD REP MOVSW ;MOVE READ DATA JMP EXIT ; WRITE A SECTOR DB 'OUTPUT' OUTPUT: CALL IN_SAVE CALL CALC_ADDR ;GET DESTINATION ADDRESS PUSH DS POP ES ;PUT DESTINATION INTO ES:DI MOV DI,SI LDS SI,CS:USER_DTA ;LOAD SOURCE ADDRESS CLD REP MOVSW JMP EXIT ; COMMON EXIT EXIT: POP DI POP SI POP DX POP CX POP BX POP AX POP ES POP DS RET DEV_INT ENDP VDISK EQU $ CODE ENDS END BEGIN AT øŽ· 'VMAKERAM BAT Øf¶ (QMKIBM80 BAT ¸· )GMKTVMON BAT · *GMLI EXE Ë[k +êMPI EXE `KM -) PRINTER EXE {`!1æRAMDISK ASMT!öRamDisk.DOC RamDisk.SYS is a device driver which allocates system memory as if it were a floppy disk. The size of this 'disk' can be specified as anything from 32kb to 650kb depending on available memory. To use RamDisk, place the following line in your CONFIG.SYS file: DEVICE=RAMDISK.SYS XXX where XXX is the size in kb of the ramdisk to be created. If XXX is not specified, 128 is used. If XXX is less than 32, 32 is used. If XXX is greater than 650, 650 is used. öööööööööööööööööööööööööö  €A;–CODED˜h1Á ÿÿÿÿ 3œÄ“ÄžŠ #RamDisk @Šü&‹G.£&‹G.£&‹G.£&‹G´.£Ã.¡±Óà.ŽØ3ö.¡±Óà‹ÈÃ.Œ.‰ËPSQRVW&ÇG&ŠGÐà´‹ø.ÿ¥ŒÈŽØS&Ä_&Š<0r<9v C< uð¹€ë0¹&ŠC€ê0€ú w¶R¸ ÷áZ‹Èëåƒù s¹ ùŠr¹ŠÑá.‰[Z¸±Óè@Â.£.‹±ÓâÂ&ÇG&‰G&ÆG &ÇG&ŒO.Ž3ÿ¾ü¹ó¤¿°üª¸ÿÿ«¹ý2Àóª‹÷î¹ó¥3À¹ó«.¡Ñè» ¾3Ò÷û€Â0.ˆN ÀuñŒÈŽØ´ ºÍ!é -> kb RamDisk Installed (V1.00) $MEDIA CHECK&ÆGëHBUILD BPB&ÇG&ŒOë2INPUTèè.Ä>üó¥ëOUTPUTèè‹þ.Å6üó¥ë_^ZY[X˦œ'Ä&+Ä(»Ä*ÙÄ,êÄ.(Ä0üÄ2(Ä4(Ä6(Ä8Ä:Ä<(Ä>(Ä@(ÄHÄPÄXÄbÄgÄpÄxÄ„ĉħ:Äý3Å1ÅÅ3Å/8Å8Å? Ån3Åv®Åާ…“(ÅÜ+…ëT…îwÅó†T†wÆgŠÁ¬öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööÿÿÿÿ “žRamDisk @Šü+»Ùê(ü((((((&‹G.£&‹G.£&‹G.£&‹G´.£Ã.¡±Óà.ŽØ3ö.¡±Óà‹ÈÃ.Œ.‰ËPSQRVW&ÇG&ŠGÐà´‹ø.ÿ¥:ŒÈŽØS&Ä_&Š<0r<9v C< uð¹€ë0¹&ŠC€ê0€ú w¶R¸ ÷áZ‹Èëåƒù s¹ ùŠr¹ŠÑá.‰3[Z¸1±Óè@Â.£.‹3±ÓâÂ&ÇG&‰G&ÆG &ÇG8&ŒO.Ž3ÿ¾ ü¹ó¤¿°üª¸ÿÿ«¹ý2Àóª‹÷î¹ó¥3À¹ó«.¡3Ñè» ¾®3Ò÷û€Â0.ˆN ÀuñŒÈŽØ´ º§Í!é -> kb RamDisk Installed (V1.00) $MEDIA CHECK&ÆGëHBUILD BPB&ÇG+&ŒOë2INPUTèUþèuþ.Ä>üó¥ëOUTPUTè>þè^þ‹þ.Å6üó¥ë_^ZY[XËøh¶ ;˜RAMDISK SYSY!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööThe enclosed products are non-supported software programs distributed by Mindset Corporation as a service to the user. Mindset disclaims all liability with respect to the use of this software, and makes no claims as to the reliability or accuracy of these products. User assumes all risks associated with the use of these products. Mindset is under no obligation to correct any errors which may exist in any of these products or to provide any other form of support for these products. These products may be transferred to a third party only if the third party agrees to the provisions of this disclaimer. In addition, copies of copyrighted products may not be transferred to any third party without permission of the copyright holder. öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööPAGE 60,132 TITLE SET EQUIPMENT FLAG TO CURRENT VIDEO MODE ;This program sets the BIOS EQUIP_FLG word to reflect ;the current video mode bios_data_seg equ 40h ;bios data segment equip_flg_off equ 10h ;equip_flg offset cols_off equ 04ah ;char columns on screen offset code segment assume cs:code begin: mov ax,bios_data_seg mov ds,ax ;point ds to bios data segment xor bx,bx ;bx points to beginning of segment mov ax,equip_flg_off[bx] ;get equipment flags and ax,0ffcfh ;clear video bits or ax, 0010h ;set to 40x25 color card cmp byte ptr cols_off[bx],80 ;80 characters per line? jne exit ;no-jump xor ax, 0030h ;set to 80x25 color card exit: mov equip_flg_off[bx],ax ;save new flags mov ax,4c00h int 21h ;return to dos code ends end begin ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö¸@ŽØ3Û‹G%Ïÿ €JPu50‰G¸LÍ!AMDISK OBJ øh¶ ;˜RAMDISK SYS ýh¶ <1READ ME ;¥Ø =ïSETEQUIPASM Ž· >#SETEQUIPCOMa!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö  öSetEquip.DOC This program sets the equipment flags to indicate 40 or 80 column display depending on the current mode of the computer when the program is run. Version 1.07 of the Mindset BIOS always indicates 40 columns in the equipment flags. Some programs (such as PFS PROOF) check these flags before running and issue an "I need an 80x25 display to run" error message if the flags don't indicate 80 columns. öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€SETŒ–CODED˜`!Ü %¸@ŽØ3Û‹G%Ïÿ €JPu50‰G¸LÍ!”ŠÁ¬ýh¶ <1READ ME ;¥Ø =ïSETEQUIPASM Ž· >#SETEQUIPCOM ºŽ· ?!SETEQUIPDOC Ɔ· @§SETEQUIPOBJd!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööpage 60,132 title MindSet Set Genlock Trap ;****************************************************************** ; This program allows the user to interactively set ; the display sync features of the Mindset as well as ; to set/clear the key bit for any index in the palette. ; ; When this program is run, it traps the PRTSCN interrupt. ; Then, when PRTSCN is typed, if both shift keys are down, ; this program accepts a two-character ; command--otherwise the normal PRTSCN routine is run. ; ; The first character is the command and the ; second character is a single (ascii) hex digit '0'..'F' ; ; The commands are: ; B: Select border color index ; T: Toggle key bit of palette index 0..F ; S: Set key bit of palette index 0..F ; C: Clear key bit of palette index 0..F ; V: Set the Video display sync features to hex value 0..F ; : Exit ; ; Invalid commands nop ;****************************************************************** ;Equates: prtscint equ 5 ;PRTSCN SW interrupt number backspace equ 8 ;ascii backspace escape equ 01bh ;ascii escape ; DOS interrupt function codes (use with interrupt 21h...move these to AH) ; Console functions dfc_set_vector equ 25h ;set int vector (al=int #,ds:dx=vec) dfc_term_stay equ 31h ;terminate prog but stay resident dfc_get_vector equ 35h ;get int vector (in cs:ip)(al=int #) ;Mindset unique interrupts mindset_video_int equ 0efh ;graphics interrupt ms_set_palette equ 00ah ms_get_palette equ 00bh mindset_io_int equ 0eeh ;other unique ms_set_syncs equ 006h ;input in al cseg segment para public 'code' assume cs:cseg,ds:cseg,ss:nothing,es:nothing ; PrtSc interrupt handler (interrupt 5.) int_5 proc far sti ;allow interrupts cmp cs:[reent],0 ;reentrant? je not_reent ;no-jump iret ;yes-nop not_reent: mov cs:[reent],-1 ;set reentrant flag push ax ;save on previous stack push di ;save on previous stack push es ;save on previous stack ;Both shift keys depressed? mov ax,0200h i  nt 16h ;get shift status of keyboard and al,3 ;mask off all but shift key status cmp al,3 ;are both down? je docmd ;yes-jump pop es ;no-restore stack and jump to PRTSCN pop di pop ax mov cs:[reent],0 ;clear reentrant flag jmp dword ptr cs:[old_vector] docmd: cli ;off interrupts mov di,ss ;temporary mov ax,cs ;new stack is in code segment mov ss,ax ;begin switch to new stack mov ax,sp ;temporary sti ;allow interrupts after next instruction mov sp,offset top_of_stack ;complete the switch irp x, ;save registers push x endm mov ax,cs mov ds,ax ;data segment is in code segment mov es,ax ;so is extra segment ;flush type ahead flush: mov ah,1 int 16h ;check kb buffer jz getcmd ;jump if empty mov ah,0 int 16h ;read character jmp short flush ;check for more characters getcmd: mov ax,0e07h int 10h ;beep mov ah,0 int 16h ;read command character cmp al,escape ;escape? jne tback1 ;no-jump jmp exit tback1: cmp al,backspace ;backspace? je getcmd ;yes-jump mov dh,al ;dh = command character mov ah,0 int 16h ;read hex digit character cmp al,escape ;escape? jne tback2 ;no-jump jmp exit tback2: cmp al,backspace ;backspace? je getcmd ;yes-jump mov dl,al ;dl = hex digit or dh,20h ;force command to lowercase ;convert the ascii hex digit to binary cmp dl,'0' ;below '0'? jnb t9 ;no-jump jmp error t9: cmp dl,'9' ;in range 0..9? ja af ;no-jump sub dl,'0' ;convert to binary jmp short cmds ;go do command af: or dh,20h ;force lowercase cmp dl,'a' ;below 'a'? jnb tf ;no-jump jmp error tf: cmp dl,'f' ;above 'f'? ja error sub dl,('a' - 10) ;convert to binary ;do the proper command cmds: cmp dh,'v' ;set video sync? jne readpal ;no-jump mov ah,ms_set_syncs mov al,dl int mindset_io_int ;set the syncs jmp short getcmd ;all other commands modify the palette readpal: mov cmd,dh ;save command byte xor dh,dh ;dx = palette index to read  mov ah,ms_get_palette mov bx,offset color mov cx,1 pushf ;for fake int ef call dword ptr [ef_vector] cmp cmd,'b' ;set border color? jne tt ;no-jump mov al,dl ;set border color jmp short writepal tt: cmp cmd,'t' ;toggle key bit? jne ts ;no-jump xor color,0200h ;toggle it jmp short writepal ts: cmp cmd,'s' ;set key bit? jne tc ;no-jump or color,0200h ;set it jmp short writepal tc: cmp cmd,'c' ;clear key bit? jne error ;no-jump and color,0fdffh ;clear it  writepal: mov ah,ms_set_palette pushf ;for fake int ef call dword ptr [ef_vector] jmp getcmd error: mov cx,100 beeep: mov ax,0e07h int 10h ;beep loop beeep jmp getcmd exit: mov ax,0e07h int 10h ;beep irp x, ;restore from my stack pop x endm cli ;no interrupts mov ss,di ;begin switch to previous stack sti ;interrupts ok after next instruction mov sp,ax ; and complete it pop es ;restore pop di ;restore pop ax ;restore mov cs:[reent],0 ;clear reentrant flag iret ;finished int_5 endp even ;********** ;Data in code segment int_5_ptr dd int_5 ;pointer to interrupt processor old_vector dd ? ;BIOS 'print screen' vector ef_vector dd ? ;store BIOS vector for compiled BASIC reent db 0 ;reentrant flag cmd db ? ;command character color dw ? ;palette color ;********** ; Stack in code segment my_stack db 32 dup('stack ') top_of_stack dw 0,0 db 'End of SetGen' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; The one-time initialization code. ; Establish the correct data segment pointer, change the PrtSc vector ; to point to the new interrupt processing routine, and terminate ; but stay resident. ; *** Initialization...code beyond this point is executed once and ; the space is then returned to DOS for general usage. init proc far mov ax,cs mov ds,ax ;map to data segment ;Get the 0efh vector before compiled basic has a chance to trash it. ;We can then fake the INT EFH via PUSHF/CALL [EF_VECTOR] mov ah,dfc_get_vector mov al,0efH int 21h mov word ptr ef_vector,bx mov word ptr ef_vector+2, es ;replace the current int 5 vector with our own mov ah,dfc_get_vector mov al,prtscint ;interrupt number int 21h ;returns es:bx=vector contents mov word ptr old_vector,bx ;save offset mov word ptr old_vector+2,es ; and segment mov ah,dfc_set_vector ;set new vector mov al,prtscint ;printer interrupt number lds dx,int_5_ptr ;pointer to int pro  cessor int 21h mov ah,09h ;dos print string mov dx,offset msg ;point to message (ds=cs) int 21h ;print the message mov dx,(((init-int_5) shr 4) + 17) ;# of paragraphs xor al,al ;return code = 0 mov ah,dfc_term_stay ;terminate but stay resident int 21h msg db 'Genlock Trap V1.00 Installed.',13,10,'$' init endp cseg ends STK SEGMENT PARA STACK 'STACK' DB 200 dup (?) STK ENDS end init öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööSetGen.DOC SetGen allows the user to interactively set the display sync features of the Mindset as well as to set/clear the key bit for any index in the palette and to set the border color index. SetGen is an EXE file which should be executed only once to load it into memory. To actually use SetGen, press the PRTSCN key while holding down BOTH shift keys. SetGen accepts two-character commands as follows: Valid first characters are: B: Select border color index 0..F T: Toggle key bit of palette index 0..F S: Set key bit of palette index 0..F C: Clear key bit of palette index 0..F V: Set the Video display sync features to hex value 0..F : Exit : Backspace-expect next character to begin a new command Valid second characters are: '0'..'F': Hex digit for values 0..15 : Exit : Backspace-expect next character to begin a new command SetGen loops on commands until receiving an to exit. SetGen beeps when it is expecting a command character. SetGen beeeeps on an input error, then waits for the next command. SetGen does not trap user calls to set screen mode or set palette. Set screen mode clears the display sync features. Set palette may change the key bit assignments. If a program does this, it will be necessary to enter SetGen again through PRTSCN. SetGen will not operate in programs which have replaced the PRTSCN interrupt vector (INT 5). ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööMZ« ÿÿ+ÈÏùQ2û.€><tÏ.Æ<ÿPW¸Í$<t_X.Æ<.ÿ.4úŒ×ŒÈŽÐ‹Äû¼@PSQRUVWŒÈŽØŽÀ´Ít´Íëô¸Í´Í<ué¬<tìŠð´Í<ué›<tۊЀΠ€ú0së~€ú9w€ê0ë€Î €úasëi€úfwc€êW€þvu´ŠÂÍî뤈6=2ö´ »>¹œÿ8€>=buŠÂë+€>=tu6>ë€>=su>ë €>=cu&>ÿý´ œÿ8éQÿ¹d¸ÍâùéDÿ¸Í_^]ZY[XúŽ×û‹à_X.Æ<Ïstack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack stack End of SetGenŒÈŽØ´5°ïÍ!‰8Œ:´5°Í!‰4Œ6´%°Å0Í!´ º‹Í!º62À´1Í!Genlock Trap V1.00 Installed. $ ºŽ· ?!SETEQUIPDOC Ɔ· @§SETEQUIPOBJ §Ž· ANSETGEN ASM ‰· B­SETGEN DOC •s· I·SETGEN EXEj!öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö  € MINDSET\–CODECSEGSTACKSTKŸ˜h«F˜tÈ :û.€>tÏ.ÆÿPW¸Í$<t_X.Æ.ÿ.úŒ×ŒÈŽÐ‹Äû¼PSQRUVWŒÈŽØŽÀ´Ít´Íëô¸Í´Í<ué<tìŠð´Í<ué<tۊЀΠ€ú0së~€ú9w€ê0ë€Î €úasëi€úfwc€êW€þvu´ŠÂÍî뤈62ö´ »¹œÿ€>buŠÂë+€>tu6ë€>suë €>cu&ÿý´ œÿé¹d¸Íâùé¸Í_^]ZY[XúŽ×û‹à_X.Æϲœ™Ä<Ä <Ä%<Ä,4Ä9@„c„tij=ĺ>ÄÂ8ÄÆ=ÄÑ=ÄØ>Äà=Äç>Äï=Äö>Äÿ8…U…UÅ*<Í0´ 8  <¢@ stack g o@End of SetGenŒÈŽØ´5°ïÍ!‰Œ´5°Í!‰Œ´%°ÅÍ!´ ºÍ!º62À´1Í!Genlock Trap V1.00 Installed. $Åœ+Ä8Ä!:Ä+4Ä/6Ä70Ä>‹êŠÁQYOBJ §Ž· ANSETGEN ASM ‰· B­SETGEN DOC •s· I·SETGEN EXE Z · K«SETGEN OBJl!ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööMZ» ÿÿ–$  #ASTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKSTACKTEK4695ÿÿªUUªUªî»UªUªÿÿªUÿÿªUÿÿªUªUÿÿÿÿªUªUÿÿªUUªÿÿªUÿÿªUªU¸ ŽØŒ è_ŒÈŽØº ¸%Í!º^´1Í!ËP¸ ŽØX=t#=tF=t*è9Ç ¸ ŽÀ»¸¹ω ‰‘Œ“èëíŽ ´IÍ!ëã»^´JÍ!ôÍÃèçëÑèèèÃÇ胋6 Nè/èÒƒþyõƒƒ>~áÇÿ ƒ> u Ç éœÃ¡±Óà‹ø‹ÎŽ“‹‘N&‹†ÄŠôè$ðŠÐƒùx ŠÆè $ ЋñŠÂôÑà÷ t@‹ð‹ßŠ€IðèU°IèP¸0 èB¡ ÑèèŠÁè2ŠÅè-ŠÄè(ÃT2²döòŠÈŠÄ´² öòŠè€Á0€Å0€Ä0ðè°AèÃRPVº´Í^XZÃ!SETEQUIPDOC Ɔ· @§SETEQUIPOBJ §Ž· ANSETGEN ASM ‰· B­SETGEN DOC •s· I·SETGEN EXE Z · K«SETGEN OBJ U · MèTEK EXEm!ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööSTACK SEGMENT PARA STACK 'STACK' DB 30 DUP ('STACK') STACK ENDS WORK_AREA SEGMENT PARA PUBLIC 'DATA' PALET_BUFF DW 17 DUP(00) DEST_BUFF_ADR DW 00 DEST_BUFF_SEG DW 00 FILE_NAME DB 'A:TESTSCRN.PIC',0 ;CHANGE THIS TO YOUR FILENAME WORK_AREA ENDS CSEG SEGMENT PARA PUBLIC 'CODE' ASSUME CS:CSEG,DS:WORK_AREA,SS:STACK START PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,WORK_AREA MOV DS,AX CALL SET_SCRN_MODE CALL GET_SCREEN CALL LOAD_SCREEN CALL SET_PALET STOP_IT: NOP NOP NOP JMP STOP_IT START ENDP GET_SCREEN PROC MOV AH,05H ;Interupt code for the INT 0EFH ;get destination buffer. MOV DEST_BUFF_ADR,BX ;Destination buffer offset MOV DEST_BUFF_SEG,ES ;Destination buffer segment. RET GET_SCREEN ENDP LOAD_SCREEN PROC MOV DX,OFFSET FILE_NAME ;THIS IS THE FILE NAME MOV BX,OFFSET PALET_BUFF ;TO LOAD ! ! ! ! ! MOV AX,SEG PALET_BUFF MOV ES,AX MOV DI,DEST_BUFF_ADR MOV SI,DEST_BUFF_SEG INT 0A0H ;MLI interupt vector JC LOAD_ERROR ;Carry is set if ;an error occures. RET LOAD_ERROR: RET LOAD_SCREEN ENDP SET_PALET PROC MOV CX,16 ;Move the whole pallette MOV DX,0 ;Start with color #0 MOV AX,SEG PALET_BUFF MOV ES,AX MOV AX,OFFSET PALET_BUFF MOV AH,0AH ;Set palet code MOV AL,0 ;Border color = 0 INT 0EFH RET SET_PALET ENDP SET_SCRN_MODE PROC MOV AH,00 ;Set screen mode code MOV AL,2 ;set to 320 X 200 X 4 INT 0EFH     RET SET_SCRN_MODE ENDP CSEG ENDS END START SETEQUIPASM Ž· >#SETEQUIPCOM ºŽ· ?!SETEQUIPDOC Ɔ· @§SETEQUIPOBJ §Ž· ANSETGEN ASM ‰· B­SETGEN DOC •s· I·SETGEN EXE Z · K«SETGEN OBJ U · MèTEK EXE "‹6$Í rÃùº¸ ŽÀ¸´ °Íïô°Íï÷SETGEN EXE Z · K«SETGEN OBJ U · MèTEK EXE ‹6Í rÃùº¸ŽÀ¸´ °Íïô°ÍïÃaœ[È5„ U„ „'„@Ä "Ä$$Ä(&Ä+È.Ä4"Ä8$ÈGÄL5ŠÁ¨Z · K«SETGEN OBJ U · MèTEK EXE