IMD 1.18: 18/09/2014 16:15:02 sk*dos/68k system disk ds/dd 40/80tr 1989      `PT2' $|þÁIúÿî¼ |@Ba¼GúÚ9|a(fØ:ÿÓg@zÿÇzÿÂgVBƒ*|ÿÿÿÿ`–>:¨g2GDB¾:ÿ c<@àG¾*Bg*Jg *Bã@BãGF|@aJJg *Bâ@B< ЀAêFCê@|„@affòaNuÐ`æBfúNuaô*@fôNua g` gn gxDAMONCOMÓ XDELETECOM  XDEVICECOM  çXDIFFCOM‡ XDISKNAMECOM©WDOSPARAMCOM  YDRIVECOM&'°ZECHOCOM  ßWEDLINCOM ÑXELIZACOM!j WTIMECOM$$uWTOLOWERCOM$$  WTOMSDOSCOM$$w VTRACENABCOM$$" WTURNCOM$#$#€ XUBASICCOM$$&&�XUNDELETECOM&& VVERIFYCOM&& �XVERSIONCOM& & ¸ VWORKCOM&&nX gz`äJf,GúôaÿFggŠ ÿ|@a´GúÖaÿ(fr<AúÈB€00Nua¾"áIa¸ÐANuaò,@a®$aªÀBfö`„aÞH@,@aØÐŽ,@aÒ`âaÎ*@`ÿnaÆH@*@aÀÐ�*@`ÿ^ßü»üÿÿÿÿgNÕAú`Aú+ gN¹øê`ðNùøÀ DISK NOT LINKED  ERROR - TRY AGAIN? NNNNNNNNNNNNNNNNNNNNNNN ERRCODESSYS'' ÌZFAKEBAT""5XFAKEADMDVR#$Æ XFAKEADMTXT%Æ XFINDCOMéWFIXBOOTCOM ÍWFORMATCOM#' » ZFROMSDOSCOM¤XFTOHCOM"¹XHDFORMATCOM#èYYPIP&&wWDSK* #!Z'$ HELPCOM�XHTOFCOMu XIOSTATCOM!ŸZLINKCOMlWLISTCOM ! VLOCATECOM"ä VMAKEMPTYCOM WMONOPARDVReXMONOPARTXT!dXNOBEEPCOMÐ VDSK*' Z'$ PARALLELDVReXPARALLELTXT#cXPARKCOM·YPDELETECOM Ú XPEEKCOMÙ VPOKECOMØ VPROMPTCOMÖ VPROTECTCOMƒWRAMDISKCOM ZRANDOMCMD$ÜVSK*DOSSYS'd ZACATCOM nXADM-3ADVReXADM-3ATXT9bXAPPENDCOM XASCIICOM¸ WASCIITXT¸ WASMCOM �Þ YBACHCOM  ¥WBACKUPCOM ‰Y READCOM âXREADTXT2ãXREDOFREECOM&& Ä ZRENAMECOMdXS1TOCOMCOM ·WSCATCOM  nXSEQUENCECOM WSERIAL1DVR_XSERIAL1TXT']XSERIAL2DVRbXBEEPCOM  Ì VBUILDCOM  ËWCACHECOM  #¬ YCATCOM $ ­YCHECKSUMCOM oXCMODEMCOM  �àXCMPCOM ŽWCMPTXT�WCOMPARECOM ‚ VCOPYCOM žY SERIAL2TXT&aXSERIAL3DVRbXSERIAL3TXT "'bXSK*DOSCOR# ">ê ZSK*DOS09COM!#9¦ YSKEQUATETXT#  ZSPLITCOM#$$‘ XSTEPRATECOM$$´ VSYSTEMCOM$$nXTCATCOM$ $ nX !"#$ !"#$     ^+=ÿÿÿÿÿÿ ÿÿÿqqQQÿÿÿwwWWÿÿÿeeEEÿÿÿrrRRÿÿÿttTTÿÿÿyyYYÿÿÿuuUUÿÿÿiiII ÿÿÿooOOÿÿÿppPPÿÿÿ[[{{ÿÿÿ]]}}ÿÿÿ ÿÿÿaaAAÿÿÿssSSÿÿÿddDDÿÿÿffFFÿÿÿggGdNù€ˆ¤Nù€¢ÈNùzüª Nùˆ´NùˆÎ¶ NùˆèNùˆèÂNùˆèÎ NùŠ2NùzÔÚ NùÂNùzš0) FNCASE EQU 801 File Name case flag FOADDR EQU 784 File output address vector (long word) LASTRM EQU 753 Last terminator LINBUF EQU 608 Line buffer (128 bytes) LPOINT EQU 758 Pointer to line buffer (long word) MAXDRV EQU 802 Maximum _GÿÿÿhhHHÿÿÿjjJJ ÿÿÿkkKK ÿÿÿllLL ÿÿÿ;;::;ÿÿÿ''""'ÿÿÿ``~~`ÿÿÿ\\||ÿÿÿzzZZÿÿÿxxXXÿÿÿccCCÿÿÿvvVVÿÿÿbbBBÿÿÿnnNNÿÿÿmmMM ÿÿÿ,,<<,ÿÿÿ..>>.ÿÿÿ//??/ÿÿÿ** * SK*DOS / 68K EQUATES FOR USER PROGRAMS NOLIST * DATA AREA EQUATES (RELATIVE TO A6) BACKSC EQU 736 Backspace character ($08) BAUDRT EQU 3329 Baud rate for serial ports (/100) BREAKA EQU 762 Break (Escape) address (long word) BSECHO EQU drive number MEMBEG EQU 5104 First usable address (above program)(long word) MEMEND EQU 796 Last usable memory address (long word) NULLWT EQU 3324 Null wait constant OCOLUM EQU 3328 Current output column OFFSET EQU 770 Offset load addres`*** ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿ   ÿÿÿÿÿÿ 77 77 %88%88#99#99-------(44(44'5 743 Backspace echo ($08) CDAY EQU 751 Current date - day CMFLAG EQU 793 Command flag CMONTH EQU 750 Current date - month COMTAB EQU 754 Pointer to command table (long word) CURRCH EQU 766 Last character read from buffer CYEAR EQU 752 s (long word) PAUSEB EQU 3326 Output pause control byte PLINES EQU 3322 Number of printed lines per page PREVCH EQU 767 Previous character read PWIDTH EQU 3323 Page column width REPEAC EQU 749 Repeat character ($01) SEQNUM EQU 806 Seqa5'55 &66&66++++;++"11"11 '22'22$33$33*00*00+..+..*yŠú#Ít*yø¼.yøNÕ*yŠú#Ít*yø.yøNÕNuaˆ9ÿõ Yb�9ÿ÷ #b‚9ÿù bt9ÿû 1bhaœÅï9ÿý bRa†Åî9ÿÿ „e< ™b6a Current date - year DATBEG EQU 5100 Data area beginning - used by JINK DELETC EQU 737 Delete character ($18) LINCTR EQU 3327 Line-on-page counter (for pause) DEVIN EQU 3274 Current input device number (0) DEVOUT EQU 3275 Current output  uence number SLINES EQU 3325 Number of skipped lines between pages SPACOM EQU 739 Default write space compression (0=ON,$FF=OFF) SPECIO EQU 792 Special I/O Indicator SYSDIR EQU 744 System directory SYSTDR EQU 747 System default drive TTAbjÅð/9ÿñ¿Åÿñ*Nu9ÿñ@ÅÿñNuaÒIúN¹¶Nù° CALENDAR/CLOCK NOT PROPERLY SET -/è EÊü HE/EHEÚ/E*NuaÿŠ9ÿÿ …e. ™b(9ÿõaºŠü9ÿ÷a¬Êü Úf<ðaÿ The must be specified, and must apply to a val šKúõš`Kúõº€Eúôû¼EútKúôìEêšCú•aŒaˆa„a€a|MúôÔ,‰ |analajMúôÈ,ˆaba`a^a\aZaXaVaTaRMúô´,ˆaJaHaFaDMúôšÚšMúô¢,ŠMúô’<ˆBA:ô~0ÀÁкô~&@ zôxسËfúa aMúô|,‰Nu:ô`:ô]`JgÁÑüfòNuIúýØ 5MúôSBIúôQ¼0:ôI 3IúôC 9ce 360K 40-track drive, you can format the following: 1. 40-track double-density disk 2. 40-track single-density disk 3. 40-track double-density disk, track 0 single density Choose 1, 2, or 3: ¦å0For the 720K 80-track drive, you cid floppy drive. The , if given, overrides the default interleave constant. FORMAT will then ask for further information. Remember that to be bootable, the disk must be double-density throughout. Caution: FORMAT does real ¼0Múô Ba6aÎMúóý°:óòcêMúô: ·°:óågaþâ:óù°:óúfªNu zóÔ"zóÞ“üMúóܼ:ó×":óÀ€ºó©$:ó¶€ Bƒ:ó¸10:ó‘gÐ:󌀀 :ó|:óvgã¶d¼ 0 0 °:ó‚eB0 B0 B�2:óXÑÁMúód²:ó:¨g2GDB¾:ÿ c<@àG¾*Bg*Jg *Bã@BãGF|@aJJg *Bâ@B< ЀAêFCê@|„@af ! /f º9!eN¹GÆÅ*÷#ÍöaúLe4Kì<a’d& .fZaú2 Ae8<axd .g&N¹@Ôe:|B¬B¬ BlB,a0<Nuaùô*L0º9"bÐEaùÞdÆN¹MÀa<þNu9*÷Kìã g j€Kí`ðNuaù®d _g -g *g`º9!eN¹GÆÅfÐNù@ˆBors) Choose 1, 2, or 3: <4Þ:ëjÇúåaŽéúïMúë°¼|O|:<<aŠNuIúô  5B�B€Iúë¼0:ë 3Iúë  9c¼0gJ) gãMúëVGJf a¦fõrMúëB¼:<<a(fõZa´1IúꔂIúêÖJgIúêðB1í Múë‡åÞ:êžGi' fòaNuÐ`æBfúNuaô*@fôNua g` gn gx gz`äJf,GúôaÿFggŠ ÿ|@a´GúÖaÿ(fr<AúÈB€00Nua¾"áIa¸ÐANuaò,@a®$aªÀBfö`„aÞH@,@aØÐŽ,@aÒ`âaÎ*@`ÿnaÆH@*@aÀÐ�*@`ÿ^ßü»üÿÿÿÿgNÕAú`Aú+ gN¹øê`ðNùø!"føN¹@ÔNu  f#ÍöNuJ9ÀgBKù/Mù<-,ÍÛüfÿò<,ÍfÿøÛü<À,Ífÿø,|-Ž*yÄ*ŽNußü>3ÇÌG>‡,|Nsßü>9ÌG<FøÿŽF>‡,|Ns ae {dßNu*9îà�B†NuHçKìB<<ãJjQÎÿôÅ*÷JfJg<Bq|:<<aÊEùúéGùúë L @œ1 KúêÁACfB†iüúëaTKúêŸÞG8<jüg�QÌÿò`Þ AKúê{a(9úéÀ €g Àfæùúë`Þ:êUØg @f :êD €g:ê8fô`¶:éŽcÿ ²:éªfþ�Nu<<ÿÿ9úég g9aÒ< aÊNuHç0&*|B¤`Hç0Bƒ6*|B¸B‡$BE–•e`öÖ•0 0fJf»üBÈg J‚g< N¹JüÛü»üBÌf¸Lß Nu;šÊõᘖ€B@† 'èd HçB`Hç<&<,<N¹@ˆeT 9cJg6N¹GÆ Fb*0  c(åƒJfÖ„ãƒ"# aJaH`aD</a>*L<<f< Jga&QÎÿì<.a<<f< Jga QÎÿðLß `NuHça˜Lß @NuHl B…JDg& Dg, Dg> DÿðdL9 ÊÊüPMúØ>,vPNÖ9 Ê<Nu9 ÊÊüPMúØ*6P<Nu9 ÊÊüPMúØ,vPNÖÄ Ê<NuB…JDg Dg& Dÿðd89 ËÊüPMú×Ð,vP(Núëa¦QÎÿâ<Nu9úéfì9úé‡gaPKúéÂEša~ÇúëQÍÿòana`NuMú颼:é>G:<<aÿ€f aJfNu<Nu><ÿGfúüúëa(9úë €gàa9úëgÒNu<2fúNuaò9úéjøNu.<B@‡føNuIúò< 5<0 3(NKì`8<B�QÌÿüzè‘9|"`åƒÖ…<`¸N¹@ˆdø*Lß<Nu*Lß<þNuHDaHDaNuá\aá\aNuè aaNu0 9c~NùJüHçx((|E<9 ËÂ*Ôü ËN¹B$9+9„ÿB…N¹BD`¦Hçx,g^(|E<9 ËÂ*Ôü ËN¹B$9+9„ÿB…N¹BD g g#$Ö9 Ë<Nu9 ËÊüPMú×°*6P<NuÄ Ë<NuJ9+fB…9 ÊÊüPMú×~,vPNÖB…9 ÊÊüPMú×h,vP8NÖB…9 ËÊüPMú×R,vP NÖJ9+f,B…9 ËÊüPMú×4ÝÅB.1B…9 ÊÊüPMú×,vPNÖB…9 ËÊüPMú×ÝÅB.1B…9 ÊÊüPMúÖò,vPáGHDØGD00BáIN¹OBfD¸AfðN¹OBf6  g0Hç9 ËÅ*Ôü ËLß N¹Jü$%ÊÅ*Õ gJÊüPMúÖºÝÅ#Î*Ö,y*Ö,nJ9+g ,y*Ö,n¹ /NBo,|NfN     'sB9,y+#Îö,y*îNf.y*òLß9NuLù@*Ö< N¹L�  fPB…..á�……fø.,g4.1º.1d(|1./gH§< N¹L�/fîßüNuJ.5gT,nHçN–Lß Lù@*ÖgafŠMù+.JVg†J.fJ.gÝü`ì... ÿg:¼,f¼,?f.`6Ýü½ü-&eü|9l>"Nu:,>EàM…3ãfÖ(y+,|#¦IìD.gÀ¾Œg,G`ò,”B”(WJ,fB,N¹b0LßNu¹ù+f#üÿÿÿÿ+B9+&abfÔJ,=gÎN¹T fÆN¹W’f¾9lJ"N¹_Œf°B†,MMô``yîyïyðN¹W.N¹EN¹_Ô`ÿvJ,jl=,N¹_ÔNuBNu(Wü`ÿJ,|#¦IìD.gÿä¾(ÖNuJ¹f B9 Ë`ýøHç(/9#€  dü#€(y&y+#Ì+N¹P†Hù+f Lß8Lß NuB¹N¹CÎNù0:KúÓfMúÕâMîÿü-nP½Ífò+|NULL0Mú4+NP+NT+NXü Êü Ëü Ìü ÍNqNqNu<ûNu, fJ.,fD.,¾¹ Îg@¾¹!g@¾¹!ng@¾¹!¾g@¾ .|½ü,*e,Kù,*,y+Ýü`<ù+(B^<<>,ÝQÎÿü(y+`(Kù+*,y+Ýü`<<?,ÝQÎÿü(y+9l"N¹_Ôfÿ‚9l>"B…Nu,,ÜQÎÿü(y4Œg,G`ò(Wì­,;g*k(< N¹P†fÿ,;N¹P†fÿB…N¹P†fþøJlf N¹[hfþè`TBl`N¹_ÔfþØ9lJ"N¹_ŒftB†,MKìMô`kÝÝKíÝÝKíÝÝÝÝÝÝÝÝÝN¹_ÔfMì$Kì,Ý,Ý,ÝMìKì4,Ý,Ý,ÝN¹aRgh9,< `ØD=,;g, f< ` < af¼,;B,;a f°,=`Hç:,NgEÿ EÿfÌB,NN¹`€f²<,9F9F"J,gjì­N¹aÎfŽyÈ is also optional and may consist of one or more full or partial file names and/or extensions to be searched for. For example, ACAT 1.A/ TX.COM would list all files in   NAM SERIAL.DVR OPT PAG PAG * SERIAL DEVICE DRIVER FOR SK*DOS/68K * THIS VERSION IS CONFIGURED FOR THE PT-68K COMPUTER (-1A, * -1B, AND -2 VERSIONS) AND * IMPLEMENTS ICNTRL AND OCNTRL WITH TRANSLATION TABLES FOR THE * ADM-A TERMINAL. * COPYRIGHT|" üþfnIúp 5IèpB EIúˆ 6B„((zàŒ< 8 4Iú~ 5 4"(€á‰*h›ü Eúò$�EúòKúÚB�B�B�*hö  gnº(âgh  f -`ä .fR - -d *fLIú¢º.!e 1E -d *f2Iúˆº.!e 1E  -d *fIúnº.!e 1E `IúX #KúW­ÿÿ­:Tã g jdirectory A of drive 1 whose names begin with TX åþand whose extensions are .COM. The symbol * is a wild-card character inside file names.Incorrect drive number.Error in reading directory.Disk Name: Catalog of disk in drive  Number:  ! (C) 1987 BY PETER A. STARK * MOD. >>A<< 6-12-87 FOR PT-2 COMPUTER * MOD. >>B<< 6-4-88 FOR NEW DRIVER FORMAT **************** NOTE ************************************ * DEVICE DRIVER FORMAT WAS CHANGED 6-4-88 TO CONFORM TO * SK*DOS VERSIONS 2.4 AND €Kí`ð(H  ftúþ(H  fl,kògÈKèMú< : *g:g" €g& *g ªgº-f¼KíQÎÿÞ`2J-kÿ¬`ìJ-jÿ¢`âg š-fŒKíQÎÿè`èèè(g ñe<Å4èKèBE<<ãJjQÎÿô4Å$è$è$è µúhb¸`ÿ**hö  gº Name Ext Sectors Date Time Free sectors ã8Not enough memory for directory., in alphabetic order.0 "LATER. THE "DEVICE.COM" PROGRAM * VERSION 1.0 AND LATER, WILL, HOWEVER, WORK WITH EITHER OLD * OR NEW VERSION DRIVERS. CHANGES ARE IDENTIFIED WITH >>B<< * NOTE ESPECIALLY THE CHANGE OF THE DRIVER MARKER FROM "DR" * TO "DN" AND THE ADDITION OF THREE NEW(âg  g ,fþV -`Ü&JøþMú<µÎg*<ÿÿÿÿ,.2EúBEú $*k8²*bf0º‚bf*¼ª b f"¾ªbf***,* .*Cúà¼"JEê·ÊfºMúÎJgœ 4Ié< E|ÿIúa<aš8)< 8IúK<a„Iú~¼ )a–)a„a~)gÿDIú<aTBƒ)6`þDN†”š¦pz††šüADM-3A .DVR zÿø(3AúV<g¾føAúÿè†àN` <fAúÿÚ¼ |þ||||'F|€(((NuDUf ˆ™0»`ÌÀ9þ…Nua`âaêgü9þNuDgîDgDg$# CALLS. **************** IMPORTANT !! **************************** ** IF USING ASM.COM TO ASSEMBLE THIS FILE, CHANGE "PAG" ** TO "PAGE" IN LINES 2 AND 3, AND MAKE SURE TO ** USE THE -F OPTION **********************************************************†ü ad<: 3HC<ÈÃIú.¼0aJöùIú$¼ `ÿ 4 4HA(< 8Iú½< a 4 Jf<  3fêNu<- 3B€€ü €00 0f:Ä 3H@ 3NuIúØ 5 ( gþ\IúÜ 5(H 7 Iú]`ÞIú 5 ACAT prints a disk directory with all files in alphabetDg4(Nu*<a°*<;a¦<Nu*<a–*<>aŒ`äB†áŽa¢B‡üþ:ÿŽüÿÿa€fìGfö †ÿb`¼Mú*g¼…g:`ô:`¨0123456789 ÿ9þNuaôgüÅþNuMúdB…:gºDLž fô Eÿb aÚ<NuNuMúþ$ * THE FORMAT OF A DEVICE DRIVER FOR SK*DOS IS VERY RIGID, * ESPECIALLY AT THE BEGINNING AND VERY END. YOU MAY * SUBSTITUTE YOUR OWN DRIVER CODE, BUT MAKE SURE TO USE THE SAME * FORMAT FOR THE DRIVER AS THIS EXAMPLE. NOTE ESPECIALLY THAT * THIS DRIVERical order, The syntax is ACAT The drive and directory are optional and default to the current work drive and work directory. They may be specified as either just a drive number, or as both a drive numbTÝÅNÖ*<,<P`àHF<<aÿ°<=aÿ¨ aÿžHF aÿ’`´ ú   ²ÀNu IS NOT EXECUTABLE; IT IS TO BE LOADED INTO MEMORY * BY THE 'DEVICE' UTILITY, AND MUST BE POSITION-INDEPENDENT. DTBAUD EQU 51 BAUD RATE ENTRY IN DESCRIPTOR ********************************************************** * PART 1. BEGINNING, VERSION NUMB     ER, AND A 'DN' MARKER >>B<< * WHICH IS CHECKED BY 'DEVICE' TO AVOID ERRORS. ********************************************************** START BRA.S START NEVER EXECUTED DC.W $0003 VERSION NUMBER >>B<< DC.W $444E 'DN' ID MARKER >>B<< ********* ************************* ORG $0000 THEBEG EQU * ************************************************************* * PART 5. DATA AREA USED BY THE DEVICE DRIVER FOR VARIOUS * PURPOSES. ************************************************************* * ND OF TABLE CMP.B D6,D7 COMPARE WITH DESIRED BNE.S BAULOO LOOK MORE IF NO MATCH LEA BAURAT(PC),A0 MOVE.B D6,(A0) WHEN FOUND, STORE BAUD RATE LSR.W #8,D6 MOVE CODE RIGHT BRA.S GOTBAU AND CONTINUE BNOTFD MOVE.B #$66,D6 DEFAULT TO 1200 ************************************************* * PART 2. LENGTH SPECIFICATION. THE NEXT LONG WORD DEFINES * THE LENGTH OF THE DRIVER TO DEVICE.COM. THEEND IS A * LABEL WHICH IS PLACED AT THE VERY END OF THE DRIVER *********************************** BYTES 0-12: * NAME OF THIS DEVICE DRIVER DISK FILE - 12 CHARACTERS PLUS $04 DRNAME DC.B 'ADM-3A .DVR',$4 * BYTE 13: * DEVICE NUMBER SO THIS DRIVER KNOWS WHICH DEVICE IT IS DEVNUM DC.B 0 DEVICE NUMBER FOR THIS DRIVER * BYTES 14-17: * ADDRESS OF DEIF NOT FOUND LEA BAURAT(PC),A0 MOVE.B #12,(A0) AND STORE IT GOTBAU MOVE.L #DUART,A0 POINT TO DUART MOVE.B #$15,DCOMMB(A0) CRB: MODE=1, ENABLE RX&TX MOVE.B #$5,DCOMMB(A0) CRB: ENABLE RX & TX MOVE.B #$13,DMODEB(A0) MRB1: NO RTS, NO PARITY *********************** LENGTH DC.L THEEND ********************************************************** * PART 3. ENTRY POINT POINTERS. THE FOLLOWING POINTERS * DEFINE THE ENTRY POINTS INTO THE DRIVER. ALL ARE * RELATIVE TO THE ORIGIN **************** VICE DESCRIPTOR FOR THIS DRIVER DEVADD DC.L 0 * BYTE 18: * ACTUAL BAUD RATE BEING USED BAURAT DC.B 0 * BYTES 19: SPARE DC.B 0 ************************************************************* * PART 6. DEVICE INITIALIZATION. THIS CODE INITIALIZES PO, 8 BITS MOVE.B #$27,DMODEB(A0) MRB2: RTS,1 STOP BIT MOVE.B D6,DCLOCB(A0) CSRB: SET BAUD RATE MOVE.B #$80,DAUXB(A0) AUX CONTROL REG = SET 2 MOVE.B DDATAB(A0),D0 MOVE.B DDATAB(A0),D0 EMPTY RCVR BUFFER 3 TIMES MOVE.B DDATAB(A0),D0 RTS  ****************************************** DC.L INIPOR DRIVER INITIALIZATION DC.L INSTAT INPUT STATUS DC.L INCHAR INPUT CHARACTER WITH ECHO DC.L INCHAN INPUT CHAR WITHOUT ECHO DC.L ICNTRL INPUT CONTROL ENTRY DC.L OUSTAT OUTPUT STATUS RT B * OF THE 68681 DUART AT $FE0000 IN THE PT-68K COMPUTER. IT IS * ONLY EXECUTED WHEN LOADED BY 'DEVICE'. ALL REGISTERS CAN BE * CHANGED. ************************************************************* * HARDWARE EQUATES FOR THE PORT DUART EQU $FE00* BAUD RATE LOOKUP TABLE, CONSISTS OF BYTE FOR CLOCK SELECT * REGISTER, AND CORRESPONDING BAUD RATE CODE (EQUAL TO BAUD RATE * * DIVIDED BY 100). BAUTAB DC.B $11,01 110 BAUD DC.B $44,03 300 DC.B $55,06 600 DC.B $66,12 1200 DC.B $88,24 24 DC.L OUCHAR OUTPUT A CHARACTER DC.L OCNTRL OUTPUT CONTROL ENTRY DC.L INSTA1 INPUT STATUS (1 CHAR ONLY) >>B<< DC.L INCHN1 INPUT 1 CHAR ONLY, NO ECHO >>B<< DC.L BFLUSH FLUSH TYPEAHEAD BUFFER >>B<< **************************************** 00 DUART ADDRESS >>A<< DMODEB EQU 17 PORT B MODE REG DCLOCB EQU 19 PORT B CLOCK REG DSTATB EQU 19 PORT B STATUS REG DCOMMB EQU 21 PORT B COMMAND REGISTER DDATAB EQU 23 PORT B DATA REGISTERS DAUXB EQU 25 PORT B AUXILIARY CONTROL REG * INIT00 DC.B $99,48 4800 DC.B $BB,96 9600 DC.B $CC,192 19,200 DC.B 0,0 MARKS END OF TABLE *********************************************************** * PART 7. INPUT PORT STATUS CHECK. THIS ROUTINE IS TO RETURN * TWO THINGS: * 1. ZERO IF NO CH ********************* * PART 4. THE FOLLOWING LINE DEFINES THE BEGINNING OF THE ACTUAL * CODE AS BEING AT $0000. IT SERVES TO BREAK UP THE OBJECT FILE * TO MAKE IT EASIER FOR 'DEVICE' TO LOAD INTO THE CORRECT PLACE. ************************************ IALIZE PORT AND SET BAUD RATE INIPOR MOVE.L DEVADD(PC),A0 GET ADDRESS OF DEVICE DESCRIPTOR MOVE.B DTBAUD(A0),D7 DESIRED BAUD RATE LEA BAUTAB(PC),A0 POINT TO BAUD RATE LOOKUP TABLE BAULOO MOVE.W (A0)+,D6 GET NEXT ENTRY BEQ.S BNOTFD IF AT EARACTER IS READY, NON-ZERO OTHERWISE * 2. D5=0 IF NO CHARACTER IS READY, ELSE THE NUMBER OF * CHARACTERS READY. IN NON-INTERRUPT SYSTEMS, D5 SHOULD * RETURN A 1; ONLY IN INTERRUPT-DRIVEN SYSTEMS WILL IT * INDICATE A REAL NUMBER OF CHARACTERS IN INP !"#$UT BUFFER * PRESERVE ALL REGISTERS (AND CLEAR REST OF D5!) * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INSTA- ENTRIES, ALTHOUGH BOTH DEFAULT * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INSTAT CHHAN TAKES THE NEXT CHARACTER FROM THE TYPEAHEAD * BUFFER (AND CLEARS THE INSTA1 FLAG), WHEREAS INCHN1 TAKES ONLY * THE CHARACTER FROM THE END OF THE TYPEAHEAD BUFFER, AND CLEARS * BOTH FLAGS. *********************************************************** %APID SEQUENCE, RETURN THE CODE (WITH BIT 8 SET) IN D5, AND * ALSO RETURN THE ACTUAL KEY CODES (RIGHT JUSTIFIED) IN D6. ELSE * RETURN ONLY THE FIRST CHARACTER RECEIVED WITH BITS 8-15 CLEAR. IC0005 CLR.L D6 MORE05 LSL.L #8,D6 MOVE PREV CHAR LEFT BSRECKS TO SEE WHETHER THERE IS ANY CHARACTER * IN THE TYPEAHEAD BUFFER, WHEREAS INSTA1 CHECKS ONLY TO SEE * WHETHER THERE IS A 'LAST' CHARACTER AT THE END OF THE BUFFER * WHICH HAS NOT YET BEEN INPUT WITH THE INCHN1 ENTRY ******************************** INCHAN BSR.S INSTAT CHECK STATUS (CLR D5 LEFT BYTES) BEQ.S INCHAN WAIT IF NOTHING MOVE.B DUART+DDATAB,D5 ELSE GET CHARACTER RTS INCHN1 EQU INCHAN >>B<< *********************************************************** * PART 10. INPUT CHANNEL !&.S INCHAN GET ONE CHARACTER MOVE.B D5,D6 MOVE INTO D6 CLR.L D7 MOVE.B BAURAT(PC),D7 CURRENT BAUD RATE DIVU #$FFFF,D7 CONVERT INTO DELAY WAIT05 BSR.S INSTAT CHECK FOR NEXT CHARACTER BNE.S MORE05 IT'S THERE, GET IT SUB.W #1,D7 ELSE DE*************************** INSTAT MOVE.B DUART+DSTATB,D5 GET PORT B STATUS REG AND.L #1,D5 CHECK STATUS BIT RTS INSTA1 EQU INSTAT >>B<< *********************************************************** * PART 8. GET INPUT CHARACTER FROM PORT INTO !CONTROL. FUNCTIONS 0000, 0001, AND * FFFX ARE HANDLED BY SK*DOS, SO HERE WE ONLY ADD * 0002 = RETURN RAW 8-BIT CHARACTER * 0003 = ENABLE FUNCTION KEYS * 0004 = DISABLE FUNCTION KEYS * 0005 = RETURN A SPECIAL (DECODED) CHARACTER ********************"'CREMENT COUNTER BNE.S WAIT05 AND WAIT SOME MORE CMP.L #$FF,D6 IF NONE, IS THERE >1? BHI.S LOOK05 YES, LOOK UP IN TABLE MOVE.B D6,D5 NO, SO RETURN IT IN D5 BRA.S ICNTOK RETURN ZERO LOOK05 LEA TABL05(PC),A6 MOVE PREV CHAR LEFT NEXT05 MOD5 AND ECHO IT TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * THIS ENTRY USES THE TYPEAHEAD BUFFER, IF ANY >>B<< *********************************************************** INCHAR "*************************************** ICNTRL SUB.W #2,D4 CHECK FOR 0002 BEQ.S INCHAN RETURN RAW CHARACTER SUB.W #1,D4 CHECK FOR 0003 BEQ.S IC0003 SUB.W #1,D4 CHECK FOR 0004 BEQ.S IC0004 SUB.W #1,D4 CHECK FOR 0005 BEQ.S IC0005 M#(VE.L (A6)+,D5 GET NEXT TABLE ENTRY BEQ.S DONE05 IF AT END OF TABLE CMP.L D5,D6 COMPARE WITH WHAT WE GOT BEQ.S DONE05 MATCHES MOVE.W (A6)+,D5 SKIP CODE BRA.S NEXT05 AND LOOK AT NEXT DONE05 MOVE.W (A6)+,D5 GET THE CODE ($1FF IF ERROR) BSR.S INCHAN GET THE CHARACTER W/O ECHO BRA.L OUCHAR AND THEN ECHO *********************************************************** * PART 9. GET INPUT CHARACTER FROM PORT INTO D5 WITHOUT ECHOING TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR#OVE.L D4,D4 RETURN NON-ZERO IF ERROR RTS * ENABLE FUNCTION KEYS: {ESCAPE ;} ON ADM-3A IC0003 MOVE.L #$1B,D5 ESCAPE BSR.L OUCHAR MOVE.L #$3B,D5 ; BSR.L OUCHAR ICNTOK OR.B #$04,CCR RTS RETURN ZERO IF OK * DISABLE FUNCTION KEYS: {ESCAPE >}$) BRA.S ICNTOK RETURN ZERO * CONVERSION TABLE TABL05 DC.L $00001B30 F0 INPUT CHARS: {ESCAPE 0} DC.W $0100 RESULTING CODE DC.L $10001B31 F1 DC.W $0101 RESULTING CODE DC.L $00001B32 F2 DC.W $0102 RESULTING CODE DC.L $00001B33 F3 DC. IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INCH-- ENTRIES, ALTHOUGH BOTH DEFAULT >>B<< * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INC$ ON ADM-3A IC0004 MOVE.L #$1B,D5 ESCAPE BSR.L OUCHAR MOVE.L #$3E,D5 > BSR.L OUCHAR BRA.S ICNTOK RETURN ZERO * ENTER AND DECODE SPECIAL CHARACTERS. FOR EXAMPLE, ON THE ADM-3A * {ESCAPE $3X} IS FX. WHEN SUCH A COMBINATION IS RECEIVED IN A * R*W $0103 RESULTING CODE DC.L $00001B34 F4 DC.W $0104 RESULTING CODE DC.L $00001B35 F5 DC.W $0105 RESULTING CODE DC.L $00001B36 F6 DC.W $0106 RESULTING CODE DC.L $00001B37 F7 DC.W $0107 RESULTING CODE DC.L $00001B38 F8 DC.W      +$0108 RESULTING CODE DC.L $00001B39 F9 DC.W $0109 RESULTING CODE DC.L $00000000 IF NOTHING IS FOUND... DC.W $01FF ...RETURN THIS ERROR CODE *********************************************************** * PART 11. OUTPUT STATUS. RETURN ZERO1***************************** OCNTRL LEA OCTABL(PC),A6 POINT TO TABLE CLR.L D5 OCLOOP MOVE.W (A6)+,D5 NEXT ITEM IN TABLE BEQ.S ENDTBL WE'RE AT END OF TABLE CMP.W D4,D5 CHECK IF ITEM FOUND MOVEM.W (A6)+,D5-D5 GET OUTPUT STRING BNE.S OC7DC.W $0011 MOVE CURSOR TO (D5,D6) DC.W MOVCUR >$FF !!! DC.W $0000 MARK END OF TABLE DC.W $0000 MARK END OF TABLE ******************************************************* * PART 14. NEW IN REV. >>B<<. WHEN A TYPEAHEAD BUFFER * EXISTS, THIS FLU, IF OUTPUT IS NOT * READY, NON-ZERO IF READY TO OUTPUT NEXT. PRESERVE ALL * REGISTERS. IF NO HANDSHAKING IS USED, OR IF HARDWARE * HANDSHAKING IS USED, THEN SIMPLY CHECK BUSY BIT. *********************************************************** OUSTAT BTS 2LOOP NO, SO LOOK AT NEXT CMP.W #$FF,D5 MORE THAN ONE CHAR? BHI.S OCMORE YES, HANDLE IT DIFFERENTLY BSR.S OUCHAR NO, JUST OUTPUT IT OCNTOK OR.B #$04,CCR ZERO IF SUCCESSFUL RTS ENDTBL MOVE.B D4,D4 NON-ZERO IF FAILED RTS OCMORE LEA THEB8SHES IT AND CLEARS BOTH INSTAT AND * INSTA1 FLAGS TO INDICATE THAT ALL IS EMPTY. ******************************************************* BFLUSH RTS IN THIS CASE DOES NOTHING >>B<< ******************************************************* * THE END. L-T #2,DUART+DSTATB CHECK TX READY BUT RTS *********************************************************** * PART 12. OUTPUT CHARACTER FROM D5 TO OUTPUT PORT. IF NOT * READY, JUST WAIT FOR IT. PRESERVE ALL REGISTERS (INCLUDING D5) *********************** 3EG(PC),A6 POINT TO BEGINNING OF DRIVER ADD.L D5,A6 POINT TO BEGINNING OF ROUTINE JMP (A6) GO TO IT * RETURN SCREEN SIZE RETSIZ MOVE.L #24,D5 24 LINES MOVE.L #80,D6 BY 80 CHARS BRA.S OCNTOK RETURN OK STATUS * MOVE CURSOR TO POSITION D5,D69ABEL THEEND IS USED TO CALCULATE LENGTH OF * DRIVER. NOTE THAT THERE IS NO TRANSFER ADDRESS. ******************************************************* THEEND EQU * END .************************************ OUCHAR BSR.S OUSTAT CHECK IF READY BEQ.S OUCHAR WAIT UNTIL READY MOVE.B D5,DUART+DDATAB PRINT IT RTS ******************************************************* * PART 13. OUTPUT CHANNEL CONTROL. FUNCTIONS 0 4 MOVCUR SWAP D6 COL INTO LEFT HALF OF D6 MOVE.W D5,D6 ROW INTO RIGHT HALF MOVE.B #$1B,D5 BSR.L OUCHAR ESCAPE MOVE.B #$3D,D5 BSR.L OUCHAR EQUALS MOVE.B D6,D5 ADD.B #$20,D5 OFFSET BY 20 BSR.L OUCHAR ROW SWAP D6 MOVE.B D6,D5 Aü` Aúÿø!nö¸Iî #eÊ< $1l ¼l¾`Iî #eva^ g ,g, 7`fJ,fn "nö gX°.âgP!IÀ`º"nö gø g(°.âg" 4IìB EIúo 6`g 3fôNu-zöIú #aÜ g  7IúS`æ|ÿ;B,-zàöB(ÉB(Èaa”J(ÉgòIú/000, 0001, AND * FFFX ARE HANDLED BY SK*DOS, SO HERE WE ONLY ADD * 0002 = CLEAR SCREEN (SEND $1A) * 0003 = HOME CURSOR (SEND $1E) * 0004 = CURSOR UP (SEND $0B) * 0006 = CURSOR RIGHT (SEND $0C) * 0007 = BELL (SEND $07) * 0008 = CURSOR LEFT (SEND $ 5DD.B #$20,D5 OFFSET BY 20 BSR.L OUCHAR COLUMN BRA.S OCNTOK RETURN OK STATUS OCTABL DC.W $0002 CLEAR SCREEN = 0002 DC.W $001A SEND $1A TO OUTPUT DC.W $0003 HOME CURSOR DC.W $001E DC.W $0004 CURSOR UP DC.W $000C DC.W $0007 BELL Ö fÜüøIúv 5 Cú$!IÄJ(ÈfIî #a~ f¨|ÿ;|ÿÈIî"z�&n f Å·Éfö!IÄNu!IÄ ,gIî 7Iú+`N fîB(È".ö²ºNfœ|ÉNuIúJCú¦&z<³Ëg fB`ôNuJ, f 9z zNuIú 5Iú= 5   Iú`îIúu`èIù 7Iúˆ`ÚIúò 7Iú»`ÎIú 5 008) * 000A = CURSOR DOWN (SEND $0A) * 000C = CLEAR SCREEN AND HOME CURSOR (SEND $1A) * 000D = CARRIAGE RETURN (SEND $0D) * 0010 = RETURN SIZE OF SCREEN IN (D5,D6) * 0011 = MOVE CURSOR TO POSITION (D5,D6) (SEND ESC = V H) ************************** 6 DC.W $0007 DC.W $0008 CURSOR LEFT DC.W $0008 DC.W $000A CURSOR DOWN DC.W $000A DC.W $000C CLEAR SCREEN AND HOME CURSOR DC.W $001A DC.W $000D CARRIAGE RETURN DC.W $000D DC.W $0010 RETURN SIZE OF SCREEN DC.W RETSIZ >$FF !!! APPEND is ôûused to append two or more files together to make a new file. The syntax is APPEND <2 or more input file-specs> The very first file-spec must have an extension; the remaining file-specs default to the same ex !"#$tension as the ïÿfirst file if no extensions are given. Note that, generally, all the files should be the same type. An error will be generated if one of the input files is missing, or if the output file already exists.Invalid file name.Last $`  .W€âˆãˆ.@Aù¦f R€âˆãˆ @Gúp$<[äŠ$H$üQÊÿø&ÈAè\QÈÿäEúê$ˆCî`-Iö/.öCî Î|7 . f|7 2(g Aú(1| ((g Aú1| aRB„XO D   | ñ Nua(/XO`ÞHçþþ$/–):˜)6š)2œ).ž)* )$Á¢) 1£)¼)Ä)Ê) Ì)Î)�Ï(üÁÑ(öÁÒ(òÓ(ìÁÙ(êÚ"Ä2 (êþ~unlktsttrapvtraptasswapsvssvcsubxsubqsubstopstsplsnesmisltslsslosleshsshisgtsgesfseqscs)!æü ò-ð@,ñh(òæh)!æi(òæi)!æA¼òA€ñA€ð B@ð@B@ñB€@B�B€@@B€A°üò @"ü@ @ò°Èñ°Hñ°Àñ°@ñ°Àð °@ð  *Œ@ ‚°€ °�±ü C €+M@ €!C±ÈA°ˆA±ÀA°€A±À@ °€@ ±Hñbb±�bb± áp,ñåÀð@á�á0,�á�Aá°,AàPñàp,ñäÀð@à�à0,�à�Aà°,ANt%òNsñNwñNuñ�ñaa�ñTÀð@TÀñUÀð@UÀñWÀð@WÀñQÀð@QÀñ\Àð@\Àñ^Àð@^ÀñRÀð@RÀñTÀð@TÀñ_Àð@_ÀñUÀð@UÀñSÀð@SÀñ]Àð@sccsbcdrtsrtrrteRtdroxrroxlrorrolresetpeaornotnopnegxnegnbcdmulumulsMovesmoveqmovepmovemMovecmovelsrlsllinkleajsrjmpillegalextexgeordivudivsdbvsdbvcdbtdbradbpldbnedbmidbltdblsdblodbleˆAbbTÈ&òæUÈ&òæWÈ&òæQÈ&òæ\È&òæ^È&òæRÈ&òæTÈ&òæ_È&òæUÈ&òæSÈ&òæ]È&òæ[È&òæVÈ&òæZÈ&òæQÈ&òæPÈ&òæXÈ&òæYÈ&òæ�üò�Àð �Àñ€üò€Àð €Àñ @"ü@ @ò |%ò±@/ð@±@,ñ *Œ@ ‚ < ‚±/€@±,� €+M@ €!C±€/@@±€,AÁH,ñÁˆ,ñÁ ]Àñ[Àð@[ÀñVÀð@VÀñZÀð@ZÀñPÀð@PÀñNr%ò�üò@"ü@@ò�Èñ�Hñ�Àñ�@ñ‘@/ð@�Àð �@ð *Œ@‚�€ ‘/€@��‘ü C€+M@€!C‘ÈA�ˆA‘ÀA�€A‘€/@@‘À@ �€@ QHñQ@ð@Q@ñQ€@Q�QˆAQ€@@dbhsdbhidbgtdbgedbfdbeqdbcsdbcccmpmcmpclrchkbvsbvcbtstbsrbsetbrabplbnebmibltblsblobleBkptbhsbhibgtbgebeqbcsbclrbchgbccasraslandaddxaddqaddabcdNVÿÌHçþüKù¬�Iù¬Œ,<¬”Gù§~*<p(<¦œEù®d !"#$v ®n.(†*¼?ð UJg TR”"UR•‘`î*¼?ì UJg TR”"UR•‘`î*¼?à UJg TR”"UR•‘`î n *� UJg TR”"UR•‘`î*¼?¬ UJg TR”"UR•‘`îHy"² �†/Hy/N¹šôOïHy"²HyHyHy?ŽN¹šôOïHy"²Hy,HyHy?`N¹šôOïHy"²Hy#Hy%ýÒR®ÿÜ`ýjJ®ÿàgú ¹®lJ¹®g #ü® ¹3­ül #ü3­ü 9®€ÿÿÿò€ÿÿÿü#À® .ÿàå€ @Ñî -Pÿü-Dÿð-Dÿø-|§Öÿô nÿôR®ÿô"nÿðR®ÿð/ nÿüR®ÿü� _‘Jg`ÚHy. nÿøp @ <#èR€ÑÀg .ÿøT€` .ÿø/N¹<šPO-GÿügzHy//.ÿøN¹<šPO-Gÿôg +Øã� AÑÊ2HÁÀ�-@ÿÔ ®@ÿÔf&  nÿðR®ÿðrƒ-AÿØã� AÑÊ2HÁÀ�-@ÿÔ`Ð .ÿÔ°…f ®;ÿØgHyÿÿÿˆN¹W„XO-|¦Üÿô nÿôBJ9§fB ®`ÿÔg ®PÿÔf.J®ÿÜgþŠJ9§Ògþ€B§Hy§lHyN¹SvOï `þd ®=ÿØfH  nÿðR®ÿðrƒ-AÿØã� AÑÊ2HÁÀ�-@ÿÔ-|="ÿø nÿôR®ÿô"nÿ Hy?äN¹šôOïHy"²Hy-HyHy>¶N¹šôOï*¼>„(† UJg TR”"UR•‘`î TR”¼1*¼>€ UJg TR”"UR•‘`îHy"² �†/Hy/N¹šôOïHy"²Hy+HyHy>TN¹šôOïHy"²Hy3& .ÿü°®ÿôoV-nÿüÿô-nÿôÿðR®ÿðAîÿè-Hÿø-|ÿÜ nÿôJgS®ÿÜJ®ÿÜg nÿøR®ÿø"nÿôR®ÿô‘`Ú nÿø"nÿüB‘`(-|=:ÿüAîÿè-Hÿø nÿøR®ÿø"nÿüR®ÿü‘Jg`è-Dÿü-|§,ÿø nÿüJg nÿøR®ÿø"nÿüR®ÿü‘`äÓ§€Aîÿè-HÿüS®ÿð nÿðR®ÿð"nÿüR®ÿü‘Jg`è .ÿä°®ÿàgöJ®ÿägî .ÿäl .ÿäD€`!,øR®ÿø‘Jg¤`æB®ÿàS®ÿð  nÿðR®ÿðrƒ-AÿØã� AÑÊ2HÁÀ�-@ÿÔ €g ® ÿÔf R®ÿà ® ÿàl nÿôR®ÿô .ÿØ€`ÿ¬ nÿôB ®0ÿÔf2J9¦Üg*-|§ÿø-|¦Üÿô nÿøR®ÿø"nÿôR®ÿô‘JgþF`æ ®@ÿÔf,  nÿðR®ÿðr8èìƒ-AÿØã� AÑÊ2HÁÀ� €@gØS®ÿð#îÿð¦v#ù¦v!HyHy> N¹šôOïHy"²Hy*HyHy=ôN¹šôOï(†*¼=Þ UJg TR”"UR•‘`î*¼=¦ UJg TR”"UR•‘`î TR”¼3*¼=¢ UJg TR”"UR•‘`îHy"² �†/Hy/N¹šôOïHy"²Hy-HyHy=tN¹šôOï*¼=D(† UJg TR”"UR•‘`îHyHy/N¹r¤Oï ' .ÿäå€ @Ñî ".ÿä]Á�ã�Ð�-@ÿü-|§,ÿð-nÿðÿø nÿðR®ÿð"nÿüR®ÿü‘Jg`èHy. nÿøp @ <#èR€ÑÀg .ÿøT€` .ÿø/N¹<šPO-Gÿüg0Hy//.ÿøN¹<šPO-Gÿôg .ÿü°®ÿôo-nÿüÿø nÿøB`(-nÿøÿü nÿøJgR®ÿø`òAù§, .ÿø�®ÿüÑÀ-Hÿø 92§|d <=4` <=.-@ÿü "-¦rJ9¦Üg¨J®ÿÜg$Hy¦ÜN¹CšXO-GÿÐg/.ÿÐN¹NpXO`~Hy¦ÜN¹BlXO-GÿÌg4J®ÿÜf nÿÌ hdmüÎ nÿÌ0(HÀ/ nÿÌ/ nÿÌ hN�PO`4J®ÿÜg.J9§Òg&HyÿÿÿŠN¹W„XOB§Hy§lHyN¹SvOï J®ÿÜg€J9§gJ9§$gHyHy¦ÜN¹prPO`6p9§Ò fJ9§Òg J9¦Ü"(‡*¼=@ UJg TR”"UR•‘`îHy"² �†/Hy/N¹šôOïHyN¹ ¬XOB®ÿà-nÿàÿä-|ÿÜ#î ¦j .ÿܰ®lŽ .ÿÜå€ @Ñî PH€HÀ-@ÿÔ €+g, ®-ÿÔg"J®ÿàf -nÿÜÿà`LJ®ÿäfD-nÿÜÿä`:-|ÿÔ nÿÔ .ÿÜå€"@Óî ÑÑH€HÀ-@ÿØJ®ÿØg® ÿØ .ÿØ`pJ€gúAù(nÿøR®ÿø"nÿüR®ÿü‘Jg`è-DÿüB®ÿÔ-nÿÔÿØ-nÿØÿÜ-nÿÜÿà-nÿàÿä nÿüJg@ nÿüR®ÿüpN¹¦L5.5@ 5@+5@-5D/5†05†15†25†35†45†55†65†75†85†95ž T€".ÿü²€f Dp€#è @(gB®ÿä`#.fB§Hy§lHyN¹SvOï ¹­Èg B§N¹W„XO 9®(ѹ®$J¹­ÀgûêJ¹­Àg(† 9­ÀN¹¦L:’ÿÿÿ~:¼ÿÿÿ:úÿÿÿ‰;:HyN¹V†XO(†*¼= UJgŒ TR”"UR•‘`ìHyN¹V†XO(†*¼<ø UJg TR”"UR•‘`î*„ UJgN TR”"UR•‘`ìHyN¹V†XO(†*¼<æ##èÑîÿØ(gÜp".ÿÔ$.ÿÜå‚ BÑî Ò�Ð�#À¦v .ÿØN¹¦L/îb/úd0f0h04l0Fm0ro0–p0®s0¶t0îw0ôz+lþp`B9 §Òp9§Ò �`(` Hy N¹LXO#Ç®`p@€`ö y)ÿ: .ÿÜR®ÿÜJ€gÿ,`z .ÿØR®ÿØJ€fl ®ÿäf` .ÿüU€ @p€#è @(g@B®ÿä`þæ R€".ÿü²€f nÿü .f J®ÿÜgR®ÿÔ`R®ÿä`þºJ®ÿäg ®ÿänø ®ÿÔnìJ®ÿÜgJ®ÿÔgÞHy=,/N¹žÆPO#Ç«àJ¹«àg¾pg8 91§|c <=(` <=&/Hy§,N$/ UJg TR”"UR•‘`î*¼§, UJg TR”"UR•‘`î °†gHy"² �†/Hy/N¹šôOï#ü­À`pgN¹IªJ¹­ÀVÀ€ѹ­ÄJ¹«Üg8B§B§HyN¹Y¾Oï /9«ÜN¹ŸbXOJ¹­ÄgHy§,N¹�ÀXO(† FR”¼ J¹­ÄgHy/9­Ä/N¹r¤Oï (‡` TR”¼N TR”¼o$¦v 0eè y¦v 3bÚ y¦vЧ*`ÊJ®ÿäfÊ y¦v  c¼ .ÿÜD€-@ÿä`®Hy N¹LXO#Ç­ü`Ž`†J¹¦nfú® y¦v 0eú  y¦v 6bú’ y¦vЧ|0èR®ÿÔ`LRy¯dHy N¹LXO#Ç® ¹®l #ü® ¹®o#ü®``ú4R®ÿÔ`*¹žÆPO#Ç«ÜJ¹«ÜgºHy«àN¹Q�XOJ‡f ¹ÿÿÿÿ® WÀ€-@ÿÜ-|ªÖÿð#îÿð¦†#ù¦†¦r#ù¦r¦v-|§ÿøB¹®(-y®(ÿàü§$  nÿðR®ÿðrƒ-AÿØã� AÑÊ2HÁÀ�-@ÿÔ €g ® ÿÔf R®ÿà ® ÿàl nÿøR®ÿø .ÿØ€`ÿ¬ nÿøB ®0ÿÔf$  nÿðR®ÿðrƒ-Aÿ0*¼<Ô UJg TR”"UR•‘`îHy"² �†/Hy/N¹šôOïHy"²N¹šnXO/9­ÀN¹ ¬XOLß?N^NuNVHçþü nJg np°.f ..Lß?N^NuR®`Ø~`îNVÿüHçþüB®ÿü nJg np°.f-nÿüR®`Þ..ÿüLß?N^Nu<Ô: Syntax Error(s) Bad object file Bad sour     1ce file Symbol table overflowsetwwbr.com.mxt.txt) -zxx: set maximum symbol length (default -w: ignore trailing .l and .w in labels ) type (0=S3,1=S2,2=02,3=03,4=03+21,5=05,6=05+22,default -tx: set object -s: 7ïfJ.ÿîg`Èp.ÿî°.ÿïc-nÿüÿð®æÿðp.ÿî°.ÿïf ..ÿðLß?N^NuJ®ÿêf~`îp.ÿî°.ÿïc-nÿðÿü-nÿø .ÿü ® ÿên B®ÿê nÿê` ".ÿêâ�-Aÿê AЈ-@ÿð @-Pÿô nÿôR®ÿôpÀ†@ÿï nÿøR®ÿøpÀ†@ÿîp.ÿî°.ÿïfJ.ÿîg`È`ÿ\`ÿhNVÿØHçþüKù§ÔIù§Ð| *<ðx_&<€BpF=J®ÿìg nÿì ®ÿä P` .ÿôå€ @Ñü¯¢ ®ÿä P.`þòNVÿìHçþüB®ÿô-nÿü nÿüJg nÿüR®ÿüpÑ®ÿô`æ .ÿü�®-@ÿð°¹®o nÑù®B .ÿô€ÿå€ @Ñü¯¢-PÿìJ®ÿìgd-nÿü-nÿìÿø® ÿø nÿø"nÿüp°f nÿüJf ..ÿìLß?N^NuR®ÿüR®ÿø`Ò nÿø"nÿüp°d~`Ú nÿì-Pÿì`ÿ˜~2generate listing of symbol table -pxxx: set line width (default 80, <128, >50) -ofile-name: specify object file name 0) -mx: set processor type (680x0, default 680 -l: suppress formatted assembly listing -hxx: set page h 8€-nÿø nÿøJgR®ÿø`ò .ÿø�®-@ÿÜ €l ~Lß?N^NuS®ÿø .ÿøS€ @ .ff nÿøp€†N¹¦LDFbDJlDPsDRwDTƒ`¼@` †`~`ÿšU®ÿÜ ®ÿÜl~`ÿ†U®ÿø-nÿì .ÿìЮÿÜ-@ÿð @Pÿá nÿðB-|Áhÿü .ÿü-|€ÿØÐ®ÿØ-@ÿä @-Pÿô-nÿôÿè nÿèR®ÿèp>`ÊNVÿäHçþüKù¬ŒIù¬�HyN¹V†XOHy"²HyHyHyQ|N¹šôOïB®ÿð-|ÿÿÿÿÿìB®ÿè-nÿèÿô ®ÿÿðnŠ .ÿðå€ @Ñü¯¢-PÿäJ®ÿägh .ÿìmF-nÿôÿü-nÿäÿø® ÿø nÿø"nÿüp°fJ®ÿüg R®ÿüR®ÿø`à nÿø"nÿüp°b`-nÿðÿì-nÿäÿè-nÿèÿô® ÿôR®ÿð`ÿnJ®ÿèg”Hy3eight (default 66, >23) -f: suppress even address alignment -d: generate debugging output -b: suppress generation of object file options are as follows: [+/-options] source-file-name [object-file-name] Usage: 7.1 CSC 9À„@ÿã nÿìR®ÿìpÀ„@ÿâp.ÿâ°.ÿãfJ.ÿâg`Èp.ÿâ°.ÿãc-nÿüÿä®Pÿä nÿð®ÿáp.ÿâ°.ÿãfÜ 90§*f nÿôpÀ†f~`þ¸ nÿä0(HÀ€ðN¹¦LE‚€E�ÀE˜@E EÚEòpÀƒf~`þd¼ÿ`\pÀ… €@f¼ÿpÀ…°ƒfp` .ÿä.`?N¹V†XO*¼¬” UR•¼ nÿè/(/N¹s~PO*‡ GR•¼ (®ÿô TJg UR•"TR”‘`î UR•¼ Hy"²/—¬”HyHy¬”N¹šôOï .ÿìå€ @Ñü¯¢"nÿè ‘`þ¾Lß?N^NuNVÿôHçþüKù¦z U"Up°(f Up(€0-@ÿü€ÿÿÿøg ~ÿLß?N^Nu Up(€0-@ÿø-@ÿô .ÿü°®ÿôl-nÿüÿø4 68010 Assembler Version "@Ä>Ä@@þNVÿøHçþüKùÄ>,<æIù¦vGù§lEù§‚*<¯f(<Ä@v .]À€@ÿÿJ.ÿÿg .D€-@`B TPÿþJ.ÿþg . ÿþfBp.Lß?N^Nu EÑÃ"EB) p) €JfR . ÿþb~`Ô .,ÿþfR”J.ÿÿgÿ¨.`ÿ¾ .'ÿþWÀ€ :þ2Jg agp` .ÿä.`þJg igp` .ÿä.`þ..ÿä`ýúJ®ÿØg’p.ÿâ°.ÿãc-nÿäÿü-nÿì nÿðB .ÿü ®ÿØn B®ÿØ nÿØ` ".ÿØâ�-AÿØ AЈ-@ÿä @-Pÿô-nÿôÿè nÿèR®ÿèpÀ„@ÿã nÿìR®ÿìpÀ„@ÿâp.ÿâ°.ÿãfJ.ÿâg`È`þzJfR nÿøp€†€pN¹¦LFÆaFÖ@`-nÿüÿôp U€ afP®ÿøP®ÿô .ÿø°®ÿôn .ÿøR®ÿøå€ @Ñü³¢ �¹´`Ú U (/fp` U (-fpÿ`p.`ÿnNVÿðHçþüKù¦v ® WÀ€-@ÿôJ®ÿôgB®ÿð-nÿðÿø-Uÿü nÿüJgn nÿüp/HyQ`N¹`Z ® ÿøo2p ".ÿø�0€�-@ÿø €am6 ®f6þR”R.ÿý`ÿ*®ÿÿ.`þ¢/N¹†ÚXO-Gÿø °†f^ Ѓ// N¹d>PO ®o n R® ÑË’ n R® Ñ˪ ®o n R® Ñ˪ n Ñ˪.`þ0 ®ÿøfp`p….`þNVÿêHçþü|_-nÿø-|´ÿü .ÿü-|@ÿêЮÿê-@ÿð @-Pÿô nÿôR®ÿôpÀ†@ÿï nÿøR®ÿøpÀ†@ÿîp.ÿî°.ÿ < nÿè .@..ÿèLß?N^NuR®ÿüR®ÿø`ÿª nÿø"nÿüp°d`-nÿèÿì nÿì-Pÿè`ÿj-Uÿø .ÿð€ÿÿÿòH€ÿÿÿü-@ÿðÑ• °¹¦‚m> <й®/N¹¡¶XO-Gÿø f~`ÿ‚ .ÿø€#À¦‚ .ÿøÐ®ÿð*€-nÿøÿä nÿä ®ÿè nÿä!n  nÿä .@-nÿäÿü® ÿü nÿüR®ÿü"nR®‘Jg`èBÿøn,-nÿøÿø®ÿÿÿ©ÿø/.ÿð/.N¹¥ÞPO Юÿø-@ÿð`ÿ|J®ÿôWÀ€‘•..ÿð`ÿ2NVÿúHçþüKù¦v|'B®ÿú|ÿÿJ.ÿÿgX Up°†fR• Up°†g ..ÿúLß?N^Nu y¦v  d..ÿú`æ .ÿúဠUR•r�ÿ€�-@ÿúS.ÿÿ`ÿ¤ Up°†g~ÿ`ÿ¶R•..ÿú`ÿ¬NVÿØHçþü,<ÿ*<ðxKù§lB®ÿÜ-nÿÜ !"#$Cÿð-Mÿü ®ÿÜlR®ÿÜ nÿüR®ÿüB`æ 9®$€gR¹®$HyB§HyN¹Y¾Oï n0(HÀ€ÿ-@ÿô/HyN¹¥ÞPO-GÿØ®¶FÿØ nÿØ(H€HÀ€°„gˆHy¯fN¹†ÚXO-Gÿä ‡ÿÿÿœl -|ÿÿÿ˜ÿô`0Hy¯‚N¹†ÚXO-Gÿà ‡ÿÿÿœl -|ÿÿÿ—ÿô` n0( HÀ€ÿ�®ÿô-@ÿÜp9Ir¤Oï /9®$/ \—N¹s~PO L"LFF`B®ÿl ®ÿll nÿüR®ÿü†R®ÿl`æ/./. / —N¹cèOï -Gÿü-Lÿø®$ÿø .ÿü°®ÿøg nÿüR®ÿü†`ê ¹?­üoÐ ¹ªÖ¦rgÂ-|ÿÿÿ÷ÿl •ªÖfŽ-|§ÿøB®ÿl nÿøJg" ®ÿll nÿüR®ÿü"nÿøR®ÿø‘R®ÿl`Ö*¹¦r ® ÿll nÿ O æJ¹­Äf Üp9§Òg ÌB®ÿø .N¹¦LZhZlZlZp]p]†` cäB® DB�B®ÿüJ®g j CpN¹¦LZ°0Z°1["4["6\ü .Д €nÒ/./.  FÐ�/N¹cèOï J® g&B®ÿô .ÿô°®l nÿôR®ÿôÑîD§ÔÀ…-@ÿøJ®ÿÜgÔ nÿØ(H€HÀÀ…".ÿø²€f¬ nÿØ(H€HÀÀ†-@ÿì°®ÿäg .ÿìÀ„fŠ .ÿìÀ®ÿäg~ nÿØ(H€HÀÀ†°®ÿìf^J®ÿÜgV nÿØ(PRH€HÀÀ…".ÿø²€f> nÿØ(H€HÀÀ†-@ÿè°®ÿàgz .ÿèÀ„f .ÿèÀ®ÿàffS®ÿÜR®ÿô\®ÿØ`ÿ�-|ÿÿÿ‹ÿô`S®ÿÜR®ÿô\®ÿØ`ÿ(-|ÿÿÿŒÿôJ9§Òg /JüR®ÿü†R®ÿl`æ-|¦ÜÿøB®ÿl nÿøJg" ®ÿll nÿüR®ÿü"nÿøR®ÿø‘R®ÿl`Ö®ÿh ® ÿll nÿüR®ÿü†R®ÿl`æ .ÿhS®ÿhJ€gJ UpN¹¦LUî UðUö UúR•B®ÿh`À U† nÿüR®ÿü"UR•‘`ÿ¬S®ÿü .ÿü°Œg nÿüp°†gèR®ÿü nÿü¼ Hy"² .ÿü�ŒR€/Hy/ N¹š!P pÑ9¦Š`Þ F .ã€Ñ� D .Ñ� .Ñ”`ÄJ® f D .Ñ� .Ñ’`¬J’gª .ÿü°®lš nÿüÑî Jg‚ ’n.B®ÿô .ÿô°’l"F QR‘ÑÕBR®ÿô`è D .�®ÿü-@ÿøÑ� .ÿøÐ’Ñ” .ÿü°®l"F QR‘ÑÕ"nÿüR®ÿüÓî ‘`ÞB®$® 9®€"²€o`¸R®ÿüR’ DR�`ÿZ nÿüÑî JfE.ÿôN¹W„XOB§/ HyN¹SvOï ~ÿLß?N^Nu nÿØ0HÀ-@ÿÜà€€ .ÿÜ@ nÿØ(H€HÀ-@ÿÜ€€g 90§*g2 .ÿÜ€/N¹{¦XO-GÿÜ m-nÿÜÿð`/.ÿÜN¹W„XO`HyÿÿÿŒN¹W„XOR®ÿð .ÿðã€#À®(J9§Òg/9®(/ HyN¹SvOï ..ÿð`ÿHQ`.0123456789ABCDEFHOabcdefhoKôOï ®gýœ ®gý� ¹­Ègý‚B§N¹W„XO`ýtNVHçþüKù¬ŒIù¬�J¹®gJ9§ÒfLß?N^Nu*¼¬”J¹­Ìg" .ѹ­Ì 9­Ì°¹®mÿÒ UR•¼ (¼d¤ TJg UR•"TR”‘`î#ü­Ì/9­ÌR¹®/9®/N¹r¤Oï *‡J9§ªg UR•¼ (¼§ª TJg UR•"TR”"QN .ÿü-|ÿøÐ®ÿø-@ÿô .ÿô°®l nÿôÑî Jf R®ÿôR®ÿø`à .ÿô°®m D$®ÿø Ñ�`¤ 9®€".’®ÿü-AÿøÒ”²€n0J®ÿøg| D .ÿøÑ� .ÿøÑ” .ÿü°®l"F QR‘ÑÕ"nÿüR®ÿüÓî ‘`Þ F-PÿôS®ÿô nÿôÑÕJf6-|ÿøS®ÿô .ÿô°¹ÄRm nÿôÑÕJfR®ÿø`à ®ÿøo F .ÿø‘� .ÿø‘F Value Symbol "QŽÄBQ�üNVÿðHçþüKù®|ÿIù®4GùÄBEù³âB9§&p9§&"²€oS”`¦ l "D�Ð�(€-FÿôJ®ÿôgŒ lp` å€ @Ñî -@ÿøJ®ÿøgP-|ªÖÿü-|ÿÿð .ÿðS®ÿðJ€g,/.ÿøN¹™ÂXO-Gÿô °†g nÿüR®ÿü .ÿô€  g`È nÿüB .ÿô°†g L‘`î UR•¼ UR•¼ Hy"²/—¬”HyHy¬”N¹šôOï`ÿ(NVÿüHçþüKù¬�Iù¬ŒGù­È|p9§Òg ®f&†`úJ®fÒ °†f ~Lß?N^Nup9§~@gHHyN¹V†XOB®ÿü nÿüÑüªÖJgR®ÿü`ì/—"¢/.ÿüHyHyªÖN¹šôOï-FÿüS®ÿü .ÿü°“mŒHy#R” .ÿøÑ’`ê 9®€".’®ÿü-AÿøÒ”²€nvJ® g" .ÿü°®l2"F QR‘ÑÕ"nÿüR®ÿüÓî ‘`Þ .ÿü°®l"F QR‘ÑÕBR®ÿü`æ D .ÿøÑ� .ÿøÑ”`v 9ÄZ DÐ�"9®$²€g` DB® ®J”fJ’gl CpN¹¦L]¾0]¾1^¬&¼¬” SR“¼S SR“"Cp€-@ÿør3³€€Hy G°“o &• å€ @ÑÊB� å€ @ÑÊR�`öJ®ÿøg /.ÿøN¹ŸbXO m å€ @ÑÊB�S•&• lÿ6#üªÖ¦r y¦r¼ y¦rB(R9§Òp9§Ò c .Lß?N^NuB• å€ @ÑîHyd°Hy¦œN¹žÆPO ‡f#üÿÿÿ­À.9­À`ÂB“ À§Îp9§Î(€#À®(#ù®(®$ü§(#Æ® ù§€§~BMN¹V†XO(¼¬”*¼d  UJg TR”"UR•‘`î nÿüÑü¦Œpå€ @Ñü¬*� UJg TR”"UR•‘`î TR”¼ /—"¢/—¬”HyHy¬”N¹šôOï`ÿj&†p9§~@gÞHyN¹V†XO(¼¬”*¼d˜ UJg TR”"UR•‘`î 9®í€€§Ö*€ UJg TR”"UR•‘`î*¼d” UJg TR”"UR•‘`$S.ÿør³€Ñ”//N¹sOï &‡ X€#À¬� y¬�Jg SR“"y¬�R¹¬�‘`âHy <ÿr9¦ŠD�’”Ð�//N¹sOï &‡ GR“¼ -Sÿø®¬”ÿø EJ�f’/9«Ü/.ÿøHyHy¬”N¹šôOï ".ÿø²€gf E ¼ÿÿÿ‰`ZB®ÿøJ”f&J’VÀ€g ’ ]À€-@ÿøJ®ÿøg°J®ÿøg" Ñ”B®ÿø H§B§Hy N¹Y¾Oï `þl~`ÿjNVÿhHçþü| Kù¦†Iîÿq-Lÿü-y­üÿh®%ÿh ®gÂ/./. /.N¹Y¾Oï p9§~@g2 ®g ®f ¹­Èg B§N¹W„XOLß?N^NuJ9§&g ®fÿæü§&p9§&/N¹V†XO ®gDHy 9®å€ @Ñü³â// N¹NîHy 9®å€ @Ñü³â//N¹r¤Oï (‡ GR”¼ /—"¢/—¬”HyHy¬”YŒ2N¹šôOï` J“gS“ SÑü¦Œp›".D�Ð�€R¹­Ä~ÿ`þÄFdŽ"ÄJÄNÄVY¾NVÿôHçþüKù¦nIùÄJGù¬ŒEù®,,<ÄN*<­À(<ÄV&<§|J¹«ÜgT.ÿø°’l"F QR‘ÑÕBR®ÿø`èB’ U"CpйÄF"@)ÿÎ0€ U"C 2fp`p-@ÿøÑîÿø € ®ÿøf U à€@ R€Ñ®ÿø EJ�f./9«Ü/.ÿøHy/N¹šôOï ".ÿø²€g E ¼ÿÿÿ‰J’gx U 95§|dp!`p"€J”g ѹÄZHyÄZ/R—N¹d>PO/ /Z—N¹d>PO EJ�f./9«ÜHy Hy     U/N¹šôOï ‡ g E ¼ÿÿÿ‰B’J•f^ 92§|dpK` C 2f <õ` <#À®¹ ® 9®/N¹¡¶XO*‡f EJ�fŒ E ¼ÿÿÿ‰`€ ®gb 9®$ DÐ�#ÀÄZB” CpN¹¦L`°0a1az2aª/9ÄZ/X—N¹s~POHyÄZHy§‚N¹d>POp9§‚Aù[¥FPO ".ÿèR®ÿè²€orJ9§Òg\/.ÿð/ /.ÿìN¹SvOï B®ÿè .ÿè°®ÿøl nÿèR®ÿèÑÍ"nÿðR®ÿðÓÍ‘`Þ ®ÿèl nÿèR®ÿèÑÍB`è-|ÿì-|ÿèB®ÿðJ®ÿôg, ®æÿôg /.ÿôN¹W„XO .ÿøÑ¹®( .ÿøÑ®ÿð`ÿ&J9§Òg.J®ÿðg/.ÿð/ /.ÿìN¹SvOï B§/ HyN¹SvOï Lß?N^NuNVÿðHçþa b` n CîÿáÑÉ"y¦vR¹¦v‘R® `Ê n CîÿáÑÉBHnÿáN¹HØXOJ‡g .ÿØ�•` ®k fp9§Òfø .ÿØ�•`îB§HyN¹@PO ‡æfÆAù¯f-hÿÜ . N¹¦Ll~el”flªgl¾hlÐilâjm .ÿܰ®ÿÔfz .ÿØlŽ:�•`p .ÿܰ®ÿÔV§‚Ð(Aù§‚Ð(Aù§‚Ð(À¦Š F#ü ÄR ¹ÄR`ù^/9ÄZ/T—N¹s~POHyÄZHy§‚N¹d>POAù§‚p(Aù§‚Ð(Aù§‚Ð(À¦Š F#ü ÄR ¹ÄR`øü U 9ÄZà€@ U 9ÄZ@ F#üÄR ¹ÄR`øÌHyÄZ/R—N¹d>PO Fa¾Ð#üÄR ¹ÄR`ø¤ Cp \üKù®$8|B®ÿðJ® gp`R® . -@ÿô ® f S® . `p-@ÿü ® o R€€ÿÿÿþ*€B§B§HyN¹Y¾Oï J9§gJ9§$gHy/.N¹prPOJ®ÿüfB§HyN¹@PO-GÿøfAù¯fÑÌB�-PÿøJ®ÿøg ®æÿøf–/. Aù¯fÑÌ/N¹¥ÞPO-GÿðJ9§ÒgTHnÿðHy§lN¹d>Pbmd .ÿØ�•`Z .ÿܰ®ÿÔoN .ÿØ�•`D .ÿܰ®ÿÔn: .ÿØ�•`2 .ÿܰ®ÿÔl( .ÿØ�•` .ÿܰ®ÿÔg .ÿØ�•`HyÿÿÿŽN¹W„XOHy/.N¹iJPOLß?N^NuNVÿ¸HçþüKù¬�Iù¬ŒGù®Eîÿ¸B® ®? l( y¦v  b` n ÑÊ"y¦vR¹¦v‘R® `Î n ÑÊB “ m|(¼¬”*¼sÞ UJg TR”WN¹¦Laþ0aþ1cD2cd&• SR“¼S SR“"Cp€-@ÿø€7€ SR“¼0 SR“ .ÿør5³€€Hy®`Hy§ŒN¹d>PO/9®`#ü§‚¬�/9¬�N¹s~PO .ÿøã€Ñ¹¬� y¬�Jg SR“"y¬�R¹¬�‘`âHyJ®ÿøg <û` <úAù§‚r( ��Aù§‚r( ��Aù§‚ ]OHyHy§lHyN¹SvOï J®ÿôg .ÿðop9§|N¹¦Lh"0h"1h42hH4hH6h^-Lÿô .ÿðè€-@ÿø`b-|€ÿô .ÿðî€-@ÿø`L-|@ÿô .ÿðrâ -@ÿø`6 ¹®l-|ÿô .ÿðr â -@ÿø`-|ÿô .ÿðr â -@ÿøJ®ÿøg"/.ÿôB§HyN¹Y¾Oï S®ÿc"UR•‘`î*Š UJg TR”"UR•‘`î TR”¼ Hy"²/—¬”HyHy¬”N¹šôOïHy"²N¹šnXOHyN¹ ¬XOR“ å€ @Ñü«àHysÜ/ N¹žÆPO ‡f|(¼¬”*¼sÈ UJg TR”"UR•‘`î*Š UJg TR”"UR•‘`î TR”¼ Hy"²/—¬”HyHy¬”N¹šôOïHy"²N¹šnXOHyN¹Xr( ��Aù§‚r( ��//N¹sOï &‡ GR“¼ �•-@ÿø EJ�fÌ/9«Ü/.ÿøHy/N¹šôOï ".ÿø²€g¤ E ¼ÿÿÿ‰`˜ U 9®`à€@ U 9®`@(¼ C 2g(¼Hy®`/R—N¹d>PO U"CpйÄF"@)ÿ΀ ¹ÿÿÿÿ®`g0 EJ�f*/9«Ü/Hy/N¹šôOï " ^ø .ÿôÑ•`Ø .ÿð".ÿôS�À�-@ÿøJ®ÿøg/.ÿøB§HyN¹Y¾Oï .ÿøÑ•~Lß?N^Nu .ÿðÑ•B§B§HyN¹Y¾Oï ~`ÚJ9§Òg&HyÿÿÿŽN¹W„XOB§Hy§lHyN¹SvOï ~ÿ`ÿ¨NVHçþüKù§~Iù§ÒJfJ® fÎ . N¹¦Li¬iòiü j j ?j2@jPOHyHy§lHyN¹SvOï ~`þêHyÿÿÿN¹W„XOJgB§Hy§lHyN¹SvOï ~`þºNVÿÔHçþüKù® -UÿÜ-|ÿØB®ÿÔ ® f  €*€`� .ÿÜã€*€J®ÿÜg€ ®d fdB® ® l, y¦v f®$-|ÿÿÿÿÿøB®ÿü .ÿüÀ§$ ® l$B§HyN¹@PO ‡æVÀ€-@ÿü`DJ9¦Üf.p9§~f €gR’B§B§HyN¹Y¾Oï +’¸ My§Î p9§ÒfnJ®ÿüg ~ŽLß?N^Nu . ^À€ MJ( VÁ�ã�€�-@ÿü€//.ÿü/5¸Hy§N¹FòOïJ‡fÀ#üÿÿÿ~ !"#$g­À.9­À`ÿžJ®ÿügHyÿÿÿŽN¹W„XO`”Hy§N¹HØXO(‡gr T-hÿø Tp(J® gr`rÀ�gHyÿÿÿ€N¹W„XO`NJ® g .ÿø°µ¸g>Hyÿÿÿ„N¹W„XO`. T!u¸-hÿø MJ( g T(`HyÿÿÿN¹W„XO ® lHJ9§Òg@ ® fJ9¦Üf.HnÿøHy§lN¹d>POHyHy§lHym€�-€p-`p0 n€(�-/./. N¹ypPO`þ\/.—/ N¹d>PO .e g p. °…f@ nJ( g6-: npþ"n")$Ô®ÿü’‚Ð�!@ /./. N¹yPO`ýö nJ( g" n R® ÑÍ” n R® Ñͬ-|ÿøp. °†f .ÿø€�p-Àp-`p7Юÿø�-p s…N2…N3…V0…V1…À4…À5†€/ N¹søXO/ HyN¹tNPOLß?N^Nu/ N¹søXO/ HyHyfN¹u$Oï `Ô/ B§N¹tNPO/ HyN¹zþPO`¶/ B§N¹tNPO/ HyHyeN¹u$Oï `ÿ�/ B§N¹tNPO/ HyHyjN¹u$Oï `ÿh/ B§N¹tNPO/ HyhN¹SvOï MBµ¸ 5¸@ ~`þŽNVÿüHçþü .Ю-@ÿü @BS® .m< nÑî/. Hy N¹¥\PO €0€/. Hy N¹¥FPO-G `º..ÿüLß?N^NuNVÿøHçþü .Ю-@ÿü @BS® .mB nÑî . €-@ÿø € l .ÿø€0` .ÿø€7€ . è€-@ `´..ÿüLß?N^NuNVn- n R® Ñͬ n Ñͬ..ÿø`ýr .f f~“`ýdp. °†f~’`ýTp. °ƒf.`ýD np"Ò®ÿüÐ�‘¨ n �§f-:/./. N¹yPO`ý -;/./. N¹ypPO`üò~�`üìNVÿüHçþü n -h ÿü ®ÿÿün ®ÿÿ€ÿülHyÿÿÿ•N¹W„XO nÑü§l .ÿüà€€Aù§lÑî .ÿ!tN¹zþPO`ÿH/ B§N¹tNPO/ HyN¹tNPO`ÿ(/ B§N¹tNPO/ HyN¹tNPO/ HyN¹yPO`þø/ B§N¹tNPO 5¸ €n 5¸ €ÿÿÿ€lHyÿÿÿ†N¹W„XO 5¸@~`þ¸/ B§N¹tNPO/ Hy N¹zþPO`þ˜/ HyHyeN¹u$Oï -Gÿø l..ÿø`þp/ p".ÿøã�Ð�/HygiHçþüHy . râ //.N¹sOï -GHy/. /.N¹sOï Lß?N^NusÈ Bad library file r Library file nest error NVÿüHçþü n-hÿü ®ÿüm ®ÿüoHyÿÿÿ–N¹W„XO .ÿü€ã€�9§lp9§lLß?N^NuNVHçþü nÑü§lJ®g "n p)` "noü@~Lß?N^NuNVÿüHçþüKù§l n -h ÿü ®ÿün ®ÿÿÿ€ÿülHyÿÿÿ”N¹W„XO n (af nÑÍ€p nÑÍ"n p)é� n J(g nÑÍ nÑÍ .ÿü@~Lß?N^NuNVÿøHçþüKù§l n -hÿø n -Pÿü ®æÿüf 9®$T€‘®ÿø`0 ®ÿüf/. /.N¹zþPOLß?N^N"uN¹u$Oï -Gÿü l .ÿü` .ÿüЮÿø.`þ6/ HyN¹zþPO/ HyHygN¹u$Oï -Gÿü l .ÿü`R®ÿü .ÿü.`ýò/ HyN¹tNPO/ HyHygN¹u$Oï `ýÆ/ HyN¹zþPO/ HyHygN¹u$Oï -Gÿü l .ÿü`R®ÿü .ÿü.`ý‚/ Hy N¹zþPO/ HyHygN¹j p)ã€�p~Lß?N^NuNVÿøHçþü n -hÿü .< fT-nÿüÿøB®ÿü .ÿü@ . d8 .ÿør. å� AÑü³¢À�gp. D€å€€³¢ @ (<�®ÿüR. `ÀAù§l .ÿüà€@Aù§l .ÿü@~Lß?N^NuNVÿøHçþüKù§l|gIù§‚zjGù®$x‡vh-|ÿøB®ÿü . °®ÿül-|ÿü . D€-@ npu ®§ÿüg~›`ê ®fJJ®ÿøfHyÿÿÿ›N¹W„XO ®ÿøn ®ÿÿÿ€ÿølHyÿÿÿ‚N¹W„XO .ÿø�-p-~`ÿ˜ ®þÿøn ®ÿÿ€ÿølHyÿÿÿƒN¹W„XO .ÿøà€@ .ÿø@~`ÿ^`ÿZNVÿüHçþüKù§l n -hÿü ® lr ®f( ®ÿÿün ®ÿÿÿ€ÿülHyÿÿÿ�N¹W„XOB-`, ®ÿ#vu$Oï -Gÿü l .ÿü` .ÿüT€.`ý@/ HyN¹tNPO`ý,/ HyN¹tNPO 5¸€ÿÿÿàgHyÿÿÿ™N¹W„XO 5¸€@~`üî/ HyN¹tNPO/ HyN¹zþPO`üÊ/ HyN¹tNPO/ HyN¹zþPO`ü¦/ HyN¹tNPO`ü’/ HyHyeN¹u$Oï `üv/ HyHyfN¹k N¹¦LuÂãvavNbv¨äwRåwžæxˆ§xˆ¨yp. °†f np(ã�-€p-`p n€(�-~Lß?N^Nup. °…f~�`êp. °ƒf.`Üp. °†fp nr(ã€�`p n€(�-~`ÿ¬p. °…f~�`ÿœp. °ƒf.`ÿqÿÿün ®ÿÿ€ÿülHyÿÿÿ‘N¹W„XO .ÿüà€@ .ÿü@~Lß?N^NuHnÿü/ T—N¹d>PO~`äNVÿôHçþüKù¯fIù§l6|Eù¯‚B®ÿø{È .N¹¦L}‚}¤}È}æ~~6~V~v ~¦ ~æ  h ¬Ø€€^$wu$Oï `üZ/ HyHyfN¹u$Oï `ü>/ Hy>N¹tŽPO/ HyHyhN¹u$Oï -Gÿü l .ÿü`R®ÿü .ÿü.`ûú 5¸€ÿÿÿøgHyÿÿÿ�N¹W„XO 5¸€@ ®f/ HyHyfN¹u$Oï `/ HyÿÿÿüHyeN¹u$Oï -@ÿül .ÿü`R®ÿü .ÿü.`ûx/ HyHyjN¹lŒp. °†f np(ã�-Àp-`p n€(�-~`ÿR .e g p. °…fR nJ( gH n"ni n"ni np"Ò®ÿüÐ�‘¨ -;/./. N¹ypPO`þîp. °†fp nr(ã€�-@`p( n€(�-/./. N¹yPO`þ¨p. °†f p nr(ãr€r€°€Ô€ø� �(�D�`�¤�¤‚&‚B‚†‚ª‚Î ‚â!ƒ"ƒJ#ƒ^$ƒr%ƒ†&ƒª'ƒú„(„)„(*„l+„®,„Î-„ö.…&/ xu$Oï `û\/ Hy>N¹tŽPO/ HyÿÿÿüHyjN¹u$Oï -Gÿü l .ÿü`R®ÿü .ÿü.`û/ HyN¹tNPO/ HyN¹tŽPO`úÐ/ HyN¹zþPO`ú¼/ HyN¹tNPO/ Hy N¹zþPO`ú˜/ HyN¹zþPO/ HyHyfN¹u$Oï -Gÿü       y l .ÿü`R®ÿü .ÿü.`úT/ HyN¹tNPO`ú@/ HyN¹tNPO`ú,/ HyN¹zþPO`ú/ HyN¹tNPO/ HyN¹zPO`ùôp,€-@ÿø 5¸r$.ÿøµ�F�ƒÈüÀ�gJ®ÿøgpš` <ÿÿÿ}/N¹W„XO 5¸€�,p,~`ùž/ HyN¹zPO`ùŠ/ HyN¹zPO`ù J®ÿüWÀ€Á( p( f4 n¨ÿÿJ®ÿüf" ®ÿÿôn ®ÿÿ€ÿôlHyÿÿÿ�N¹W„XO n ¼æ.`þ/.ÿøN¹ŠÒXO`þHyN¹ŠÒXO-|ÿü °®ÿügýîHyÿÿÿŽN¹W„XO`ýÜR¹­Ð 9­Ðå€ @Ñü­Ô ¼`ý¼ np9§Î�( /9®$N¹†®XO`ýš n ¼`ýŒ n| /9 …J®ÿÒg*¼.`þd*¼.`þX-|ÿÊ`N-|ÿÊ`B-|ÿÊ`6 N¹¦L�¦�¦�¦�¦�¦�¦�¦�¦�¦ �¦ �¦ �²�¶*¼.`ý¸`>*¼.`ý¨*¼.`ýœ*¼.`ý�*¼.`ý„*¼ .` zv/ HyN¹zþPO/ HyHyfN¹u$Oï -Gÿü l .ÿü`R®ÿü .ÿü.`ù2/ Hy N¹zþPO/ HyHyfN¹u$Oï -Gÿü l .ÿü` .ÿüT€.`øð/ B§N¹tNPO/ HyN¹tNPO`øÐ/ B§N¹tNPO/ HyHyfN¹u$Oï `ø¨/ B§N¹tNPO/ HyN¹tNPO/ HyN¹yPO` €®0N¹†®XO`ýp n ®ÿø.`ýHJ”f n ¼ã.`ý4HyN¹ŠÒXO ‡gHyÿÿÿŽN¹W„XO n!m n ®ÿøf"nJ)g <¨` <§` ®ÿøf <å` <ä €.`ü¾ n ¼HyÿÿÿŽN¹W„XO`ü¼NVÿøHçþüKù­ÐIù­Ô .€ÿÿÿþ"å� AÑÌ"²€mþ S•å€ @ÑÌ  †ýx TR” >fö*¼ .`ý` TR” � <�"' ‰““\”n~`ÿp n @ nE UR•pN¹¦L“:)“T,“V U +fR•~b`ÿ(.<ã`ÿ`F.`ÿ n| n|p UR•pN¹¦L“–)“œ,”h~`þÖN¹•� N¹¦L“â“â “ô “”” ” ~Ò‰ôŠŠ Š  ŠŠŠaŠbŠŠŠŠŠŠŠŠ,ãŠ@Š@жHyN¹ŠÒXO n �f~`þ  n �f n!m~`þ„ n!m-hÿô np9§(�( n „�2,�> �> �> �H N¹¦LŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ ŽšŽš Žš Žž*¼ .`þÐ`V*¼.`þÀ*¼.`þ´*¼ T .f

UR• )g.`þ. n @ np(°…fp`p.`þ .`þ.`ýþS•N¹•� N¹¦L”Ü”â”ú••"•2•B•R•b•r  !"#$ ‹•€~`ý� n @ nE~`ýx n @ nD~`ý` n|c~`ýP n|s~`ý@ n|u~`ý0 n|D~`ý n|S~`ý n|V~`ý n!T~`üòR•.`üê`ü´`üâNVÿäHçþüKù¦z|ÿIù´Gù®d*<ÿxcv B®ÿø-|ÿä  Ur(€�-@ÿ ‘Gÿø n"n!i n ¼ .ÿø°®ÿüWÀ€S€.Lß?N^NuHçþþ|(/@gt oH"o< (fHya XO!G!G¼¯DlL&H‚HÂ$hR¨‚S� g ‚ f 0( @f (f/aÿXOSƒfÄ0( @ fR†`®.LßNuHçþþ–ƒ˜„�€$/DS‚"o@"/< ¯v™¼ .ÿì°„f ®rÿèf -|ÿð` ..ÿøLß?N^Nu ®fÿìf .ÿè°„f -|ÿð`â Up(€0-@ÿô€ÿÿÿøg..ÿø`º Upç-@ÿü  Ur(ã� AÑË2HÁÀ�N¹¦L– ’2  f›Âô(<  3(<  3R€QÊÿä¹ÿðœ–(9œ– 2`PåA(|"XO& g °®f .Lß?N^Nu . V€/Hya¢PO,¼®ÿìl-Fÿì/.ÿìHyaPO//./aFOï *º„l& "å�Ð�°„m "$å‚Ò‚’„ä�Ð�ä€ @ ¹Än.`ÿˆNVÿôHçþü/./. aÆPO*/aü”XO&(J„gS… m DR„B`ò.Lß?N^NuHçð /a$a0D€.LßNuHçð �˜Hçþþ o< (fHyN¹¡¶XO!G!G fp0( @gHy"ÂN¹šnXOHy"²N¹šnXO0( @gp`0<HÀ//((H€HÀ/N¹œšOï ‡ fh ~ÿLßNu!hS�"hR¨‡ÿ`àNVÿøHçþü n0( @g< n ( n�¨-@ÿüo&/.ÿü n/( n(H€HÀ/aÆOï - –aÆXOJ‡g~ÿ`Ò n"nB©!i nBh ~`ÿ´Hçþþ o< Cî`-IötgÁQÊÿøü 2<pIù"/>6HÃHC–o<ÃÇÇÂÖAÏÂHGžCHGLßNuNVÿüHçþü-nÿüS® .m nÿüR®ÿü"n R® ‘`â..Lß?N^Nu _"g°˜fø"ANÑ P      �NЦ^¦bÄv  ÷3÷âú¿÷0÷Ñ03÷¿÷5e ( !£ ²²I²Ñ YÑ3²35e /‘ I Ñ0$ ä$Ñ05eé éi  ˜  ä  ˜ é ˜ ä ˜ Y ˜ ä ˜  ä Y ä$ ä Y ä ˜ Y$ YÑ~­~ `f,ag «``ÿ~+ :°:øg`þIú· 5(:æàŒB… 8Iú¼ 5  5Iú» 5:Ò :<- 3:È :NuIú 5 BACKUP is used to make an exact copy of one disk on another. It requires two drives, and uses the syntax BACKUP Both drive numbers must be given, and must be different. (If there is only one floppy drive on the system, then use FTOH and HTOF instead.)CAUTION! DESTINATION DRIVE IS A HARD DISK. Is it OK to proceed (Y,N) ?Incorrect drive úú Yü YÑ Yü Yi ™ Y ™Ñ ™ Y ™i ™ Y ™Ñ ™ Y ™é$à$Ñ$à$é$à$Ñ$à$é Y$ YÑ Y$ Yé Y$ YÑ Y$ Y àÑààÑà àÑààÑà üàüüàü üàY ü à ü Y ÖÚ ™ YüÑÑÑüÑÑü0P*a#£÷3²÷0÷Ñ÷03²÷¿ás²3÷3²s²¿3÷#£÷¿²¿(÷#£*a#£ P 5e ( #£ ¿ ² s ² 3  ü Ñ ü ™  ˜  Yü(Ñ à Ñ–à (s) specified.Backup from drive  to drive OK to go on? Destination disk is too small.Error in reading source diskNot enough memory available; BACKUP aborted.Error in writing destination diskError in verifying destination diskFinished backing u üôúüàü :üÑüÑüÑü :üÑüÑüÑü : Yü YÑ Yü Y : Yü YÑ Yü Y ™ Yü YÑ Yü Y ™ Yü YÑ Yü Y ™ÑÑsÑÑ ™ÑÑsÑÑ Ys3sÑs3s Ys3sÑs ` 0eBJg<º."bZGúÿèE nFAè<0P<gB 0e6Jg2º."b,E º:¾g" nFAè<0PgIú% 5 ) 1 YgIúd 5 Iúz 5:ˆ0 3Iú} 6:y0 3Iúx 5 )ß Yg Iú`zV9|" f@B�2,†�'AIú<z3 f*B�2,†�²ºg e²:p  tracks. on track and sector   3sîúüsÉsüsÉsüÑÑ0ÑÑüÑÑ0ÑÑüÑÑ0ÑÑüÑÑ0ÑÑÑ0²0Ñ0²0÷ÑÑÑüÑÑÑ÷ÑÑÑüÑÑÑ dIú& 5 Iú= 5 Iú 5 B+  4|0 C :é 3+ +9 c|0 AúÖ'H(zÊzÀz¼"f :¶f| zª# gIúÓa¾:˜°:�gF+ :†f c z~(`f*(ag$":n�`'A�`²®eÿŠAú  5 C IúJ'L(z>z5z0"f :*f| z ú`  N*nö ?gRÑüÝüCúÁ$H&I· f*· f&· f"· f· f· f· f· f|Iúœ 5 Rˆ¼ÈfÈIú£ 5 Iú 5 BEEP adds a beep (bell) as part of the prompt. The correct syntax is just BEEP You may cancel BEEP with NOBEEP.SK*DOS: BEEP is no I0èúÑ0I0Ñ0Ñ0²0Ñ0²0$0É0$0É0 Y0Ñ0 Y0Ñ0 ™0Ñ0 ™0Ñ05e *a #£  #*nF-:B-: g*nFD:Iú}a(zú`*nFD:Kì`B‡<<?Þ�QÎÿü)G:Ö°:Íg.+ :Äf c(z¼,`f,ag «``ÿdJg’C Iúš'L(zŽz…z€"f :zf| zn# fKì`B‡<<?Þ�QÎÿü¾¬gIúíal 4(zF:@°:7g.+ :.f c(z&,w ú&enabled.Sorry ... can't enable BEEP.  !"#$ ú`  N(N #en< $ f0Iú¾ 5Iú? 6 ,&hö #g(H f  gà`ò 7    ,fòIú 5 )ß YfâIú5 5 )ß YfÐ(H fÈ`˜Iú 5 BUILD is used to generate short text files. It is not intended to replace a text editor, but is useful in generatin  4&nF .> €PSe8 - 1  g<º.âg4 ?g, Sg& Ng0º."b `¾Kîž •CACHgР- 1 Efô - 1 Wfè*nö  gø ,gò›üB�B†0  bÂü Ò†`ì � eŽ �d„A t up first and CACHE second. ************************************************************ * CAUTION! WARNING! DANGER! * * The cache MUST be flushed each time a new floppy disk is * * inserted into a drive or else CA g úútest files, STARTUP files, and the like. Within a line, some editing is allowed with backspace and control-X, but once a line is entered no further changes can be made to it. The correct syntax is BUILD Start typing in your tex ÿüë‰ë‰ .�«€@€(el��ef€@Iú} 5êˆêˆ(B… 8Iú‚ 6 )ß Yf.. ��€B-@¢*@€-@,† *ÆüB�¾�dúCîž"¼CACHCë QNugF$i"* �CACHg¨ iNug,$i"* �CACHgŽ iNug$i"* �CACHgtCúý�" �<'ACë 8 DNug ! CHE will keep supplying * * data from the old disk and - worse yet - will write on * * the new disk as if it were still the old disk! * ************************************************************The specified drive doesn't exist or ist, eôÇnding each line with RETURN. At the end of the text, enter a line consisting of only a # (pound sign). .That file already exists ... do you wish to delete it? ARE YOU SURE YOU REALLY WANT TO?  Cé8 DNugCé03AP#AR3|CAd Kîž •CACHf n¢ Ñü…ÿ&nFGë," Gb¢H§|#*zÿÐ*mFN­ LŸ€fDG#,H†éŽKú0Ü�*F.,p¾•f.,|¾­f.,€¾­f .,„¾­ gD.,p*‡.,|+G.,€+G.,„+G B†,H*zÿZ*m¢*Ûü¼UfB•Ûüº�dðB†,HHF<,"*zÿ.*m¢.,"Ú,#…Êü… 厱`©Ñü°ˆdÚIú< 5Aú"((B… 8IúL 5(B… 8Aè@B€.gIúX 5(B… 8Iú€ 6(B… 8Ñü€ eÒ IúS 5 Iúâ 5 Iú¶ 5 Iú“ 5 IúT 5 Iúæ 5 IúY 5 Iú 5 Iú# 5 CACHE is used to set up a disk buffer (cache) which stores in memor # OK? The specified CACHE disk size is too big for your RAM.Bad CACHE size - too small or too large.Cache memory size: Total cache capacity in sectors: Cache sectors that are empty: Number of cached sectors for physical floppy drive : CACHE HA Ú�,E&<ÿÿÿÿ¼–gж®c&.(Ýü€¾Ždä+D./$+G Mú /N$Lß`øNuHç@Ç*zþÆ*m¢,- /FFÇf8,m(-„+DB†,HHF<,",Æ,ÄKì`:<,Ý,Ý,Ý,ÝQÍÿöFÇLß`øNuÝüKì`:<*Þ*Þ*Þ*ÞQÍÿöLß`øOï<Nu,HgöHç>," Gf2,H†éŽKú®Ü�*F.,p*‡.,|+G., y all data written to or read from a floppy disk. When SK*DOS subsequently needs some data already previously read or written, CACHE supplies the data from memory instead of actually reading the disk. The syntax is either CACHE NEW S AN INVALID ENTRY! Suggest rebooting.COPYRIGHT (C) 1987 BY PETER A. STARK STAR-K SOFTWARE SYSTEMS CORP. €+G.,„+G B†,HHF<,"*zýø*m¢.,"Ú,#…Êü…Ú�,E&<ÿÿÿÿ¼–g¶®c&.(Ýü€¾Ždæ,D(-„+D,Æ,ÄKì`:<,Ý,Ý,Ý,ÝQÍÿöLß`øNu Kúý‚*ŽNu  to set up a disk cache for the first time, or CACHE to erase (flush) the cache of data for the specified disk, or CACHE STATUS to print a cache memory status report. CACHE may be used with RAMDISK, but only if RAMDISK is se `` ADFMNPRS *nö ?gÞKúÿè*®öKîö*ºÿÜa(aR:ÿ”gKúÿ�Kúÿ„Kúÿ‚a²`Aúÿ[Kúÿ_PÑü»ÈfòAúÿ^Kúÿ”BÑü»ÈfôNu nö‘ü +g( +fâ        -(aHgNAúÿBÑüKúÿ»Èfð -e¾  9b 0Kúÿ€`è_AúþÞÑüKúþݱÍg °fî(`ÆIú 5`æ:þÜfJ<:þ·g:þ²g:þ¢g :þšg<K:þŽg<OKúþœ�døNuaT 4:þ‚g(N fšaNDñ` zþpaòg  .e 9cX:þUg0:þ;gÿlIú> 5  ÿ­:ùxã g j€Kí`ð<þNu<- 3Nu.fö`ÿ("HB„(ÿÿa0aâB€)ÿþg m0< AúùÀüAð<aÿ aºB„)  baþä*< 8Nuaaš( :Nu nö| ñ( f| Ñü-Hö<AÀü  Zoð‘ü¼ NuFile# Name Type Begin End Siz ú` 0JgÞº."bÖE=|"(N g Iú: 5(N 7 2,†6<B‚=C">Gÿf.# e >.`gBGÿf<(N gIú' 5.0 3<- 3aN Aî`><B€0Ô€QÏÿú¶c¢C<.HgB<àN>àO¼cÿ‚Iúô 5(B… < B„8àL*< 8<- 3*< 8NuIú 5 CHECK )_ Egê`þ|Kúþ6*®öNu-zþ,öNu(NKúþJ®énìj¨Kúþ8BKúþ€`€aÔ -0EKúþB -  gzº.âgt  gn ,gh .fÌ - *g Ae¼ zb´º.!eßKúýÔ… -  g ,g /g  gº.âg`€ -` nöB€ .Nuaÿ6:ýKgašKúý]BKúýV¼;(N  f Kúý e Date ProtFiles=Total=Biggest=Free=wDrive:  Dir: Created:  Disk: -E?JanFebMarAprMayJunJulAugSepOctNovDecBADCAT is used to print a catalog of the files on a disk. Various options may be used to catalog just some files, or to pr SUM iú÷s used to read an entire disk and calculate a checksum of all the data on the entire disk. This can be used to determine whether the contents of a disk has been changed. It is particularly useful in verifying the integrity of the RAMdis \BUaVfÆIú  5B„.B… 8:ýVgIúÿ 6 3</ 3Iú 6IîB Ea AîB„.áL.aêIúÓ 6AîaÄ 4:üÈgIúX 5KúüÇB­ÿÿB­:üôã g j¼€Kí`ðaÀfKúü«B`"aÿ,g .eš 9b -dü`¸aÎe†a aŒfî(N  f|aˆfv 4Iú" 5Aúü‚8aVIú" 6Aúü|8aHIú  6B int in different formats. The general syntax is CAT <+format> All of the arguments are optional, and mean the following: <+format> option letters (preceded by a + sign) are A Alpha sort N Non-existent (deleted)k if thñËe computer has been left unattended for an extended period of time. The syntax is CHECKSUM Error in reading system information recordError in reading drive-track-sector Checksum =  „8:ü\B… 8</ 38:üZB… 8a6Iúû 6Aî8(ÿüB… 8a :ügIúûâ 5`ý„a*`(N| 7 4 .ñ g°.âNuKúü AúûöaüpB€(N  fÖKúûÍaÚg .gÔ`¾.gÌKúûÈU,j|-:û…f"`Î0.Kúû´°Ue:€Ðzû¦Kúû¢:€Kúû˜UAî:ûmf„Kúût*ˆAúûTKúûn*ˆ*zûdAúûF< files D print file Date P Page output format F print File Number R Repeat M show Maximum display S print file Size is optional and specifies where to look for files. Its format is either a drive-number or drive.dir/  4`  .W€âˆãˆ.@AùŸâ P R€âˆãˆGú&À&À&À @p$<[$HüQÊÿú&ÈAè\QÈÿè#È"4Cî`-Iö/.öa€B„X� D   | ñ Nua\(/OïJ„gÿÚIú 5š… 9 4(/`ÿÆexit -- Hçþþ$/<Ô¹"4Z‚âŠãŠCïà` <ÿÿÿÿ´‰b 9"4#Â"4.LßNuNVþÐHçþü| AîþÚ*B®þÐ   :ûx *g<g$ €g( *g ªgº-fÿ`KíQÎÿÜ`4J-kÿN`ìJ-jÿD`âg š-fÿ.KíQÎÿæ`0.KúúöÐU:€:úÛf(KúúÕºúÒ 4:ú´gKúúÄfIúúŠ 5Kúú´¼?Kúú­:ú‹g<8:ú² 8a˜Iî< E<  3.g<R 3:ú\f:úZfal:úNgAîaˆa\Aîa , and it defaults to the current work drive and its directory. The is also optional and may consist of one or more full or partial file names and/or extensions to be searched for. For example, CAT +DF 1.A/ .CMD AB would list al ®‚þÐl nþÐÑņR®þÐ`èHy€/./N¹žöÞü -EþÖ nþÖ  g nþÖ  f nþÖ†R®þÖ`à nþÖBB®ÿü-EþÖ nþÖg® nþÖH€HÀ°†fR®þÖ`ì nþÖgŒ nþÖ 'g nþÖ "f nþÖH€HÀ@þÕR®þÖ`FþÕ .ÿüR®ÿüå€ Aîÿ\ÑÀ ®þÖ nþÖg@ nþÖ°.þÕf nþÖR®þÖB`( nþÖ ,f.þÕH€HÀ° ~:ú:g 8.< 8a>:ú"g Aîaa2:úg$<W<aò<D<aæ<C<aÚ`þ:aNqHç<  3LßNu(N  Nuf< g ÿf<- 3ÑüfÚNuKúù¹BAúù¤<BÑüfòaü&gIúùˆ #`2®ö<Aúù€ -eº.!eß…Ñüjä<NuKúùS­ÿ l files on drive 1, directory A, whose names begin with AB or whose extension is .CMD, listing their dates and file numbers. (* inside a match-list file-name is a wild-card character.) †f nþÖR®þÖB`R®þÖ`¸`ÿL .ÿüå€Aîÿ\ÑÀB�Aîÿ\//.ÿüaüPOa®Lß?N^Nu"4n"¢}üü  !"#$ #ÒNVÿ  ¡HN¹?FN¹I@N¹?FJ9¡FfN¹%ÌB§N¹&ÊXO`ÿ–Lß?N^NuNVHçþüHy+0N¹F0XOHy+ N¹F0XOHy+N¹F0XOHy*úN¹F0XOHy*æN¹F0XOHy*ÐN¹F0XOHy*¼N¹F0XOHy*¬N¹F0XOHy*–N¹F0XOHy*†N¹F0XOHy*vN¹F0XOHy*fN¹F0XOHy*RN¹F0XOHy zf(< 4&<ŸêB” ®o/. Hy ÄN¹ž$PO`Hy5&Hy ÄN¹ž$PO#ü¡€HyúN¹ ªXO#Ç¡z#ù¡z¡v#ù¡v¡rJ”g2N¹?F/9¡rN¹G’XO/9¡vN¹G’XO/9¡zN¹G’XO#üþ J#ü€Ÿòü¡ü¡B9¡ B9¡ B9¡B¹¡>B¹¡6B9¡B¹¡ øHçþü-|ÿü <"²-@ÿø ®ÿül/.ÿøN¹�œXOR®ÿü®ÿø`ÜLß?N^Nu ((((( H„„„„„„„„„„������‚‚‚‚‚‚   *BN¹F0XOHy*2N¹F0XOHy*$N¹F0XOHy*N¹F0XOLß?N^NuNVÿüHçþüKù üIù *Gù¡FEùŸê,<ŸöHy*N¹F0XOHy ØN¹F0XOHy*N¹F0XO9¡H€HÀN¹@D/N¹mèXO-Gÿü".ÿü²€g ® ÿün`ÿÊHy*N¹F0XO .ÿüN¹�|( H(0Q(6O(@ !bü¡B¹ B9 &B¹¡fB¹¡jü¡#Å ä#üú @#ü 0#ü¡JB¹¡RB9 DB9ŸìB9ŸîB9Ÿð CBB9 úB9 øB9¡B9 üü þB9¡B9¡B9¡Bü¡H D ¼&¼ D ¼á#Å äB9¡FHy5$Hy ÄN¹” PO#ÇŸæ 9ŸæfvJ”gHy5 ŸæŸìŸîŸðŸòŸúŸüŸþ       & ( * ,  V(TK(ªG(ÊT(êD)E)?).U)8Y)@R)^X)fS)„A)œF)°C)äM)úN¹7HyN¹=®XOHyN¹3ÒXO`ÐN¹7N¹7V`ÀJf`¶N¹Kò`¬JgNBB9¡B¹¡2B¹¡:B¹¡6B¹¡>J¹Ÿæg "N¹F0XON¹?ü/N¹�t/N¹pŽPOHy5/N¹�ŽPOHy Ä/N¹�ŽPOHy5/N¹” PO#ÇŸæ 9Ÿæf Lß?N^Nu/9ŸæHy(/N¹EZÞü J‡g´J”g /N¹F0XON¹?üHy5N¹F0XOB®ÿ¶ nÿ¶ÑÆ  o .ÿ¶AîÿÎÑÀ"nÿ¶ÓÆ‘R®ÿ¶`ÿÚ .ÿ¶AîÿÎÑÀBJ”g,Hy5 N¹F0XOAîÿÎ/  4 < D F N V ^ `x Ø  ä  /9ŸæN¹”@XO#ù¡z¡v#ù¡v¡r`VN¹J ‡ÿÿÿÿfB`@¼B¹¡:J. g Lß?N^NuN¹?FN¹I@` FJ�g FB�` F ¼`úJgB`¼`æJgB`¼`ÒN¹o*`Èü ø¼N¹wÌBJ. fN¹I@`¢ü ø¼N¹€ˆBJ. fN¹I@ #N¹F0XOHy5N¹F0XOB®ÿ² nÿ¶ÑÆg\R®ÿ¶ nÿ¶ÑÆgL nÿ¶ÑÆ  g nÿ¶ÑÆ  f`, .ÿ²R®ÿ²AîÿºÑÀ"nÿ¶ÓÆ‘ .ÿ²AîÿºÑÀBR®ÿ¶`ÿ¬J”g8 .ÿ²AîÿºÑÀBHy4þN¹F0XOAîÿº/N¹F0XOHy4üN¹F0XOAîÿÎH€HÀ/N¹mèXOGÿ±J”g0Hy4öN¹F0XO.ÿ±H€HÀ/N¹?ÄXOH  ì ô ö ø ú ü þ¡¡¡¡¡¡ ¡ ¡¡¡¡¡¡¡¡"¡*¡2¡: `|N¹MTJ. fN¹I@`dJf`ZN¹6š`PJf`FN¹6šB9¡BJ¹Ÿæg/9ŸæN¹”@XO`. H€HÀ/N¹TâXO```þÒ* CHOICE > <H-HANG UP PHONE O-OS RETURN Q-QUIT PROGRAM U-SYSTEM CALL M-MODIFY OPTIONS E-ECHO TOGGLE  $y4ôN¹F0XO.ÿ±H€HÀN¹�|/ìA0B0îD1I2ÆK2ÞL2âP2âM2öR3S3&T3nU3’X3žAîÿº/N¹npXOÇ¡`œJ”gHy4èN¹F0XOAîÿº/N¹œ°XO*‡J”g(Hy4ÚN¹F0XO/N¹FÞXOHy4ØN¹F0XO N¹�|  ¡B¡H¡J¡R¡Z¡b¡j¡r¡z¡€% âNVHçþüpЮ @//.N¹+LPON¹3´Hy+FHy ØN¹ž$POHy+BHy¡nN¹ž$POB9ŸúB9 øJ9¡g 9¡HfB9 C-CLOSE BUFFER V-VIEW BUFFER F-FLUSH TEXT BUFFER K-KILL BUFFER A-SEND ASCII TEXT G-GATHER ASCII TEXT X-BINARY SEND MODE Y-BINARY RECEIVE MODE S-SEND MODE R-RECEIVE MODE T-TERMINAL MODE V 9.0NVÿ¤HçþüKù ZIùŸöAîÿØ,Gù¡BEù¡ 0œ,0¦X0°°0¶ `0ÀÀ0Ê%€0ÔK0Þ*¼D`@*¼U`6*…`0*¼ˆ`&*¼™`*¼»`*¼Ì`*…`#Õ ä`²AîÿºH€HÀ/N¹mèXO ‡Ff CB` C¼`‚pAîÿÎÑÀH€HÀ/N¹mèXO ‡Ff J.ÿºg DCîÿº/ N¹œ°XO        ‡`BpAîÿÎÑÀH€HÀ/N¹mèXO ‡RfAîÿº/N¹npXOÇ¡ `pAîÿÎÑÀH€HÀ/N¹mèXO ‡SfAîÿº/N¹npXOÇ¡ `ÎpAîÿÎÑÀH€HÀ/N¹mèXO ‡Tf"Aîÿº/N¹npXOÇ¡2Ðü¡`ŒpAîÿÎÑÀH€HÀ/N¹mèXO ‡Wf`fpAîÿÎÑÀH€HÀ/N¹ /N¹ŸfPOHyN¹=®XOLß?N^NuNVÿüHçþü 9¡>n 9¡6o N¹6š`~J9 ügtHyHÔN¹F0XOHyHºN¹F0XON¹@D/N¹mèXO-Gÿü ®YÿüfN¹6šJ¹Ÿæg/9ŸæN¹”@XOJ¹ gHyH–N¹F0XON¹?FB§N¹ zXOLß?N^NuNVHçþü . f ž‡Lß?N^Nu . "ž‡`þæ`þªž‡`þÜNVÿüHçþüHyHHN¹F0XOHyH.N¹F0XOAîÿþ/N¹EXOAîÿþH€HÀ/N¹mèXOGÿý .NÿýgN¹6š/9ŸæN¹”@XOB9 ü#ù¡z¡v#ù¡v¡rLß?N^NuNVÿôHçþüB®ÿø .ã€".ÿø²€lfB®ÿü .ÿü°¹ 0lLB®ÿô .ÿô°¹ 4l2N¹BŽJ‡güŸþ9ŸþH€HÀ.Lß mèXO ‡Mfh.ÿºH€HÀ/N¹mèXO N¹�|2–A2¢C2®U2ºüŸð`üŸî`üŸì```Þ`ÚAîÿº/N¹npXOÇ¡`Â`¾Aîÿº/N¹npXO#Ç JAîÿº/N¹npXOÇ¡`’Aîÿº/N¹npXOÇ¡`zpAîÿÎÑÀH€HÀ/N¹mèXO N¹�|3V  m~`ÿê . f~`ÿÚ . f~`ÿÊ . f~`ÿº . f~`ÿª . f~`ÿš . f~`ÿŠ . f~`ÿz . f~`ÿj . f~`ÿZž‡`ÿTNVÿüHçþüJ9 ügN¹=$HyH”/.N¹” PO-Gÿü .ÿüf ž‡Lß?N^Nu/.ÿüN¹”@XO~`ÿè`ÿäNVÿ #?N^NuR®ÿô`ÿÄR®ÿü`ÿªR®ÿø`ÿŽ`ÿÞNVHçþüN¹@dJ‡g N¹BZ`ÿìLß?N^NuNVÿðHçþüB9ŸüN¹@d ‡f N¹BZ €ÿ-@ÿð..ÿðLß?N^NuB®ÿø .ÿø°®lŒB®ÿü .ÿü°¹ 0lrB®ÿô .ÿô°¹ 4lXN¹BŽJ‡güŸþ9ŸþH€HÀ.`ÿ¢N¹@d ‡fN¹BZ €ÿ-@ T3jJgB`¼``2Aîÿº/N¹œ°XO&‡ “do&¼d`ü¡F``ú2/9ŸæN¹”@XO`úNVHçþüHyN¹3ÒXOLß?N^NuNVÿêHçþüHy 9 J€/N¹ŸfPOHy 9 J€/N¹ŸfPOHy 9 J€/N¹ŸfPO/9 ä 9 J€/N¹ øHçþüKùŸúB®ÿüB®ÿü .ÿü°®l.J9Ÿîg nÿüÑî ¼` nÿüÑî BR®ÿü`ÿÊB®ÿüJg ž‡Lß?N^NuJ9 øgJ9¡f4 ® $ÿð..ÿð`ÿxR®ÿô`ÿžR®ÿü`ÿ„R®ÿø`ÿlüŸü9ŸüH€HÀ.`ÿHNVÿøHçþüB®ÿø ®ÿølHy N¹?ÄXOR®ÿø`ÿàHy N¹?ÄXOLß?N^NuNVHçþüN¹Ÿ¼J‡g ~Lß?N^Nuž‡`ÿô`ÿðNVHçþü~Lß?N^NuNVHçþüN¹?²J‡gÿö. H€HÀ/N¹Ÿ¤XO. H€HÀ.Lß?N^NuNVÿúHçþüB9 ŸfPOHy€ 9 J€/N¹ŸfPOHy 9 J€/N¹ŸfPO 9 J€/N¹ŸzXO-Gÿê 9 J€/N¹ŸzXO-Gÿê 9 J€/N¹ŸzXO-GÿêLß?N^Nu4Ø baud rate is in case B: loc: second: first: r.NO PROFILE rprofileNVÿüHçþüKù¡  ÿøf(J9Ÿîg .ÿüR®ÿüЮ @ .ÿø€-| ÿø nÿüÑî .ÿø€R®ÿü`ÿh..ÿü`ÿNVÿöHçþüJ9 øgГ#À¡> 9¡6Д#À¡6#Õ¡v#ù¡v¡rLß?N^NuNVHçþüLß?N^NuNVHçþüN¹5.HyIN¹F0XO/9¡6N¹FÞXOHyIN¹F0XO/9¡>N¹FÞXOHyHþN¹F0XOB¹¡:B¹¡2B¹¡6B¹¡>HyN¹=®XOLß?N^NuNVHçþüHy 9 J€ !`ÿÜHyHˆ/.N¹�ÒPOJ‡f~`ÿ¾HyH„/.N¹�ÒPOJ‡f~`ÿ HyH€/.N¹�ÒPOJ‡f~`ÿ‚HyH|/.N¹�ÒPOJ‡f~`ÿdHyHx/.N¹�ÒPOJ‡f~`ÿFHyHt/.N¹�ÒPOJ‡f~`ÿ(HyHp/.<âN¹�ÒPOJ‡f~`ÿ HyHl/.N¹�ÒPOJ‡f~`þì 'f`$ ® ÿøf` nÿôR®ÿô .ÿø€`ÿ˜ .ÿøl .ÿô°®f ž‡Lß?N^Nu nÿôR®ÿôB..`ÿèNVÿúHçþü 9 J€/N¹ŸzXOGÿû.ÿûH€HÀ.Lß?N^NuNVHçþüN¹?ŠJ‡g49¡H€HÀN¹?ü¾€füŸþ~Lß?N^Nuž‡`ÿô`ž‡`ÿê`ÿæNVÿüHçþüKù DJf–J9 üg  !"#$ (BH€HÀ.Lß?N^NuJ9 þgBH€HÀ.`ÿâN¹@dJ‡fBH€HÀ.`ÿÈ9¡H€HÀN¹BZ-Gÿü".ÿü�²€f¼H€HÀ.`ÿ”BH€HÀ.`ÿ†`ŒN¹@dJ‡f¼H€HÀ.`ÿf9¡H€HÀN¹BZ-Gÿü".ÿü�²€fBH€HÀ.`ÿ49¡ g$9¡ H€HÀ".ÿü²€fBH€ .E MEMORY CAPTURE BUFFER IS STILL OPEN CHARACTER COUNT LINE COUNT ERROR WRITING TXT, DISK FILL? ¡†¡ŽI@NVÿðHçþüKù¡zIù @B9Ÿþ <ÿÿÿ"Ò•Ð�#À¡†pû"Ò•Ð�#À¡Špÿ"Ò•Ð�#À¡Žü þB.ÿøHyTÐN¹F0XO 9 ¡l,Hy 4®ÿül~ nÿøÑù¡zPÿï.ÿï .ÿôR€-@ÿô . ÿïf” ®ÿôl6Hy N¹@ôXOB®ÿð ®ÿÿðl R®ÿð`ÿîHy N¹@ôXOJ9ŸìfHy N¹@ôXO| ÿîJ9ŸêgHy N¹?ÄXOB®ÿôJ9 &gHyN¹=®XON¹BŽJ‡g/N¹”@XOB`þ”J9Ÿþg/N¹”@XOB`þz.ÿïH )HÀ.`ÿ¼H€HÀ.`þø`þôNVÿøHçþü-nÿøS® . o²/9ŸæN¹?üXO-Gÿü .ÿüm˜/.ÿüN¹?ÄXO ®ÿüf,S®ÿø nÿøBHy N¹?ÄXOHyN¹?ÄXO`ÿš ® ÿüfHy N¹?ÄXO`8 ® ÿüfHy N¹?ÄXO` nÿøR®ÿø .ÿü€ nÿøB`ÿF .ÿül .ÿøDêD°® /TÆN¹F0XO9¡@H€HÀ/N¹?ÄXO`9¡H€HÀ/N¹?ÄXOHyT¶N¹F0XOJ9 ügHyT˜N¹F0XON¹PVLß?N^NuNVÿþHçþü|ÿKù üJgrHyTzN¹F0XOHyTlN¹F0XON¹@D/N¹mèXOGÿÿ .NÿÿfN¹6š/9ŸæN¹”@XOB`N¹6šB¹¡2B¹¡:~Lß?N^NuHyTTN !5€HÀ/N¹@ôXOJ9Ÿêg.ÿïH€HÀ/N¹?ÄXO .ÿøR®ÿøÐ¹¡z @Bg<.ÿî°g .ÿï°f(ü DJ9¡g9¡H€HÀ/N¹@ôXO.ÿï@ÿî`þz`þN/N¹”@XOBB9 DHyN¹?ÄXOHySŽN¹F0XO`ý¸NVûêHçþüKù¡rIù¡vGù¡zEù¡|*< þ(<¡Ž&< @ <ÿÿÿ C"Ò *f ž‡Lß?N^Nu nÿøR®ÿøB..`ÿèNVHçþüHyd/.N¹DPOLß?N^NuNVHçþüHy"¢Hyd/.N¹EZÞü Lß?N^NuNVÿøHçþü-nÿøS® . oP/.N¹ŽtXO-Gÿü .ÿüm8 ®ÿüf S®ÿø`ÿÊ ® ÿüf` nÿøR®ÿø .ÿü€`ÿ¨ .ÿül .ÿø°®f ž‡Lß?N^Nu nÿøR®ÿøB 0¹F0XOHy `N¹EXOJ9 `f.`ÿÎHy `N¹8ÒXOJ‡gBHy `N¹F0XOHyT#ù¡z¡v#ù¡v¡rJ¹ "6“Ð�#À¡†pû C"Ò“Ð�#À¡Š Dpÿ"C"Ò“Ð� €(“*” E¼B.ÿ÷N¹@d ‡f$ UHyN¹>XXO À†€ U€ÿ°†f`ÿÈ UR•PÿøJ9 ügØ °¹¡†oÈ9¡H€HÀ/N¹@ôXOJf.ÿøH€HÀ/QFHN¹?ÄXOHyN¹>XXOGÿúJ.ÿúgNJ9ŸüfD °¹¡Šo`4 UR•.ÿú +..`ÿèNVÿüHçþü nR®H€HÀ-@ÿüJ®ÿüg/. /.ÿüN¹�äPO`ÿÔLß?N^NuNVÿ”HçþüAîÿœ,B®ÿ˜ nÿ˜ÑÆB nJgf n  g n  f. n  f nÿ˜ÑƼ R®ÿ˜` nÿ˜ÑƼ R®ÿ˜ nÿ˜ÑÆ"nR®‘R®ÿ˜ nÿ˜ÑÆB`ÿ” nÿ˜ÑÆB/.ÿ˜//9¡.N¹‘0Þü Lß?N^NuNVÿøHçþ 1Ÿög,/9¡rN¹G’XO/9¡vN¹G’XO/9¡zN¹G’XOHyN¹=®XO¼~`þ®NVÿêHçþüKù¡zB®ÿêB®ÿø-|ÿð 9¡r�•#À¡:B®ÿü .ÿü°¹¡:l nÿüÑÕ@ÿï.ÿïH€HÀ/N¹?ÄXO nÿüÑÕ  f* .ÿüR€Ð• @  gHy N¹?ÄXOR®ÿøB®ÿê .ÿø°®ÿðo¨HyTN¹F0XON¹ #7€.ÿú@ÿøJf.ÿúH€HÀ/N¹?ÄXOB.ÿú`ÿœHyN¹=®XON¹5.B¹¡:N¹>29¡H€HÀ/N¹@ôXO`þà D °�o*“`þÐN¹?ŠJ‡gN¹?ü-Gÿü .ÿüf 9¡~g N¹q2`þœ9¡H€HÀ".ÿü²€f EBLß?N^Nu9¡H€HÀ".ÿü²€f N¹[ô`þ^9¡H€HÀ".ÿü²€g9 ,ü-nÿø/.ÿøHy N¹›†PO -@ÿüJ®ÿüg/.ÿüN¹FÞXO/.ÿøHy N¹›¨PO €0/N¹?ÄXOLß?N^NuNVÿüHçþü-nÿüJ®ÿüg .ÿü怀ÿ/N¹GDXO .ÿü€€0/N¹?ÄXOLß?N^NuNVÿüHçþü-nÿüJ®ÿüg .ÿü耀ÿÿÿ/N¹G’XO®ÿü ® ÿüo^®ÿü .ÿü€0/ 2?ü-Gÿô ® ÿôf*B®ÿøB®ÿêHy N¹?ÄXOHy N¹?ÄXO`\ ® ÿôf" .ÿøS€-@ÿøB®ÿêHy N¹?ÄXO`0 ® ÿôg$ ® ÿôgHyN¹=®XOLß?N^NuR®ÿü`þâHyN¹=®XO`ÿàNVÿîHçþüKùŸúIù¡ GùŸæN¹?FN¹>2J9 ügVHySôN¹F0XOHySêN¹F0XON $8¡H€HÀ".ÿü²€f/.ÿüN¹@ôXO`þ&/.ÿüN¹@ôXO ‡ÿÿÿÿf EB`ÿ†J9Ÿêg:J9 úg$ ® ÿüfHy N¹?ÄXO-| ÿü/.ÿüN¹?ÄXO`ýÂN¹?²J‡gr °•f`ýªJg`ý J9 úg T  fHy N¹?ÄXO T€ÿ°†fR”` TR”€ÿ/N¹?ÄXO D °�o -N¹?ÄXOLß?N^NuNVÿþHçþü. @ÿÿHy^N¹?ÄXO.ÿÿ@H€HÀ/N¹?ÄXOLß?N^NuH.SAVE THE BUFFER TO FILE ?THE MEMORY CAPTURE BUFFER IS OPEN COMEXEOBJcomexeobjCMDBINcmdbinrFILE ERROR DATA LOSS POSSIBLE DO YOU WISH TO SAVE IT?TH 3¹@D/N¹mèXO ‡YfN¹6šB9 üJ“g /N¹”@XOBHySÎN¹F0XOHySÆN¹F0XOHy `N¹EXOJ9 `f Lß?N^NuHySÄHy `N¹” PO&‡ f>HySºN¹F0XOHy `N¹F0XOHyS¬N¹F0XOHyN¹=®XO`ÿ¢B®ÿôHy/9¡z/N¹9(Þü -GÿüJ®ÿüg’B®ÿø .ÿø° 9(“`ýB`þ¼SŽ DONE RETURNING............. NOT FOUND CMODEM:rFILE > ASCII FILE TRANSFER MODE SAVE IT? MEMORY BUFFER STILL OPEN ----MORE----  COULD NOT CREATE FILE w -EXISTS - DELETE(Y/N) COLLECTION FILE NAME >USE OLD FIL       :E?COLLECTION ALREADY ACTIVE TEXT COLLECTION IN OPERATION ATTENTION . CONTROL TERMINAL MODE. NVÿîHçþüKù¡€Iù ,Gù úN¹?FHymÔN¹F0XOHymÒN¹F0XOHym¶N¹F0XOHymœN¹F0XOHym‚N¹F0XOHym`N¹F0XOHymHN¹F0XOHym(N¹F0XOH @¹F0XO9¡ H€HÀ/N¹GòXOHyj°N¹F0XO9¡H€HÀ/N¹GòXOHyj N¹F0XO9¡H€HÀ/N¹GòXOHyj”N¹F0XO9¡H€HÀ/N¹GòXOHyjŠN¹F0XOJ9ŸðgHyj‚N¹F0XO`HJ9ŸîgHyj|N¹F0XO`,J9ŸìgHyjvN¹F0XO`HyjpN¹F0XOHyjbN¹F FN^NuNVÿúHçþüN¹?FHyg®N¹F0XO/9 4N¹FÞXOHyg�N¹F0XOAîÿû/N¹EXO.ÿûf Lß?N^NuAîÿû/N¹œ°XO#Ç 4HygtN¹F0XOHy N¹=®XOHyg\N¹F0XOHyN¹=®XOHyg4N¹F0XON¹@DHygN¹F0XOHy N¹>XXOHygN¹F0XOHyN¹=®XO`ÿ^NVÿòHç ;ymN¹F0XOHylðN¹F0XOHylÎN¹F0XOHyl²N¹F0XOHylªN¹F0XOJ”gHyl¤N¹F0XO`HylšN¹F0XOHyl€N¹F0XOHylbN¹F0XOJ•gHyl^N¹F0XO`HylXN¹F0XOHylFN¹F0XOHyl&N¹F0XOHyl N¹F0XOHyköN¹F0XON¹@D/N¹mèXO-Gÿî ® A0XOJ¹ ,gHyj\N¹F0XO`HyjPN¹F0XOHyj>N¹F0XO[– /9ŸòN¹FÞXOHyj*¼D`L*¼U`B*¼f`8*¼ˆ`.*¼™` >0XOAîÿð/N¹EXOJ.ÿðf Lß?N^NuAîÿð/N¹npXO-GÿüHyk‚N¹F0XO/.ÿüN¹G’XOHyknN¹F0XON¹@D/N¹mèXO-Gÿø ®YÿøfT#îÿü JHykVN¹F0XO/9 JN¹G’XOHykTN¹F0XOHyN¹3ÒXOHyN¹=®XO`ÿNHyk6N¹F0XOHyN¹=®XO`ÿ.`ÿ*NVHçþüN¹ Dÿö/N¹EXOJ.ÿögAîÿö/N¹npXOÇ¡ `Lß?N^NuNVÿøHçþüN¹?FHyh¬N¹F0XOHyhŒN¹F0XOHyhnN¹F0XOHyhXN¹F0XOHyh8N¹F0XOHyhN¹F0XOHyhN¹F0XON¹@D-Gÿü .ÿüN¹�|_81_D2_V3_b4_x5_„6_ŽüŸð`P J$*¼»`*¼Ì`J•g Lß?N^Nu(•/ 9 J€/N¹ŸfPO`ÿÜNVÿìHçþüHyejN¹F0XO/9¡fN¹FÞXOHyefN¹F0XOAîÿìJg Aîÿì/N¹EXO/N¹œ°XO#Ç¡fHye2N¹F0XO/9¡jN¹FÞXOHye.N¹F0XOAîÿìJg Aîÿì/N¹EXO/N¹œ°XO#Ç¡jHye,N¹F0XOL ??FHyk(N¹F0XO/9¡BN¹FÞXOHykN¹F0XO9¡H€HÀ/N¹GòXOHykN¹F0XO9¡H€HÀ/N¹G’XOHykN¹F0XOJ9ŸêgHyjþN¹F0XO`HyjøN¹F0XOHyjîN¹F0XOJ9 úgHyjêN¹F0XO`HyjäN¹F0XOHyjÒN¹F0XO9¡ H€HÀ/N¹GòXOHyj¾N EüŸîB9 ø`>üŸì`2B9ŸìB9ŸîB9Ÿð`ü &`B9 &``Lß?N^NuNVÿöHçþüKù¡BN¹?FHygäN¹F0XOAîÿö/N¹EXOJ.ÿögAîÿö/N¹œ°XO*‡ •do*¼d.Lß?N^NuNVÿúHçþüHygÆN¹F0XOAîÿû/N¹EXOJ.ÿûgAîÿû/N¹npXOÇ¡Lß? Kß?N^Nue, ? enter number of nulls to ouput after each CR now ? enter number of nulls to output after each character now unknown192009600480024001200600300 CURRENT BAUDRATE IS - 8 - 19200 BAUD 7 - 9600 BAUD 6 - 4800   !"#$ L BAUD 5 - 2400 BAUD 4 - 1200 BAUD 3 - 600 BAUD 2 - 300 BAUD INPUT CHOICE FOR MODEM BAUD RATE CRC error checking will be used NEW BLOCK SIZE IS INPUT NEW BLOCK SIZE-MAX 1280 ? CURRENT BLOCK SIZE IS ENDING 10 SECOND CREC R MODE S - SET TIMING LOOP VALUE Q - QUIT AND RETURN MAIN MENU L - LF/CR TOGGLE OFF ON E - TOGGLE EMACS MODE - NOW- D - DEFINE DISPLAY TYPE CHECKSUM CRC - NOW- C - TOGGLE CRC ERROR CHECK B - CHANGE TRANSFER BLOCK LENGTH 8 - DISPLAY CU Xir<lrDjrXmr`krtor~nr pr¾qrÎ`ÿXN¹Tâ`˜ü ø F¼N¹wÌ FB`|ü ø F¼N¹€ˆ FB``N¹MT`VN¹J ‡ÿÿÿÿfB`@¼ DB�`4N¹7HyN¹=®XON¹3Ò`N¹7N¹7V``ž‡`þ² ^m MV BEGINNING 10 SECOND CRECV HIT ANY KEY TO START SECOND TIME TEST ENDING 10 SECOND HIBER BEGINNING 10 SECOND HIBER INPUT VALUE FOR TIM_FUDGE ? THE CURRENT VALUE IS INPUT ATTENTION CHARACTER ? ENTER UNIT SIZE DESIRED ? 6 - REMOVE SLOWDO SRRENT OPTIONS 7 - ATTENTION CHARACTER 6 - CHANGEm2 CAPTURE UNIT SIZE 5 - CHANGE LINE MODE 4 - CHANGE X-ON X-OFF CHARACTER 3 - CHANGE MODEM ADDRESS 2 - CHANGE MODEM PARITY 1 - CHANGE MODEM BAUD RATE CMODEM OPTIONS NVHçþüp !YŒ gn„H€HÀN¹�|sL^s`_s¾`sÒat&bt@ctDdtNetXft\gt`Jf`N¹6š`Jf`üN¹6š/9ŸæHyN¹�äPOBB9¡B¹¡2 DB�B¹¡6B¹¡>J¹Ÿæg/9ŸæN¹”@XO`¨Jf`žN¹Kò`”JgLBB NWN 5 - SLOW OUTPUT(WAIT AFTER EOL) 4 - STANDARD - ALL ABOVE OFF 3 - OUTPUT ONLY NL 2 - ADD LF TO CR ON OUTPUT 1 - AS IS NO TRANSLITERATION ENTER MODE YOU WISH FOR EOL ENTER HEX VALUE TO RESUME DATA FLOW ENTER HEX VALUE TO STOP DATA F T. H�HÁ�$Ð� @g.  @ . H€HÀ.Lß?N^NuNVHçþüp. H�HÁ�$Ð� @g.  @ . H€HÀ.Lß?N^NuNVÿòHçþüB®ÿö nJgž n  g’ n  g† nR®H€HÀ/N¹mèXOGÿû .ÿûfpÿ".ÿö’®ÿòÐ�è€-@ÿö`ÿ¤.ÿûH€HÀ/HywºN¹o "Z9¡B¹¡2 DB�B¹¡6B¹¡>J¹Ÿæg/9ŸæN¹”@XO#ù¡z¡v#ù¡v¡r`@ EJg EB` E¼`&`"N¹o*`N¹7V`` ``ž‡`ý H€HÀN¹�|tÎGu,Hu|Iu¢KuòMvBOvrPvÂQvÚRvòSwJ”g"Hy OLOW OUT AFTER END OF LINE CHARACTER ENTER HEX VALUE OF CHAR TO SEND ENTER HEX VALUE FOR X-OFF ENTER HEX VALUE FOR X-ON 3-SET TAPE MODE AND CNTRL CHR CONTROLED BY YOU IN PROGRAM 2-INTERNAL CONTROLED CHARACTERS FROM THE HOST TO YOU  U:PO-GÿüJ®ÿüf ~ÿLß?N^Nu .ÿöé€Ð®ÿüS€-@ÿö-nÿüÿò`ÿ\..ÿö`ÿØNVHçþüLß?N^NuNVÿüHçþüB®ÿü nÿüÑîJg( nÿüÑî°.f..ÿüLß?N^NuR®ÿü`ÿÎ~ÿ`ÿìNVÿøHçþü/.N¹žVXO-GÿøB®ÿü nÿüÑî Jg8/.ÿø/. .ÿüЮ /N¹ž„Þü J‡f..ÿüLß?N^NuR®ÿü`ÿ¾~ÿ`ÿìNVÿöH #[N¹whXOHyN¹@ôXO`N¹[ô`°J”gHyN¹@ôXO`6Jg"HyN¹whXOHyw¢N¹AxXO`Hy N¹@ôXO``J”g QUPLEX = KILL = ATTENTION = UNIT SIZE = modem address not changed MODEM address is now is this ok (Y/N)?The new MODEM address will be Please input the HEX value for modem port address The current port address is T - TERMINAL W¹›†PO-G .nÿº .ÿøl .ÿüR®ÿüЮ @¼- nÿüÑî B/. N¹oæXOLß?N^NuNVHçþüKù¡~Iù¡€Gù üEù¡„,< **<Ÿê(<¡: :o& ElZH€HÀ/N¹w*XO~Lß?N^Nu So$ ^l H€HÀ/N¹w*XO~`ÿÐ hm qnH€HÀN¹�|r.hr2]HyN¹@ôXO`HJ”gHyN¹@ôXO`0J”gHyN¹@ôXO`HyN¹@ôXO``~`úd`ú`NVHçþüHyN¹@ôXO. H€HÀ/N¹@ôXOHy N¹@ôXOLß?N^NuNVÿüHçþü. H€HÀ/N¹@ôXOB®ÿü ®–ÿül R®ÿü`ÿîLß?N^Nuw¢*[B[C[D[A[ 0;0H 01     ^23456789ABCDEF¡’! B0c@„P¥`Æpç�‘)¡J±kÁŒÑ­áÎñï12s"RRµB”r÷bÖ“9ƒ³{£ZӽÜóÿãÞ$b4C dætÇD¤T…¥jµK…(• åîõÏŬÕ�6S&r0v×föV•F´·[§z—‡8÷ßçþ×�ǼHÄXåh†x§@a(8#ÉÌÙíéŽù¯‰H™i© ¹+ZõJÔz·j–q P:3*ÛýËÜû¿ëž›y‹X»;«l¦|‡Lä\Å,"< `Aí®ý�ÍìÝÍ­*½ �h�I~—n¶^Õd0$´£¦E/Éû2(ùmTÞW)#Ùg¿L™…Ò;žµH]h*o+”KôAÉ<óq_Zß-ï�wÌNVÿØHçþü,<ÿKù (Iù èGùŸòEù *< `(<Ÿö&<  “o #ü¡B/9¡B/N¹œ6PO -@ÿü ®úÿüo0Hyú/N¹›†PO #À¡B/9¡B/N¹œ6PO -@ÿüHy�rHy¡nN¹ž$PON¹?FHy�XN¹jF0XO/.ÿÜN¹G’XOJ¹ ,gê/.ÿøN¹>XXO À†#À B®ÿà .ÿØÐ¹¡z-@ÿè(®ÿØ °®ÿðl@ .ÿàà€À†ã€€¡’ @0€ÿÿ".ÿàá�³€ nÿèR®ÿè�ÿ³€-@ÿàR”`ÿº .ÿàà€À†ã€€¡’ @0€ÿÿ".ÿàá�³€".ÿܳ€-@ÿà .ÿàà€À†ã€€¡’ @0€ÿÿ".ÿàá�³€"9 ³€-@ÿà .ÿà€ÿÿg ¼`_Nô>.2QpÿŸï¾ßÝÏü¿¯:ŸY�x‘ˆ�©±Ê¡ëÑ Á-ñNáo€¡0 ãP@%pF`gƒ¹“˜£û³ÚÃ=Óãó^±�"ó2ÒB5RbwrVµê¥Ë•¨…‰õnåOÕ,Å 4â$à�tfdGT$D§Û·ú‡™—¸ç_÷~Ç×<&Ó6ò‘°fWvvFV4ÙLÉmùé/™È‰é¹Š©«XDHexh'Àá8‚(£Ë}Û\ë?û‹ù›Ø«»»šJuZTj7z ñÐ*³:’ý.íÝlÍM½ª­‹�è�É|&l\dLE<¢,ƒà Áï eF0XOHy�PN¹F0XO/N¹EXO EJf Lß?N^Nu-Eÿè-Eÿì/N¹žVXO-Gÿô nÿèR®ÿèJgnS®ÿô .ÿôob nÿè #g nÿè ;fF nÿèR®ÿèBJ®ÿôg0-nÿèÿì nÿèJg nÿèR®ÿè`ÿì nÿèR®ÿè¼ nÿèB``ÿˆ-|ÿø/N¹;¾XOJ‡g ü øJ9 øgHy�LHy¡nN¹ž$POJ9kž`n .ÿä€ÿÿ".ÿÜ�ÿÿ²€gT DJ�gDHyŒTN¹F0XO/.ÿÜN¹G’XOHyŒPN¹F0XO/.ÿäN¹G’XOHyŒNN¹F0XO¼`. 9 °’f2HyN¹>XXOJ‡g J9ŸügÿäHyN¹@ôXO`ò 9 R€À†°’g DJ�gHyŒ.N¹F0XO¼`Ä Ñ®ÿØ .ÿذ®ÿülHyN¹@ôXO`ÿ>Ï]ß|¯›¿º�ÙŸøn~6NU^t.“>²Ñð£’w0–ñžÔfö®FmÄpjô�œZËa›j]Ûˆ2yܸ¤*âh-&x ¶L+~±|½GÒùo@âo·dj° ò Fޏ{A¾"ÚÔ}mÝäë +J¯|,z9l˜Vdk¨À�†uš6\OclÙðÂ�r÷ò ;n ÈLi^*Ÿ¾]˜ŽŽ<äÑKÔG-òzZõJ•5µ¨úB²˜l$D6*SCÀ2ØlãEß\u#)ò1T.§&Ù0¬QÞ:7(®€@/žê!´ôµV³Ä f øgHy�>N¹F0XO`Hy�2N¹F0XOJ¹ ,güC $` ü $/N¹8ÒXOJ‡g�/N¹F0XOHy�N¹F0XON¹@D/N¹mèXOÇ ^ 9Y ^f*Hy¡n/N¹” PO#ÇŸæHy�N¹F0XO`*HyŒúN¹F0XO/N¹EXO EJf`þN`ÿh`4Hy¡n/N¹” PO#ÇŸæ 9lHy N¹?ÄXO/9  N¹FÞXOR¹  #Ò B CB�`r`n/.ÿØ/9¡z/9ŸæN¹:tÞü /9ŸæN¹”@XOHyÔ N¹@ôXOHyŒN¹F0XON¹ŠF`ø¾ DJ�gHy‹úN¹F0XO¼``ûR/.ÿü/9¡z/9ŸæN¹:tÞü ‡ÿÿÿÿf6Hy‹ÚN¹F0XO/9ŸæN¹”@XOHyN¹=®XONa#0EjgGBZñ(¸ž_ˆ9ó&NNôÜ/o|‡XhL>žâUI™ÒÃvÜA�Ûqg-ßD*ïÖq±…‰¶µ`@[G+ÍxÉ¢ù4iöWrñgèj »m=-n›“iœ£ÿkkQôlabzšÏ( �ÿ²l•í¥{}÷ ? ð;©e°ÙÆ·éPtAGFw„bÝßÚ-Is,ƒ +³›M²aX:µQÎ\CÿŒ+DÏJߥA=Ø•×[.;“,) Ciéj4nÙüR˜wº%ŸG0D-s3åUõ³¡"òƒ7Pq<'AªAôïð6óßzWhµ gŸæfHyŒäN¹F0XO`þHyŒÈN¹F0XON¹Š0 .ÿì°…gZ/.ÿìN¹AxXOB®ÿô ®�ÿôl>HyN¹>XXO-GÿÜJ9Ÿüg` .ÿÜ€/N¹?ÄXOR®ÿô`ÿº#ü  B¹  CB�#ü  BB®ÿØN¹>2#ù¡z¡v#ù¡v¡r9 $H€HÀ/N¹@ôXO .ÿذ®ÿül¦J9Ÿþg/9m¹ŠF`øDHyN¹@ôXOB®ÿØ`úä`ø*NVÿÔHçþüKù IùŸú,<ÿGù ^EùŸþ*<Ÿò(<Ÿö&<ŸüHy‹ØHy¡nN¹ž$PON¹?FHy‹¸N¹F0XOHy‹°N¹F0XOHy `N¹EXOJ9 `f Lß?N^Nu-| `ÿä-| `ÿèHy `N¹žVXO-Gÿð nÿäR®ÿäJgnS®ÿð .ÿðob nÿä #g nÿb% o…³F™+÷1ža^Þù)ÙɘO/gÞ8(WLY³=.´ �HB£Å?E“SG|àe@LJ¶â t±Òš*¸Çb-ˆQÛ&s܃œôîk›Ä| mj>zjZ¨ñ0õlöc ®'}ž±ðl¼x÷\.òhiÂþ�¨£š˜5l6qnkç+äŠv,Ô ÚzZgÝJÌF ‘qA·¾C`°ŽÕ))\^.l‚8ØÂÄOßòR.D˜YC¨™?µÝH²6K'òÔ&Põä´6JöAz` Ÿ=W˜ «1nŽïFi¾y4žLtC™|æ%oÒ Rhâ hŸæN¹”@XON¹ŠF`ýJgê CR�J9Ÿüf< .ÿøâ€/N¹>XXO-GÿÜJ9Ÿþg/9ŸæN¹”@XON¹ŠF`üÔ`ÿ¾HyŒ¶N¹F0XO/9  N¹FÞXOHyŒªN¹F0XO C/N¹FÞXOHyŒ¦N¹F0XO C °¹ mBHyŒ~N¹F0XO/.ÿØ/9¡z/9ŸæN¹:tÞü /9ŸæN¹”@XON¹ŠF`ü>HyN¹nä ;fF nÿäR®ÿäBJ®ÿðg0-nÿäÿè nÿäJg nÿäR®ÿä`ÿì nÿäR®ÿä¼ nÿäB``ÿˆ E �o #ü¡B/9¡B E/N¹œ6PO -@ÿü ®úÿüo4Hyú E/N¹›†PO #À¡B/9¡B E/N¹œ6PO -@ÿü-|ÿôHy `N¹;¾XOJ‡g ü øJ9 øgHy‹¬Hy¡nN¹žc63óˆkDô¸ý"¹U&/:EÄBMBôØ+´Z’\³j=(YJ/0Ï,Ùž‹[Þ®d›=Pœ Úuj£œm“ cöùWñÉÁrg…Wj@µ~G…ì{±+® ¶8m-qe*Aó|Üï· Ûß!y,-,+¾hݳøÚƒn~Aé3 FÙ¥o°wá·Gww÷¥ð•�f;Ê \pša�Q—akÿÓlÏE_õˆ(ò-NƒT9³ÂX˜ÙŸ/Ÿé IiGM>nwÛQ.•¶&)¥$@ß f7Ø;ðVCQ­!Da;G²Ï0µÿéBB ä5E=vS³“ i@ôXO/.ÿøN¹>XXO N¹�||¶|¶¦ô/.ÿøN¹>XXO$‡/.ÿøN¹>XXO#Ç  й À†°†g ¼`& .ÿØÐ¹¡z-@ÿè .ÿØÐ“-@ÿðB®ÿä(®ÿØ °®ÿðlXXO‡€ÿÑ®ÿäÍ®ÿäR”`ÿ¾/.ÿøN¹>XXO À†-@ÿÜ DJ�gHyŒjN¹o$POHy¡nHy `N¹” PO#ÇŸæ 9Ÿæf>Hy‹žN¹F0XOHy `N¹F0XOHy‹œN¹F0XOHyN¹=®XO`þP-|ÿøB®ÿÔ#ü #ü  B•#ü  J¹ ,gü $` ü $N¹>2J9 øgHy‹ŽN¹F0XO`Hy‹‚N¹F0XO#ù¡z¡v#ù¡v¡r ® `ÿèg !"#$p‚/.ÿèN¹AxXOB®ÿð ®,ÿðlfHyN¹>XXO-GÿØ CJgHy‹€N¹F0XO`: ®ÿØg ®CÿØf`Ð .ÿØ€/N¹?ÄXOR®ÿð`ÿ’N¹>2Hy‹hN¹F0XO/.ÿôN¹>XXO-GÿØ ®ÿØgv ®CÿØgjR• °¹ f8Hy‹6N¹F0XO/9ŸæN¹”@XOBHyN¹@ôXON¹Šv`÷ÒR• °¹ m8HyŠ�N¹F0XO/9ŸæN¹”@XOBHyN¹=®XON¹ŠF`÷ŽB§N¹@ôXO°f*HyN¹@ôXO/9ŸæN¹”@XOBN¹ŠF`÷T`þ< f*HyŠjN¹F0XO/9ŸæN¹”@XOBN¹ŠF`÷ R¹ R¹  9 À†#À  .ÿÔ EÐ�-@ÿÔ .ÿÔ°¹ ðmûxB®ÿÔ`ú†`öàNVHç |¹�œXO n"n0) @gp`0<üHÀ/"n/)"n)H€HÀ/N¹’LÞü ‡ n f nh ~ÿLß?N^Nu n"n!i nS�"n iR©H€HÀ-@ÿü®ÿÿü..ÿü`ÿÀNVHçþüp€"¢//.N¹�äPOLß?N^NuNVHçþü/. /.N¹�POLß?N^NuNVÿüHçþü n (fqF`ü¶Jg/9ŸæN¹”@XOBN¹ŠF`ü–`ÿrHy‹4N¹F0XON¹Š0 ®CÿØf#ü ,ü $/.ÿü/9¡z/9ŸæN¹9(Þü #Ç ð ¹ÿÿÿÿ ðgP DJ�g,Hy‹N¹F0XO/9 ðN¹FÞXOHy‹N¹F0XO 9 ðfpHyN¹@ôXOB• .ÿôâ€/N¹>XXO‡ gR• • g wþüB9ŸþLß?N^NuNVHçþüB9ŸþHy N¹@ôXOLß?N^NuŠj TRANSMISSION CAN CELED - ABORTING. TIME OUT - ABORTING.  ERROR OVERFLOW - ABORTING. TOT ABORTgot sent CKS sent BNO sent SOH  TRANSMISSION COMPLETED. THE NUMBER OF B!}" n "n HyüN¹–¤XO#G!i"n iR© .€ n S� g, ® f n 0( @f n (f/. N¹�œXO-Gÿü..ÿüLß?N^NuNVÿøHçþü n0( @gF n ( n�¨-@ÿü .ÿüo*/.ÿü n/( n(H€HÀ/N¹‘0Þü -Gÿø n"n!i n ¼ü .ÿrCJg``ÿÌHyŠþN¹F0XO/9ŸæN¹”@XOBN¹ŠF`ûˆJ®ÿøg N¹>2B®ÿøN¹BŽJ‡g/9ŸæN¹”@XOBN¹ŠF`ûPJg/9ŸæN¹”@XOBN¹ŠF`û0B• 9 F€À†#À B®ÿàB®ÿÜ gHyŠüN¹F0XO9 $H€HÀ/N¹@ôXO DJ�gHyŠòN¹F0XO/9 N¹@ôXO/9 NxYTES IS TIMEOUT WHILE AWAITING INITIAL NAK - ABORTING. AWAITING INITIAL NAK... TEXT MODE BINARY MODE OPEN ERROR: rbFILE > CHECKSUM TRANSMISSION OPTION. rFILE WRITE ERROR - ABORTING. Default time out error  TRANSMISSION COMP"~ø°®ÿüfp`B€S€.Lß?N^NuHçþþ–ƒ˜„�€$/DS‚"o@"/< ¯ -EXIST#,ÆüPMö8 vN�R€QÊÿø`ÀFile Not Open For WriteHçþþ"o@�€”‚&/DSƒ ¯XXO‡ g² DJ�gXHyŠÖN¹F0XOH€HÀ/N¹G’XOJgHyzS DELETE(Y/N) TEXT MODE BINARY MODE wbFILE > CHECKSUM RECEIVE OPTION. wHçþþ B‡.ëLßNuNVÿôHçþüB®ÿøJ® g^ .ÿø°®lR-n ÿô/.N¹ްXO-Gÿü .ÿüm nR® .ÿü€`..ÿøLß?N^NuS®ÿôJ®ÿôfÿÀR®ÿø`ÿ¦..ÿø`ÿÞNVÿøHçþüB®ÿøJ® gX .ÿø°®lL-$€JfØ�€`Ô *  f*< ÅR€ gäQËÿæ`¶File Not Open For ReadNVÿòHçþüB®ÿôBnÿò n rg n RfB®ÿônÿò`-|üÿônÿòR® n bg n Bfnÿò0.ÿòHÀ//.N¹”¾PO-Gÿü ®ÿÿÿÿÿüf ž‡Lß?N^Nu .ÿü退"¢-@ÿø nÿø .ÿü@ nÿø"nÿøB©!iuŠÎN¹F0XO CJgHyŠÈN¹F0XOHyŠÆN¹F0XO f`H CJfpJfj Cf#ü ,ü $R•N¹>2 °¹ m8HyЍN¹F0XOHyN¹=®XO/9ŸæN¹”@XOBN¹ŠF`ø$`ý CJg–N¹BŽJ‡g/9ŸæN¹”@XOBN¹ŠF`÷òJg/9ŸæN¹”@XOBN¹ŠF{n ÿü/. nR®H€HÀ/N¹�POS®ÿüJ®ÿüfÿÚ n0( @ g` R®ÿø`ÿ¬..ÿøLß?N^NuNVÿüHçþü/.N¹ްXO-Gÿü ®"¢f/.ÿüN¹�¾XO..ÿüLß?N^NuNVÿüHçþü n (f" n"nHyüN¹–¤XO#G!i n f¦ n0( @g&p €"¢/N¹�œXOp€"¢/N� nÿø ®ÿô nÿø0.ÿò1@ ..ÿø`ÿ°NVHçþü/. /.N¹“BPOLß?N^NuNVHçþü/.N¹�œXO n (l ž‡Lß?N^Nu n0( gD n(H€HÀ/N¹–XXOJ‡g~ÿ`ÿÌ n"nB©!i nBh ž‡`ÿ¬`ÿ¨Hçþþ o< Cî`-IötgÁQÊÿøü 2<pIù"ð HELP open1 move.b #1,d4 default to TXT ext dc DEFEXT dc FOPENR open file for reading bne.s error1 move.l a2,a4 to open FCB 2 dc GETNAM from cmd line to FCB bcc.s open2 br if no error move.b #21,FCBERR(a4) error2 dc PER LEA HLPMSG(PC),A4 DC PSTRNG DC WARMST HLPMSG DC.B "CMP is used to compare two files to check if they are the same." DC.B $0D,$0A DC.B "If the files are not the same CMP will display a not equal message and" DC.B $0D,$0A DC.B "tell which by      te of the files was the first to be unequal. In the" DC.B $0D,$0A DC.B "event that the files are the same but one is shorter than the other" DC.B $0D,$0A DC.B "CMP will display a message telling which file is the shorter." DC.B $0D,$0A DC.B $0D,$ú` 0JfIú0 5 º®"bò(NE 0Jg溮"bàAú,E9|" g Iú� 5(N 7 4,†6<,Hg:¼=C"1C"$|J."f e >.`g|.`fv(N gIúe 5.0 3<- 3a‚4|Iú® gIú? 5(0 3<- 3a\4|. f Cî`Gúà><?·‰fQÏÿú` Iú, 5a4R¶cè -gà<àO¼cÿDIú 5 B„8àLz 8<- 3z 8NuCOMPARE is used to compare the entire contents of two disks against each other. The correct syntax is COMPARE ERROR IN READING SYSTEM INFO RECORDag`"KìÅ8< -aò<f`ÿ4NuKúôä|=|< zôÜ+H:õ<*a8KúôÂ+zôÚ :úfB-Iú6a (zóða Î zóè 4KúóÊ-=g¾(g" b(g b( Le deFKúó–|>:óÈn6IúéaÆIúó–a t:ó²knIúàaºg Kúóf-CB & buffer file2 ds.w 608 FCB & buffer end cmp  ùJ+nö( - +gî Ae zcì-zùTö  fRAúþpKúþ}B(Ñü»Èfò -e$_Aúþ@KúþNÑü»Èg*ºfð(`Ø nö g ,f -:þ)gNuIúù4ag aªIúû†a güaœ`B”B¬B¬B¬ <ÿ@A*nö-  gŽº.âg†-a& .gŒ /gÆ *gð _g <`XKúóZ-< zóh2< a0QÉÿüÑüa$a"Ñü ðfBaaaa (zó>îa`(zó2ØKúó+H+LNu"<aÒ :ó°ºódIî`¹Èg`þŠ-n`"gÖ`þhIú’KúòÒB-H` ¼ 8 KúòÆ|GIú a ü` Pa ô )_ YNuIúÈa àKúò˜ zò +H :òœ€°ºòšgÚ€Kúòv+@ ` !"#$ :ò«fÄ zò~±úò‚gºa, zòxKúòT+H|?(°(#ef22< °(e f$ÑüQÉÿî zò>±úò6g¬‘üKúò+H` zò$ (!h!@ (!h!@ (!h!@ ( !h !@0(1h"1@"Kúñ¾B-?`’:÷ f:÷g¨ zñ²Kúñ¢+HHç€Eúñø$Ø$Ø$ØAúñî:ñÖ *f :ñË *ga–a B-HIú ¯`l<  3<r 3IúìØ g`PKúì^Bm2B-EB-FB-D|ÿ; zìT+H$Iú쪠fœ0,bKúì.°zì\g(m2°zìPg:ñif:ñmg2>:ì> Gf„+H2 zì Å+H$ ,1g ±úëþf¬:ì(g~`¾KúëÚB-HIú ®`À.‡¾ºëÖdÒEìeÚ0Ú>< Ú ÚQÏÿúKúë¨+H$B,1`ÿb, g f *<a`DJ-Rg6 zñp"zñp(°)b,e"(°)b e(°)be ( °) b:öwg`:öog zñ,B(aܱúñfÿhNu:öRgKúðøB-HIúƒ` ÞKúðè:ñ'k"AúñP+HaÖAúó¤(ÿü *f:ñ2aâAúñ.+H( zðÀa àfIî|`Ž zð¸Kúð˜+HB-Car` $a Âa ¾.ñ g:ðÙg`ÿNKúë~|E:ðÏf g`X:ëªfBIúî.Kúë\|D fä|ÿ;zëÅ:ëÊf:ð“g|:ðŽf zë³)zë® zë.IúíèBD:íå*nFKí<5@f,:ëCg&:ë>f 8: N De D ¸b:ëjf :ð<$Ø$ØQÏÿúB,1`ÿhIúìð f Kúê|GAú Àa¼:ïfg Iúên fèNu< 3<p 3 fÒGú ž6¬"Iú 6zì¥9["6: &C f®6ì`9l`"g€QËÿê*nF-:B-:Kú$Ò‡Iú"g ÎüPMî ÿB6pNuHere are some sample ways of using COPY: COPY ADNL 0,1 .COM AB (normal) COPY FE 1,2 12 2-7 21 (file #) COPY R 0 2A 8 1.FILE (sector) COPY S 0 2 2-12-88 (since date) A Alphabetize files C allow Corrupt file úïxB-Z` SfN`:ôºfDaXAúïÌ(ÿü *ganAúò(ÿü *fKúï­B<<ãJjQÎÿôaDa zï2B(aâ±úïfÿ,`þ¢:ï@gAú –`$KúîöBm..ñ gÿ|°.âgÿt 0dIú ‹KúîÒB-H`¼KúîÆ;E,gæE;E,.ñ -f  0eÐKúî¦;E.gÆE;E.0:îÀ°zî¾b”B€0:î´.é€Ð‡Ð‡Ðìf f€< 3<w 3Gú @6: ÚCBAB€Iúì@9["><>Kì`:ÓA:Á*ÐИQÏÿúJCfBl`'@ f2QËÿÐ>+ÿþ9G9z �9lJ" fB†,MKìMô`kÝÝKíÝÝKíÝÝÝÝÝÝÝÝÝ fÞ  fØ  fÒ>G~àOG}.,€à�žz *GfB,}B,~B,B,€G‚àOG� f–Kúè¤|G#s (danger) D copy only files with newer Date E delete Existing file from destination F copy by File number K Kill source duplicate file (danger) L List without copy M Make random file N copy files Not on destination O turn OfEºîˆ°ºîˆdœKúîr+@ @J(kPa  Hç8<# 38:î€DB 88<: 38<  3Lß`ða€Kúî4J-Vfa$Aúðú(ÿü *ga0: Ø@2<B‚Iúë<9X" fHKì`>g¾Pf<²]f8A<<>Ô�QÎÿüQÈÿØ´¨f AúìaèNuJCgþ‚Kúè*B-HIúS`Iú* 5a°Kúè+L$,Iúà gg4 *f*zíŒKíB<<ãJjQÎÿô<. 3 3</ 3NuIúj 6Nu"<Òºí@Kúí$+A ANuAúïêa2gfAú ôa¼:ò[g:òZf Aú !a¨` Iú saú:f`ä:ò5fIú Ðaú&g Sf²`hIúï–, fZC0,Ð:ìäKúì°@0 zìÀ0:ìÔ( áA( �AKúì”H­0H­!\d(0 3:çßg,Aúªa< zçª(" :a&(# ::ç¼g IúCaô¶g  :ç§fIúaša� NuKúçJ+L$,Iú” g(Iúš g-KIú® gIúº gIúÁaP`ÿV:ç<0 3<. 3(H< EÑü :ç'fÑüKúæÚáL< 8:ç fÑüÑü<  3( b<  3Are you sure (Y/N): Bad entry: Date bad: Allow bad dates (Y/N):  to Drive Single Copy by number not allowedIllegal directory numberChange disk-press key:  File exists Delete original (Y/N/S)?  Copied, verify error & Killed File will      not fitSource drive is empty!Prompt off (P):SK*DOS (S):copy (Y/N)?Prompt off (P):SK*DOS (S):KILL (Y/N)?Nothing  CopiedDirectory space overflow!Directory read error Continue copy anyway (Y/N):  KILL on drive  at track-sector: JanFebMarAü` (N #e¶`" "nö g¢°.âgš (N #eŒ, ßfIú· 5`Ì 4IúÌ 5.0 3<. 3IîB E DIú´ 6 )_ Yg Iúµ 5`ÿ�Iúœ 5 D )_ Yg Iú— 5`ÿr(N gÿj. f Iúˆ 5`ÿV 7   Iú 5 DELETE is used to delete one or more files.r display SK*DOS deviceöù drivers. The correct syntax is DEVICE to just display current device assignments, or DEVICE AS AT to install a new driver. In this form, is prMayJunJulAugSepOctNovDecBadDRIVE NOT READYTHE FILE OR DISK IS WRITE PROTECTEDDISK FILE WRITE ERRORSECTOR NOT FOUNDCRC READ ERRORSYNTAX ERRORFILE NOT FOUNDRECORD NUMBER MATCH ERROR - FILE DAMAGEDLINK TO PROTECTED DIRECTORY SECTORSORTING ...   The coüùrrect syntax is DELETE where the must include the file name and extension, and the default working drive is used unless a drive number is specified. You may delete several files by including more than one the file name of the driverï÷ on the disk (or DEFAULT with no extension for console default), with a default .DVR extension if not specified. is the name (such as CONS or PRTR) that will be used by the syste COPYING ABORTED - INVALID DATE.file-spec.õ]You must provide an extension.Delete  ? Are you sure? Not deleted. No such file exists.m. It must be 4 characters. æ÷ is the number (0-7) used internally by SK*DOS. For example, DEVICE SERIAL1 AS COM1 AT 4 would install the SERIAL1.DVR file under the name COM1 as device 4.Invalid file name for driver.Invalid com—``¥ZDAHç( IúZ 5(D,0 3( Iú` 6(DB„,"B… 8( IúP 6(DB„,#B… 8( Iú@ 6 <(D 4LßpðNuHç( Iú 5`ªRead D-T-S Write D-T-S  -  - ; FCB @ ˜þ 4&nF .> €PSeÒ - ?gÐCë QNugF$i"* �¥ZDAgª iNug,$i"* �¥ZDAg� iN ü` *nö ?g¢  gh¾.âg`..> ‡ReŒ(N #eT,  bH., ‡DEFAf ., ‡ULTgJ, f)|DVR B�B‚ - 1  gnº.âgh  gê Af - 1 Sg Tg.`ô -Iúì #eðJ, fè,gà.,fØ`¤ - 0JgÐ …bÆ `ˆ f® fmand line arguments.Invalid enÝýtry for AS.Invalid entry for AT.Not enough memory to install driver.Is it OK to replace  ? This program requires a newer version of SK*DOS.(N!z$!I!AaØÖ‰!C aÎÖ‰!C!C8aÀÖ‰!Ca¶Ö‰!C!C3AP#AR3|DAdIú 5 Iúˆ 5 Iú 5 DAMON prin–÷ts out the drive, track, and sector number for all disk reads and writes. The ®..üü ‡DEFAfn.. ‡ULTfb.ÎüPAî ÎCè€ÑÇa:f¾ ºl!i !i!i!i!i!i !i$$!i((!i88!i< If not specified, the extension defaults to .TXT. DIFFOUTRecord too long--truncated-------  Line : ----------: ---------------------------------------============================ 3`ÿdIú 6 3`ÿXIú  6`ÿN<$ 3B„( <`ÿ>JfIú™`Iú� 6`ÿ*JgIú…`Iú{ 6`ÿ0 b" -  gþȺ.âgþÀ  gè ,gâß -eZßáI - =fH*nö $f -Aú–Cú¢²PgÑü³Èfò 48àL 3 3Iúü 6 < (Eö € ¸c ÀüPÕÀ(gXjJ ================================================== differences were foundNo more similarities found!gTg’ /e¶ AOFg( Iú 5(< B`ý8Iúv 5 Iú 5  SK*DOS PK`Kú^BKú˜BIúV #eŠ< $Iú† #ez< $Iú8 ff fb|1Iúf fT fP|1KúBUKú :¼KúD:¼KúêBa:aàgaða:Ôfa¸fÞaIúØ Iú   7   Iúþ 5 Iú¼Gú¨a~a(>,ÿþG9GÿôIúâGúÎada>,ÿþG9GÿôNuGì`2<ÐAg6 g ,ú` 4.ñ°.âg& g -e&0º."bE9|" fIú‘ 5Aîp<aÚ<. 3<aÌIú‘ 5(.zàŒ„ÿÿB… 8Iú› 5AîƒB„(B… 8<- 3B„(B… 8<- 3B„(B… 8 4Iú7 5 , nö( gIîlB¬B¬Bl B, #B,Iú' 5 , 0eôJg E|àME{Iú- 5"ARAMETERS (COMMON TO ENTIRE SYSTEM): SK*DOS PARAMETERS FOR DEVICE NUMBER :BS Backspace = àRBE BS echo = çjDL Delete = á‚EL Endline = âšTB Tab = æ²ES Escape =  g2`žJ,ÿüg  flÿþ`ÜB,ÿüÅ  fÊEÿü` $LIú= 5(Jüü lÿþNu:) g:_ NuAútCú°³f ( ÿÿfôNuKúìUKúÞ:¼ÿÿKúÖ:¼ÿÿ2<ÈÒzàKúÂ:�2<ÈÒzKú¶:�Kú¶¼ÿIúÂGú®a¶Iú öGú âaªaLf.Kú’B2: ÞKú†:�Kú|:�’z ÄÒz€Kúl:�2:€Kúf:�Iú )úúß Ng Yfènîƒnï„nð…(N f 4 f<  3SfòNuIú 5 (N 7 Iúý 5 DISKNAME allows you to display or assign a new name, number, or date to a disk. The correct syntax is DISKNAME Current name: New name: C#êÊRP Repeat = íâMD Max drive no= "úOF OFFSET = €ME MEMEND = €*SC SPACE COMP = ãþBPL Print lines =  úZSL Skip lines =  ýrWD Width =  ûŠxaþìJ,f 2:h>:J²Gc¨NuIú œ2,ÿþ>::²GdaþÄaÿ2g,gàNu<Nu.+'G>+7G ,ÿüG2,ÿþ7A>,"7G,1GNu>+9G"B, fþ(B,+G1>+9Gÿþ+GÿüNu 4Iú1 5:¶fÌIúÂGú®a¶IúР5:µ0 3<. 3Iú¦B EIú» 68:’< 8Iú´ 6Iú„aýø>:urreôent number: New number: Current date: Change to today's date (Y or N)? INVALID DRIVE NUMBER.$NL Null wait =  ü¢PS Pause =  þÿºEF End of File =  ÒBR Baud rate =  êXF X-OFF Char =  XN X-ON Char =  DP ********** =  ú2EJ ********** =  ýJDOSPARAM is z¾z`gIúÒa|IúlJ,gÞIú ¢Gú ŽaÿVIún 5: “0 3<. 3Iú „B EIúY 68: p< 8Iú_ 6Iú baý–>: X¾zgIú°aIú JJ,gÞIúa 5NuIúÀ 5Nu ,g 4 g 3`ôNu 4 4B8:À 8Iú| 6NuDIFF is used to compare two text files and display their differences. :`BBƒ -d< ?g¾  gì ,gæJf¤ 4Iú¶ 5Aî B‡. ËÎüPÑÇB‡(ÿûf<LâIú‡EúäGúÀ·ÊgjIúÞ¹ÊfIú¦ 50 3¾:çb g <  3`î 4(J 6 *Cö € ¸c.ÎüPÓÇ*ÕüJgjg`gn`HB„B… 8`Š<$ 3 :Jg&kÿz  dIú 6@ used to change or display various DOS parameters. To display the current parameters, the syntax is DOSPARAM To change the parameters, the syntax is DOSPARAM In both cases, is optional, and defaults to 0. New parameters are entered as a two-letter abbreviation, an equal sign, and the new value, which may be decimal, hexa- decimal (preceded by $), or ON, OFF, N, or Y. For example, DOSPARAM 1 PL=56 SL=10 PS=NK||B€B�.:.;@A @&A'ÂÀA"àIA!nî#nï$nð%Iú® 5:f .6€-@Cî2"¼RAMDB€:ü¤Cë<‘©i¼€°."c@"Cë QNugF$i"* �¥ZC!g¬ iNug,$i"* �¥ZC!g’ iNu g$i"* �¥ZC!gxCúüæ" �< g PdÅR  fÂR€°z àc¬`4¼ $EIú r 5(B… 8Iú l 6(N* R€°z ºb"ÂüPAú ÈÑÁr`¦IúJú i 5.SGKú ž:‡(N >: ’ga0 4<# 3 ,B� -.0  bÂü Ò`êJAg ²z dbKú \:� 1 Pfav`À Sg Ffa–`¬ Cfan`ÿ  Ifaî`ÿˆ Gfa²`ÿz Dfa sets device 1 (usually the printer) for 56 print-lines, 10 skip-lines, and no pause at the end of a page.YESNO is invalid; command terminated.Syntax error; command terminated. = Control- (none) = DANGER: New address is OFFSET cannot be cha 'ACë 8 DNugCé8 DNugCé03@PAúü^#HR3|RDd Aë<0<J0k fðIú˜ 5`(B�:û޲."cA"Iú¢ 50 3Ië<¼Ië<¼€Iú¡ 6(0 3:�fýÈ`” - 1 Efð - 1 MfäIúÄ 5 ) 1 Yfÿê`ÿl Qfa<`ÿ^ ?faB`ÿPIú Р5`ÿF>: ÖfNu >  gl !f >: ÂKú Â:‡`" #f  - 0DúKú °:…` 0>:  ÞESGKú ž:‡>: ˜¾z Žeÿ¨¾z ˆc Kú †>: ~:‡a>: r¾z tfNuKú f>RG:‡`ä 48: XB† 8<: 3<  3B‡>: BÎüPGú R×Ç  g 3`ôNu>: (gýÜ(N , )|BAK  g , nged. - ARE YOU SURE? lKî2 •RAMDgIú| 5 *¼NRAMCë QNugL$i"* �¥ZC!g4 iNug2$i"* �¥ZC!g iNu g$i"* �¥ZC!f%|NRAM..‡¾®6gIú4 5 B†.;áM.:FÌÅÞ†‡-G Iú8 5`þºIúË 5`þ°IúX 5`þ¦Iúý 5`þœIú 5 RAMDISK is used to set up an area o fn)@ *,)E4*,)E8)|BAK< g ,fD)@  f:p>ÎüPGú Ü×Ç   g`ôR€>ú°z ²cà fý`  -  gþ¸Aú ¦B‚aºÅ  g¶gR`ì| ÿÿJBgþ’Kú x¼a’ *fKú f¼: ^f0: P°z NgþfR@` 0: @°z >bý¤2ÂüPKú FÛÁ,M  gAú ."N.³fS`þÿ`¥ZC!J,HkNuHç<,"aVMì`:<,Ý,Ý,Ý,ÝQÍÿöLß`àOï<NuJ,HkNuHç<,"a"Mì`:<*Þ*Þ*Þ*ÞQÍÿöLß`àOï<Nu,zÿŒB…:à�BG.;ÎÅB…Þ…‡á�*n6KõxNuJ,HkNuOï<þ<Nu KúÿJ*ŽNu 4&nF .> €P4eÎAú kB -  gÒº.âgÊ ?g ú` 4 - ?g` -  g º.âg 3`ì Iú 5 ECHO takes the remaining text on the command line and displays it on a new line on the screen. The syntax is ECHO Its primary purpose is to allow .BAT batch files to display fø`RŽ`âR€°z cÌNuKú þ:€aþœ: ü f>: ê¾z èg Kú àRG:‡`€NuHç*nöB…-MöLß Nu -  8úgýÔKú »¼Kú ´¼*nöB‡á�  föà� *fà�¾fKú �¼Aú ŒB‚aÿ Å  gýжgR`ê| ÿÿ..öKú b*‡JBgýl .: T-Gö2: @ÂüPB‡: @SKú HÛÁ,MÝÇ  gAú ." 1 Rg¾ .ž €CACHg  Nf: - 1 Efn - 1 Wfb -Iúh 5 )ß YfAúý¼ -0  d6Aúþ¨…*nö g ,g g°.âfKî2 •RAMDf4Iú¾ 5Aúþr ŽAë„ PRDg°Aè PRDg¤Aè PRDg˜`†Kú�B*nö  gø ,gò›üB�B†0  bÂümeú·ssages as they execute. For example, putting the text ECHO FINISHED into a batch file would cause the word FINISHED to be displayed when SK*DOS gets to that part of the batch file.N.³fSfø`@RŽ`âKú ¼: f Kúÿ¼aý’:óg>:ä¾zâg RGKúØ:‡`ÿ†NuGú ^½ÍgÝ`øÛ 2ú.:È-GöaþÞ  g¶gÅ`îEú 4( ˜ŠHDRÇ  fôKú —Í. ‡PcIúu 5Nu2:tÂüPKú „ÛÁGúøÇ  fö:afaüöNuKúU¼Jgÿ8HDRKúD„`þè>:2¾z*fIúC  Ò†`ì �e� �d†Aÿüë‰ë‰ .�«€@€Âep��ej€@Iú÷ 5êˆêˆ(B… 8Iúû 6 )ß Yfø .��€B-@6à‰< ê‰D;A:IúP 5Aúý~ Ž<<aýæ M<B˜B˜B˜B˜fò¼.;cF<0àH°.:cBF:†fÆB†.;aý¦BU<<aýœBU+|RAM +|DIS O`N.zþ`RCOPYRIGHT (C) 1987 BY PETER A. STARK, STAR-K SOFTWARE SYSTEMS CORP.Pú >Kúÿ°-MúKú¨*� ?g..AúšžˆŽüPKú v:‡ GeÐKú j:¼(N #eÔ< $ g, g 7 Kú DBUIú  5`¢p"ÂüPAúBÑÁr g ,fРgr, fÿÀ`b  gØ 5Nu<= 3 , > #fNu>:g¾zf6Kú>RG:‡>:øÎüPGú ×Ç*nö~N| OÝQÏÿü>:ØKúÒ:‡`šAúâ"H>:,úÆÎüP‡OÑÇ>:´RGÎüPÓÇGP³ÈgSˆ`ò>:œRGKú–:‡>:ŽRGKúˆ:‡>:‚ÎüPGú’×Ç*nö~N| OÝQÏÿü`ÿ0 > 1 Tf KúT:¼Nu Bf >:FKú@:‡Nu 0JEgºz2b !"#$ Kú(:…NuIúe 5Nu>:fNu>:¾zf>:SGKú:‡>:úSGKúô:‡NuAú"H>:èRGÎüPÑÇ>:ÚÎüPÓÇ)PdzÈ&úcö>:ÈSGKúÂ:‡NuIú 5 ) 1 YgNu Iúú 5NuIúE 5  7Iúÿ 5`ùøIú 5 EDLIN is a simple line editor for generating or modifying text files. It is ca/*.Not enough memory exists.Not enough memory for input file to be read. What???New line too long ... not ì changed.Cannot insert a line - memory is full.That line doesn't exist.Are you sure? Error in writing output file; try another disk. <  3$CèúMúöÝúÖ½ÊfEúê BNuRŠMúàÝúÀ½ÊgêAúÔÀMúÌÝú¬½Êfð$H BNu< aÿL< aÿDNu/PLEASE BE A LITTLE BRIEFER!/&////******************************/* */* E L I Z A */* */* CO lled with EDLIN where is the name of an old file to be edited or of a ú new file to be generated; it defaults to .TXT if no extension is specified. If EDLIN is used to edit an existing file, it renames the old file to Line  longer than 79 characters; has been split.This is a new file; start by inserting text.!PYRIGHT 19âú81 BY TOM QUAY */* */******************************//I CAN HELP YOU SOLVE ALL SORTS OF PROBLEMS, BUT YOU MUST TALK TO ME IN COMPLETE SENTENCES SO THAT I CAN PROPERLY UNDERSTAND YOU. /TYPE 'EXIT' TO EXIT TO SK*D .BAK when it writes the new file to the disk. For specific help with editing commands once in EDLIN ú, type a question mark (?) for the command.The EDLIN commands, and some examples, are C - Change a string on the current line Exampleú` 4B€. ûf<FMú °,€Mú!lB–Mú ¨¼;Eú!¸Iú(aOú pa:aša¼aøaZ`è /faÒ` ;g &gaRŒ`Þa¸Nu 4Aú ¹ ) 1 fMú «½ÈgîSˆ<  3< 3`Þ f 4`Î  fE¼ Mú z¼  4NuÅMú ĽÈf°Iúnaÿ|`ÿ`Aú X 'g RˆMú ¥½ÈfðNu¨RˆMú •½Èfò`Ú"OS.//WHAT'S ÜúTHE PROBLEM?&/PLEASE DON'T REPEAT YOURSELF!& EXIT#//THANK YOU FOR LETTING ME HELP.//& ARE #9 AM #1 WERE #I WAS #@ YOU #_ I #Q ME #Q YOUR #o MY #f IVE #~ YOUVE #v IM #� YOURE #ˆÿ QUIT # BYE #M CAN YOU # ìCANT YOU # ì YOU  : C/old string/new string/ D - Delete the current line Example: D F - Find a string bel úow the current line Example: F/string to be found/ G - Go to a line number Examples: G20 or GT (top) or GB (bottom) IAúúú 2°(ZgaNu f IúÙaÿ4`ÿRˆMú g½ÈfØAú Mú [PZRˆ½ÈföNuAúòMúl,ˆAúÄMúf,ˆa:bfNuIú¶aþì MúPB"zB zB #g  gRˆ°fæ`èMú*¼Mú,‰RˆMú,ˆNuAúŒMú,ˆAúðMú,ˆa¬:üf* zòRˆ #föVˆMúâ,ˆ ÿfÚAú4MúÐ,ˆ`"axMúàB zÀ#CANT # ì YOU DÖúONT # ì DO YOU # ì WHY DONT YOU #¸ DONT YOU # ì ARE YOU #A YOU ARE #� YOURE #� SICK #a HEALTH #a JOB # SAD #UNHAPPY #DEPRESSED # CAN I #T WHY CANT I # CANT I #T I FEEL #nI HATE #I DONT LIKE #I CANT #´I CAN NOT # - Insert a new line after the current line Example: I (type # on new line to exit insert mo úde) P - Print Examples: P or P5 or P#22 or P! Q - Quit without saving the text Example: Q S - Save text and B‡ôúáO(AúþÑÇMú¬,ˆ:«R?Mú¡€B�(z”²:•g RŒ ;fö *fRŒR ÿgØ`ÚaþRŒ *fIúvaýòaÊNu"zJAúeÀ fö< MúR€Sˆ<ÀSfú¼;Aú erases the entire RAMDISK and reformats it. RAMDISK REMOVE removes the entire RAMDISK, deletes all traces of it, and recovers its memory, if possible. RAMDISK and CACHE may be used together, but on ;º9"b$Mú±œ…vPHgLß@ N¹ Nù Lß@ |üNuHç,º9"b*Mú±T…6P k,vPHgLß@`N¹4NùLß@`|üNuLß@`| ü NuaNù$aNù*,º9"bMú°æ…6PEHgNu<Eßüâ Nu`€CHç,N ALSO ;*CAN YOU REALLY ;*ÿHOW IS LOVE IMPORTANT TO YOU?;WRúHAT DO YOU LOVE MOST?;ÿIF YOU WERE RICH, WHAT WOULD YOU DO?;HOW IS MONEY IMPORTANT TO YOU?;ÿWHY DO YOU THINK THAT NOBODY ;*WHO, FOR EXAMPLE?;ÿEVERYONE? WHO FOR EXAMPLE AND WHY?;SURELY NOT E ly if RAMDISK is installed first.RAMDISK do>es not work with this version of SK*DOS.RAMdisk will leave K of memory free - OK to format? The specified RAM disk size is too big for your RAM.Are you sure you want to erase the RAM disk? Correc!<Æ­N¹Z,MJ.fHçN¹aÎLß@fTN¹Z :.g<:.g69E(|ª9E"N¹_Œf,:,`g<=E:.Eg.=EB…LßNua$füN¹b0LßNuü`êa`æB®Bn(oN¹Y²NuMìD*|#¦.g*G½Íföü|NuHçB9,L&,(,., BìM(|J9|`|ÿVERYBODY?;ÿSOMETIMES I DON'T LIKE MY JOB EITHER.;WHAT IF YOULú DIDN'T HAVE A JOB?;ÿI'D SUGGEST YOU TAKE 2 ASPIRINS, GO TO BED AND DRINK PLENTY OF LIQUIDS.;WHEN WAS THE LAST TIME YOU TOOK A BATH?;ÿWHAT ABOUT YOUR ;*OH MY, THIS SOUNDS SERIOUS.;WHAT IF  t syntax is: RAMDISK [NEW] [size in K]Reinstalling RAMDISK drive numberResetting the drive number from  to Your RAM disk was formatted earlierRAM disk doesn't exist ... can't be killed.RAMdisk memory cannot be recovered unless you  =;B,1N¹Z†f(J,g,¶¬f츬fæ*, B¾…fÜLßN¹b0Nu 9fêü`àHç (|ªN¹Z~N¹Z†fDB…<þ*9Äã�»¹®ã�»¹²ã�»¹¶ã�»9²,à�à�½E3Å+*<Lß0Nu*y+yNuB¹B¹B9Nu, g  f4, c& b B…Êü*|b I SAID MY ;*ÿWHY ARE YOU SO UNHAPPY?;HOW CAN I CHEER YOU UP?;SFúOMETIMES I GET DEPRESSED TOO.;ÿREALLY? YOU WERE ;*MY GOODNESS.. HOW SERIOUS WERE YOU;ÿSK*DOS IS A GREAT DOS, ISN'T IT?;WHY DO YOU THINK THAT ABOUT SK*DOS?;WHAT MAKES YOU THINK THAT SK*DO reboot.Formatting RAM diskFormatting completedCOPYRIGHT (C) 1986, 1987 BY PETER A. STARK STAR-K SOFTWARE SYSTEMS CORP.ÂDEVICE FAKEADM AS ADM3 AT 0 ,Nf(<,9F"N¹_Œf|1:,bºlNf�LßNuG¾lb^aõfêMù+.>,NJ.gHB†.žFg,àN ÿgMî`àÞ..gº, sets up a new RAM disk of the specified size (8K to 1 Meg). RAMDISK changes the RAMDISK to a ne:ÿv9l"Kì`Mù+*<<?*ÞQÎÿü<`<EÅLßNuJ,f|üNumN`ÿJ,gàaþüfNuB9 ,fðHç<,N3Æ+$ F§Xbÿ|9l"| =N¹_ŒfR||=B,19lbNB„N¹P†f2<,N¼y+$g N¹] f`àN¹W’fN¹WXf 9y+$N`þ€LßNuHç,ÿ �B‡9ÿ €ÎüPÜGüúiÆúkàNüúiÆúkü úiü`9ÿ ‚ÆúkB†9ÿ B‡9ÿ ~ÎüPÜGüú©Æú«àNüú©Æú«ü ú©9ÿ ƒÆú«Lß@ÀNuNùž      NAM FAKEADM.DVR OPT PAGE PAG * FAKE ADM DRIVER FOR SK*DOS/68K * THIS VERSION IS CONFIGURED FOR THE PT-68K-2 COMPUTER * IT MAKES THE COLOR AND MONOCHROME VIDEO BOARDS THINK THAT * THEY ARE JUST ENOUGH OF AN ADM-3 TERMINAL TO RUN * RON ANDERSON'S WORD DEFINES * THE LENGTH OF THE DRIVER TO DEVICE.COM. THEEND IS A * LABEL WHICH IS PLACED AT THE VERY END OF THE DRIVER ********************************************************** LENGTH DC.L THEEND ************************************************** ICE DESCRIPTOR FOR THIS DRIVER DEVADD DC.L 0 ************************************************************* * PART 6. DEVICE INITIALIZATION. THIS CODE DOES NOTHING * SINCE WE'RE USING DEVICES ALREADY PREVIOUSLY USED. * ALL REGISTERS CAN BE CHANGED. **PAT AS CONFIGURED FOR AN ADM-3. * THIS DRIVER ACTUALLY VECTORS THROUGH THE NORMAL CONSOLE DEFAULT * DRIVER, EXCEPT FOR OUCHAR (OUTPUT CHARACTER) WHICH IMITATES * OUTPUT TO AN ADM-3 TERMINAL * COPYRIGHT (C) 1988 BY PETER A. STARK **************** IMP ******** * PART 3. ENTRY POINT POINTERS. THE FOLLOWING POINTERS * DEFINE THE ENTRY POINTS INTO THE DRIVER. ALL ARE * RELATIVE TO THE ORIGIN ********************************************************** DC.L INIPOR DRIVER INITIALIZATION DC.L INSTAT *********************************************************** INIPOR LEA ADFLAG(PC),A6 INITIALIZE ADM FLAG CLR.B (A6) RTS *********************************************************** * PART 7. INPUT PORT STATUS CHECK. THIS ROUTINE IS TO RETURN * TORTANT !! **************************** ** IF USING ASM.COM TO ASSEMBLE THIS FILE, MAKE SURE TO ** USE THE -F OPTION ********************************************************** * THE FORMAT OF A DEVICE DRIVER FOR SK*DOS IS VERY RIGID, * ESPECIALLY AT TH INPUT STATUS DC.L INCHAR INPUT CHARACTER WITH ECHO DC.L INCHAN INPUT CHAR WITHOUT ECHO DC.L ICNTRL INPUT CONTROL ENTRY DC.L OUSTAT OUTPUT STATUS DC.L OUCHAR OUTPUT A CHARACTER DC.L OCNTRL OUTPUT CONTROL ENTRY ************************WO THINGS: * 1. ZERO IF NO CHARACTER IS READY, NON-ZERO OTHERWISE * 2. D5=0 IF NO CHARACTER IS READY, ELSE THE NUMBER OF * CHARACTERS READY. IN NON-INTERRUPT SYSTEMS, D5 SHOULD * RETURN A 1; ONLY IN INTERRUPT-DRIVEN SYSTEMS WILL IT * INDICATE A REE BEGINNING AND VERY END. YOU MAY * SUBSTITUTE YOUR OWN DRIVER CODE, BUT MAKE SURE TO USE THE SAME * FORMAT FOR THE DRIVER AS THIS EXAMPLE. NOTE ESPECIALLY THAT * THIS DRIVER IS NOT EXECUTABLE; IT IS TO BE LOADED INTO MEMORY * BY THE 'DEVICE' UTILITY,  ************************************* * PART 4. THE FOLLOWING LINE DEFINES THE BEGINNING OF THE ACTUAL * CODE AS BEING AT $0000. IT SERVES TO BREAK UP THE OBJECT FILE * TO MAKE IT EASIER FOR 'DEVICE' TO LOAD INTO THE CORRECT PLACE. ********************AL NUMBER OF CHARACTERS IN INPUT BUFFER * PRESERVE ALL REGISTERS *********************************************************** * SINCE WE'RE USING SAME KEYBOARD AS BEFORE, JUST VECTOR * EVERYTHING TO DEFAULT CONSOLE INSTAT JMP.L $1186 USE CONS *****AND MUST BE POSITION-INDEPENDENT. DTBAUD EQU 51 BAUD RATE ENTRY IN DESCRIPTOR ********************************************************** * PART 1. BEGINNING, VERSION NUMBER, AND A 'DR' MARKER * WHICH IS CHECKED BY 'DEVICE' TO AVOID ERRORS. ******** ***************************************** ORG $0000 ************************************************************* * PART 5. DATA AREA USED BY THE DEVICE DRIVER FOR VARIOUS * PURPOSES. ************************************************************* ******************************************************* * PART 8. GET INPUT CHARACTER FROM PORT INTO D5 AND ECHO IT TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS ************************************************************************ START BRA.S START NEVER EXECUTED DC.W $0002 VERSION NUMBER DC.W $4452 'DR' ID MARKER ********************************************************** * PART 2. LENGTH SPECIFICATION. THE NEXT LONG  BYTES 0-12: * NAME OF THIS DEVICE DRIVER DISK FILE - 12 CHARACTERS PLUS 04 DRNAME DC.B 'FAKEADM .DVR',4 * BYTE 13: * DEVICE NUMBER SO THIS DRIVER KNOWS WHICH DEVICE IT IS DEVNUM DC.B 0 DEVICE NUMBER FOR THIS DRIVER * BYTES 14-17: * ADDRESS OF DEV************************************* INCHAR JMP.L $1192 USE CONS *********************************************************** * PART 9. GET INPUT CHARACTER FROM PORT INTO D5 WITHOUT ECHOING TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR I !"#$T. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS *********************************************************** INCHAN JMP.L $1198 USE CONS *********************************************************** * PART 10. INPUT CHANNEL CONTROL. THIS DRIVSIZE MCURV EQU $FF0C80 MONO VERTICAL MCURH EQU $FF0C81 MONO HORIZ BNWRAM EQU $D60000 MONOCHROME RAM BNWADD EQU $FA0769 6845 ADDRESS REG BNWDAT EQU BNWADD+2 6845 DATA REG MCURSZ EQU $FF0C82 MONO CURSOR SIZE OUCHAR MOVEM.L D6-D7/A6,-(A7) 32 MOVE.B D6,CCURH COLOR HORIZ MOVE.B D6,MCURH MONO HORIZ LEA ADFLAG(PC),A6 CLEAR FLAG CLR.B (A6) MOVEM.L (A7)+,D6-D7/A6 PULL RTS * SINCE HUMBUG TOTALLY IGNORES THE NULL CHARACTER, WE NEED A * SPECIAL ROUTINE TO POSITION THE CURSOR ATER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS *********************************************************** ICNTRL JMP.L $11A4 USE CONS *********************************************************** * PART 11. OUTPUT STATUS. RETURN ZERO IF OU PUSH MOVE.B ADFLAG(PC),D6 CHECK FLAG BNE.S PROCES <>0 MEANS PROCESS XY COORD CMP.B #$1B,D5 LEADING ESC? BEQ.S INCFLG YES, SET FLAG = 1 TST.B D5 CHECK FOR NULL CHARACTER BEQ.L DONULL REQUIRES SPECIAL TREATMENT OUPRNT MOVEM.L (A7)+,D! THE RIGHT PLACE * (THIS WILL BE FIXED IN HUMBUG V 1.8, BUT MEANWHILE...) DONULL CLR.L D6 MONO BOARD, IF ANY MOVE.B MCURH,D6 CLR.L D7 MOVE.B MCURV,D7 NOW COMPUTE VIDRAM LOC MULU #80,D7 ADD.W D7,D6 POS ON SCREEN MOVE.B #15,BNWADD MOVTPUT IS NOT * READY, NON-ZERO IF READY TO OUTPUT NEXT. PRESERVE ALL * REGISTERS. IF NO HANDSHAKING IS USED, OR IF HARDWARE * HANDSHAKING IS USED, THEN SIMPLY CHECK BUSY BIT. *********************************************************** OUSTAT JMP.L $116-D7/A6 NO, PULL JMP.L $118C USE CONS * INCREMENT FLAG BY ONE INCFLG LEA ADFLAG(PC),A6 ADD.B #1,(A6) INCREMENT FLAG MOVEM.L (A7)+,D6-D7/A6 PULL RTS * WHEN FLAG NON-ZERO, PROCESS COMMAND PROCES MOVE.B ADFLAG(PC),D6 CMP.B #1,D6 BEQ.S DO"!E.B D6,BNWDAT LSB OF CURSOR ADDRESS LSR.W #8,D6 MOVE.B #14,BNWADD MOVE.B D6,BNWDAT MSB OF CURSOR ADDRESS MOVE.B #10,BNWADD MOVE.B MCURSZ,D6 MOVE.B D6,BNWDAT TURN ON CURSOR CLR.L D6 AND COLOR BOARD TOO, IF ANY MOVE.B CCURH,D6 CLR.LC8 USE CONS *********************************************************** * PART 12. OUTPUT CHARACTER FROM D5 TO OUTPUT PORT. IF NOT * READY, JUST WAIT FOR IT. PRESERVE ALL REGISTERS (INCLUDING D5) ******************************************************1 CMP.B #2,D6 BEQ.S DO2 CMP.B #3,D6 BEQ.S DO3 CLRFLG LEA ADFLAG(PC),A6 ELSE CLEAR FLAG CLR.B (A6) BRA.S OUPRNT AND PRINT CHARACTER * IF FLAG IS CURRENTLY 1, CHECK FOR EQUALS. IF NOT, PRINT; ELSE * SET FLAG TO 2 AND RETURN DO1 CMP.B #'='#" D7 MOVE.B CCURV,D7 NOW COMPUTE VIDRAM LOC MULU #80,D7 ADD.W D7,D6 POS ON SCREEN MOVE.B #15,COLADD MOVE.B D6,COLDAT LSB OF CURSOR ADDRESS LSR.W #8,D6 MOVE.B #14,COLADD MOVE.B D6,COLDAT MSB OF CURSOR ADDRESS MOVE.B #10,COLADD MOV***** * ADFLAG TELLS US WHAT'S GOING ON: * ADFLAG=1 = "ESC " RECEIVED SO FAR, WAITING FOR EQUALS * ADFLAG=2 = "ESC = " RECEIVED SO FAR, Y COORD IS NEXT * ADFLAG=3 = "ESC = Y" RECEIVED SO FAR, X COORD IS NEXT * ADFLAG=0 = NONE OF THE ABOVE ADFLA,D5 CHECK FOR EQUALS BNE.S CLRFLG PRINT IF NOT BRA.S INCFLG YES, INCREMENT FLAG AND RTS * IF FLAG IS CURRENTLY 2, SUBTRACT 32, STORE AS Y COORD IN * BOTH VIDEO BOARDS, INCREMENT FLAG, AND RETURN DO2 MOVE.B D5,D6 SUB.B #32,D6 SUBTRACT 32 MO$#E.B CCURSZ,D6 MOVE.B D6,COLDAT TURN ON CURSOR MOVEM.L (A7)+,D6-D7/A6 RTS AND RETURN ******************************************************* * PART 13. OUTPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS **G DC.B 0 ADM ACTION FLAG DC.B 0 UNUSED CCURV EQU $FF0C7E COLOR VERTICAL CCURH EQU $FF0C7F COLOR HORIZ COLRAM EQU $D70000 COLOR RAM COLADD EQU $FA07A9 6845 ADDRESS REG COLDAT EQU COLADD+2 6845 DATA REG CCURSZ EQU $FF0C83 COLOR CURSOR VE.B D6,CCURV COLOR VERTICAL MOVE.B D6,MCURV MONO VERTICAL BRA.S INCFLG INCREMENT FLAG AND RTS * IF FLAG IS CURRENTLY 3, SUBTRACT 32, STORE AS X COORD IN * BOTH VIDEO BOARDS, INCREMENT FLAG, AND RETURN DO3 MOVE.B D5,D6 SUB.B #32,D6 SUBTRACT $***************************************************** OCNTRL JMP.L $119E USE CONS ******************************************************* * THE END. LABEL THEEND IS USED TO CALCULATE LENGTH OF * DRIVER. NOTE THAT THERE IS NO TRANSFER ADDRESS. *****     %************************************************** THEEND EQU * END oot ôúroutine on these disks to slow down the step rate to an acceptable value. The syntax is FIXBOOT where specifies where the disk to be fixed is located. Note: the boot routine is placed on a disk by the FORMAAu‡åMùÿ ëÝÇ.ÿþ 7gÜB9þaÿlf<Œ90Æþa <þNuaNqaNqaNqaNqaNqNuaè9þfòNu,H…å Mùÿ ë6Pè Mùg‚J,"fMùg~ÝÅ#ÎgzB…ëÅgwŒJ9Qg9Q`ä º,#eB9gx`ü@gxŒ9gxNu,#J9Qg¼9Qcœ9Qú` 4(N #eÎx $ f˜B€B�Aúý$H -  g º8âgÅ`î¼Cúá&I(N fZÅ  fò<R�. ž‹,œŠ*š‡bØž†R‡t(vR„20ÿº3@þf R„Rƒ¼ƒdî 4(B† 8Iú� 6Iú� 6R€`¢R‚¾‚dÌ`š. g 7  . g 7  4Iú" 5(z 8 4(N  Iú( 5 IúC 5 Number of occurrences  T progîúram. To avoid this problem recurring again, make sure to use only FORMAT version 1.7 (dated 3-25-87) or later; do not use earlier versions.NOTHING DONE - This is not a valid PT-68K boot disk.NOTHING DONE - Specified disk is not a floppy.BÆþ9gŠN¹eZ¼9gŠg ÆþÁÆgŠ,"º9þg^B†Ægyg9þãÆþãÅþaþî<Š90ÅþaþðJ9gyg9þâÆþaþÖNuaþ¶,<Nu@Å|. Kì`MùþIùþü€þaþŠffò`Ô`ìaþˆg ,ygzFÅ(GNu@Å|Kì`.isúú The specified file does not exist.FIND is used to find a specified text string within a text file and print out the line number and text of each line which contains that string. The syntax is FIND where the The bootèg sectors on this disk do not need fixing.Finished fixing the boot sectors to slow down the step rate.C MùþIùþü¤þaþ4ffò`�`ìN¹eJg ,ygzFÅ\(GNu@Å|ü€þaþFÅNuB†,Mù<6hgB†<þNu<€<NuÿÿÿÿÿgŒ‚ÿ ÿ ÿ   ÿ PP** ÿ ÿfileô'-name defaults to a .TXT extension.:  >–uP uP uPNuBINTXTCOMBASSYSBAKSCRDATBACDIRPRTOUTBATSRCPIPD ÿ ÿ PP** ÿ((ÿ ÿ ÿPP**ÿ""((""ÿ ÿ PP** ÿTTÿ66ÿ*6ÿ**€  ú` -0  b®(NE9|" f�,Hð f„.,bB ‡PTAf`.,x ‡|gZ ‡|fJ)||x.,ì ‡|f6)||ì f:9|" f0.,€ ‡|f)||€ fIúv 5 IúØ 5 Iú4 5  7 Iúù 5 Iú 5 Due to an error in the Western Digital spec sheet  ?c‹Hçÿ~,Hff &<`D‡åMùÿ ëÝÇ.ÿþ 7gÆ gX|ÿþå‡`JHçÿ~,Hff$<`ö‡åMùÿ ëÝÇ.ÿþ 7gÆ gN<`Ê9PN¹d€fºN¹eÒf N¹fˆg²gr,H‡åMùÿ ëÝÇN¹e `Ì9PN¹d€fvN¹eÒfN¹Eÿÿi  @àÐ*NègKíÿüCúÿ–B‚B‡gb, †ÿ ëäFíOBƒ)é ÞGùgLGóp#K#k#k#k#k B‡90Çi&Eùi rpKíCùhì f„Cúÿü4úåüúïüi)Çiüfoúúr the 1772 floppy disk controller, some SK*DOS/68K boot disks contain a boot routine which asks some drives to step faster than they are capable of, with the result that they do not boot at all, or boot unreliably. This program changes the b @fÞfJ9:ghN¹g6g`f4g.,H‡åMùÿ ëÝÇN¹e `¸9þMùdp`9þMùdxãeMî`öFÆLß~ÿNu    è B†9gv¼gMùg†¹þhÅgvöXþN¹eZ¼9gŠgÆþÁÆgŠB†<þNu<<Nu,Hf <FNFi:<<aŒ3ü7ei$NuJyi$faÿ 90º9i&fîüi a$fa�9i Çi:< <a8EùúéGùúëKì`@Å|Çúëaª`ÓjüfôFÅKúþ›a’9úéÀ €g Àfæùúë`Þ9iØgš @f 9€igˆ9i gT9i f0B†) !"#$G)é$iÕÆ#j#j#j#j fÿa.ü0úå`ÿ9if<`< GìLß~ÿNuLß~ÿNuJyi$faýÒüi aäf"aP9i Çi:< <aøEùúéGùúëKì`@Å|Çúëajjüg�`òFÅKúý[aR9úéÀ €g ÀfæùM:«G|: ¨GaPaÀf2Kë><þùúA9úC†  fQÏÿæùúA.:bâ&‡aH9úAßgq(J|ÿNuaJüúEaþfBÝúAaòf6ÝúAaæf*ÝúAaÚfÝúAaÎfÝúAaÂfÝúANuJl"f< `a0fGùvxJ9vrgGùx|.:Â⾫g þ` 4 -0º."bîAúE(N #eÞ|D |S |K f¾|ÿ;Iúä9|" f¨,†,‡Cú,$nAúÄB("Aú¼|#Iú² L fz("a<(#a6Aè`2<ÿa*QÉÿúAúŒ(#E#ºcÆ("E"ºc¬`$ĵÉgNuCú¾(N f$µÉfôCú¬IúHNuGú¢·Ég$ICú˜(NaHúë`Þ9iØgª @f 9€ig˜9ifp9i gT9i f0B†))é$iÕÆ#j#j#j#j fÿ aäü0úå`þú9if <` < `< GìLß~ÿNuJ9:ga g9i9i f¨<`ÊLß~ÿNu9i:< <a¬EùNaþÔfÞKë:«gÛü><?Mì`*ÞQÏÿüaLß~ÿNuaŽfÿ:dâO€Þ:]âOG:QG|:NGaþöaDf*Kë><þÝúA9úC†  f QÏÿæÝúAaô9úAßNu.< ‡g9úC†fêNu<Nu< `< ` < `<!Ø` 7(N þü Iú 5 FTOH is used to save a mirror image of an entire disk (usually a floppy) as a file on another disk (usually a hard disk or RAMdisk). It can then be restored with HTOF. FTOH and HTOF are used to do mirror image backups of fIúéGùúë@Å|Çúëa"`jüfôFÅKúüa 9úéÀ €g Àfæùúë`Þ9iØg @f 9€iNuKúûÆCúû€B€,H‡¾)gCúûŠ<¾)g|Nu4ÇúåaéúïB…,"Åig<1PíÇi J)fj1P¾,#e@B9iÀi,#Ç÷` -0º."bœIúE9|"Cúj$I(N #e€< $(N fzBa0  gø gl ögB  f < `JgP(N fH`εÉf6Iú¸,#>,"  fG<9G" G(fIúo 5` fCúæNuIú 5  7(N g 7 FROMSDOS reads a text file from a specially-formatted"loppy disks on súþystems with only one floppy drive, since they copy everything, including the boot sectors. The correct syntax is FTOH where is the drive being read from, and is tJiÇiéiñP iéi.<NuüiÀi,#ž1P `´1P¾,#eFB9iÀi,#ãÇiÇiéiñP iéi.<NuüiÀi,#ž1P `®Jyifa”3üÿiNuJyigüúåByiNu9igJ) gãÇ ÷÷MSDOS disk to SK*DOS. Before using, you must first format a disk with MSDOS's FORMAT A: /1 command. Then copy the desired text file to this fresh disk (only one file per disk is allowed). Finally, remove the disk from your MSDOS system, plhe file being written to.ø0 The file name always uses the extension .DSK.Ki¾)g2) ÿfa\f>üi:<<a†f(aä¾9if9iGJ) g âÇiB‡NuJ) g9iâÇi<Nuüi9iÀi:<<a"fa‚Jf ÃiB)NuÃi<Nu<<ÿÿ9úég g9úëavQÎÿâ<Nu9úéfì9úé‡ga KúùHEace îûit into your SK*DOS system, and use FROMSDOS. The correct syntax is FROMSDOS where is the drive which holds the MSDOS disk, and is the name of the desire$ `9Ù¾9Ùg üúCaüIúÆ9|B¬a a ~fÚ9úAg"9| aìa bf¾9úAßf°Aú<0< üÿÿÿÿQÈÿøIú ª 5 )ß Ag Bfè@Iú…Iú Ÿ 5 , 0 …èbî …eæAú20…Iú ³ 5 , 0 …èbîAúÔ0…Iú Ê 5 , 0 …ÿbî …eæAú²0…Iú ý LšaNÇúëQÍÿôa@a2Nu><ÿGfúüúëa(9úë €gàa9úëgÒNu<2fúNuaò9úéjøNu.< 'À‡føNuaŠfrGùvxJ9vrgGùx|.:⾫ga.f:Kë:gÛü><?Mì`,ÝQÏÿü<Lß~ÿNuaèf–KúÐ|9vrëÞ:ÈG>:¾âO€Þ:·âOGd SK*DOS féCile.INVALID INPUT DRIVE NUMBERERROR - REACHED END OF MSDOS DISK.5 , 0 …bî …eæAúˆ…Iú û 5Aú€¼"Iú  5 , 0 …bîAúh…Iú Ž 5 , 0 …bîAúR…B€B‡:@:@ÀÇ>:ˆÀÇ(äŒIú O 5B… 8Iú _ 6B@H@ @c<JgIú K 5B„B… 8Iú ™ 6Iú ¥ 5 )ß Yg� NfæJfâAúâ¼1z1|a`¨zÀB†B‡:´F:¨G     ÎÆ1G<(ÎÆ, ‡ÿÿc <ÿ<ÿ`àNF FbãN`öŽÆFGG F 1zj 1zbNu&@ f&@ AúJIú  5 , 0º€eì bæ Iú'…Iú ! 5"<BB:BG: ÄÇ‚Â6ÆÀ¶zNc6:HB„8B… 8Iú ` 5BE: çE8<ÊÄ8:&˜Ek Dd Iú ‚ 5`ÿ~¸Ae8B… 8Iú ´ 5$< <ÿ(WÞQÏÿü<LßNua*Iúô|:™ëÞ:è  G>:ÞâO€Þ:×âOG:ËG|:hGaþa´f4Iú ²><þùúA9úC  fQÏÿèùúAIú†.:~â(‡a:9úAßg|ÿNuaŠIúT| :ùëÞ:HG>:>âO€Þ:7âOG:+G|allowed in any one partition is 5. Decide how you would like to split up the TOTAL number of cylinders and enter the counts:Cylinders for Partition H? Partition too big ... Try it again.Partition too small ... Try it again.TOTAL CylinderAú ²BG: ¡å02G$|Iú 5 58 Ø 3Iú C 6 , 0º�cIú 8 5`Þ …dIú L 5`Î1J1EÚJ4EÑü°f´¶Eg Iú L 5`þòAú <þÜúA9úC  f QÏÿèÜúAa¦9úAßNu.<‡gê9úCfêNuaàüúEaHfýÌÜúAa f&@: BG Gÿg<0JGfÿN4I&`ÿF$@an 0<a~Kú LüHüDü:: Í@Æü üPü:( Enter desired interleave (6 if unsure): How many heads on the drive? (There are 34 sectors per track/side.) Enter the required code (0-7) for drive step rate - consult the controller manual for the required value, or use 5 if unsure:  Total disâ ÿÿòÿ0ÆBBBBB< >àOÇÆ< >àOÇÆ>àOÇÃîîîïîðè è aRfêIú Ê0<aazfÖJf0`ìaÒa*fÂCú N,)6)0j,)&) j,))j,)>HFÞFCú d2‡B€a¬a&f‚a†Cú Eú Z<$Ùfø4ú 8aÆf^Ñü`ýêIú â *nFKí<: ÅgÛü k capacity is  K. THIS EXCEEDS THE MAXIMUM LOGICAL DRIVE CAPACITY; you must therefore partition the disk into  to 4 partitions.Would you like to partition the disk (Y/N)? How many partitions would you like?  You will now partition the disk by ö`Iú 5 You may get help with most SK*DOS commands simply by typing in the command name, followed by a question mark, as in LIST ? In the help messages, the term applies to the file-specification of a file, which includes @*Üfø›ü@å ��-�- �-0ùÿ Iú� 5 Iú ^ 5 HçIú Ö<@BœføL߀Nu<àNB‡( GÌÇB‡ÜG>(ŒÇÜhMú ˜<†àŽàŽB‡(ŒÇMú ˆ†HFMú �†NuHç.: r⾺ pgaff"Mú j: _gÝü><ÿ(WÜQÏÿüaäLßNuHç.: 6⾺ 4ga*f"Mú .: #gÝü> Cylinders (Tracks). The TOTAL number of usable cylinders on this drive is  The MAXIMUM number of cylinders allowed in any one partition is  Oops ... not enough cylinders for this many partitions - try again. The MINIMUM number of cylinders  öù A. an optional drive number, followed by a period, B. an optional directory letter, followed by a slash, C. a required 8-character file name, D. an optional 3-character extensions, preceded by a period. For example, a typical fi !"#$le-spïÿec might be 1.A/HELP.COM. Names and extensions must start with a letter A-Z; the remaining characters must be either letters, digits 0-9, or the underline _ or asterisk * characters. The drive number, directory, and extension often defaOF completed; data checksum =  Reading from drive  Writing to drive  Verifying drive Error in reading system information recordError in reading drive-track-sector CHECKSUM IS INCORRECT; checksum written was = ÈE úyDOES NOT EXIST OR CANNOT BE READERROR IN READING OR WRITING BOOT SECTORREQUESTED DISK IS NOT A FLOPPY DISK OR RAMDISK.ult to standardî& values and are not always required.OFÆLß~ÿNuGúŸ8Bƒ,Hé Gó0¸fZì ëz€ÃvrB†,"B‡+ GÌÇB‡,#ÜG>+ŒÇÜk3ÆvtàŽàŽB‡+ŒÇÆvvHFÆvw<Nu<Nu.<‡g9úC  fèNu<ûNu.<‡gì9úC fèNu.<‡gÌ9úC  fèNu.<‡g¬9!ú` 4B N(N #d `N 7aB < $ fð(H g ,fâa&   f   gÞ 3  fÒ<  3`Ê(H NuIú 5 LIST is used to display the contents of a text file. The correct syntax is LIST If not specified, the current work drive and È` 4(N #e�|D |S |K -0º."bp*nF-:B-:Kú‹‡AúŠE(H9|" f,Hf((N f |ÿ;..‡ô$$G‡"GB€Bƒa<E"a6E#g®2<ÿGè`a$ÅQÉÿúIú  f¸Kè`<<B‡>Ö‡QÎÿú`µÉeNuJfrCúVIú. 6B„B…(N, 8 f@ÅKìePúC  fèNuByi$Kúž6:<*üÿÿÿÿQÍÿøJ9Rg,*9Kúp#Í 9UÙHù f 9ªÙfüüúCaþ^KúJ;| B­aýaÿNfnüúAaÿ@üdúAaÿ4üúAaÿ(üúAaÿü€úAaÿüúAaÿü€úAaþøüúAaþÌ9úAßf^KúÄ-anú% extension of .TXT will be assumed.Ý2Ý"Ý"Ý><"Ý"Ý"Ý"ÝQÏÿöB,1´‰dÖEéÿÿCúIúÿ 6B„B…:§ 8`š ,f><EéÿÿCúê`ÖKú€*ƒ*nF:uG:IúØ 6(NB„B…( 8h9|" gIúË 5(H 7*nF:=G: 2,†6<B‚=C">Gÿf.# e >.`gNGÿfH(N g(Iú¬ 5.0 3<- 3an*nF:ãG: Aî`>Q G  gÿrüúCaý´Mú�4<aäKú�(< a09R gMú�P< aÀKú�D<$a MúœøKú`;| B­Jkzaüaþ^fŽüúAaþNüúAaþBîúAaþ6îúAaþ*îúAaþîúAaþîúAaþüúAaýÚ9úAßflMúœ¨JkKúÌ- #ú` 4&<ÿÿÿÿ&|$| N(N #dIúì 5 < $"n.ñ -g - -f "|Iú� 5(N f²|ÿ;aj g g g gIú; 5   aD gR g� gÔ g gR gr g˜ g° g g`¬&|`¤aÚ$¶‚g$(S„a®&<ÿÿÿÿ<B€0Ô€QÏÿú¶c–C<.HgB<àN>àO¼cÿvIú½ 5(B… <,:’¸†g:IúY 5(B… <`,B„8àL*< 8<- 3*< 8Nu LIú8 5(H 7(N *nF:GG: Iú4 5*nF:3G: Iú 5 HTOF is used to restore a disk saved with FTOH. The correct syntax is RG  gÿdNuaüÂfDKú¬|E+|aûZaýÈf$><>ùúA9úC  fQÏÿèùúAüúCaüpNu -f*Û- -f$Û- - fÛ- -0fÛ-0Nu|ÿ|ÿ|ÿ |ÿ0NuHù ßüNuvxÿx|ÿz€ ,yt#ΊúMù�#Î$$|úúaÒ(a˜Iúg 6aº"a´R‚Sfö&`ÿb(S„at&<ÿÿÿÿaˆ$HBa€44|aŒ(aRIú! 6af"Ô„alSAføS‚(a4`ÿaJ$¶‚g"(S„a&<ÿÿÿÿ4|a(a IúÙ 6a,"a&R‚Sfö&`þÔ(S„aæ&<ÿÿÿÿ4|aö$HBaî4aþ(aÄIú“ 6aØ"Ô„aÞSA HTOF where is the file being read from, and is the drive being written to. The file name always uses the extension .DSK.Destination disk error.Destination disk may not be a hard disk.HTú` Iî #eH fL,,  B�,*nFKí<5ð g €f09|" fBeCf f Iú 5 Iú• 5 Iú³ 5 IúÓ 5 LINK is used to link SK*DOS.SYS to the boot routine to make a bootable floppy disk. The correct syntax is LINK SK*DOS.SYSFILføS‚ôú(a¦`þˆ(S„aš&<ÿÿÿÿ$|. gPIú1 5aža|`þ`(S„ar&<ÿÿÿÿ$|. gJIú  5ax$HBar4(aN`þ2(S„aD&<ÿÿÿÿ$|Iúà5aNa.`þ(S„a$&<ÿÿÿÿ$|Iú£ 5a.$HBa(4(a`ýè „ÿÿÿþg> g؉ „ÿÿb ;Nu  gIú< 5NuIú! 5     Nu(îú f  (S„a¢. gIús 5  7   LOCATE prints out the load and execution addresses of binary files. The correct syntax is LOCATE The extension defaults to .BIN if not given.The specified file is not binary.AddressH DOES NOT SUPPORT * ANY OF THE ICNTRL AND OCNTRL FEATURES. * THE CABLE SHOULD BE A DB-25 MALE TO A 36 PIN DELTA MALE * PINS 1 - 13 ON DB-25 GO TO PINS 1 - 13 ON 36 PIN DELTA * PINS 14 - 17 ARE NOT CONNECTED ON THE DB-25 * PINS 18 - 25 ON DB-25 GO TO ***** START BRA.S START NEVER EXECUTED DC.W $0003 VERSION NUMBER >>B<< DC.W $444E 'DN' ID MARKER >>B<< ********************************************************** * PART 2. LENGTH SPECIFICATION. THE NEXT LONG WORD DEFINES * THE LENGTH OF THE es, as sè¸aved on disk without offset:Absolute Address: Including offset: Absolute execution address = Execution adddress, including offset =  - This file contains relocation information. PINS 22 - 29 ON DELTA * COPYRIGHT (C) 1987 BY PETER A. STARK * MODIFIED BY PERIPHERAL TECHNOLOGY FOR MONO CARD PORT * MOD. >>B<< 6-4-88 FOR NEW DRIVER FORMAT **************** NOTE ************************************ * DEVICE DRIVER FORMAT WAS CHANG DRIVER TO DEVICE.COM. THEEND IS A * LABEL WHICH IS PLACED AT THE VERY END OF THE DRIVER ********************************************************** LENGTH DC.L THEEND ********************************************************** * PART 3. ENTRY POINT POú` (N #eP< $ fB„ f g 7   , fðIú� 5 )ß YfàIúŠ 5 )ß YfÎ(N fÆ`¶Iú 5 MAKEMPTY is used to create an empty file; that is, a file which exists (i.e., is in the directory), but which contains no data and is totally empt ED 6-4-88 TO CONFORM TO * SK*DOS VERSIONS 2.4 AND LATER. THE "DEVICE.COM" PROGRAM * VERSION 1.0 AND LATER, WILL, HOWEVER, WORK WITH EITHER OLD * OR NEW VERSION DRIVERS. CHANGES ARE IDENTIFIED WITH >>B<< * NOTE ESPECIALLY THE CHANGE OF THE DRIVER MARKER INTERS. THE FOLLOWING POINTERS * DEFINE THE ENTRY POINTS INTO THE DRIVER. ALL ARE * RELATIVE TO THE ORIGIN ********************************************************** DC.L INIPOR DRIVER INITIALIZATION DC.L INSTAT INPUT STATUS DC.L INCHAR INPUTy.úã This is useful for creating files which are later updated. The syntax is MAKEMPTY If not specified, the defaults to the work drive and a .DAT extension.File exists ... delete it?Are you sure?  FROM "DR" * TO "DN" AND THE ADDITION OF THREE NEW CALLS. ********************************************************** * THE FORMAT OF A DEVICE DRIVER FOR SK*DOS IS VERY RIGID, * ESPECIALLY AT THE BEGINNING AND VERY END. YOU MAY * SUBSTITUTE YOUR OWN DR CHARACTER WITH ECHO DC.L INCHAN INPUT CHAR WITHOUT ECHO DC.L ICNTRL INPUT CONTROL ENTRY DC.L OUSTAT OUTPUT STATUS DC.L OUCHAR OUTPUT A CHARACTER DC.L OCNTRL OUTPUT CONTROL ENTRY DC.L INSTA1 INPUT STATUS (1 CHAR ONLY) >>B<< DC.L INC6`þDNt"(.4Fl(rtMONOPAR.DVR ü ú}Nu<Nu<Nu<Nu<ûNuHç9ú{Lß@€Nu9ú{göÅúyü ú}NqNqü ú}Nu<ûNuNu IVER CODE, BUT MAKE SURE TO USE THE SAME * FORMAT FOR THE DRIVER AS THIS EXAMPLE. NOTE ESPECIALLY THAT * THIS DRIVER IS NOT EXECUTABLE; IT IS TO BE LOADED INTO MEMORY * BY THE 'DEVICE' UTILITY, AND MUST BE POSITION-INDEPENDENT. *********************** HN1 INPUT 1 CHAR ONLY, NO ECHO >>B<< DC.L BFLUSH FLUSH TYPEAHEAD BUFFER >>B<< ************************************************************* * PART 4. THE FOLLOWING LINE DEFINES THE BEGINNING OF THE ACTUAL * CODE AS BEING AT $0000. IT SERVES TO BRE NAM MONOPAR.DVR OPT PAG PAG * PARALLEL DEVICE DRIVER FOR SK*DOS/68K * This driver uses the parallel printer port on the * IBM compatible MONO-GRAPHICS card. * THIS VERSION IS CONFIGURED FOR THE PT-68K-2 COMPUTER * AND IS A BARE-BONES DRIVER WHIC *********************************** ********************************************************** * PART 1. BEGINNING, VERSION NUMBER, AND A 'DR' MARKER * WHICH IS CHECKED BY 'DEVICE' TO AVOID ERRORS. ***************************************************** AK UP THE OBJECT FILE * TO MAKE IT EASIER FOR 'DEVICE' TO LOAD INTO THE CORRECT PLACE. ************************************************************* ORG $0000 ************************************************************* * PART 5. DATA AREA USED BY !"#$ THE DEVICE DRIVER FOR VARIOUS * PURPOSES. ************************************************************* * BYTES 0-12: * NAME OF THIS DEVICE DRIVER DISK FILE - 12 CHARACTERS PLUS 04 DRNAME DC.B 'MONOPAR.DVR ',4 * BYTE 13: * DEVICE NUMBER SO THIS DRI ONLY TO SEE * WHETHER THERE IS A 'LAST' CHARACTER AT THE END OF THE BUFFER * WHICH HAS NOT YET BEEN INPUT WITH THE INCHN1 ENTRY *********************************************************** INSTAT MOVE.B #0,D5 NO CHARACTER READYREG RTS INSTA1 EQU  EQU INCHAN >>B<< *********************************************************** * PART 10. INPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT INPUT CONTROL, SO SIGNAL ERROR AND RTS *********************************************************** ICNTRLVER KNOWS WHICH DEVICE IT IS DEVNUM DC.B 0 WILL BE FILLED IN BY 'DEVICE' * BYTES 14-17: * ADDRESS OF DEVICE DESCRIPTOR FOR THIS DRIVER DEVADD DC.L 0 WILL BE FILLED IN BY 'DEVICE' ************************************************************* * ParINSTAT >>B<< *********************************************************** * PART 8. GET INPUT CHARACTER FROM PORT INTO D5 AND ECHO IT TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * O! AND.B #$FB,CCR RETURN NON-ZERO ERROR RTS *********************************************************** * PART 11. OUTPUT STATUS. RETURN ZERO IF OUTPUT IS NOT * READY, NON-ZERO IF READY TO OUTPUT NEXT. PRESERVE ALL * REGISTERS. IF NO HANDSHAKING IS t 6. Device Initialization.  ************************************************************* DATAREG EQU 2*$3BC+$FA0001 STATREG EQU 2*$3BD+$FA0001 CTRLREG EQU 2*$3BE+$FA0001 INIPOR MOVE.B #$C,CTRLREG TURN OFF STROBE RTS ***************************N THE PRINTER PORT, HOWEVER, THERE IS NO INPUT SO ZERO * THIS ENTRY USES THE TYPEAHEAD BUFFER, IF ANY >>B<< *********************************************************** INCHAR MOVE.B #0,D5 RETURN NOTHING RTS ***************************************"USED, OR IF HARDWARE * HANDSHAKING IS USED, THEN SIMPLY CHECK BUSY BIT. *********************************************************** OUSTAT MOVEM.L A6/D7,-(A7) BTST #7,STATREG CHECK BUSY BIT STATEX MOVEM.L (A7)+,A6/D7 RTS ****************************************************** * PART 7. INPUT PORT STATUS CHECK. THIS ROUTINE IS TO RETURN * TWO THINGS: * 1. ZERO IF NO CHARACTER IS READY, NON-ZERO OTHERWISE * 2. D5=0 IF NO CHARACTER IS READY, ELSE THE NUMBER OF * CHARACTERS READY. IN NON-INTE******************** * PART 9. GET INPUT CHARACTER FROM PORT INTO D5 WITHOUT ECHOING TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * ON THE PRINTER PORT, HOWEVER, THERE IS NO INPUT SO#************************************* * PART 12. OUTPUT CHARACTER FROM D5 TO OUTPUT PORT. IF NOT * READY, JUST WAIT FOR IT. PRESERVE ALL REGISTERS (INCLUDING D5) *********************************************************** OUCHAR BTST.B #7,STATREG CHRRUPT SYSTEMS, D5 SHOULD * RETURN A 1; ONLY IN INTERRUPT-DRIVEN SYSTEMS WILL IT * INDICATE A REAL NUMBER OF CHARACTERS IN INPUT BUFFER * PRESERVE ALL REGISTERS * ON THE PRINTER PORT, HOWEVER, THERE IS NO INPUT SO ZERO * NOTE CHANGES INTRODUCED IN VER ZERO * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INCH-- ENTRIES, ALTHOUGH BOTH DEFAULT >>B<< * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INCHAN TAKES THE NEXT CHARACTER FROM THE TYPEAHEAD * BUF$ECK IF BUSY BEQ.S OUCHAR WAIT UNTIL READY MOVE.B D5,DATAREG OUTPUT THE CHARACTER MOVE.B #$D,CTRLREG ACTIVATE STROBE LINE NOP NOP MOVE.B #$C,CTRLREG CLEAR STROBE LINE RTS ******************************************************* * PART SION 0003 : >>B<< * THERE ARE NOW TWO INSTA- ENTRIES, ALTHOUGH BOTH DEFAULT * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INSTAT CHECKS TO SEE WHETHER THERE IS ANY CHARACTER * IN THE TYPEAHEAD BUFFER, WHEREAS INSTA1 CHECKSFER (AND CLEARS THE INSTA1 FLAG), WHEREAS INCHN1 TAKES ONLY * THE CHARACTER FROM THE END OF THE TYPEAHEAD BUFFER, AND CLEARS * BOTH FLAGS. *********************************************************** INCHAN MOVE.B #0,D5 RETURN NOTHING RTS INCHN1 13. OUTPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS ******************************************************* OCNTRL AND.B #$FB,CCR RETURN NON-ZERO ERROR RTS ************************************************      ***** * PART 14. NEW IN REV. >>B<<. WHEN A TYPEAHEAD BUFFER * EXISTS, THIS FLUSHES IT AND CLEARS BOTH INSTAT AND * INSTA1 FLAGS TO INDICATE THAT ALL IS EMPTY. ***************************************************** BFLUSH RTS IN THIS CASE DOES NOTHINGETER A. STARK * THE FORMAT OF A DEVICE DRIVER FOR SK*DOS IS VERY RIGID, * ESPECIALLY AT THE BEGINNING AND VERY END. YOU MAY * SUBSTITUTE YOUR OWN DRIVER CODE, BUT MAKE SURE TO USE THE SAME * FORMAT FOR THE DRIVER AS THIS EXAMPLE. NOTE ESPECIALLY THAT ***************************************************** * PART 2. LENGTH SPECIFICATION. THE NEXT LONG WORD DEFINES * THE LENGTH OF THE DRIVER TO DEVICE.COM. THEEND IS A * LABEL WHICH IS PLACED AT THE VERY END OF THE DRIVER *******************************! >>B<< ******************************************************* * THE END. LABEL THEEND IS USED TO CALCULATE LENGTH OF * DRIVER. NOTE THAT THERE IS NO TRANSFER ADDRESS. ******************************************************* THEEND EQU * END  * THIS DRIVER IS NOT EXECUTABLE; IT IS TO BE LOADED INTO MEMORY * BY THE 'DEVICE' UTILITY, AND MUST BE POSITION-INDEPENDENT. * MOD. >>A<< 3-28-87 TO WORK WITH CSC 68K ASSEMBLER * FIXED BY FREDERIC BROWN >>B<< 6-16-87 FOR PT-2 COMPUTER * MOD. >>C<< 6-4 *************************** LENGTH DC.L THEEND ********************************************************** * PART 3. ENTRY POINT POINTERS. THE FOLLOWING POINTERS * DEFINE THE ENTRY POINTS INTO THE DRIVER. ALL ARE * RELATIVE TO THE ORIGIN ************ø`  N*nö ?gRÑüÝüCú�$H&I· f*· f&· f"· f· f· f· f· f| Iúk 5 Rˆ¼ÈfÈIúx 5 Iú 5 NOBEEP cancels the effects of BEEP. The correct syntax is NOBEEPSK*DOS: aaaah ... peace and quiet.Sorry ... can't use NOBEEP now. -88 FOR NEW DRIVER FORMAT **************** NOTE ************************************ * DEVICE DRIVER FORMAT WAS CHANGED 6-4-88 TO CONFORM TO * SK*DOS VERSIONS 2.4 AND LATER. THE "DEVICE.COM" PROGRAM * VERSION 1.0 AND LATER, WILL, HOWEVER, WORK WITH EI ********************************************** DC.L INIPOR DRIVER INITIALIZATION DC.L INSTAT INPUT STATUS DC.L INCHAR INPUT CHARACTER WITH ECHO DC.L INCHAN INPUT CHAR WITHOUT ECHO DC.L ICNTRL INPUT CONTROL ENTRY DC.L OUSTAT OUTPUT ST THER OLD * OR NEW VERSION DRIVERS. CHANGES ARE IDENTIFIED WITH >>C<< * NOTE ESPECIALLY THE CHANGE OF THE DRIVER MARKER FROM "DR" * TO "DN" AND THE ADDITION OF THREE NEW CALLS. **************** IMPORTANT !! **************************** ** IF USING ASM ATUS DC.L OUCHAR OUTPUT A CHARACTER DC.L OCNTRL OUTPUT CONTROL ENTRY DC.L INSTA1 INPUT STATUS (1 CHAR ONLY) >>C<< DC.L INCHN1 INPUT 1 CHAR ONLY, NO ECHO >>C<< DC.L BFLUSH FLUSH TYPEAHEAD BUFFER >>C<< ************************************6`þDNx4:@FL^p4@vxPARALLEL.DVRüþ�üÿþ…üxþ�üþ�Nu<Nu<Nu<Nu<ûNuHç9þ›Lß@€Nu9þ›göÅþ‘Nu<ûNuNu .COM TO ASSEMBLE THIS FILE, CHANGE "PAG" ** TO "PAGE" IN LINES 2 AND 3, AND MAKE SURE TO ** USE THE -F OPTION ********************************************************** ********************************************************** * PART 1. BEGINNING, VE ************************* * PART 4. THE FOLLOWING LINE DEFINES THE BEGINNING OF THE ACTUAL * CODE AS BEING AT $0000. IT SERVES TO BREAK UP THE OBJECT FILE * TO MAKE IT EASIER FOR 'DEVICE' TO LOAD INTO THE CORRECT PLACE. ******************************** NAM PARALLEL.DVR OPT PAGE PAGE * PARALLEL DEVICE DRIVER FOR SK*DOS/68K * THIS VERSION IS CONFIGURED FOR THE PT-68K-2 COMPUTER * AND IS A BARE-BONES DRIVER WHICH DOES NOT SUPPORT * ANY OF THE ICNTRL AND OCNTRL FEATURES. * COPYRIGHT (C) 1987 BY P RSION NUMBER, AND A 'DR' MARKER * WHICH IS CHECKED BY 'DEVICE' TO AVOID ERRORS. ********************************************************** START BRA.S START NEVER EXECUTED DC.W $0004 VERSION NUMBER >>C<< DC.W $444E 'DN' ID MARKER >>C<< ***** ***************************** ORG $0000 ************************************************************* * PART 5. DATA AREA USED BY THE DEVICE DRIVER FOR VARIOUS * PURPOSES. ************************************************************* * BYTES 0-12: !"#$ * NAME OF THIS DEVICE DRIVER DISK FILE - 12 CHARACTERS PLUS 04 DRNAME DC.B 'PARALLEL.DVR',4 * BYTE 13: * DEVICE NUMBER SO THIS DRIVER KNOWS WHICH DEVICE IT IS DEVNUM DC.B 0 WILL BE FILLED IN BY 'DEVICE' * BYTES 14-17: * ADDRESS OF DEVICE DESCRIPTHOULD * RETURN A 1; ONLY IN INTERRUPT-DRIVEN SYSTEMS WILL IT * INDICATE A REAL NUMBER OF CHARACTERS IN INPUT BUFFER * PRESERVE ALL REGISTERS * ON THE PRINTER PORT, HOWEVER, THERE IS NO INPUT SO ZERO * NOTE CHANGES INTRODUCED IN VERSION 0004 : >>C<< * NTRODUCED IN VERSION 0004 : >>C<< * THERE ARE NOW TWO INCH-- ENTRIES, ALTHOUGH BOTH DEFAULT >>C<< * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INCHAN TAKES THE NEXT CHARACTER FROM THE TYPEAHEAD * BUFFER (AND CLEARS THE INOR FOR THIS DRIVER DEVADD DC.L 0 WILL BE FILLED IN BY 'DEVICE' ************************************************************* * PART 6. DEVICE INITIALIZATION. THIS CODE INITIALIZES PORT A * OF THE 68230 PI/T AT $FE0080 IN THE PT68K-2 COMPUTER. IT IS  THERE ARE NOW TWO INSTA- ENTRIES, ALTHOUGH BOTH DEFAULT * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INSTAT CHECKS TO SEE WHETHER THERE IS ANY CHARACTER * IN THE TYPEAHEAD BUFFER, WHEREAS INSTA1 CHECKS ONLY TO SEE * WHET!STA1 FLAG), WHEREAS INCHN1 TAKES ONLY * THE CHARACTER FROM THE END OF THE TYPEAHEAD BUFFER, AND CLEARS * BOTH FLAGS. *********************************************************** INCHAN MOVE.B #0,D5 RETURN NOTHING RTS INCHN1 EQU INCHAN >>C<< **** ONLY EXECUTED WHEN LOADED BY 'DEVICE'. ALL REGISTERS CAN BE * CHANGED. * THIS ENTIRE PART REVISED >>B<< ************************************************************* * HARDWARE EQUATES FOR THE PORT PIT EQU $FE0081 PIT ADDRESS GENCON EQU PIT GENHER THERE IS A 'LAST' CHARACTER AT THE END OF THE BUFFER * WHICH HAS NOT YET BEEN INPUT WITH THE INCHN1 ENTRY *********************************************************** INSTAT MOVE.B #0,D5 NO CHARACTER READY RTS INSTA1 EQU INSTAT >>C<< ********"******************************************************** * PART 10. INPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT INPUT CONTROL, SO SIGNAL ERROR AND RTS *********************************************************** ICNTRL AND.B #$FB,CCR RETUERAL CONTROL REG PADIR EQU PIT+4 DIRECTION REG PACONT EQU PIT+12 CONTROL REGISTER DATREG EQU PIT+16 DATA REGISTER STAREG EQU PIT+26 PORT STATUS REGISTER * INITIALIZE PORT - SETS UP PORT A FOR UNIDIRECTIONAL OUTPUT, * H2 PULSED OUTPUT MODE, H1*************************************************** * PART 8. GET INPUT CHARACTER FROM PORT INTO D5 AND ECHO IT TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * ON THE PRINTER PORT, HO#RN NON-ZERO ERROR RTS *********************************************************** * PART 11. OUTPUT STATUS. RETURN ZERO IF OUTPUT IS NOT * READY, NON-ZERO IF READY TO OUTPUT NEXT. PRESERVE ALL * REGISTERS. IF NO HANDSHAKING IS USED, OR IF HARDWARE * TO DETECT RISING EDGE INIPOR MOVE.B #0,GENCON START WITH GENERAL CTRL =0 MOVE.B #$FF,PADIR 8 OUTPUT BITS UTPUT MOVE.B #$78,PACONT PORT A,SUBMODE 01,PULSED MOVE.B #$10,GENCON ENABLE PORT RTS **********************************************WEVER, THERE IS NO INPUT SO ZERO * THIS ENTRY USES THE TYPEAHEAD BUFFER, IF ANY >>C<< *********************************************************** INCHAR MOVE.B #0,D5 RETURN NOTHING RTS *********************************************************** *$ HANDSHAKING IS USED, THEN SIMPLY CHECK BUSY BIT. * THIS ENTIRE PART REVISED >>B<< *********************************************************** OUSTAT MOVEM.L A6/D7,-(A7) >>A<< BTST #0,STAREG CHECK H1 STATUS BIT STATEX MOVEM.L (A7)+,A6/D7 >>A<< ************* * PART 7. INPUT PORT STATUS CHECK. THIS ROUTINE IS TO RETURN * TWO THINGS: * 1. ZERO IF NO CHARACTER IS READY, NON-ZERO OTHERWISE * 2. D5=0 IF NO CHARACTER IS READY, ELSE THE NUMBER OF * CHARACTERS READY. IN NON-INTERRUPT SYSTEMS, D5 S PART 9. GET INPUT CHARACTER FROM PORT INTO D5 WITHOUT ECHOING TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * ON THE PRINTER PORT, HOWEVER, THERE IS NO INPUT SO ZERO * NOTE CHANGES I RTS >>A<< *********************************************************** * PART 12. OUTPUT CHARACTER FROM D5 TO OUTPUT PORT. IF NOT * READY, JUST WAIT FOR IT. PRESERVE ALL REGISTERS (INCLUDING D5) * THIS ENTIRE PART REVISED >>B<< *********************      ************************************** OUCHAR BTST.B #0,STAREG CHECK IF READY BEQ.S OUCHAR WAIT UNTIL READY MOVE.B D5,DATREG OUTPUT THE CHARACTER RTS ******************************************************* * PART 13. OUTPUT CHANNEL CONTROL.a good idea at other times as well, as it moves the heads to a part of the disk which does not normally hold any data and which would therefore not be damaged by the head landing on it when power is shut off. The syntax is simply PARK with no s a prompted delete utility which allows you to quickly and easily delete files from a disk. The syntax is PDELETE The drive and directory must be provided, and must be specified as either just a drive number, o! THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS ******************************************************* OCNTRL AND.B #$FB,CCR RETURN NON-ZERO ERROR RTS ***************************************************** * PART 14. NEW IN REVother arguments.Parking drive Hardware problem - BUSY too long - parking aborted.r as both a drive number and directory letter, such as just 1, or as 1.A/. The is optional and works like that in CAT - only those files matching the names and/or extensions listed in the match list (if provided) will be prompted for.". >>C<<. WHEN A TYPEAHEAD BUFFER * EXISTS, THIS FLUSHES IT AND CLEARS BOTH INSTAT AND * INSTA1 FLAGS TO INDICATE THAT ALL IS EMPTY. ***************************************************** BFLUSH RTS IN THIS CASE DOES NOTHING >>C<< ******************* ¢`  N|UKúŒ®é*hö- 0e´º."b¨Eº.ìgKú^B - -  gfº.âg`  gZ ,gT .ft - *g Aed zb\º.!eßKú… -  g ,g /g  g º.âg`( 4Iú‹ 5*h›ü EúÒ$�EúÒKú¼B�B�B�*hö  gnº(âgh  f -`ä Already deleted. Delete  (Yes/No/Quit) ? Incorrect drive numberError in reading directory.Prompted file delete  Not enough memory for directory.#************************************ * THE END. LABEL THEEND IS USED TO CALCULATE LENGTH OF * DRIVER. NOTE THAT THERE IS NO TRANSFER ADDRESS. ******************************************************* THEEND EQU * END  .fR - -d *fLIú„º.!e 1E -d *f2Iújº.!e 1E  -d *fIúPº.!e 1E `Iú: #Kú9­ÿÿ­:4ã g j€Kí`ð(H  f:(H  f2,kòg®KèMúò< :ú *g:g" €g& *g ªgº-f¼KíQÎÿÞ`2J-kÿ¬`ìJ-jÿ¢`âg š-ú` 4 /e Jg E : Iú 5 PEEK is used to print out the hex contents of a memory location. The correct syntax is PEEK

where the
is a hexadecimal number of 1 through 8 digits specifying an absolute address. NOTE: PeekH` *nö ?gD nFAè"H<< <AaCè@< <$<Ba ²)fNIúú| @<) FäNÀF|iaHa¾f89úAf,Iút 5 3aNu.<‡g9úCfêNuIúW 5 aØüúEaHfÿêÜúAa where
is a hexadecimal number of 1 to 8 digits, and  !"#$ is a 2-digit hexadecimal number (byte). CAUTION: Poking into I/O locations or non-existent locations may cause a bus error or may cause the system to crash. to Data invalid or missingChanging StByжByЏB9ÿ žB9ÿ ªNu9ÿ zf(Hç>9Џ¾yжL߀Nu9ÿ zfJ9ÿ žNuHç,yÿ .Lß@Nu9þNuÉE9ÿ {gaD9ÿ {gaR9ÿ {ga.ÉEJyigy7ijüúåByiNuHç,yÿ .gøDLß@NuHç gJ  gn  gv g YLß@NuJyigüúåByi`ÿr DgB…<ûNu9ÿ zfÿ²9ÿ {ga(9ÿ {ga$J9ÿ ªgø:9ÿ ¨B9ÿ žB9ÿ ªNuHç`û"Hç`ý*9þ g®@9þ fZHçB…9þÃgHJ9þÁaàg9ÿ œg€aLJFg 9ÿ œg€3Æÿ ¨üÿ ªãgLß àNsLß àJ9þÁNs9ú`  N*nö ?gˆÑüÝüCú$H&I· f· f· f· f· f · f· f· gRˆ¼ÈfÖIú  5 < CúM -  gº.âgÅSfìIú 5 JgBS`ö<CúÙSfúIú¨ 5 Iú 5 PROMPT allows you to change the SK*DOS prompt. The correct syntax is PROMPT gf`g\B‡9ÿ �?9ÿ €ÎüPÞ_凇Ö,G„9ÿ }G9ÿ �9ÿ � OoB9ÿ �9ÿ € gV9ÿ €B†9ÿ �B‡9ÿ €ÎüPÜGüúiÆúkàNüúiÆúkü úi9ÿ ‚ÆúkLßÀNuMùÖ><ï,î@,î@,î@,î@,î@,î@,î@,î@!Zÿ œg€a`ÚÅÿ Ÿ>: $žz G? Gg$>: Kú …pGG?Kúü:‡üÿ žNuJ9ÿ žgîüþü þ üþ< Æþ ><ÎüQÏÿúQÎÿìüþNukP Fgü Sg˜ 7g¼Kú˜Êü ÛÅJmgˆ9ÿ œff9ÿ œgJm jb9ÿ œf9ÿ œg,- ae" zewú± prompt> where the may be 1 to 8 characters.SK*DOS: The new prompt is now enabled.Sorry, PROMPT only works once.The new prompt must be less than 9 characters.µUQÏÿÞ.<O/ KùÖ,< 9ÿ }*ÆQÏÿüB9ÿ �üÿ €*_`ÿRJ9ÿ �gÿ�9ÿ �`ÿ<`ÎüQÏÿúüþ`ÿHç g˜  g¼  gš g¶ gü"[b`&9ÿ œg-‚Š ae zb ,-àŽ-Nu<--Nu,-àŽ-Nu<- - NuJg4 g& *g8 6g2 8g" :g” EegªNuùÿ œBBFNuùÿ œ`ðùÿ œ`æ9ÿ œgþü>9 GNùf¶J9fÄüþ*yú>/<F Fe<<Æ  f »üg†ú`IúÖ&L #e¸< $ nö g”°.âgŒ(Nk  fz  g ,gz`jAëC쳈f䳈fà³HfܳfØ, -ß Cg Dg Wg Xg  g º.âg`&`Î@`È€`Â`¼C f  7 Iúç 5 Iúý 5 Iú 5 PROTECT is used to display or change a filV  g†  g` gˆ`g~B‡9ÿ ?9ÿ ~ÎüPÞ_凇×,G9ÿ |9ÿ {f„`9úµgö„9úµgöG9ÿ 9ÿ  OoB9ÿ 9ÿ ~ gV9ÿ ~B†9ÿ B‡9ÿ ~ÎüPÜGüú©Æú«àNüú©Æú«ü ú©9ÿ ƒÆú«LßÀNuMù×><9ÿ {#\ FÆßüNÕ9ÿ �fÿxùÿ �yÿ œ`ÿd9ÿ �fÿXùÿ �yÿ œ`ÿD9ÿ œgþ`9ÿ œgþTJ9fÿ"üþNO9ÿ œgþ The is one or more of the following letters: C - Catalog protection. May not be listed in catalog. D - Delete protection -Wf ,î@QÏÿú`9úµgö,.@9úµgö,ÆQÏÿä.<O/ Kù×,< 9ÿ |9ÿ {f*ÆQÏÿü`9úµgö*ÆQÏÿòB9ÿ üÿ ~*_`ÿ(J9ÿ gÿf9ÿ `ÿJ9ÿ ~gÿP9ÿ ~`þüB9ÿ `þò.<Ï/ Kù×,< 9ÿ |9ÿ {f*ÆQÏÿü`9úµgö*ÆQÏÿòB9ÿ B9ÿ ~*_`]ªg4 ¶g. ¸g ºg. Åg4`þt¹ÿ œ`þh¹ÿ œ`þ\¹ÿ œ`þP¹ÿ �`þD¹ÿ �`þ8ÿÿÿ11!!1ÿÿÿ22@@ÿÿÿ33##3ÿÿÿ44$$4ÿÿÿ55%%5ÿÿÿ66^^ÿÿÿ77&&7ÿÿÿ88**8ÿÿÿ99((9ÿÿÿ00))0ÿÿÿ--__ÿÿÿ==+ canôènot be deleted. W - Write protection - cannot be written into. X - Remove any prior protection. In case of conflict, later option letters supersede earlier ones.Missing or invalid parameter.Specified file does not exist.Xþ¤üþ üUþüþ><`ÎüQÏÿúüþ`þ¼aZ`ûF9ÿ zf 9ÿ {ga(9ÿ {ga$J9ÿ žgø9ÿ ŸB9ÿ žB9ÿ ªNuHç`üHç`þ9ÿ zfP9ÿ {gaØ9ÿ {gaÔHç<: |¼z vgöMú t6`FF?Mú b<†Lß@@B9ÿ žB9ÿ ªNuHç,yÿ .gø.ÁÄ ÎÝ@ìăRA&,ŽÁ½Í~ÍRANDOM HAS BEEN PREVIOUSLY LOADED.ƒ%%'3ŽÁI½Í~ÍTHIS IS NOT THE CORRECT VERSION OF SK*DOSÂÂŽÍ€ŽÁ³ì„£¤&#¦¡#&ì£$&ì£&&0¿Â¦„�='ÿf 0ŒÎ€&Ï SK*DOS: üÌ+ƒÈÃÂÁÄÄÄðƒýÌ+ŽÂ¦€§ ŒÆ&÷Æ 3B¾Ì+0†~§À¯Á0Z&÷Ìȃ     óÌ+Ão€o€o€¾Ì+0­„ÌRAýÝ@¾Â'†=§„~Í&0AG Û_¿4U§„~Ôo�Åj�Áo�Â9mˆ'm*n¦„§­ŸÝp9'Æÿçˆ;_9mˆ&9¦·ÊíŸÝt&ô¶ÊÛ§ˆ<ˆÄ1ˆ@_o Z&û­ŸÝr&ßìˆíˆ@­ŸÝp&Óìˆíˆ­ŸÝr&Çìˆíˆ@­ŸÝp&»ìˆíˆÌíˆ�&«O9mˆ&9�2bnŸÝlìˆíˆ=½&O1�3ì¤ ‡ üþ¾®ežIú. 5 ‚KúÒ*‚"üÿÿÿÿ&IKú¬*¼Kúœ¼.<‡Kú’*‡Kú˜*¼`Ò<  3Iúë 6(:†B… 8Iúê 6B�(:n„*< 8Iúà6B„<  3 * 0e 9cT g¢ g¦ g° g¸ gÀ gì gü  g˜ gþ’ a .TXT extension.'Nì#'1# øì¤4¦"�ÿ&5 \áˆ<#ÆläJ&ó5£ˆ=&l" (1#40�ð4¬á5%Æ÷Ì çìˆ=íˆ9ìˆ=í¤Æç"0�Ð4ÃLĬá%%0�Å®�·1¨@ì�·í¡o o Æü¦€§ Z&ù®�� 0� ®�’1¨@_¦€§ Z&ù®�ƒìˆíˆ­ŸÝp&œìˆ=íˆO9¦®ˆ¬�e& ¡�a&¬�]'¯�R§�P¯�N¯ˆ­ŸÝn'91�C_0ˆ@¦€§ Z&ù®�  g0GúìB“`"úþ *  fB�":Ö�GúÌ&�`ÖB„ 30eÿ(  bÿ H§B�":¦Âü Ò_Gúœ&�`°B�Gú’&�`œ":Œ’ºtGú€&�`Š":r’ºbGún&�`x":bÒºRGú^&�`hGú<¼ <Gú4&€ < Gú$&€":*Gú*&�`4Gú¼ <â€Gúþ&€`ÐGúð¼ < NAM READ OPT PAG PAG * READ UTILITY FOR SK*DOS / 68K * COPYRIGHT (C) 1987 BY PETER A. STARK * THIS PROGRAM ALLOWS YOU TO READ A TEXT FILE AND * BROWSE BACK AND FORTH THROUGH IT. THE SCREEN MAY * ALSO BE SPLIT INTO TWO HALVES, AND TWO PARTS OF * T+ìˆ@툭ŸÝn&à0ˆ@ì�í�0Æü¦€§ Z&ù®�O94†ÄÄþ0'†§„5††§„mˆ& Æ÷Ì ç5††§o„½Ô&Ýjˆ"O5†4æˆ#0ˆ@:¦„_5”4æÄÁ&æˆ#0ˆ@:§„®aƃççˆ?_5”Æ÷Ì ç5”mˆ& 4†§·Ì 5‚4ìˆ ƒíˆ 5 imˆ'O¬�u&ý§�E&Bmˆ?'<†ý”&6†ý�&/ìˆ/툭ŸÝn&#æˆ10ˆ@:üÌí¨ÄÔĶ̧ Gúè&€ <`´":îøþe < 3`þNCúⲩgeÓü³úÀgÞ`ê“ü(N2)9A" fýDAìdB(ÿÿ":¢g:"<ü.)f.< gfò`–(ÿþ gpg‡`Ø �Œ€`@1":TGúL&� :6 €gaüŽ`aü\$:$|GúB“ g, fü®`ý„  gæHE SAME DOCUMENT READ AT ONCE. * THIS VERSION IS FOR THE ADM-3A * EQUATES TO SK*DOS LIB SKEQUATE * EQUATES TO TAILOR PROGRAM TO YOUR TERMINAL * MAKE SURE TO ALSO CUSTOMIZE THE SUBROUTINES WIDTH EQU 80 WIDTH OF SCREEN IN CHARACTERS HEIGHT EQU ¨O½ÍW§¨nŸÝpO9m*¦§ˆ?„§­ŸÝp9O9o„mˆ'ÿt46�ß&ìˆ &ìˆíˆ­ŸÝn&†§ˆ"ìˆB£ˆ &e5¶Ã£ˆ"?þj&ð1�àìˆ m"'/à"‚�ÿ' ƒ'1# êë"¦¤4¦!Z' L¡ˆ<#÷†lä ñ‰5 Ÿìˆíˆ0ˆ@1�™_¦ §€Z&ù®b† †§·Ì 5¶mŘxˆ'þÚÿZ&94¦�5&õ46ìˆ í�\ƒ§X"¶ìˆíˆ† §ˆ?üw&A†§   g":ì �OgÔ 3GúÜ“`Äöÿ:Î gaüL<  3<  3Gú¶B“fž`ý2IúL 5`ýdIúô 5 FILE IS TOO LONG ----------  LINES, NOW STARTING AT LINE  FILE READ PROGRAM. ALLOWABLE COMMANDS ARE: T - TOP OF FILE B - BO24 HEIGHT OF SCREEN IN LINES READ BRA.S START GO TO START VER DC.W $0100 VERSION NUMBER * MOVTOP - SUBROUTINE TO MOVE CURSOR TO TOP LEFT * CORNER OF SCREEN WITHOUT ERASING IT * IF MODE = $01, THEN ALSO DO AN ERASE MOVTOP MOVE.B MODE(PC),D7 §ˆ?oˆ"ìˆBíˆ Oüa&+ìˆ £�(' †üP& ç†üG&†ü@& ì� íˆ þü5¶Á TTOM OF FILE R - GO UP ONE SCREENõü V (OR CR) - GO DOWN ONE SCREEN Q - USE TOP HALF OF SCREEN Z - USE BOTTOM HALF OF SCREEN A - USE ALL OF SCREEN S - STOP AND RETURN TO DOS CHECK MODE CMP.B #1,D7 IS IT MODE 1? BEQ.S MOVERA YES, SO ERASE AND DO CURSOR HOME CLR.L D0 MOVE.B #$1E,D4 NO, CURSOR HOME WITHOUT ERASE DC PUTCH RTS MOVERA MOVE.B #$1A,D4 ERASE AND HOME CURSOR DC PUTCH RTS * MOVMID - SUBROUTINE ü`h:À gB9ÿ ~B9ÿ B9ÿ €B9ÿ �Nu< 3Nuü ÿ ~ü ÿ €B9ÿ B9ÿ �Nu&:xƒ ƒPd<  3`êNu (N #d `¶ 7   (< $ fî fê$<CúT)l`B,_>,`gd#Bf‚3G9G",_ f´Cc,<üKìd  f-ÿþ  g‚fâÓü. ? - PRINT THIS HELP MESSAGE NUMBER AND RETURN -ñÕ GO TO SPECIFIED LINE NUMBER COMMAND: READ allows you to browse through a text file forward and backward. The correct syntax is READ where the defaults toTO MOVE CURSOR TO MIDDLE OF * SCREEN WITHOUT ERASING IT MOVMID MOVE.B #$1B,D4 ESCAPE DC PUTCH MOVE.B #$3D,D4 = DC PUTCH MOVE.B #12,D4 ROW 12 DC PUTCH CLR.L D0 MOVE.B #$20,D4 COLUMN 0 DC PUTCH RTS * ERALIN - SUBROUTINE TO ERASE R !"#$EMAINDER OF LINE FROM * CURRENT CURSOR POSITION TO END OF LINE ERALIN MOVE.L CURPOS(PC),D3 GET CURRENT POSITION ON LINE EL1 ADD.L #1,D3 ADD 1 TO IT CMP.L #WIDTH,D3 COMPARE WITH WIDTH BCC.S EL2 STOP WHEN DONE MOVE.B #$20,D4 ELSE OUTPUT A  MOVE.B D3,FCBDAT+3(A4) PUT JUST BEFORE CURRENT DATA MOVE.L #252,D6 READY TO COUNT LEA FCBDAT+4(A4),A5 POINT TO FIRST DATA BYTE LOOP2 MOVE.B 0(A5)+,D7 GET NEXT BYTE CMP.B #$0D,D7 IS IT CR? BNE.S NOCR NO MOVE.B -2(A5),D7 YES, BUT CHEC PC),D4 ADD.L #1,D4 FIX IT UP MOVE.L #0,D5 DC OUT5D PRINT CURRENT LINE NUMBER LEA PROMP1(PC),A4 PRINT "-----" AGAIN DC PNSTRN CLR.L D4 MOVE.B #$0D,D4 DC PUTCH DO CR AGAIN NEXT1 DC INNOEC GET COMMAND CHARACTER WITHOUT ECHO AND.B #SPACE DC PUTCH BRA.S EL1 AND REPEAT EL2 RTS * START OF ACTUAL PROGRAM START DC VPOINT MOVE.L A6,A4 POINT TO SYSTEM FCB DC GETNAM GET FILE SPEC INTO FCB BCC.S NAMEOK IF FILE NAME WAS OK BRA.L HELP2 * ERROR ROUTINE ERROR DC PERROR  K PREVIOUS CMP.B #9,D7 WAS IT SPACE COMPRESSION? BEQ.S NOCR YES, SO IT'S $D SPACES! ADD.L #1,D2 NO, ADD 1 TO COUNTER NOCR SUB.B #01,D6 DECREMENT COUNTER BNE.S LOOP2 REPEAT UNTIL DONE ADD.L #6,A1 POINT TO NEXT TABLE ENTRY MOVE.L A1,D7!$7F,D5 MASK PARITY CMP.B #$30,D5 BCS.S ISCOMD <$30 IS COMMAND CMP.B #$39,D5 BLS.S ISNUMB 30-39 IS NUMBER ISCOMD AND.B #$1F,D5 MASK PARITY CMP.B #$14,D5 T BEQ.L GOTOP GO TO TOP OF FILE CMP.B #$02,D5 B BEQ.L GOBOT GO TO BOTTOM OFPRINT ERROR CODE DC FCSCLS CLOSE THE FILE WARMSS DC WARMST AND RETURN TO SK*DOS * FILE SPEC WAS OK; DEFAULT TO .TXT NAMEOK MOVE.L #1,D4 DEFAULT EXTENSION CODE DC DEFEXT DEFAULT TO .TXT * NOW OPEN THE FILE DC FOPENR GO OPEN THE FILE BNE ADD.L #10,D7 CMP.L MEMEND(A6),D7 CHECK IF CLOSE TO MEMEND BCS.S LOOP1 OK TO CONTINUE LEA MEMMSG(PC),A4 DC PSTRNG PRINT "TOO CLOSE TO MEMEND" DC WARMST AND QUIT * AT END OF SCAN DON1 SUB.L #1,D2 LEA LINES(PC),A5 MOVE.L D2,(A5) N" FILE CMP.B #$12,D5 R BEQ.L GOBAK BACK ONE SCREEN CMP.B #$16,D5 V BEQ.L GOFOR FORWARD ONE SCREEN CMP.B #$11,D5 Q BEQ.L USETOP GO USE TOP OF SCREEN CMP.B #$1A,D5 Z BEQ.L USEBOT GO USE BOTTOM OF SCREEN CMP.B #$01,D5 A BEQ.L U .S ERROR IF NOT ZERO (Z = 0) * NOW CLOSE THE FILE AGAIN DC FCLOSE GO CLOSE THE FILE BNE.S ERROR IF NOT ZERO (Z = 0) * NOW LOOP THROUGH FILE TO MAKE A TABLE OF SECTORS * AND NUMBER OF LINES IN EACH MOVE.L #0,D2 FIRST LINE IN FIRST SECTOR UMBER OF LINES MOVE.L #$FFFFFFFF,(A1)+ MARK END OF TABLE MOVE.L A1,A3 STORE END OF TABLE ADDRESS LEA TOPLIN(PC),A5 MOVE.L #1,(A5) LINE 1 IS TOP OF DISPLAY AREA LEA MODE(PC),A5 MOVE.B #1,(A5) SET MODE TO ALL MOVE.L #HEIGHT,D7 SUB.L ##SEALL GO USE ALL OF SCREEN CMP.B #$0D,D5 CR? BEQ.L GOFOR FORWARD ONE SCREEN CMP.B #$13,D5 S? BEQ.L WARMSS YES, QUIT CMP.B #$1F,D5 NEED HELP? BEQ HELP ISNUMB LEA NUMBER(PC),A3 CLR.L (A3) CLEAR DESIRED LINE NUMBER BRA.S DIGIT1 CH LEA TABLE(PC),A1 POINT TO TABLE MOVE.L FCBFTR(A4),FCBDAT(A4) BEGINNING OF FILE IS HERE CLR.B FCBDAT+255(A4) CLEAR LAST BYTE OF 'PREV' SCTR LOOP1 MOVE.W FCBDAT(A4),D7 GET POINTER TO NEXT BEQ.S DON1 WHEN FINISHED MOVE.L D2,0(A1) FIRST LINE1,D7 LEA LONSCR(PC),A5 MOVE.L D7,(A5) KEEP AN EMPTY LINE AT BOTTOM OF SCREEN LEA CURLIN(PC),A5 MOVE.L #0,(A5) DISPLAY STARTS WITH FIRST BRA.L HELP SHOW SIGNON AND HELP MESSAGE * WHEN ENTIRE FILE IS SCANNED, NOW ACCEPT COMMANDS NXTCOM MO$ECK FOR DIGITS DIGIT DC INNOEC GET NEXT DIGIT AND.B #$7F,D5 MASK PARITY CMP.B #$0D,D5 END OF NUMBER? BNE.S DIGIT1 NO CLR.L D1 MOVE.L NUMBER(PC),D1 YES; FIX NUMBER SO IT STARTS WITH 0 SUB.L #1,D1 LEA NUMBER(PC),A3 MOVE.L D1,(A3)  NUMBER BNE.S LOOP1A FIRST LINE IS PROBLEM ADD.L #1,D2 SO FIX IT LOOP1A MOVE.W D7,4(A1) PUT INTO TABLE MOVE.W D7,FCBCTR(A4) MAKE IT CURRENT TRACK MOVE.B FCBDAT+255(A4),D3 SAVE AS PREVIOUS BYTE DC SREAD GO READ THIS SECTOR BNE.S ERROR VE.B #$0D,D4 DC PUTCH DO CR LEA PROMP1(PC),A4 DC PNSTRN PRINT "------ " MOVE.L LINES(PC),D4 CLR.L D5 NO SPACES DC OUT5D PRINT NUMBER OF LINES LEA #PROMP2(PC),A4 PRINT " LINES, NOW STARTING AT " DC PNSTRN CLR.L D1 MOVE.L CURLIN( BRA.L GOTOLI GO TO SPECIFIED LINE DIGIT1 CLR.L D4 MOVE.B D5,D4 DC PUTCH ECHO IT SUB.B #$30,D4 CHECK FOR DIGITS BCS.L NXTCOM NO GOOD CMP.B #9,D4 BHI.L NXTCOM STILL NO GOOD MOVEM.W D4-D4,-(A7) SAVE VALID DIGIT CLR.L D1 MOVE.L NU     MBER(PC),D1 NUMBER GET DESIRED LINE NUMBER MULU #10,D1 MULT BY 10 ADD.W 0(A7)+,D1 ADD IN CURRENT DIGIT LEA NUMBER(PC),A3 MOVE.L D1,(A3) BRA.S DIGIT GO GET NEXT DIGIT * COMMAND PROCESSING ROUTINES * GOTO TOP OF FILE GOTOP CLR.L D1 LEA) MOVE.L #HEIGHT,D0 BRA.S UT1 * GOTOLI - ROUTINE TO DISPLAY TEXT BEGINNING AT NUMBER GOTOLI MOVE.L NUMBER(PC),D1 CMP.L LINES(PC),D1 CHECK FOR VALID NUMBER BCS.S GOTOK IF OK GNOG MOVE.B #7,D0 ELSE RING BELL DC PUTCH BRA.L NXTCOM AND $EXPANSIONS? BEQ.S GFNO YES, SO $D WAS 13 SPACES! CMP.L NUMBER(PC),D7 CHECK IF SAME AS DESIRED BEQ.S GOPRIN YES, GO START PRINTING ADD.L #1,D7 INCREMENT LINE COUNTER BRA.S GFL1 NO, LOOK FOR MORE * NOW SET UP EVERYTHING TO PRINT GOPRIN  NUMBER(PC),A3 MOVE.L D1,(A3) DESIRE LINE 1 BRA.L GOTOLI * GO TO BOTTOM OF FILE GOBOT MOVE.L LINES(PC),D1 NUMBER OF LINES IN FILE SUB.L LONSCR(PC),D1 CALCULATE NEW TOP LINE LEA NUMBER(PC),A3 MOVE.L D1,(A3) BRA.L GOTOLI * GO UP ONE SCREE REPEAT COMMAND LOOP * ON VALID LINE NUMBER, FIND IN TABLE GOTOK LEA TABLE(PC),A1 POINT TO TABLE GLOOP1 CMP.L 0(A1),D1 CHECK AGAINST TABLE BEQ.S GFOUND FOUND SECTOR BCS.S GPREV JUST STEPPED PAST SECTOR ADD.L #6,A1 POINT TO NEXT TABLE ENTRY %MOVE.L A0,D0 POINTER TO FIRST CHAR TO PRINT SUB.L A4,D0 SUB.L #FCBDAT,D0 CONVERT TO FCBDPT MOVE.B D0,FCBDPT(A4) SET UP CORRECT DATA POINTER MOVE.L NUMBER(PC),D1 LEA CURLIN(PC),A3 MOVE.L D1,(A3) SET CURRENT LINE NUMBER MOVE.L TOPLIN(PCN GOBAK MOVE.L CURLIN(PC),D1 SUB.L LONSCR(PC),D1 CALCULATE NEW TOP LINE LEA NUMBER(PC),A3 MOVE.L D1,(A3) BRA.S GOTOLI * GO DOWN ONE SCREEN GOFOR MOVE.L CURLIN(PC),D1 ADD.L LONSCR(PC),D1 ADD NUMBER OF LINES ON SCREEN LEA NUMBER(PC),A3  CMP.L TABEND(PC),A1, AT END OF TABLE? BEQ.S GNOG YES, NO GOOD BRA.S GLOOP1 NO, LOOK FOR MORE * JUST STEPPED PAST SECTOR GPREV SUB.L #6,A1 POINT BACK TO PREV SECTOR * FOUND THE SECTOR, READ IT GFOUND MOVE.L A6,A4 MOVE.W 4(A1),D1 GET TRA&),D0 CHECK WHERE WE ARE TO START PRINTING CMP.L #1,D0 IS IT TOP? BEQ.S YESTOP YES BSR.L MOVMID NO, MOVE TO MIDDLE BRA.S GP2 YESTOP BSR.L MOVTOP MOVE TO TOP OF SCREEN GP2 MOVE.L LONSCR(PC),D2 LINES ON SCREEN = COUNTER MOVE.B #1,FCBRW(AMOVE.L D1,(A3) BRA.S GOTOLI * USE TOP OF SCREEN USETOP LEA MODE(PC),A3 MOVE.B #2,(A3) MODE IS NOT 1 MOVE.L #1,D0 LEA TOPLIN(PC),A3 MOVE.L D0,(A3) LINE 1 IS AT TOP MOVE.L #HEIGHT,D0 HEIGHT OF SCREEN ASR.L #1,D0 DIVIDE BY 2 UT1 SUB.L  !CK AND SECTOR MOVE.W D1,FCBCTR(A4) PUT INTO FCB DC SREAD GO READ THE SECTOR BNE.L ERROR LEA FCBDAT+4(A4),A0 POINT X TO DATA AREA CLR.B -1(A0) CLEAR BYTE BEFORE THE DATA MOVE.L NUMBER(PC),D1 CHECK LINE NUMBER BEQ.S GOPRIN START AT BE'4) FOOL DOS INTO THINKING IT'S OPEN LEA CURPOS(PC),A3 CLR.L (A3) CURRENT POSITION IS AT 0 * MAIN LOOP TO READ AND PRINT EACH CHARACTER PLOOP DC FREAD GO READ NEXT CHARACTER BEQ.S CHAROK GO ON IF NO ERROR * IF THERE WAS AN ERROR, SEE IF EN#1,D0 SUBTRACT 1 LEA LONSCR(PC),A3 MOVE.L D0,(A3) MOVE.L CURLIN(PC),D1 LEA NUMBER(PC),A3 MOVE.L D1,(A3) START WITH THIS LINE BRA.S GOTOLI GO DISPLAY * USE BOTTOM OF SCREEN USEBOT LEA MODE(PC),A3 MOVE.B #2,(A3) MODE IS NOT 1 MOVE.L  "GINNING FOR LINE 0 MOVE.L #252,D1 COUNT UP TO 252 DATA BYTES MOVE.L 0(A1),D7 GET STARTING LINE NUMBER IN SECTOR BNE.S GFL1 CONTINUE IF NOT ZERO MOVE.L #1,D7 ELSE FORCE IT TO BE 1 * LOOP TO LOOK FOR FIRST CR IN LINE GFL1 MOVE.B 0(A0)+,D0 G(D OF FILE MOVE.B 1(A4),D0 GET ERROR CODE CMP.B #8,D0 COMPARE WITH END OF FILE ERROR BNE.L ERROR NOT END OF FILE, SO REAL ERROR BRA.L NXTCOM ON E-O-F, JUST RETURN TO COMMAND MODE * CONTINUE IF CHARACTER IS OK CHAROK CMP.B #$0A,D5 IS IT LI#HEIGHT,D0 HEIGHT OF SCREEN ASR.L #1,D0 DIVIDE BY 2 LEA TOPLIN(PC),A3 MOVE.L D0,(A3) MIDDLE OF SCREEN IS TOP BRA.S UT1 * USE ALL OF SCREEN USEALL LEA MODE(PC),A3 MOVE.B #1,(A3) MODE IS 1 MOVE.L #1,D0 LEA TOPLIN(PC),A3 MOVE.L D0,(A3 #ET A BYTE CMP.B #$0D,D0 WAS IT CR? BEQ.S GFYES YES GFNO SUB.B #01,D1 DECREMENT COUNTER BNE.S GFL1 CONTINUE LOOKING FOR CR BRA.S GNOG NO GOOD IF NO CR WAS FOUND GFYES MOVE.B -2(A0),D0 CHECK THE BYTE BEFORE IT CMP.B #9,D0 WAS IT SPACE )NE FEED? BEQ.S PLOOP YES, IGNORE IT CMP.B #$0D,D5 IS IT CR? BEQ.S ERASE YES, ERASE TO END OF LINE FIRST MOVE.L CURPOS(PC),D1 CHECK CURRENT POSITION CMP.L #WIDTH-1,D1 AGAINST WIDTH BEQ.S PLOOP IGNORE IF ALREADY AT END OF LINE MOVE.B  !"#$*D5,D4 DC PUTCH NO, PRINT IT LEA CURPOS(PC),A3 ADD.L #1,(A3) INCREMENT CURRENT POSITION BRA.S PLOOP AND CONTINUE ERASE MOVE.B MODE(PC),D0 CHECK MODE CMP.B #1,D0 IS IT MODE 1? BEQ.S NOERAS YES, DON'T NEED TO ERASE BSR.L ERALIN NO, E0B 'READ allows you to browse through a text file forward' DC.B $D,$A DC.B 'and backward. The correct syntax is DC.B $D,$A DC.B ' READ DC.B $D,$A DC.B 'where the defaults to a .TXT extension.',4 * DATA AREA MODE D E ADDRESSES CHOOSE 1 OR 2: NOT COMPLETED - SPECIFIED ADDRESS IS BELOW OFFSET.@ˆäHçB…ùþÿ*yö-Åþ  gº9âgÛü#Íö  fºgÌLß ` 0e$ 9c Ae Zc ae zb<þNuÅñ<NuHçB…*yö-Lß Nu*|`#Íö+RASE REST OF LINE FIRST NOERAS MOVE.B #$0D,D4 DC PUTCH FOLLOW WITH CR MOVE.B #$0A,D4 DC PUTCH FOLLOW WITH LF LEA CURPOS(PC),A3 CLR.L (A3) CLEAR CURRENT POSITION ON LINE SUB.B #1,D2 DECREMENT COUNTER BNE.S PLOOP CONTINUE UNTIL DONE 1S.B 1 MODE 1 = ALL, NO ERASE TO END OF LINE CURPOS DS.L 1 CURRENT POSITION ON LINE TOPLIN DS.L 1 TOP LINE OF DISPLAY AREA LONSCR DS.L 2 NUMBER OF LINES DISPLAYED ON SCREEN TABEND DS.L 1 POINTS JUST PAST END OF TABLE CURLIN DS.L 1 CURRENT LINN¹Iäº9áf(»ü`gÞ<aº< a²<aª›ü`غ9àf2»ü`f < aŠ`¤›ü 9çf< ap9çah`�  gTº9íg,  eÿ|…»üßg Ûü`ÿh<a6<a0`ÿX  gÿNa Ûü»üÞfä`ÿ8E< aNuJ9 gaðNua*L gaÞ`òNu< , BRA.L NXTCOM ELSE GO LOOK FOR NEXT COMMAND * HELP MESSAGES HELP LEA HLPMSG(PC),A4 DC PSTRNG PRINT HELP MESSAGE BRA.L NEXT1 GET COMMAND HELP2 LEA HL2MSG(PC),A4 DC PSTRNG PRINT HELP MESSAGE DC WARMST * STRINGS MEMMSG DC.B 'FILE IS TOO2E AT TOP OF SCREEN NUMBER DS.L 1 DESIRED LINE NUMBER LINES DS.L 1 LINES OF TEXT IN FILE TABLE DS.L 1 MUST BE LAST ITEM IN DATA END READ "Ä` - ?gºIúJ 5Iúf 59ÿ gIúB 5gIú+ 5gIú 5gIúì 5gIúÅ 5gIúž 5gIúx 5Iú/ 59ÿ zgIú³ 5gIú’ 5Iú, 59ÿ {gIúÝ 5gIúõ 5gIú 5gIú# 5gIú0 59ÿ é g 7g`- LONG',4 PROMP1 DC.B " ---------- ",4 PROMP2 DC.B " LINES, NOW STARTING AT LINE ",4 HLPMSG DC.B $D,$A DC.B 'FILE READ PROGRAM. ALLOWABLE COMMANDS ARE:' DC.B $D,$A DC.B $D,$A DC.B ' T - TOP OF FILE' DC.B $D,$A DC.B ' B - BOTTOM OF Fin drive  Number: |  Free sectors(|#Ì+B9N¹E~e¤BN¹bTN¹BÔJg  EN¹BÔJg’"EBN¹BÔe„Jg<$EB(|?ÚN¹BN¹Iä 1g 2fâ<* šˆeN(|#Ì+N¹U0fð|ÿ;³üÿÿc<$ ”ˆ‚gd ‚ÿÿc4<ÿÿ<aˆ&a a”6a„#ÎIúf 5Aùÿ éB€Cúà(I2<(ü QÉÿø|F|OIúÀ g 7fz)|37C6|5`)|1772| 0G(è0D)ƒÆüEúHÖŠ,C)V8n<)| B)| FJf)| <--B)|BOOTF 5Aè fÿf 4 Iú 5 IOSTAT gives information on the I/O.ILE' DC.B $D,$A DC.B ' R - GO UP ONE SCREEN' DC.B $D,$A DC.B ' V (OR CR) - GO DOWN ONE SCREEN' DC.B $D,$A DC.B ' Q - USE TOP HALF OF SCREEN' DC.B $D,$A DC.B ' Z - USE BOTTOM HALF OF SCREEN' DC.B $D,$A DC.B ' A - USE ALarBfö`Ä$ ”ˆ‚g( ‚ÿc<ÿ<aL&afaRaBa>fö`ÌJg"µüÿÿc<a$& a>a4` <a& a0aN¹W’fœNù0:N¹P†fŒNu8àLaî`êHCaòHC`îJg–¹eNu(|@TN¹B``, fP(|?¨a`f¬(|?ËaVf¢(|,N¹[hf*B`þÆ<N¹CŠNù0:(|$ devices and hardware that is currently active on the PT-68K-2/4 system. The syntax is just IOSTATPT-68K-2/4 COMPUTER STATUS REPORT INSTALLED HARDWARE DETECTED BY HUMBUG: CURRENTLY ACTIVE INPUT DEVICES CURRENTLY ACTIVE OUTPUT DEVICES Mo/L OF SCREEN' DC.B $D,$A DC.B ' S - STOP AND RETURN TO DOS' DC.B $D,$A DC.B ' ? - PRINT THIS HELP MESSAGE' DC.B $D,$A DC.B 'NUMBER AND RETURN - GO TO SPECIFIED LINE NUMBER' DC.B $D,$A DC.B $D,$A DC.B ' COMMAND: ',4 HL2MSG DC.?�N¹BNù0:N¹CÎ(|N¹W’Nù0:N¹BN¹Iäß YNuINVALID FILE NAMEMISSING/INVALID ADDRESSFILE EXISTS - SHOULD?¼Ì I DELETE IT? ARE YOU SURE? SAVE OPTIONS: 1. USE ABOVE ADDRESSES (IGNORING OFFSET), OR 2. SUBTRACT OFFSET FROM ABOVnochrome video board Color (CGA) video board WX hard disk controller PC-style expansion slots DUART 2 DUART 1 68230 Parallel Interface IC Serial printer on DUART 1 port B Serial terminal output on DUART 1 port A Monochrome vi     deo board Color (CGA) video board Pause mode in effect PC-style keyboard Serial keyboard on DUART 1 port A FLOPPY DRIVES SET UP BY HUMBUG LOGICAL DRIVE CONTROLLER PHYSICAL DRIVE DRIVE TYPE Ä$NONE 360K 720K 1.2M 1.ÿôúdt<aˆIúÆB*az*ar * €ÿc("�ú$�"*�ú%A <úIú†¼` *&a4aPa,Sƒfô:ffÿ€`ÿl<aIúRBa*a*aø*að * €ÿÿc$"�ÿú$�"*�ÿú%ApúIú¼` *&àHa´a®`ÿxaÆgú:Ðg|" üþfàIúö 5IèpB EIú 6B„((zàŒ< 8 4Iú 5 4"(€à‰*h›ü Eúv$�EúvKú^B�B�B�*hö  gnº(âgh  f -`ä .fR - -d *fLIú&º.!e 1E -d *f2Iú º.!e 1E  -d *fIúòº.!e 1E `IúÜ #KúÛ­ÿÿ­:Øã g j44M 1M 8"  ^:Éîúg EúÄ.ž®$‡>:¸f<a|:¬at:¥al`*<a`:ŽaX:‡aP:€aH:ya@  Iú~ fV CúrIún fÅ  fôW‰Kú@*‰<Nu, f&<ûNua é0aÐNu0  c_Nu z ±úgaØKúþ*ˆ<Nuaÿ–fø2: AS1g AS2g& AS3g, AS7g2 A€Kí`ð(H  fæúü(H  fÞ,kògœKèMú”< :ž *g:g" €g& *g ªgº-f¼KíQÎÿÞ`2J-kÿ¬`ìJ-jÿ¢`âg š-fŒKíQÎÿè`èèèè4è$è$è$è µúbV`ÿV*hö  gº(âg  g ,fþ‚ -`Ü&JMúìµÎg¢B‚EúØBEü`  N(N #e@Iè0 #e4B€, ßf 9h h(H g, f Iî .G 7 Iú 5 RENAME is used to rename a disk file. The correct syntax is RENAME The old-file-spec must have both a name and an extension S8gF AS9èúg``ÐAúâKú¾*ˆ`¬AúØKú²*ˆ` AúÎKú¦*ˆ`”:¸ g¢Aú°aÿhKú’€`:ž gˆAú–Kú|¼aÿF@`:~ gÿhAútKúZ¼|aÿ@aÿ@Kú:¼`ÿ:Iú  fNuÀµîgNuIúî 5` 7   Iú 5 S1TOCOM is used to convert a binary úÚ,k¼‚e CúƼ$"JöþEê·Êfä:²gr 4¼ÿIé< EIúM<ap8)< 8Iú7<aZIúf¼ (HDal(àLaZ(HDàLaPJgÿzIú<a(B„< 8`ÿb 4 4(< 8IúÓ< a 4 Jf<  3fêNu<- 3B€€ü €00 0f:Ö 3H@ 3, and üÌmay have an optional drive number (if no drive number is given, then the current default work drive will be used.) If the new-file-spec does not have an extension, then the old extension will be kept. file in Moâútorola S1/S9 format (used for the object code of many assemblers) into a binary file suitable for use by SK*DOS. The syntax is S1TOCOM The drive and directory are optional and default tú` 4IúÀ #ež, f)|MXT Gú•B*nö -f… fpAúŽCú êh#h#h3|CO |MIú È g, f6 f0`ä|ÿ;Eú aÎf’2:: AS1g AS2g( AS3gF`àAú&BaæaâaÔaÚaÌaÒ`.AúBaÆa¸a¾a°a¶a¨a®` Aúâaš`ØB�±ú¶the file, prÜÐepare an output file with the same name but having a .COM extension (deleting any previous .COM file if it already exists), and then delete the original file when finished.Too much data; memory exceeded.o the current work drive and worêök directory. They may be specified as either just a drive number, or as both a drive number and directory letter, such as just 1, or as 1.A/. The is also optional and may consist of one or more fgúúTˆR`ôB€aŽaŠ0àHa‚a|`ÿjB€aranajafaba^aZaVIúˆ f`Eú >"JKún*¼ÿÿÿÿIúhB”J’fJªgB"²ºRg":Pg"Á"Ú"IúD(�ÒªÿøKú6*�`ÐXŠ"$Òº(Iú$(�Ôº"Iú(‚`´"úB™B™Iú fìIúò(ºêKúîBKúêB•Eú ®PŠ:Ýg.ž®$‡Jªgò" � ü`  NhìKú¨®é*hö- ?gØ .g®  g¦º.âgž 0e¸ AdŽ 9b¨E¾.ìgKúRB - -  gfº.âg`  gZ ,gT .fp - *g Ae` zbXº.!eßKú… -  g ,g /g  g º.âg`$ 4Iú& 5(0 3Iú� 6(H9ull or partial file names and/or àýextensions to be searched for. For example, SCAT 1.A/ TX.COM would list all files in directory A of drive 1 whose names begin with TX and whose extensions are .COM. The symbol * is a wild-card character i !"#$nside file names.Incorrect drive number.ÝÂError in reading directoryDisk Name: Catalog of disk in drive  Number:  Name Ext Sectors Date Sequence Free sectors Not enough memory for directory, latest file first  NAM SERIAL.DVR OPT PAG PAG * SERIAL DEVICE DRIVER #1 FOR SK*DOS/68K * THIS VERSION IS CONFIGURED FOR THE PT-68K COMPUTER (-1A, * -1B, AND -2 VERSIONS) AND IS A BARE-BONES DRIVER WHICH * DOES NOT SUPPORT ANY OF THE ICNTRL AND OCNTRL FEATURES. *  ********************************* * PART 1. BEGINNING, VERSION NUMBER, AND A 'DN' MARKER >>B<< * WHICH IS CHECKED BY 'DEVICE' TO AVOID ERRORS. ********************************************************** START BRA.S START NEVER EXECUTED DC.W $0003  ´ COPYRIGHT (C) 1987 BY PETER A. STARK * MOD. >>A<< 6-12-87 FOR PT-2 COMPUTER * MOD. >>B<< 6-4-88 FOR NEW DRIVER FORMAT **************** NOTE ************************************ * DEVICE DRIVER FORMAT WAS CHANGED 6-4-88 TO CONFORM TO * SK*DOS VERSIONS!VERSION NUMBER >>B<< DC.W $444E 'DN' ID MARKER >>B<< ********************************************************** * PART 2. LENGTH SPECIFICATION. THE NEXT LONG WORD DEFINES * THE LENGTH OF THE DRIVER TO DEVICE.COM. THEEND IS A * LABEL WHICH IS PLACEú` *nö ?g^ 0eFJgB …d:Jg6&IúS 5B„.&B… 8<  3<T 3<O 3<  3C&(B… 8 Iúù 5B„.&B… 8 Iú 5 SEQUENCE is used only in systems which do not have a clock/calendar IC interfaced to SK*DOS to time-stamp files. If this is th 2.4 AND LATER. THE "DEVICE.COM" PROGRAM * VERSION 1.0 AND LATER, WILL, HOWEVER, WORK WITH EITHER OLD * OR NEW VERSION DRIVERS. CHANGES ARE IDENTIFIED WITH >>B<< * NOTE ESPECIALLY THE CHANGE OF THE DRIVER MARKER FROM "DR" * TO "DN" AND THE ADDITION OF " D AT THE VERY END OF THE DRIVER ********************************************************** LENGTH DC.L THEEND ********************************************************** * PART 3. ENTRY POINT POINTERS. THE FOLLOWING POINTERS * DEFINE THE ENTRY POINTSe úúcase, then new files are assigned a date and sequence number (rather than date and time), and SEQUENCE is used to display or change the next sequence number. The command SEQUENCE displays the next number to be used, while the command THREE NEW CALLS. ********************************************************** **************** IMPORTANT !! **************************** ** IF USING ASM.COM TO ASSEMBLE THIS FILE, CHANGE "PAG" ** TO "PAGE" IN LINES 2 AND 3, AND MAKE SURE TO ** USE THE -# INTO THE DRIVER. ALL ARE * RELATIVE TO THE ORIGIN ********************************************************** DC.L INIPOR DRIVER INITIALIZATION DC.L INSTAT INPUT STATUS DC.L INCHAR INPUT CHARACTER WITH ECHO DC.L INCHAN INPUT CHAR WITHOUT ESEQUôªENCE changes the next number to the specified (which must be between 0 and 255).Retaining the old sequence number of Changing sequence number from F OPTION ********************************************************** * THE FORMAT OF A DEVICE DRIVER FOR SK*DOS IS VERY RIGID, * ESPECIALLY AT THE BEGINNING AND VERY END. YOU MAY * SUBSTITUTE YOUR OWN DRIVER CODE, BUT MAKE SURE TO USE THE SAME * FORMAT$ CHO DC.L ICNTRL INPUT CONTROL ENTRY DC.L OUSTAT OUTPUT STATUS DC.L OUCHAR OUTPUT A CHARACTER DC.L OCNTRL OUTPUT CONTROL ENTRY DC.L INSTA1 INPUT STATUS (1 CHAR ONLY) >>B<< DC.L INCHN1 INPUT 1 CHAR ONLY, NO ECHO >>B<< DC.L BFLUSH FLU6`þDN¸v„ˆ”š¤°vˆ¶¸SERIAL .DVR zÿú(3AúH<g¾føàN`<f |þ||||'F|€(((NuDUf ˆ™0»`ÌÀ9þ…Nua`aìgü9þNu<ûNu9þNuaôgüÅþNu<ûNuNu FOR THE DRIVER AS THIS EXAMPLE. NOTE ESPECIALLY THAT * THIS DRIVER IS NOT EXECUTABLE; IT IS TO BE LOADED INTO MEMORY * BY THE 'DEVICE' UTILITY, AND MUST BE POSITION-INDEPENDENT. DTBAUD EQU 51 BAUD RATE ENTRY IN DESCRIPTOR ************************* SH TYPEAHEAD BUFFER >>B<< ************************************************************* * PART 4. THE FOLLOWING LINE DEFINES THE BEGINNING OF THE ACTUAL * CODE AS BEING AT $0000. IT SERVES TO BREAK UP THE OBJECT FILE * TO MAKE IT EASIER FOR 'DEVICE' T      O LOAD INTO THE CORRECT PLACE. ************************************************************* ORG $0000 ************************************************************* * PART 5. DATA AREA USED BY THE DEVICE DRIVER FOR VARIOUS * PURPOSES. *************WITH DESIRED BNE.S BAULOO LOOK MORE IF NO MATCH LSR.W #8,D6 WHEN FOUND, MOVE CODE RIGHT BRA.S GOTBAU AND CONTINUE BNOTFD MOVE.B #$66,D6 DEFAULT TO 1200 IF NOT FOUND GOTBAU MOVE.L #DUART,A0 POINT TO DUART MOVE.B #$15,DCOMMB(A0) CRB: MODELT * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INSTAT CHECKS TO SEE WHETHER THERE IS ANY CHARACTER * IN THE TYPEAHEAD BUFFER, WHEREAS INSTA1 CHECKS ONLY TO SEE * WHETHER THERE IS A 'LAST' CHARACTER AT THE END OF THE BUFFE************************************************ * BYTES 0-12: * NAME OF THIS DEVICE DRIVER DISK FILE - 12 CHARACTERS PLUS 04 DRNAME DC.B 'SERIAL .DVR',4 * BYTE 13: * DEVICE NUMBER SO THIS DRIVER KNOWS WHICH DEVICE IT IS DEVNUM DC.B 0 DEVICE NUMB =1, ENABLE RX&TX MOVE.B #$5,DCOMMB(A0) CRB: ENABLE RX & TX MOVE.B #$13,DMODEB(A0) MRB1: NO RTS, NO PARITY, 8 BITS MOVE.B #$27,DMODEB(A0) MRB2: RTS,1 STOP BIT MOVE.B D6,DCLOCB(A0) CSRB: SET BAUD RATE MOVE.B #$80,DAUXB(A0) AUX CONTROL REG R * WHICH HAS NOT YET BEEN INPUT WITH THE INCHN1 ENTRY *********************************************************** INSTAT MOVE.B DUART+DSTATB,D5 GET PORT B STATUS REG AND.L #1,D5 CHECK STATUS BIT RTS INSTA1 EQU INSTAT >>B<< ******************ER FOR THIS DRIVER * BYTES 14-17: * ADDRESS OF DEVICE DESCRIPTOR FOR THIS DRIVER DEVADD DC.L 0 ************************************************************* * PART 6. DEVICE INITIALIZATION. THIS CODE INITIALIZES PORT B * OF THE 68681 DUART AT $FE000 = SET 2 MOVE.B DDATAB(A0),D0 MOVE.B DDATAB(A0),D0 EMPTY RCVR BUFFER 3 TIMES MOVE.B DDATAB(A0),D0 RTS * BAUD RATE LOOKUP TABLE, CONSISTS OF BYTE FOR CLOCK SELECT * REGISTER, AND CORRESPONDING BAUD RATE CODE (EQUAL TO BAUD RATE * * DIVIDED BY 1***************************************** * PART 8. GET INPUT CHARACTER FROM PORT INTO D5 AND ECHO IT TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * THIS ENTRY USES THE TYPEAHEAD BUF0 IN THE PT-68K COMPUTER. IT IS * ONLY EXECUTED WHEN LOADED BY 'DEVICE'. ALL REGISTERS CAN BE * CHANGED. ************************************************************* * HARDWARE EQUATES FOR THE PORT DUART EQU $FE0000 DUART ADDRESS >>A<< DMODEB EQU 00). BAUTAB DC.B $11,01 110 BAUD DC.B $44,03 300 DC.B $55,06 600 DC.B $66,12 1200 DC.B $88,24 2400 DC.B $99,48 4800 DC.B $BB,96 9600 DC.B $CC,192 19,200 DC.B 0,0 MARKS END OF TABLE *******************************************FER, IF ANY >>B<< *********************************************************** INCHAR BSR.S INCHAN GET THE CHARACTER W/O ECHO BRA.S OUCHAR AND THEN ECHO *********************************************************** * PART 9. GET INPUT CHARACTER FRO 17 PORT B MODE REG DCLOCB EQU 19 PORT B CLOCK REG DSTATB EQU 19 PORT B STATUS REG DCOMMB EQU 21 PORT B COMMAND REGISTER DDATAB EQU 23 PORT B DATA REGISTERS DAUXB EQU 25 PORT B AUXILIARY CONTROL REG * INITIALIZE PORT AND SET BAUD RATE INIP **************** * PART 7. INPUT PORT STATUS CHECK. THIS ROUTINE IS TO RETURN * TWO THINGS: * 1. ZERO IF NO CHARACTER IS READY, NON-ZERO OTHERWISE * 2. D5=0 IF NO CHARACTER IS READY, ELSE THE NUMBER OF * CHARACTERS READY. IN NON-INTERRUPT SYSTEMS, DM PORT INTO D5 WITHOUT ECHOING TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INCH-- ENTRIES, ALTHOUGH BOTH DEFAUOR MOVE.L DEVADD(PC),A0 GET ADDRESS OF DEVICE DESCRIPTOR MOVE.B DTBAUD(A0),D7 DESIRED BAUD RATE LEA BAUTAB(PC),A0 POINT TO BAUD RATE LOOKUP TABLE BAULOO MOVE.W (A0)+,D6 GET NEXT ENTRY BEQ.S BNOTFD IF AT END OF TABLE CMP.B D6,D7 COMPARE  5 SHOULD * RETURN A 1; ONLY IN INTERRUPT-DRIVEN SYSTEMS WILL IT * INDICATE A REAL NUMBER OF CHARACTERS IN INPUT BUFFER * PRESERVE ALL REGISTERS * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INSTA- ENTRIES, ALTHOUGH BOTH DEFAULT >>B<< * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * INPUT PORT: INCHAN TAKES THE NEXT CHARACTER FROM THE TYPEAHEAD * BUFFER (AND CLEARS THE INSTA1 FLAG), WHEREAS INCHN1 TAKES ONLY * THE CHARACTER FROM THE END OF THE TYPEAHEAD BUFFER !"#$, AND CLEARS * BOTH FLAGS. *********************************************************** INCHAN BSR.S INSTAT CHECK STATUS BEQ.S INCHAN WAIT IF NOTHING MOVE.B DUART+DDATAB,D5 ELSE GET CHARACTER RTS INCHN1 EQU INCHAN >>B<< *******************%ERROR RTS ******************************************************* * PART 14. NEW IN REV. >>B<<. WHEN A TYPEAHEAD BUFFER * EXISTS, THIS FLUSHES IT AND CLEARS BOTH INSTAT AND * INSTA1 FLAGS TO INDICATE THAT ALL IS EMPTY. ****************************** NS 2.4 AND LATER. THE "DEVICE.COM" PROGRAM * VERSION 1.0 AND LATER, WILL, HOWEVER, WORK WITH EITHER OLD * OR NEW VERSION DRIVERS. CHANGES ARE IDENTIFIED WITH >>B<< * NOTE ESPECIALLY THE CHANGE OF THE DRIVER MARKER FROM "DR" * TO "DN" AND THE ADDITION O **************************************** * PART 10. INPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS *********************************************************** ICNTRL AND.B #$FB,CCR RETURN NON-ZERO ERROR RT&************************* BFLUSH RTS IN THIS CASE DOES NOTHING >>B<< ******************************************************* * THE END. LABEL THEEND IS USED TO CALCULATE LENGTH OF * DRIVER. NOTE THAT THERE IS NO TRANSFER ADDRESS. ******************!F THREE NEW CALLS. **************** IMPORTANT !! **************************** ** IF USING ASM.COM TO ASSEMBLE THIS FILE, CHANGE "PAG" ** TO "PAGE" IN LINES 2 AND 3, AND MAKE SURE TO ** USE THE -F OPTION ***********************************************!S *********************************************************** * PART 11. OUTPUT STATUS. RETURN ZERO IF OUTPUT IS NOT * READY, NON-ZERO IF READY TO OUTPUT NEXT. PRESERVE ALL * REGISTERS. IF NO HANDSHAKING IS USED, OR IF HARDWARE * HANDSHAKING IS USED, '************************************* THEEND EQU * END "*********** * THE FORMAT OF A DEVICE DRIVER FOR SK*DOS IS VERY RIGID, * ESPECIALLY AT THE BEGINNING AND VERY END. YOU MAY * SUBSTITUTE YOUR OWN DRIVER CODE, BUT MAKE SURE TO USE THE SAME * FORMAT FOR THE DRIVER AS THIS EXAMPLE. NOTE ESPECIALLY THAT * "THEN SIMPLY CHECK BUSY BIT. *********************************************************** OUSTAT BTST #2,DUART+DSTATB CHECK TX READY BUT RTS *********************************************************** * PART 12. OUTPUT CHARACTER FROM D5 TO OUTPUT P6`þDN¸v„ˆ”š¤°vˆ¶¸SERIAL .DVR zÿú(3AúH<g¾føàN`<f |þ@||||'F|€ (((NuDUf ˆ™0»`ÌÀ9þC…Nua`aìgü9þGNu<ûNu9þCNuaôgüÅþGNu<ûNuNu#THIS DRIVER IS NOT EXECUTABLE; IT IS TO BE LOADED INTO MEMORY * BY THE 'DEVICE' UTILITY, AND MUST BE POSITION-INDEPENDENT. DTBAUD EQU 51 BAUD RATE ENTRY IN DESCRIPTOR ********************************************************** * PART 1. BEGINNING, V#ORT. IF NOT * READY, JUST WAIT FOR IT. PRESERVE ALL REGISTERS (INCLUDING D5) *********************************************************** OUCHAR BSR.S OUSTAT CHECK IF READY BEQ.S OUCHAR WAIT UNTIL READY MOVE.B D5,DUART+DDATAB PRINT IT RTS ** NAM SERIAL.DVR OPT PAGE PAGE * SERIAL DEVICE DRIVER #2 FOR SK*DOS/68K * THIS VERSION IS CONFIGURED FOR THE PT-68K COMPUTER (-1A, * -1B, AND -2 VERSIONS) AND IS A BARE-BONES DRIVER WHICH * DOES NOT SUPPORT ANY OF THE ICNTRL AND OCNTRL FEATURES. $ERSION NUMBER, AND A 'DN' MARKER * WHICH IS CHECKED BY 'DEVICE' TO AVOID ERRORS. ********************************************************** START BRA.S START NEVER EXECUTED DC.W $0003 VERSION NUMBER >>B<< DC.W $444E 'DN' ID MARKER >>B<< ****$***************************************************** * PART 13. OUTPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS ******************************************************* OCNTRL AND.B #$FB,CCR RETURN NON-ZERO * COPYRIGHT (C) 1987 BY PETER A. STARK * MOD. >>A<< 6-12-87 FOR PT-2 COMPUTER * MOD. >>B<< 6-4-88 FOR NEW DRIVER FORMAT **************** NOTE ************************************ * DEVICE DRIVER FORMAT WAS CHANGED 6-4-88 TO CONFORM TO * SK*DOS VERSIO****************************************************** * PART 2. LENGTH SPECIFICATION. THE NEXT LONG WORD DEFINES * THE LENGTH OF THE DRIVER TO DEVICE.COM. THEEND IS A * LABEL WHICH IS PLACED AT THE VERY END OF THE DRIVER ******************************      **************************** LENGTH DC.L THEEND ********************************************************** * PART 3. ENTRY POINT POINTERS. THE FOLLOWING POINTERS * DEFINE THE ENTRY POINTS INTO THE DRIVER. ALL ARE * RELATIVE TO THE ORIGIN ***********TOR FOR THIS DRIVER DEVADD DC.L 0 ************************************************************* * PART 6. DEVICE INITIALIZATION. THIS CODE INITIALIZES PORT B * OF THE 68681 DUART AT $FE0040 IN THE PT-68K COMPUTER. IT IS * ONLY EXECUTED WHEN LOADED BYFFER 3 TIMES MOVE.B DDATAB(A0),D0 RTS * BAUD RATE LOOKUP TABLE, CONSISTS OF BYTE FOR CLOCK SELECT * REGISTER, AND CORRESPONDING BAUD RATE CODE (EQUAL TO BAUD RATE * * DIVIDED BY 100). BAUTAB DC.B $11,01 110 BAUD DC.B $44,03 300 DC.B $55,06 *********************************************** DC.L INIPOR DRIVER INITIALIZATION DC.L INSTAT INPUT STATUS DC.L INCHAR INPUT CHARACTER WITH ECHO DC.L INCHAN INPUT CHAR WITHOUT ECHO DC.L ICNTRL INPUT CONTROL ENTRY DC.L OUSTAT OUTPUT S  'DEVICE'. ALL REGISTERS CAN BE * CHANGED. ************************************************************* * HARDWARE EQUATES FOR THE PORT DUART EQU $FE0040 DUART ADDRESS >>A<< DMODEB EQU 1 PORT A MODE REG DCLOCB EQU 3 PORT A CLOCK REG DSTATB EQ 600 DC.B $66,12 1200 DC.B $88,24 2400 DC.B $99,48 4800 DC.B $BB,96 9600 DC.B $CC,192 19,200 DC.B 0,0 MARKS END OF TABLE *********************************************************** * PART 7. INPUT PORT STATUS CHECK. THIS ROUTINE IS  TATUS DC.L OUCHAR OUTPUT A CHARACTER DC.L OCNTRL OUTPUT CONTROL ENTRY DC.L INSTA1 INPUT STATUS (1 CHAR ONLY) >>B<< DC.L INCHN1 INPUT 1 CHAR ONLY, NO ECHO >>B<< DC.L BFLUSH FLUSH TYPEAHEAD BUFFER >>B<< *********************************** U 3 PORT A STATUS REG DCOMMB EQU 5 PORT A COMMAND REGISTER DDATAB EQU 7 PORT A DATA REGISTERS DAUXB EQU 9 PORT A AUXILIARY CONTROL REG * INITIALIZE PORT AND SET BAUD RATE INIPOR MOVE.L DEVADD(PC),A0 GET ADDRESS OF DEVICE DESCRIPTOR MOVE.B TO RETURN * TWO THINGS: * 1. ZERO IF NO CHARACTER IS READY, NON-ZERO OTHERWISE * 2. D5=0 IF NO CHARACTER IS READY, ELSE THE NUMBER OF * CHARACTERS READY. IN NON-INTERRUPT SYSTEMS, D5 SHOULD * RETURN A 1; ONLY IN INTERRUPT-DRIVEN SYSTEMS WILL IT *  ************************** * PART 4. THE FOLLOWING LINE DEFINES THE BEGINNING OF THE ACTUAL * CODE AS BEING AT $0000. IT SERVES TO BREAK UP THE OBJECT FILE * TO MAKE IT EASIER FOR 'DEVICE' TO LOAD INTO THE CORRECT PLACE. ******************************* DTBAUD(A0),D7 DESIRED BAUD RATE LEA BAUTAB(PC),A0 POINT TO BAUD RATE LOOKUP TABLE BAULOO MOVE.W (A0)+,D6 GET NEXT ENTRY BEQ.S BNOTFD IF AT END OF TABLE CMP.B D6,D7 COMPARE WITH DESIRED BNE.S BAULOO LOOK MORE IF NO MATCH LSR.W #8,D6 WHINDICATE A REAL NUMBER OF CHARACTERS IN INPUT BUFFER * PRESERVE ALL REGISTERS * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INSTA- ENTRIES, ALTHOUGH BOTH DEFAULT * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON THE * IN ****************************** ORG $0000 ************************************************************* * PART 5. DATA AREA USED BY THE DEVICE DRIVER FOR VARIOUS * PURPOSES. ************************************************************* * BYTES 0-12 EN FOUND, MOVE CODE RIGHT BRA.S GOTBAU AND CONTINUE BNOTFD MOVE.B #$66,D6 DEFAULT TO 1200 IF NOT FOUND GOTBAU MOVE.L #DUART,A0 POINT TO DUART MOVE.B #$15,DCOMMB(A0) CRB: MODE=1, ENABLE RX&TX MOVE.B #$5,DCOMMB(A0) CRB: ENABLE RX & TX MOVEPUT PORT: INSTAT CHECKS TO SEE WHETHER THERE IS ANY CHARACTER * IN THE TYPEAHEAD BUFFER, WHEREAS INSTA1 CHECKS ONLY TO SEE * WHETHER THERE IS A 'LAST' CHARACTER AT THE END OF THE BUFFER * WHICH HAS NOT YET BEEN INPUT WITH THE INCHN1 ENTRY *************: * NAME OF THIS DEVICE DRIVER DISK FILE - 12 CHARACTERS PLUS 04 DRNAME DC.B 'SERIAL .DVR',4 * BYTE 13: * DEVICE NUMBER SO THIS DRIVER KNOWS WHICH DEVICE IT IS DEVNUM DC.B 0 DEVICE NUMBER FOR THIS DRIVER * BYTES 14-17: * ADDRESS OF DEVICE DESCRIP .B #$13,DMODEB(A0) MRB1: NO RTS, NO PARITY, 8 BITS MOVE.B #$27,DMODEB(A0) MRB2: RTS,1 STOP BIT MOVE.B D6,DCLOCB(A0) CSRB: SET BAUD RATE MOVE.B #$80,DAUXB(A0) AUX CONTROL REG = SET 2 MOVE.B DDATAB(A0),D0 MOVE.B DDATAB(A0),D0 EMPTY RCVR BU********************************************** INSTAT MOVE.B DUART+DSTATB,D5 GET PORT B STATUS REG AND.L #1,D5 CHECK STATUS BIT RTS INSTA1 EQU INSTAT >>B<< *********************************************************** * PART 8. GET INPUT CHARAC !"#$TER FROM PORT INTO D5 AND ECHO IT TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * THIS ENTRY USES THE TYPEAHEAD BUFFER, IF ANY >>B<< **************************************************!RT 11. OUTPUT STATUS. RETURN ZERO IF OUTPUT IS NOT * READY, NON-ZERO IF READY TO OUTPUT NEXT. PRESERVE ALL * REGISTERS. IF NO HANDSHAKING IS USED, OR IF HARDWARE * HANDSHAKING IS USED, THEN SIMPLY CHECK BUSY BIT. ***************************************6`þDN¸v„ˆ”š¤°vˆ¶¸SERIAL .DVR zÿú(3AúH<g¾føàN`<f |þ@||||'F|€(((NuDUf ˆ™0»`ÌÀ9þS…Nua`aìgü9þWNu<ûNu9þSNuaôgüÅþWNu<ûNuNu********* INCHAR BSR.S INCHAN GET THE CHARACTER W/O ECHO BRA.S OUCHAR AND THEN ECHO *********************************************************** * PART 9. GET INPUT CHARACTER FROM PORT INTO D5 WITHOUT ECHOING TO * THE OUTPUT PORT. IF NO CHARACTER"******************** OUSTAT BTST #2,DUART+DSTATB CHECK TX READY BUT RTS *********************************************************** * PART 12. OUTPUT CHARACTER FROM D5 TO OUTPUT PORT. IF NOT * READY, JUST WAIT FOR IT. PRESERVE ALL REGISTERS (INCL! NAM SERIAL.DVR OPT PAG PAG * SERIAL DEVICE DRIVER #3 FOR SK*DOS/68K * THIS VERSION IS CONFIGURED FOR THE PT-68K COMPUTER (-1A, * -1B, AND -2 VERSIONS) AND IS A BARE-BONES DRIVER WHICH * DOES NOT SUPPORT ANY OF THE ICNTRL AND OCNTRL FEATURES. *  IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INCH-- ENTRIES, ALTHOUGH BOTH DEFAULT >>B<< * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAD BUFFER ON TH#UDING D5) *********************************************************** OUCHAR BSR.S OUSTAT CHECK IF READY BEQ.S OUCHAR WAIT UNTIL READY MOVE.B D5,DUART+DDATAB PRINT IT RTS ******************************************************* * PART 13. OU"COPYRIGHT (C) 1987 BY PETER A. STARK * MOD. >>A<< 6-12-87 FOR PT-2 COMPUTER * MOD. >>B<< 6-4-88 FOR NEW DRIVER FORMAT **************** NOTE ************************************ * DEVICE DRIVER FORMAT WAS CHANGED 6-4-88 TO CONFORM TO * SK*DOS VERSIONSE * INPUT PORT: INCHAN TAKES THE NEXT CHARACTER FROM THE TYPEAHEAD * BUFFER (AND CLEARS THE INSTA1 FLAG), WHEREAS INCHN1 TAKES ONLY * THE CHARACTER FROM THE END OF THE TYPEAHEAD BUFFER, AND CLEARS * BOTH FLAGS. ****************************************$TPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS ******************************************************* OCNTRL AND.B #$FB,CCR RETURN NON-ZERO ERROR RTS ******************************************************# 2.4 AND LATER. THE "DEVICE.COM" PROGRAM * VERSION 1.0 AND LATER, WILL, HOWEVER, WORK WITH EITHER OLD * OR NEW VERSION DRIVERS. CHANGES ARE IDENTIFIED WITH >>B<< * NOTE ESPECIALLY THE CHANGE OF THE DRIVER MARKER FROM "DR" * TO "DN" AND THE ADDITION OF ******************* INCHAN BSR.S INSTAT CHECK STATUS BEQ.S INCHAN WAIT IF NOTHING MOVE.B DUART+DDATAB,D5 ELSE GET CHARACTER RTS INCHN1 EQU INCHAN >>B<< *********************************************************** * PART 10. INPUT CHANNEL C%* * PART 14. NEW IN REV. >>B<<. WHEN A TYPEAHEAD BUFFER * EXISTS, THIS FLUSHES IT AND CLEARS BOTH INSTAT AND * INSTA1 FLAGS TO INDICATE THAT ALL IS EMPTY. ******************************************************* BFLUSH RTS IN THIS CASE DOES NOTHING >$THREE NEW CALLS. ********************************************************** **************** IMPORTANT !! **************************** ** IF USING ASM.COM TO ASSEMBLE THIS FILE, MAKE SURE TO ** USE THE -F OPTION *************************************** ONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS *********************************************************** ICNTRL AND.B #$FB,CCR RETURN NON-ZERO ERROR RTS *********************************************************** * PA&>B<< ******************************************************* * THE END. LABEL THEEND IS USED TO CALCULATE LENGTH OF * DRIVER. NOTE THAT THERE IS NO TRANSFER ADDRESS. ******************************************************* THEEND EQU * END ******************* * THE FORMAT OF A DEVICE DRIVER FOR SK*DOS IS VERY RIGID, * ESPECIALLY AT THE BEGINNING AND VERY END. YOU MAY * SUBSTITUTE YOUR OWN DRIVER CODE, BUT MAKE SURE TO USE THE SAME * FORMAT FOR THE DRIVER AS THIS EXAMPLE. NOTE ESPECIALLY      THAT * THIS DRIVER IS NOT EXECUTABLE; IT IS TO BE LOADED INTO MEMORY * BY THE 'DEVICE' UTILITY, AND MUST BE POSITION-INDEPENDENT. DTBAUD EQU 51 BAUD RATE ENTRY IN DESCRIPTOR ********************************************************** * PART 1. BEGI **************************************** * PART 4. THE FOLLOWING LINE DEFINES THE BEGINNING OF THE ACTUAL * CODE AS BEING AT $0000. IT SERVES TO BREAK UP THE OBJECT FILE * TO MAKE IT EASIER FOR 'DEVICE' TO LOAD INTO THE CORRECT PLACE. *****************DESCRIPTOR MOVE.B DTBAUD(A0),D7 DESIRED BAUD RATE LEA BAUTAB(PC),A0 POINT TO BAUD RATE LOOKUP TABLE BAULOO MOVE.W (A0)+,D6 GET NEXT ENTRY BEQ.S BNOTFD IF AT END OF TABLE CMP.B D6,D7 COMPARE WITH DESIRED BNE.S BAULOO LOOK MORE IF NO MATNNING, VERSION NUMBER, AND A 'DN' MARKER >>B<< * WHICH IS CHECKED BY 'DEVICE' TO AVOID ERRORS. ********************************************************** START BRA.S START NEVER EXECUTED DC.W $0003 VERSION NUMBER >>B<< DC.W $444E 'DN' ID MARK ******************************************** ORG $0000 ************************************************************* * PART 5. DATA AREA USED BY THE DEVICE DRIVER FOR VARIOUS * PURPOSES. *************************************************************CH LSR.W #8,D6 WHEN FOUND, MOVE CODE RIGHT BRA.S GOTBAU AND CONTINUE BNOTFD MOVE.B #$66,D6 DEFAULT TO 1200 IF NOT FOUND GOTBAU MOVE.L #DUART,A0 POINT TO DUART MOVE.B #$15,DCOMMB(A0) CRB: MODE=1, ENABLE RX&TX MOVE.B #$5,DCOMMB(A0) CRB: EER >>B<< ********************************************************** * PART 2. LENGTH SPECIFICATION. THE NEXT LONG WORD DEFINES * THE LENGTH OF THE DRIVER TO DEVICE.COM. THEEND IS A * LABEL WHICH IS PLACED AT THE VERY END OF THE DRIVER ****************  * BYTES 0-12: * NAME OF THIS DEVICE DRIVER DISK FILE - 12 CHARACTERS PLUS 04 DRNAME DC.B 'SERIAL .DVR',4 * BYTE 13: * DEVICE NUMBER SO THIS DRIVER KNOWS WHICH DEVICE IT IS DEVNUM DC.B 0 DEVICE NUMBER FOR THIS DRIVER * BYTES 14-17: * ADDRESS OF NABLE RX & TX MOVE.B #$13,DMODEB(A0) MRB1: NO RTS, NO PARITY, 8 BITS MOVE.B #$27,DMODEB(A0) MRB2: RTS,1 STOP BIT MOVE.B D6,DCLOCB(A0) CSRB: SET BAUD RATE MOVE.B #$80,DAUXB(A0) AUX CONTROL REG = SET 2 MOVE.B DDATAB(A0),D0 MOVE.B DDATAB(A ****************************************** LENGTH DC.L THEEND ********************************************************** * PART 3. ENTRY POINT POINTERS. THE FOLLOWING POINTERS * DEFINE THE ENTRY POINTS INTO THE DRIVER. ALL ARE * RELATIVE TO THE ORIG DEVICE DESCRIPTOR FOR THIS DRIVER DEVADD DC.L 0 ************************************************************* * PART 6. DEVICE INITIALIZATION. THIS CODE INITIALIZES PORT B * OF THE 68681 DUART AT $FE0040 IN THE PT-68K COMPUTER. IT IS * ONLY EXECUTED 0),D0 EMPTY RCVR BUFFER 3 TIMES MOVE.B DDATAB(A0),D0 RTS * BAUD RATE LOOKUP TABLE, CONSISTS OF BYTE FOR CLOCK SELECT * REGISTER, AND CORRESPONDING BAUD RATE CODE (EQUAL TO BAUD RATE * * DIVIDED BY 100). BAUTAB DC.B $11,01 110 BAUD DC.B $44,0 IN ********************************************************** DC.L INIPOR DRIVER INITIALIZATION DC.L INSTAT INPUT STATUS DC.L INCHAR INPUT CHARACTER WITH ECHO DC.L INCHAN INPUT CHAR WITHOUT ECHO DC.L ICNTRL INPUT CONTROL ENTRY DC.L OU WHEN LOADED BY 'DEVICE'. ALL REGISTERS CAN BE * CHANGED. ************************************************************* * HARDWARE EQUATES FOR THE PORT DUART EQU $FE0040 DUART ADDRESS >>A<< DMODEB EQU 17 PORT B MODE REG DCLOCB EQU 19 PORT B CLOC3 300 DC.B $55,06 600 DC.B $66,12 1200 DC.B $88,24 2400 DC.B $99,48 4800 DC.B $BB,96 9600 DC.B $CC,192 19,200 DC.B 0,0 MARKS END OF TABLE *********************************************************** * PART 7. INPUT PORT STATUS CHE STAT OUTPUT STATUS DC.L OUCHAR OUTPUT A CHARACTER DC.L OCNTRL OUTPUT CONTROL ENTRY DC.L INSTA1 INPUT STATUS (1 CHAR ONLY) >>B<< DC.L INCHN1 INPUT 1 CHAR ONLY, NO ECHO >>B<< DC.L BFLUSH FLUSH TYPEAHEAD BUFFER >>B<< ********************* K REG DSTATB EQU 19 PORT B STATUS REG DCOMMB EQU 21 PORT B COMMAND REGISTER DDATAB EQU 23 PORT B DATA REGISTERS DAUXB EQU 25 PORT B AUXILIARY CONTROL REG * INITIALIZE PORT AND SET BAUD RATE INIPOR MOVE.L DEVADD(PC),A0 GET ADDRESS OF DEVICE CK. THIS ROUTINE IS TO RETURN * TWO THINGS: * 1. ZERO IF NO CHARACTER IS READY, NON-ZERO OTHERWISE * 2. D5=0 IF NO CHARACTER IS READY, ELSE THE NUMBER OF * CHARACTERS READY. IN NON-INTERRUPT SYSTEMS, D5 SHOULD * RETURN A 1; ONLY IN INTERRUPT-DRIVEN !"#$ SYSTEMS WILL IT * INDICATE A REAL NUMBER OF CHARACTERS IN INPUT BUFFER * PRESERVE ALL REGISTERS * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INSTA- ENTRIES, ALTHOUGH BOTH DEFAULT * TO THE SAME ROUTINE IF THERE IS NO TYPEAHEAPEAHEAD BUFFER ON THE * INPUT PORT: INCHAN TAKES THE NEXT CHARACTER FROM THE TYPEAHEAD * BUFFER (AND CLEARS THE INSTA1 FLAG), WHEREAS INCHN1 TAKES ONLY * THE CHARACTER FROM THE END OF THE TYPEAHEAD BUFFER, AND CLEARS * BOTH FLAGS. ********************* $***** * PART 13. OUTPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS ******************************************************* OCNTRL AND.B #$FB,CCR RETURN NON-ZERO ERROR RTS ***********************************D BUFFER ON THE * INPUT PORT: INSTAT CHECKS TO SEE WHETHER THERE IS ANY CHARACTER * IN THE TYPEAHEAD BUFFER, WHEREAS INSTA1 CHECKS ONLY TO SEE * WHETHER THERE IS A 'LAST' CHARACTER AT THE END OF THE BUFFER * WHICH HAS NOT YET BEEN INPUT WITH THE INCHN1************************************** INCHAN BSR.S INSTAT CHECK STATUS BEQ.S INCHAN WAIT IF NOTHING MOVE.B DUART+DDATAB,D5 ELSE GET CHARACTER RTS INCHN1 EQU INCHAN >>B<< *********************************************************** * PART !%******************** * PART 14. NEW IN REV. >>B<<. WHEN A TYPEAHEAD BUFFER * EXISTS, THIS FLUSHES IT AND CLEARS BOTH INSTAT AND * INSTA1 FLAGS TO INDICATE THAT ALL IS EMPTY. ******************************************************* BFLUSH RTS IN THIS  ENTRY *********************************************************** INSTAT MOVE.B DUART+DSTATB,D5 GET PORT B STATUS REG AND.L #1,D5 CHECK STATUS BIT RTS INSTA1 EQU INSTAT >>B<< *********************************************************** * PART 10. INPUT CHANNEL CONTROL. THIS DRIVER DOES NOT * IMPLEMENT CONTROL, SO SIGNAL ERROR AND RTS *********************************************************** ICNTRL AND.B #$FB,CCR RETURN NON-ZERO ERROR RTS *********************************************"&CASE DOES NOTHING >>B<< ******************************************************* * THE END. LABEL THEEND IS USED TO CALCULATE LENGTH OF * DRIVER. NOTE THAT THERE IS NO TRANSFER ADDRESS. ******************************************************* THEEND E 8. GET INPUT CHARACTER FROM PORT INTO D5 AND ECHO IT TO * THE OUTPUT PORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * THIS ENTRY USES THE TYPEAHEAD BUFFER, IF ANY >>B<< ******************************!************** * PART 11. OUTPUT STATUS. RETURN ZERO IF OUTPUT IS NOT * READY, NON-ZERO IF READY TO OUTPUT NEXT. PRESERVE ALL * REGISTERS. IF NO HANDSHAKING IS USED, OR IF HARDWARE * HANDSHAKING IS USED, THEN SIMPLY CHECK BUSY BIT. ********************'QU * END ***************************** INCHAR BSR.S INCHAN GET THE CHARACTER W/O ECHO BRA.S OUCHAR AND THEN ECHO *********************************************************** * PART 9. GET INPUT CHARACTER FROM PORT INTO D5 WITHOUT ECHOING TO * THE OUTPUT P"*************************************** OUSTAT BTST #2,DUART+DSTATB CHECK TX READY BUT RTS *********************************************************** * PART 12. OUTPUT CHARACTER FROM D5 TO OUTPUT PORT. IF NOT * READY, JUST WAIT FOR IT. PRESERVE $E ADDRESSES CHOOSE 1 OR 2: NOT COMPLETED - SPECIFIED ADDRESS IS BELOW OFFSET.@ˆäHçB…ùþÿ*yö-Åþ  gº9âgÛü#Íö  fºgÌLß ` 0e$ 9c Ae Zc ae zb<þNuÅñ<NuHçB…*yö-Lß Nu*|`#ÍöORT. IF NO CHARACTER IS READY, WAIT FOR IT. * PRESERVE THE PARITY BIT, AND PRESERVE ALL REGISTERS * NOTE CHANGES INTRODUCED IN VERSION 0003 : >>B<< * THERE ARE NOW TWO INCH-- ENTRIES, ALTHOUGH BOTH DEFAULT >>B<< * TO THE SAME ROUTINE IF THERE IS NO TY#ALL REGISTERS (INCLUDING D5) *********************************************************** OUCHAR BSR.S OUSTAT CHECK IF READY BEQ.S OUCHAR WAIT UNTIL READY MOVE.B D5,DUART+DDATAB PRINT IT RTS ************************************************** N¹Iäº9áf(»ü`gÞ<aº< a²<aª›ü`غ9àf2»ü`f < aŠ`¤›ü 9çf< ap9çah`�  gTº9íg,  eÿ|…»üßg Ûü`ÿh<a6<a0`ÿX  gÿNa Ûü»üÞfä`ÿ8E< aNuJ9 gaðNua*L gaÞ`òNu<        aÒ< aÊNuHç0&*|B¤`Hç0Bƒ6*|B¸B‡$BE–•e`öÖ•0 0fJf»üBÈg J‚g< N¹JüÛü»üBÌf¸Lß Nu;šÊõᘖ€B@† 'èd HçB`Hç<&<,<N¹@ˆeT 9cJg6N¹GÆ Fb*0  c(åƒJfքム# aJaH`aD</a>*L<<f< Jga&QÎÿì<.a<<f< Jga QÎÿðLß `NuHça˜Lß @NuHl B…JDg& Dg, Dg> DÿðdL9 ÊÊüPMúØ>,vPNÖ9 Ê<Nu9 ÊÊüPMúØ*6P<Nu9 ÊÊüPMúØ,vPNÖÄ Ê<NuB…JDg Dg& Dÿðd89 ËÊüPMú×Ð,vP(N )¹"g@¾¹"^g@¾¹"®g@¾¹"þg@|Nu|`6|`.|`&|`|`|`|`|B9B,NuB…9 ÊÊüPMúÒ^,vP@NÖNx’Hç @ÅH§N¹N¹\`THç B9*9#¦g<(E™üD#Ì+B9B,aÖf`Ø/LB¹#¦< N¹CŠü @ÅH§,| `åƒÖ…<`¸N¹@ˆdø*Lß<Nu*Lß<þNuHDaHDaNuá\aá\aNuè aaNu0 9c~NùJüHçx((|E<9 ËÂ*Ôü ËN¹B$9+9„ÿB…N¹BD`¦Hçx,g^(|E<9 ËÂ*Ôü ËN¹B$9+9„ÿB…N¹BD g g $Ö9 Ë<Nu9 ËÊüPMú×°*6P<NuÄ Ë<NuJ9+fB…9 ÊÊüPMú×~,vPNÖB…9 ÊÊüPMú×h,vP8NÖB…9 ËÊüPMú×R,vP NÖJ9+f,B…9 ËÊüPMú×4ÝÅB.1B…9 ÊÊüPMú×,vPNÖB…9 ËÊüPMú×ÝÅB.1B…9 ÊÊüPMúÖò,vPáGHDØGD00BáIN¹OBfD¸AfðN¹OBf6  g0Hç9 ËÅ*Ôü ËLß N¹Jü %ÊÅ*Õ gJÊüPMúÖºÝÅ#Î*Ö,y*Ö,nJ9+g ,y*Ö,n¹ /NBo,|NfN ,< `ØD=,;g, f< ` < af¼,;B,;a f°,=`Hç:,NgEÿ EÿfÌB,NN¹`€f²<,9F9F"J,gjì­N¹aÎfŽyÈafŠMù+.JVg†J.fJ.gÝü`ì... ÿg:¼,f¼,?f.`6Ýü½ü-&eü|9l>"Nu:,>EàM… "føN¹@ÔNu  f#ÍöNuJ9ÀgBKù/Mù<-,ÍÛüfÿò<,ÍfÿøÛü<À,Ífÿø,|-Ž*yÄ*ŽNußü>3ÇÌG>‡,|Nsßü>9ÌG<FøÿŽF>‡,|Ns ae {dßNu*9îà�B†NuHçKìB<<ãJjQÎÿôÅ*÷JfJg< (ÖNuJ¹f B9 Ë`ýøHç(/9#€  dü#€(y&y+#Ì+N¹P†Hù+f Lß8Lß NuB¹N¹CÎNù0:KúÓfMúÕâMîÿü-nP½Ífò+|NULL0Mú4+NP+NT+NXü Êü Ëü Ìü ÍNqNqNu<ûNu, fJ.,fD.,¾¹ Îg@¾¹!g@¾¹!ng@¾¹!¾g@¾ .|½ü,*e,Kù,*,y+Ýü`<ù+(B^<<>,ÝQÎÿü(y+`(Kù+*,y+Ýü`<<?,ÝQÎÿü(y+9l"N¹_Ôfÿ‚9l>"B…Nu,,ÜQÎÿü(y  !"#$ /+B…Nu dü´…ÿÅ*ÕÊüPIúÌØÙÅ#Ì*ÖN¹Jò`ýâT îHçJ,j"N¹]œfN¹T g ,º9"fäLßNuN¹MÀgºN¹a.f°BlNMìB<<SBžQÎÿüMì#KìÝ,Ý,Ý,ÝN¹aRf‚MìKùN,Ý,Ý,Ý,Ý,Ý,Ý,Ý,g ü `V9l`B,1B,;B9<aHJ,g6, 5¹aÎf<,aH:ºy+f.,|'KíÝÝÝÝÝÝ(|ªN¹_ÔgüNu<N¹CŠNù0:FÿÌü †-**F#Æ+Nu:¹+;y¼;yÀ;yÂNuHç ,g ü` N¹W’gù¶N¹b0LßNu9|`|ÿ;B,1Nu9|``ì|B,N¹OBfX,1 ,1f|19l ;º9"b$Mú±œ…vPHgLß@ N¹ Nù Lß@ |üNuHç,º9"b*Mú±T…6P k,vPHgLß@`N¹4NùLß@`|üNuLß@`| ü NuaNù$aNù*,º9"bMú°æ…6PEHgNu<Eßüâ Nu`€CHç, 0;Hç€0<÷N¹OBfQÈÿöì­N¹aÎfyÈMì$Kì,Ý,Ý,ÝMìKì4,Ý,Ý,ÝN¹aRgh9 "=;B,1N¹Z†f(J,g,¶¬f츬fæ*, B¾…fÜLßN¹b0Nu 9fêü`àHç (|ªN¹Z~N¹Z†fDB…<þ*9Äã�»¹®ã�»¹²ã�»¹¶ã�»9²,à�à�½E3Å+*<Lß0Nu*y+yNuB¹B¹B9Nu, g  f4, c& b B…Êü*|b 2B�QÎÿüyã;9yîyðN¹W.N¹E|1<N¹UKì,|N,Ý,Ý,Ý,Ý,Ý,Ý,Ý(|JN¹ZøfÿrB…LßNu y4+gü&3ü4+9&9&NuN¹T gB…NuJ,fü|Nu|N¹OBfØ,1B…NuHç,B, cF,ggî 8 fPB9B,,Iì EN¹aRf2(WKì4MùN,Ý,Ý<ÝÝIùJN¹Zø(WKì$Mì4,Ý,Ý<ÝÝN¹b0LßNuü`êHç,g&fý, ,1gÌBB,1N¹P†f¾,þ1`¶BB,1N¹OBf¨,þ1` B…,34P`B†Nu, fB†,3„``<ƒFF=B†Nuü|Nu>–uP uP uPNuBINTXTCOMBASSYSBAKSCRDATBACDIRPRTOUTBATSRCPIP 3ãfÖ(y+,|#¦IìD.gÀ¾Œg,G`ò,”B”(WJ,fB,N¹b0LßNu¹ù+f#üÿÿÿÿ+B9+&abfÔJ,=gÎN¹T fÆN¹W’f¾9lJ"N¹_Œf°B†,MMô``yîyïyðN¹W.N¹EN¹_Ô`ÿvJ,jl=,N¹_ÔNuBNu(Wü`ÿJ,|#¦IìD.gÿä¾ 9,º9"b&EMú³Š…6PgÜEHafÐ<þNuü|<NuN¹pNùJ,gÜHçaúzf(>,Nf(<,9F"N¹_Œf|1:,bºlNf�LßNuG¾lb^aõfêMù+.>,NJ.gHB†.žFg,àN ÿgMî`àÞ..gº,¹ /NBo,|NfNsB9,y+ #Îö,y*æNf.y*êLß9NuLù@*Î< N¹LD  fPB…..á�…!     !'…fø.,g4.1º.1d(|1./gH§< N¹LD/fîßüNuJ.5gT,nHçN–Lß Lù@*ÎgafŠMù+&JVg†J.fJ.gÝü`ì... ÿg:¼,f¼,?f.`6Ýü½ü-eü|9l>"Nu:,>EàM…|½ü,"e,Kù,",y+Ýü`<ù+ B^<<>,ÝQÎÿü(y+`(Kù+",y+Ýü`<<?,ÝQ!3abfÔJ,=gÎN¹S¾fÆN¹W>f¾9lJ"N¹_8f°B†,MMô``yîyïyðN¹VÚN¹EN¹_€`ÿvJ,jl=,N¹_€NuBNu(Wü`ÿJ,|#¦IìD.gÿ侌g,G`ò(Wì­,;g*k(< N¹P:fÿ,;N¹P:fÿB…N¹P:fþøJlf N¹[fþè`TBl`N¹!(f Lß8Lß NuB¹N¹C‚Nù02KúÓ²MúÖ.Mîÿü-nP½Ífò+|NULL0Mú4+NP+NT+NXü Êü Ëü Ìü ÍNqNqNu<ûNu, fJ.,fD.,¾¹ Îg@¾¹!g@¾¹!ng@¾¹!¾g@¾¹"g@¾¹"^g@¾¹"®g@¾¹"þg@|Nu|`6|`.|`&|`|`|! .Îÿü(y+9l"N¹_€fÿ‚9l>"B…Nu,,ÜQÎÿü(y+B…Nu dü´…ÿÅ*ÍÊüPIúÍ$ÙÅ#Ì*ÎN¹J¦`ýâS¾æHçJ,j"N¹]HfN¹!4_€fþØ9lJ"N¹_8ftB†,MKìMô`kÝÝKíÝÝKíÝÝÝÝÝÝÝÝÝN¹_€füNùWšN¹azf<,aH:ºy*üf.,|'KíÝÝÝÝÝÝ(|ªN¹_€güNu<N¹C>Nù02FÿÌü!)`|`|B9B,NuB…9 ÊÊüPMúÒª,vP@NÖN,’Hç @ÅH§N¹N¹\`THç B9*9#¦g<(E™üD#Ì+B9B,aÎf`Ø/LB¹#¦< N¹C>ü @ÅH§,|-":<BžQÍÿü#üÿÿÿÿ+By+LŸ DÅLß0NuHç,  dò, g( g" Sgü! /S¾g ,º9"fäLßNuN¹MtgºN¹`Úf°BlNMìB<<SBžQÎÿüMì#KìÝ,Ý,Ý,ÝN¹`þf‚MìKùN,Ý,Ý,Ý,Ý,Ý,Ý,Ý,g ü `V9l`B,1B,;B9<aHJ,g6,;Hç€0<÷N¹NöfQÈÿöì­N¹azfyÈgù¾N¹aÜLßNu9|`|ÿ;B,1Nu9|``ì|B,N¹NöfX,1 ,1f|19l"JB†,1FM,1MìKô``,Ý,Ý,ÝÝBÝÝB^ÝÝÝÝÝÝÝÝÝBNuN¹aÜNuZ¤ˆ<,J¼l"g*9!*`lHç,  dÀB9*û,;g k,;`(J,1g\B†,1B…4``,1J9*ûgE;B…< `  fJ,;fÅ*û`¼N¹aÜfJf (WJ,;jÿ’B†LßNuJ,gJ,j,N¹_€fÈ<,`g9F"N¹_8f¶9lbN|1`ÿjü`œ dÿ8…ÿÅ*ÍÊüPIúÐìÙÅ#Ì! 0#¦9y”Jy—MNuHçJ,j"N¹]HfN¹Ug ,º9"fäLßNuN¹Mtg4N¹`Úf,,Å­º9"c ü`N¹`þfüN¹aÜLßNu 9fêMìB<<SBžQÎÿüB9B,N¹azfÈ,N¹Y´&M:gºy*üg NùY¤N¹YÌJkf ü`”(|JN¹ZN¹Z2!6F"N¹_8fX¼ylfMì`Kùª<@,ÝføB†,MMô``Kì,Ý,Ý,ÝÝKíÝÝKíÝÝÝÝÝÝÝÝÝNù_€NuHçMì$Kì,Ý,Ý,Ýì­N¹`þf¾(|J,Àg ü `¢|ÿaÿHf”*W;l;l;lg|,N¹Y´<Æ\ fN¹azf`N¹YÌ<-;y`:9!+*ÎN¹IÒ(y*κ,4g¼N¹aÜ`ÿrHç,  dv, g( g" Sgü`fHç,  dDJ,g|ÿ;J,;kr  f6,; ,;dB…LßNu< aLfò,;B,;a@g< `à< `ØD=,;g, f< ` < af¼,;B,;a f°,=`Hç:,NgEÿ EÿfÌB,NN! 1f,g’gŠ`æ 9fÿdB,B9<+f ü`ÿH9F`N¹_€f8N¹Z2f07l`kKì`<<?B�QÎÿüN¹_€fN¹Y^fÿ`ÿ` 9 g <N¹C>NùUL(y+KìB<<B�QÎÿü9yîyðN¹VÚN¹E|1<N¹T¸Kì,|N,Ý,Ý,Ý,Ý,Ý,Ý,Ý(|!7bÛmJFgL(|ª9F"N¹_8f.9y\`N¹_€f(|ªN¹Y^fJ9\ f*y+BUN¹aÜLßNu;y\`ÌHçJ,Mì$Kì,Ý,Ý,ÝMìKì4,Ý,Ý,ÝN¹`þgh9 fPB9B,,Iì EN¹`þf2(WKì4MùN,Ý,Ý<ÝÝIùJN¹Z¤(WKì$Mì4,Ý,Ý<ÝÝN¹a!,¹`,f²<,9F9F"J,gjì­N¹azfŽyÈ,Nf(<,9F"N¹_8f|1:,bºlNf�LßNuG¾lb^aõfêMù+&>,NJ.gHB†.žFg,àN ÿgMî`àÞ..gº,�A$€0±Ì_"3‰�k�.&+ç�c%%�A%!0Æ�;$�.&/�O�A%Æ�+$ �.'½Ïr%®b†§F5–�1®b€0±Ì_"ì§�$$æþ5–�$�_'�-' �*' ±ÌI%„ß§€Z&â~ÏJo€Z&Ò\Äû½Ïr9¦€� &!:àaþüfNuB9 ,fðHç<,N3Æ+ F§Xbÿ|9l"| =N¹_8fR||=B,19lbNB„N¹P:f2<,N¼y+g N¹\¸f`àN¹W>fN¹Wf 9y+N`þ€LßNuHç,º9"b$Mú±ð…vPHgLß@ N¹ Nù Lß@ |üNuHç,º9"b*Mú±¨…!ËÄTXTTHANK YOU.Ì:Ì ÌÌ+¿ÿÿÌ4ÌI`Ì^ÌÀ9ÌØ9Ìä9ÌüÍÄ~Íb~Í}~Íå~Ò–~Ò–~Ò¢~Ò¢~Òk~Òª~Ï“~Ð~Ïr~Ð'~ÏJ~Ü×~Ѽ~ÎÉ~Üù:9~Ð<~Ðò~Ñ~Б~Ðé~ÐŒ~Íý~Ò¦~Ѩ~Ð~ÝãO‹9nŸÓåÎÀ€­ŸÓõ½Ü×O_ýÔ Ì(̽Ô6 2ŽÍ¿ÌÎÀ€½Ü׶̱Ì& ¾Ì0!! ¿Ì9}Ì#&úš}Ì&'ú�4¾Ì&½Ôr'eÌ&½ÑŽÒ“½Ð5 Ø: 4Ì­ŸÓû59nŸÓùnŸÓ÷4}Ì!&!� $†·Ì) |Ì)¶Ì'±Ì)$ ¦ä� &½Ð'5}Ì"&}Ì$'4¾Ì$½Ôr&5�Ì$½Ñ~Í}4VÎÌ� &2mY'¦S'¡J'�œ' ­ŸÓå„¡Z&oJ­ŸÓå„¡ZÓ D' � &ð5VnŸÌ† �&¦ä� &¦S'lJ¡J$†§J¦X' 4† �jä&ø2a5Ö}Ì"&ùµ~!;6P k,vPHgLß@`N¹4NùLß@`|üNuLß@`| ü NuaNù$aNù*,º9"bMú±:…6PEHgNu<Eßüâ Nu`,CHç,Æ­N¹Y´,MJ.fHçN¹azLß@fTN¹YÌ:.g<:.g69E(|ª9E"N¹_8f,:,`g<=E:.E!¿Ì I}Ì('Ì(þÌEöÌ nŸÌC½Þ¾Ów¯ŸÓëO_ýÌýÌ-J·ÌÍÄÄ/Ì ¶Ì ·Ì]�нÔ=Ì ý̽ǠŽÍó½Ð½Ï“¦ŸÌ� 'ï� '¡ SK*DOS: |Ì(ìáýÌCÿÌEÌ ¾Ì½Òa� &Æ }üÌýÌOŽÈ@½Ñ¼%î¾Ì'�'ŽÎœ�'üÌOýÌ )­” CŽÈD¦„'¦€¡ &M&÷9ŒÈL'ùM'¦€ ù0 ÝL9†·ÌW¶Ì ·Ì]Ì �9& ÌW}Ì'­ŸÌöΈÄÌ !" ÍnŸÓóÓä~Óp0„9P;9199293949ÓåÓpÓwßÂßÈÓzÓzÓzÓ{ÓÓ€Ó„ÓˆÔ ~Ô6~Ô=~ÔrÔ INVALID FCS CODECONTINUE? Ô2Ä94½Þ &4Ì ¾Ô '0ˆä†§„�"'ð¯bO_ýÔ Æ ½Ñ÷Ì 4ŽÌfÆZo€Z&û½ÝB5—46¿Ô Ì oæ„'ŸÁ"m* Á#u¶Ì §XŽÔÓ0•¿ÌU56nŸÌU46†·Ì ŽÔ ½Ð®bæ„O!<g.=EB…LßNua$füN¹aÜLßNuü`êa`æB®Bn(oN¹Y^NuMìD*|#¦.g*G½Íföü|NuHçB9,L&,(,., BìM(|J9|`|ÿ;B,1N¹Z2f(J,g,¶¬f츬fæ*, B¾…fÜLßN¹aÜNu 9fêü`àHç (|ªN¹Z*N¹!÷ÈA'}~Í}Æ÷Ì ëGETίMONÓ`XEQÎ{ÌWŽÈ@½Ñ¼%w¶ÌW½Üù†§„½Ôr&h4vŽÈ@†ÿ§ˆ;Ì�Z�'�'9 ô�?óÌ�G‰mˆ"&�>§ÀZ'ÝŽÈ€˜öÈb:‰¦ §À|ÈbZ'Ä}Èb&ñ Ù�ýÌ|Ì ³½Ôr&‰½Ôr&‰9½Ôr'ú¦�&«2b†§„½Ôr5ö4ÏLĶ̷̦̾„·Ì� '±Ì' 0¿Ì� &¡„'â5�0%�9#�A%�Z#!# 40ä½Ð<2bŽÔ½Ð½Í„ß�Y&ø¯½ÜÎ5¶ÕÖš×"ÝQØ"Ù`Ù{Ù”ÛJÛDÛJÙØÚÚ‘Ô¢ÚüÙ�ÝÔöÄWÝZÔ¢Û!Ý]Ý`Ýc½Û!&½Ôr'¦&¦ˆ$§¦±Ì_&æ5¶46æZ'Z'ˆZ' Á€&çˆ? † sÌX¦ˆ;'+jˆ; mˆ"'>æˆ"1ˆ@O¦«§älˆ"}ÌX' J§ˆ;† §ä � & mˆ;&·ÌX нÜÎ& mä&®bmˆ;*±O W½ÝE&èìˆ@'툽ÛD&ÛìˆBíˆ †§ˆ" £=Z2fDB…<þ*9Äã�»¹®ã�»¹²ã�»¹¶ã�»9²,à�à�½E3Å*ü*<Lß0Nu*y+yNuB¹B¹B9Nu, g  f4, c& b B…Êü*|bBuP uP uPNuBINTXTCOMBASSYSBAKSCRDATBACDIRPRTOUTBATSRCPIP!�a%�z"þ9·Ì94ŽÀ€¿Ì½Òk±Ì&ŒÀ€'í†�Q† �M†�I0 ë±Ì&ŒÀ€&† �7 Í0öÌÁ&† �(˜�$ À� '2±Ì '� %³§„ŒÀÿ'0 ¨†�†� ž~Òª¦„� '•�õ0ŒÀþ&ñ ÐÄŠ§„5’�4¦„�'�Ü0 ô5‚4† �І �̾Ì00&ü5’47oä섎ЂŽ£„%1© öã„4 ‹0�0&mb& ŒÐŠ'md' † jb½Òªlb50Œ!$ †·Ì Çmˆ½ÝH'պĆ~Øpæˆ;+C� &lˆ;æˆ;Á$O † �,& ¦ˆ;oˆ;�"þ5¶æˆ;'Á&† † � &ë˜oˆ;�&â 46ìˆ 'L&Goˆ ½ÛÚ&:ìˆíˆíˆ½ÝK&,1ˆ@_o Z&ûìˆÃíˆìˆ Ãíˆ íˆBæˆ"lˆ"0ˆ@:¦ä§„½ÜÎ �æˆ"&è½ÛÚ&ñìˆíˆ@½ÛJ&憧ˆ"ìˆíˆ½ÝN ¨1ˆÖ~Ä#0Æ ½Ñ®®d½Ü]9ÆOo‹\&ûÌ o946½Ü?&!ÍO #½Í5–(C) 1984 - 1986 BY PETER A. STARK. ALL RIGHTS RESERVED.ɲ ERRORÇÇ ŽÌ·ÍÙýÍÚ�e0�Q½Ð½ÊŽË¼ŽÈD½Ñ¨ŽÈ@¿Ô ¶Ì §½Öš' ¦�'.½Ñ )ŽÀ€¿ÌŽÈ@½Ôr&§ � &õ½Ô=½Íý&Ý ¦�&Õ½Ô=ŽÈo€ŒÈ@&ù~Í}ŽÌ¥–î„í„£„& ï„0¼Ì+#î0¿Ì+9Ê5!ÐŒ&Ç2a5¶'èd ÌG †·ÌGŽ¿ÌN_½ÏJ%A�9# }ÌG'2�F".€0� #„€4üÌNXIXI}ÌG&óÌNXI XIXIëàÐÔĉýÌNÆ À½ÏJ$û9¾ÌNþ9�0�094¦„�¦„�5‚DDDD„‹0�9#‹~Òª46 46æ'€|Ì"ŽÉ²½Ð¾Ô ¿É¦¶Ì ·É¨ŽÌ0ç½Ð<¾Ì-&ŽÑ�ŽÊÄ�bŽÊÀ¶Ì §†§„½Ôr&5½Ø"&0o„lüÌ0LÀ *ûÃ.:‰ýɪO" Y�é�×' ¶Ì �&Lo H1ŽÉ„ƽѮ®b¦„ '† ·Ì /ìˆíˆ@†�*mˆ' jˆ;Žø½Õ&1?&÷¦·Êýܙ&öÊÛçˆ<½ÜÎ5¶§oˆ?o„¾Ô ¯ˆ1ˆ¿Ô üɯíˆ/¶É±§ˆ194v½Ü?&¦·ÊñÌ_#† ½Ü]& †·Ì ½×BÄÜÎ5ö¶Ì �&ô½ÖŒ½Ü™&ìæ½Ù<ì„' ³ÌY'~Ù4½ÙKì&† ÊŽÉ€½Ù{½Ù”& ¦']L'Z ò¶Ì �&²oÌ ìB&"     "† ¢íˆ@½ÛJ&-½Ù”&(ìˆ@íBìFƒíF0ˆ@_o€Z&ûŽÉ€½ÛJ& ½Ù&ÿt1 ›öÌ Á 'ƽÑ~×A¾Ô 0Æ5o€Z&û¾Ô üÌ툶̧ˆO½ÍW§ˆ†§ˆØÄ"†½Öÿ0ŽÉ„ƽѮŽÉ€½ÙØ&²O5ö46æZ'Z'IZX&<¾Ô ŽÔ ¿ÌQ0ˆ®ŸÌQ''¬ŸÌQ'¿ÌQ í®„¯ŸÌQޝ„®b½ÝTo½ÜÎ5¶®b†·Ì ð¦·ÊÃæˆ;'+† ½Õ&ݦˆ;½Õ&Õ"¢~Ô¢Õ;Õ³ÖDÖ&ÛDÛJÛÚÜ™Ýã4Ž4¼Ýý'†·Ýÿ¿Ýý¶Ýÿ|Ýÿ5�Þ 9999999999ÛD59ÛJ 5v69Ê9Íó SK*D09: Òó39Ò–Ì49Ët YOU ARE NOW IN SK*DOS / 6809 (C) 1984-1986 BY PETER A. STARK STAR-K SOFTWARE SYSTEMS CORP. È9" ` ` ` ,` :` H` V` n` †` ž` ¶` Ä` Ò` Ø` Þ` .` €` ˆ`ûª` Š` ”` œ` œ` œ`û’` ¼` ¼`û†`û‚` ¸` ¼`ûv` ¼` Â` Æ` Ê` Ð`û^` à` ô`ûR` ` `ûF`ûB` ` `û6` ` ` ` ` `û` *` >`û` L` P`û`û` P` X`"O½Õ&Ïìˆ&½Ú&Å 0O_íˆ@½ÛJ&¹ìˆ/툽ÛD&Aæˆ1OÃ@1‹4Æ 01+½ÑØÊÄ®5½ÛJ&&�/&�¾Ô æc¾Ô †£ˆæ'®„&ö¯ŸÌ[¾Ô c~Ø0ƽÑ÷Ì ~Øe½Ü™&+æ�0섳ÌY& ŽÊÀìí¨]ìí¨_ìí¨a!½ÛJ'Æ÷Ì 9ƽÑ~Í}4XXXëàŽÌf:¿Ì[9üÌYí„üÊÑíüÊÓíüÊÕí946¦�'Æ÷Ì ½Ø"'ý&½ÜÎ5¶4Ìíˆ@†ÿ§ˆ;" ` ÿÿNq`À .. ‡ÿÿe Iú$¹üeIú Œ 5 B€B�&<(C C"H$H&|ÍKúÂ-Mú( Iúÿ®*LÙüÀÛüß¿,|ÀÜ»Ìfú(D îàÌîáÌîâÌüÌ îëÌ îìÌ îíÌ îîÌîïÌîðÌî"Ì_B‡åOMúzNöpIú ù 5B„—ü :Iú ø 68  ; "úö` `` n` z` †` ”`úÞ` ¨` À` Ö` Ü` ä`úÆ`úÂ` ä` ì`ú¶` ô` ` ` ` (`úž` <` T` j` p` x` |` €`  ` ´` Æ` Ú`ún` è` ü``.`4`<`V`úN`j`r`z`ž`¸`Î`æ`ü``*`N`d`n`~`”`´`Ò`Ú`â``"oˆ"5†4ÙŽÄÌ ì46†§oˆ½Õ&1jˆ"¦ˆ"�&†§ˆ"ìˆíˆ/æˆ"çˆ14Ëçˆ"510ˆ@:ƽѮ5¶½ÜÎ5¶4vìˆ/£ˆ'툽ÛD&æˆ10ˆ@:0ƽѮ®b~ÛL5ö4v½Ö|&w¦·ÊÃŽÉ€¦„À'† ·Ì b†ÿ§�°&ZìˆíÈ'Ræ½Ù<ì„÷Ú�&½Ü™&A½ÙK®üÉ“íìóÉÚRÄ•í1¤'0ŽÊÀ¯ˆ½ÛD&üÉ‘íˆ@½ÛJ&ŽÊÀ½Ù& }Ú�&" *áM*ENu**ENu.<>9Ì&G`°`g g g * ` *`* `* JkçH‡æOH‡ÚG*ENu,GåOMúNöp`~`¶`î`,`j`j`p`ÿZ`r`€`ÿN`„`\`h`ÿ>`ÿ:`ÿ6`t`ÿ.`|`~`~`~`ÿ`z`z`ÿ`v`v`v`þþ`r*E`g g" `6`N`d`z`’`¶`Ì`Ö`æ`ü``:`B`J`n`ˆ`ž`¶`Ì`â`ú``4`>`N`d`„`¢`¦`ª`Ê`Þ`ð``ùn``&`F`X`\`ùV`t`ùN`ˆ`�`˜`¼`Ö`ì```0`H`l`‚`Š`ª`Ê`ê````"¾Ì[O_턽ÜÎ5öüÉ‘í à46mˆ=& ì íˆ=¦§ˆ?1ˆ$0½Ñ¨®b10ˆ5½Ñ¨®b½Ü]':¶Ì �&.Ì o¦0ˆ §½Ü]&®b0ˆ5ŽÉ„½Ñ¨ŽÉ€½ÙØ®b1ˆ50ˆ$½Ñ¨½ÜÎ5¶†·Ì ô46o„¦J' J&þ^æˆ"Á'ßoˆ"½ÕÛÄ&×dˆ"hˆ" Ï4¦L±Ì_" §½Þ&ñþ5–¾Ô Æ÷Ì ç5–4v† 4vO¿ÌJ·ÌH½Ô2¾ÌJ†·ÌL¦±Ì_"q†·ÌM¾ÌJ½Þ%¾Ì"  g. G(GNu.G GNu. G"GNu. G$GNu*E`g g g. G(GNu.G GNu. G"GNu. G$GNu`g g g$. G(G*LNu.G G*HNu. G"G*INu. G$G*JNu`g g g$. G(G*LNu.G G*HNu. G"G*INu. G$G*JNu*ENuH‡ÚG*ENu`"<`V`l`„`š`°`È`ì`` `*`J `j`ˆ`�`˜`¼`Ö`ì```0`H`l`‚`Š`ª`Ê`ê`````$`*`0`6`<`B`H`N```r`„`úÒ`û8`úÚ`úê`úÊ`û*`ûh`ø2`ø.`ø*`ø&`ø"`ø`ø`ø`Z`Z`"Jìˆ0ˆ@}ÌH'½Þ'GÅ€'1!&ü ½Þ& }Ô5'3½Þ'.Å@&zÌM&ÃzÌL'¾ÌJ½Þ ±ŽÛÎÁ' X%1! ù椮bç÷Ì 5ö  Æ ëÛÚÄ4Væ÷ÊýÙ<m&½Ü™&7½ÙKìF''ìB'#®b툎ÊÀ툽ÛD&ìˆ@' íBìFƒ'íFO5Ö�&†·Ì ½ÜÎ5Ö† ô� óíBíDíF®d½Ù940ˆ4ŽÔ ®„' ¬ä&ø¾Ô †·Ì 2b5’4vŽÉ€¦C§½Ù{Ž" ô* EH‡ÚG*ENu* …áOÚG*ENuáO`Êaÿ* áM*ENuaÿn`î*E`êaª`æa°`âa¶`ÞaÄ`ÚaÌ`Öa¤`Òa°`Î*áM*E` *`ýh )`ý` +gû`ýT`ýL9͸9Íf9͸9Íf B. Ë 3`ý"9Ì"fê | Ë 3B. Ë`ý (  (Nhh"h# @Âl"ø `ø`ø`÷þ`÷ú`÷ö`÷ò`÷î`H`÷æ`L`÷Þ`÷Ú`÷Ö`÷Ò`T`÷Ê`÷Æ`÷Â`÷¾`÷º`÷¶`÷²`÷®`H`÷¦`T`t`÷š`÷–`÷’`†`÷Š`÷†`÷‚`÷~`÷z`÷v`÷r`÷n`z`÷f`†`¦`÷Z`÷V`÷R`¸`÷J`÷F`÷B`÷>`÷:`÷6`÷2`÷.`¬`÷&`¸`Ø`÷`÷`÷`"É€½Ù”&Æ ŽÉ„m„'1D¦€¡ &çZ&÷5ööÌ Á&÷ÆçA÷Ì 5ö42ŽÊÀÜž ½Ù�½Ù”&ÌŽÊ׎þ�ŽÊÄŽ �ÊýÌYO5²YIè€1?&ø9¾Ô ¶Ì §94üÍ ýÍ üÍý͆~·Í ·ÍÆŽÌ!o€Z&û5–4fæ 'Á &� "H«äŽÝî¦ï 1"¦¦§5æBINTXTCMDBASSYSBAKSCRDATBACDIRPRTOUTÝ@6%%9O99O9O9~Ô¢9~Ô¢~Ô¢~Ô¢~Ô" îÌ (DKî`Mè@BÝfø`üÂ(  (Nhh"h#Kî`Mè@BÞfø @ÂlîÌ (D`ü€`¤`ü†`ü‚`¤`¬`üv`´`Â`Î`Ú`è`ü^`ü``*`0`8`b`|`|`ü:`ü6`Š`p`ü*`Œ`š`ü`š`ž`´` °` Â` Ì` Ò` à` î` ú`"÷`÷ `÷`÷`öþ`öú`öö`öò`öî`öê`öæ`¾`öÞ`öÚ`öÖ`öÒ`öÎ`öÊ`öÆ`öÂ`ö¾`öº`ö¶`ö²`ö®`öª`ö¦`š`º`öš`ö–`ö’`öŽ`öŠ`ö†`ö‚`ö~`öz`öv`ör`ön`öj`öf` `À`öZ`öV`öR`öN`öJ`öF`öB`ö>`ö:`ö6`ö2`ö.`ö*`ö&`¦`Æ`ä`ö`" !"#$" ö`ö`Ø`ö`ö`õþ`õú`õö`õò`õî`õê`À`õâ`õÞ`õÚ`õÖ`õÒ`õÎ`°`õÆ`õÂ`õ¾`õº`õ¶`õ²`õ®`õª` `õ¢`õž`õš`õ–`õ’`õŽ`˜`õ†`õ‚`õ~`õz`õv`õr`õn`õj`ˆ`õb`õ^`õZ`õV`õR`õN`€`õF`õB`õ>`õ:`õ6`õ2`õ.`õ*`pYOU DON'T HAVE"&JaÿXÉJ`ðÉJa ÉJ`ð.áO&G`ðB‡Þˆ G`ïö`ð`ïüBFBGÎÆ0àHJGgûâ ãã`ïÌ`ð`ïÐD@Â`ïºF@Â`ï²â@Â`ïªââ@Â`ï â@Â`ï˜ã@Â`ï�âã@Â`ï†@ÇÅGgïv`ïn@ÇÅGgï^`ïVJ@ÇÅGgïH`ï@B@@Â`ï8D@Â`ï0F@Â`ï" ,Ggê4`ê,aêx�@Â`ê aêl°@Â`êaê`f<ï<‘@Â`éø<‘@Â`éìaê8áOáNžF@ÂàO`éÎaêÀ@ÇÅGgé¼`é´aêÎ@ÇÅGgé `é˜aéä@ÇÅGgé†`é~aéÊ€@ÇÅGgél`édaé°¿@ÇÅGgéP`éHaé”"! ENOUGH FREE RAMBAD INSTRUCTION  AT LOCATION aõD@Â`ôÎaõF@Â`ôÂaôöâ@‡`ô²aôæââ@‡`ô aôÔâ@‡`ô�aôÄã@‡`ô€aô´âã@‡`ônaô¢@ÇÅGgôZ`ôRaô†@ÇÅGgô>`ô6aôjJ@ÇÅGgô$`ôaôP&M`ôaôF"'(â @Â`ï ââ@Â`ïâ@Â`ïã @Â`ïâã@Â`îü@ÇÅGgîì`îä@ÇÅGgîÔ`îÌJ@ÇÅGgî¾`î¶BA@Â`î®aîúD@Â`î¢aîîF@Â`î–aîââ@‡`î†aîÒââ@‡`îtaîÀâ@‡`îdaî°ã@‡`îTaî âã@‡`îBaîŽ@ÇÅGgî."!-f<ï<Ñ@Â`é,<Ñ@Â`é aél€@ÇÅGgé`éaéRÐ@Â`èøaéD,áN±Æ@Â`èäaé0> &M™üGàO‡`èÊaé.áO GJG@ÇÅG gè®`è¦aèò<@ÇFàN†ÅGgèŒ`è„aè¬�@Â`èxaè °@Â`èlaè”f<ï<‘@Â`èP<""B@Â`ôB‡!eô ebeóúåOMúûäNöpåOMúû^NöpB‡eóÚ >dóÒåOMúý°Nöp`ó¶`óÀ. ‡™üGàO‡aóÄ. ÞE&G`óŽ�<ï<Á@Â`ó|„`ótÄ`ólH€@ÇàHÅGgóZ`óRèa?aèa|>ar`ó,Jg:g>g<g:"(`î&aîr@ÇÅGgî`î aîVJ@ÇÅGgíø`íðaî<&M`íæaî2B@Â`íÚaîD@Â`íÎaíöF@Â`íÂaíêâ@‡`í²aíÚââ@‡`í aíÈâ@‡`í�aí¸ã@‡`í€aí¨âã@‡`ínaí–@ÇÅGgíZ`íRaíz@ÇÅGgí>`í6aí^J"".‘@Â`èDaèláOáNžF@ÂàO`è&aèNÀ@ÇÅGgè`è aè4Î@ÇÅGgçø`çðaè@ÇÅGgçÞ`çÖaçþ€@ÇÅGgçÄ`ç¼açä¿@ÇÅGgç¨`ç açÈf<ï<Ñ@Â`ç„<Ñ@Â`çxaç €@ÇÅGgçf`ç^aç†Ð@Â`çP"#g8g6g4g2g0g.`òü.áONu.Nu. Nu. Nu. Nu. Nu.Nu.Nu.Nu.àONuJg:g<g:g8g6g4g2g0g.g,`òŽàONu GNu"GNu$GNu(GNu&GNu Nu"Nu$NuáO6Nuèaÿa‚`ò<H…. ÞE&G`ò.×ü`ò$gà×ü")@ÇÅGgí$`íaíD&M`íaí:B@Â`í�@Â`ìþ°@Â`ìöf<ï<‘@Â`ìÞ<‘@Â`ìÒaìúáOžM@ÂàO`ìºÀ@ÇÅGgì¬`ì¤Î@ÇÅGgì”`ìŒ@ÇÅGgì~`ìv¿@ÇÅGgìf`ì^f<ï<Ñ@Â`ìF<Ñ@Â`ì:€@ÇÅ"#/açx,áN±Æ@Â`ç &M™üGàO‡`ç"açJ.áO GJG@ÇÅGgç`æþaç&<@ÇFàN†ÅGgæä`æÜ’@Â`æÔ²@Â`æÌf<ï<“@Â`æ´<“@Â`æ¨aæÐáOÞM@ÂàO`æ�Â@ÇÅGgæ‚`æzÎ@ÇÅGgæj`æb@ÇÅGgæT"$`òfÎ×ü`òg¾×ü`ñðf®×ü`ñàgž×ü`ñÐfŽ×ü`ñÀgÿ~×ü`ñ®fÿl×ü`ñœgÿZ×ü`ñŠfÿH×ü`ñx gÿ4  gÿ,×ü`ñ\ ,<fÿ×ü`ñ@,<fþô×ü`ñ$,<"*Ggì,`ì$Ð@Â`ìaìB±Í@Â`ìH…HÅ. Þ…Ï‹™üGàO‡`ëðaì M> @ÇÅGgëÜ`ëÔaì�@Â`ëÈaëü°@Â`ë¼aëðf<ï<‘@Â`ë <‘@Â`ë”aëÈáOáNžF@ÂàO`ëvaëªÀ@ÇÅGgëd`ë\aë�Î@ÇÅGgëH`ë@aët@"$0`æL¿@ÇÅGgæ<`æ4f<ï<Ó@Â`æ<Ó@Â`æ‚@ÇÅGgæ`åúÒ@Â`åòaæ< @ÇàNÅGgåÚ`åÒaåú$M> @ÇÅGgå¾`å¶aåê’@Â`åªaåÞ²@Â`åžaåÒf<ï<“@Â`å‚<“@Â`åvaåªáOáNÞF@ÂàO`åX"%gþØ×ü`ñañT M> gû`ðöañB"M> fî`ðäañ0(M`ðÚañ&$M`ðÐa`ðÊj> àOãj> àOãj> àOãj>àOãj>àOãjãjãjNua`ðv.âdâdâdâdáKâdáO GâdáO"GâdáO$GâdáO&GNuÉ"+ÇÅGgë.`ë&aëZ€@ÇÅGgë`ë aë@¿@ÇÅGgêø`êðaë$f<ï<Ñ@Â`êÔ<Ñ@Â`êÈaêü€@ÇÅGgê¶`ê®aêâÐ@Â`ê aêÔ.áO±Ç@Â`êŒaêÀ. ™üGàO‡&M`êraê¦.áO GJG@ÇÅGgêV`êNaê‚<@ÇFàN†Å#1aåŒÂ@ÇÅGgåF`å>aårÎ@ÇÅGgå*`å"aåV@ÇÅGgå`åaå<�@ÇÅGgäö`äîaå"¿@ÇÅGgäÚ`äÒaåf<ï<Ó@Â`ä¶<Ó@Â`äªaäÞ‚@ÇÅGgä˜`ä�aäÄÒ@Â`ä„aä¸áOJG@ÇÅGgäh`ä`aä”#     #2À�áOJG@ÇÅGgäD`ä @ÇÅGgÞ`ÝüaÞ0.áO(GJG@ÇÅGgÝà`ÝØaÞ < @ÇFàN†ÅGgݾ`ݶaÞ.áO(GJG@ÇÅGgÝš`Ý’aÝÞ< @ÇFàN†ÅG#N\CONS*Ú€†’˜¤ÈŒžÔÚà#êPROMPT=SK*DOS: 'ê Nu'ô€ #3ã®@ÇÅGgãP`ãHaã”�@ÇÅGgã6`ã.aãz¿@ÇÅGgã`ãaã^f<ï<Ó@Â`âö<Ó@Â`âêaã6‚@ÇÅGgâØ`âÐaãÒ@Â`âÄaãáOJG@ÇÅGgâ¨`â aâìÀáO�JG@ÇÅGgâ„`â|aâÈ.áO$GJG@ÇÅG9gÝx`Ýpaݘ.áO(GJG@ÇÅGgÝT`ÝLaÝt< @ÇFàN†ÅGgÝ2`Ý*`Ý4aÝNµÍ@Â`ÝaÝB¹Í@Â`ÝaÝB,áNµÆ@Â`ÜúaÝ.,áN¹Æ@Â`ÜæaÝ2,áNµÆ@Â`ÜÒaÝ,áN¹Æ@Â`ܾaÜæ,áNµÆ@Â`ܪaÜÒ,áN¹Æ@Â`Ü–# *ÚTDefault driver-& ZB9*é&.9Cú&#ÉB9ÁNzüÁNzüÁ#Ç.C(yÈ&Kù–(� 9€€ÿÿð*@,`â6aâ^’@Â`â*aâR²@Â`âaâFf<ï<“@Â`â<“@Â`áöaâáOáNÞF@ÂàO`áØaâÂ@ÇÅGgáÆ`á¾aáæÎ@ÇÅGgáª`á¢aáÊ@ÇÅGgá�`áˆaá°�@ÇÅGgáv`ánaá–ginning of data buffer (256 bytes) LIST #•f*‡¾•f*…Ûü»ùcâ(ƒ, †ÿÿð†#ÆIùlN¹BN¹ Iú ´#Ì+)yN)yR9yV yXyëN¹T g, g8Nù5.N¹W’f|Nù4²Iù"N¹BN¹A |îaaaIùYN¹BN¹B$NuN¹BÌdßü`¾ cbòÅNu #5¿@ÇÅGgáZ`áRaázf<ï<Ó@Â`á6<Ó@Â`á*aáR‚@ÇÅGgá`áaá8Ò@Â`áaá,áOJG@ÇÅGgàè`ààaáÀáO�JG@ÇÅGgàÄ`à¼aàä.áO$GJG@ÇÅG $gà `à˜aàÀ< @ÇFàN†ÅGgà~`àv×ü# ``¼ì¬üü¼ý[«Ú«+jý;«Ë{ºZk .Lß(C) 1986, 1990 BY PETER A. STARK. ALL RIGHTS RESERVED–Nù/¨Nù0Nù NuNuNubÃNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNu# Welcome to SK*DOS (R) Version 3.3 Copyright (C) 1986 - 1990 by Peter A. Stark Star-K Software Systems Corp.  Please enter today's date (MM,DD,YY): STARTUPBATThank you.-Ž3× B9#6`àlgìÈ`êfì¼`Þgì²`Ôfì¨`Êgìž`Àfì”`¶gìŠ`¬fì€`¢gìv`˜fìl`Ž gì`  gìX`ÿz ,<fìB`ÿd,<fì,`ÿN,<gì`ÿ8`ß¶aßÐáOžM@Â`ß–aß¾³Í@Â`ߊaß²"M> @ÇÅGgß# ° Nù NùBÀ('SNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNu€fNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNùGØNù†Nù˜NuNuNu#B‡¯,o.ÿÿg d#Ì+ü Eb"å‡,|.,vpN–@ÇG,|B9Ns(||nN¹CÎNù0:/OPT-ê-êT U0WXW’N�Z@ZlZ~Z†Zø[h\`] MÀ-ê^î^Î]V]d-ê-ê]œNx_Œ_Ô0:1Äb@G.6RE~#7v`ßnaߢáOáNžF@Â`ßVaߊ,áN³Æ@Â`ßBaßv.áO"GJG@ÇÅGgß&`ßaßR< @ÇFàN†ÅGgß`ÞüaßHáOáNžF@Â`Þäaß0,áN³Æ@Â`ÞÐaß.áO"GJG@ÇÅGgÞ´`Þ¬aÞø< @ÇFàN†ÅGgÞ’`ÞŠaÞ²áOáN# €ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàQ: ÿ`SK*DOS: >  Ê## bT1¬`6`>HlIäI„I:A @ˆ@ÒBÔBÌGÆHàJúB$BBCÎBDB6CdCZCPInA ÎGˆG¤IXI¸NbGäNua`a^a\aZaXaVaTaRaPaNaLaJaHaFaDaBa@a>aBB9 ËÄüPMúäŒÝÂ.-f<# Å9ñº9âf*9öE#Åö`J9g,B9,y+#Îö,y*îNf.y*òLß9Nu.|N¹N¹\,9†ÿ†ÿÿÿ#ÆB9B9+ùì+ ùé+ N¹N�üÿ 3ü þJ9*égN¹ 9Á f*<N{P*<N{P(|'N¹Bü#N{PHç`((|B9#Ì+|ÿ;B9av gn gš gX g@ gú gÐ g8 g\ g gþ !gR "g: 0gÆ 1gØ`�aì$A`aä$A 9-ñgÕùaè$gÿj`8aÂHA$AaºÕÁ`a²HA$AaªÕÁ 9-ñgÕùa”$gÿ0J,#!P”.2dN¹B$` Iù=_N¹B €$@Aù`µÈfÿP>9`fÿ&N¹B$N¹B$8<N¹BDAú»< aFN¹B$J/gó~Iú N¹B(ON¹BOï N¹B$Nù0:Subdirectories used: f< N¹JüfìNu<N¹CŠNù0:(|N¹CÎNù0:Disk Name: Catalog of disk # IúöpKúäØ:<*ÜQÍÿüN¹A IúäÄKúöT:<*ÜQÍÿü*yö  g”  gþØ`,HçøøüNn#Î*î#Ï*ò,yö#Î+#ÌöB9*yöN¹G  gº9âf ü`:#ùö+ yö g¦  gøº9âgî`Ü#ÈöIúìN¹E~e®<N¹bT,b$#Ì+B#1f*ažJ9+fµùe¾µùb´ÅBgÿ91MôP`J9+fµùeŽ7² µùb„ÞBf Å1`þÄJfÊÅ1`ŽaHA$Aa ÒŠ`*a`$aüHA$AaôÒŠ`aì 9-ñgÒ¹#Áü`þlaÆHA$Aa¾ÕÁ`a¶HA$Aa®ÕÁ 9-ñgÕùa˜HA#"in drive  Number: |  Free sectors(|#Ì+B9N¹E~e¤BN¹bTN¹BÔJg  EN¹BÔJg’"EBN¹BÔe„Jg<$EB(|?ÚN¹BN¹Iä 1g 2fâ<* šˆeN(|#Ì+N¹U0fð|ÿ;³üÿÿc<$ ”ˆ‚gd ‚ÿÿc4<ÿÿ<aˆ&a a”6a„# 9N¹T f†#Ìü Ê`Ä Ê‘ü±ü`g ( ÿÿg (,ÿÿfAèÿÿ"yöÙ³üàfö#ù+ö`ÿH#ÈöIúé"N¹E~eÿ<N¹bT,d(#Ì+B9N¹U0fþô#Ìü Ë`ÿrÄ Ë`ÿh#ù+ö(|N¹E~eþ¾*9òg*Ea"g*<5”*Eag #ù+ö`#$a�Ô�gþ,J9+fµùeĵùbºB‚fÚ`þa\HA$AaTÕÁÕù"Ò¹$�`ýà$|`Þa2HA$Aa,ÒŠÒ¹#Á'ì`ý¾aHA$AaÒŠÒ¹#Á'ð`ý¤B…N¹OBf"áIN¹OBf Ò…NuN¹OBgö, f6ßüB9N¹W’LßB9+NuIù9VN¹BB9Nù0:LOAD##arBfö`Ä$ ”ˆ‚g( ‚ÿc<ÿ<aL&afaRaBa>fö`ÌJg"µüÿÿc<a$& a>a4` <a& a0aN¹W’fœNù0:N¹P†fŒNu8àLaî`êHCaòHC`îJg–¹eNu(|@TN¹B``, fP(|?¨a`f¬(|?ËaVf¢(|,N¹[hf*B`þÆ<N¹CŠNù0:(|#V*UN•`Ô,|B…g<žfJfð* …þ*EBNu½ü gæJg`øÛüaÖ`¸Nuü+ùë+ ùè+ B9B9+a$flB9+J9g@N¹Ÿü/y>9 Žy$Gßÿ>‡Bo,|Nf,|B9NsüIúߪyalNù0:Aúß”Iúôh# ERROR - Load address below OFFSET or above MEMEND.Iù9œN¹BNuGET loads a binary file into memory. The syntax is GET to load with offset and check load limits GETX to load with offset but not check load limits GET <#?�N¹BNù0:N¹CÎ(|N¹W’Nù0:N¹BN¹Iäß YNuINVALID FILE NAMEMISSING/INVALID ADDRESSFILE EXISTS - SHOULD?¼Ì I DELETE IT? ARE YOU SURE? SAVE OPTIONS: 1. USE ABOVE ADDRESSES (IGNORING OFFSET), OR 2. SUBTRACT OFFSET FROM ABOV#)h)h)|BAT #Ì+B9N¹T f°N¹W’fŽ|IúóÀ#Ì+Aúá¢#ÈöB9N¹OBf²Å  g<  dâIúN¹BNù0:ERROR - .BAT file is not a text file.IúáD f JfN¹N�`„Iú&N¹BIúó:ù(ua†Nù0:B, `â.BAT file execution error -#file-spec>- to load without offset and check load limits GETX - to load without offset and not check limitsùì*yö  gø0  bº9"bÅB„9Iú.N¹B0N¹Jú><,< /QÏÿüB/(|#Ì+B93ü"N¹_Œ$>` (N nö ?g¤ #ex(< $ flIú #ed(< $ fXIúb #eP(< $ fD 0eJg <"fIú¾ 5`,²€g:€(N fIú f  gà`è ,g 7Iú Iú¢ (N  (N fÞIúð fÜ`îIú 5 SPLIT is used to split one large 'source' text file i$     $nto two smaller 'destination' text files. The syntax is SPLIT where describes the file to be split, and are the two destination files, ./ to change to a different directory. Use / alone (no letter$<  3fêNu<- 3B€€ü ôú€00 0f:È 3H@ 3NuIúâ 5 ( gþ–Iúæ 5(H 7 Iúf`ÞIú 5 TCAT prints a disk directory with all files in order by their date and time. The syntax is TCAT Theine num> is the line number at which to split.Illegal line number specified) to changô¬e to the root directory. Use SYSTEM ALL to have SK*DOS search your active drives, beginning with drive 0.SYNTAX ERROR.The current system drive is , directory ALL$ drive and directory are optional andîû default to the current work drive and work directory. They may be specified as either just a drive number, or as both a drive number and directory letter, such as just 1, or as 1.A/. The is $ú` *nö ?g�&nF+0 dx 0eNJgJ Eg Eg Eg Eg Eg E g`$p`<` <`<@0@1@2@3Iú‡ 5B�+0ãAúÈB„80z 8Iú” 6 Iú‘ 5 Iú 5 STEPRATE is used to display or change floppy drive step rates. The correct sy$ ü`  NhìKúÔ®é*hö- ?g .g®  g¦º.âgž 0eò AdŽ 9bâE¾.ìgKú~B - -  gfº.âg`  gZ ,gT .fª - *g Aeš zb’º.!eßKú2… -  g ,g /g  g º.âg`^ 4IúU 5(0 3IúÊ 6(H9$also optional and may consist of one or moéúre full or partial file names and/or extensions to be searched for. For example, TCAT 1.A/ TX.COM would list all files in directory A of drive 1 whose names begin with TX and whose extensions are$ntúúax is STEPRATE to display the current value, or STEPRATE n to change the steprate. The value of n may be 0 or 6 for 6 milliseconds/track 1 or 12 for 12 milliseconds/track 2 for 2 milliseconds/track 3 for 3 mill$ |" üþfIú% 5IèpB EIú= 6B„((zàŒ< 8 4Iú3 5 4"(€à‰*h›ü Eú¢$�Eú¢KúŠB�B�B�*hö  gnº(âgh  f -`ä .fR - -d *fLIúRº.!e 1E -d *f2Iú8º.!e 1E  -d *fIúº.!e 1E `Iú #Kú­ÿÿ­:ã g j$ .COM. The symbol * is a wild-card character inãüside file names.Incorrect drive number.Error in reading directoryDisk Name: Catalog of disk in drive  Number:  Name Ext Sectors Date Time Free sectors Not enough memorisecôYonds/trackThe current step rate for all drives is  ms.Sorry - wrong version of SK*DOSN $ €Kí`ð(H  f úþ(H  f,kòg®KèMúÀ< :Ê *g:g" €g& *g ªgº-f¼KíQÎÿÞ`2J-kÿ¬`ìJ-jÿ¢`âg š-fŒKíQÎÿè`èèè(g ñe<Å4è$è$è$è µú2b~`ÿD*hö  gº(âg  g ,fþp -`Ü&JM y for directory, latest file firstàæ$÷` - ?g¢ 1 Af$ - 1 Lf– - 1 LfŠ|ÿëB.è`D0º."b:Eë - .f* - 1 - /f Ae Zb°.!eß@è`B.èIúò 5.ëk0 3.ègIú÷ 6 3</ 3 Iúô 6 Iú 5 Iú¬ 5 SYSTEM is used to display or change the current default$ úµÎgÊB‚EúòBEúô,køü¼‚e Cúà¼$"JEê·Êfä:Ìgš 4¼ÿIé< EIúh<a˜8)< 8IúR<a‚Iú€¼ (HDa”(àLa‚(HDàLaxJgÿzIú <aPBƒ†ü ab<: 3HC<ÈÃIú0¼0aHIú&¼ `ÿ: 4 4(< 8IúÆ< a 4 Jf$ú`aÊB�9ÿù eBÂü IúZÙÁ 5<  39ÿýaX<- 39ÿûaH<- 39ÿÿa8<, 3<  39ÿ÷a <: 39ÿõa<: 39ÿóa< aV 39ÿ÷ d<a`<p 3<m 3 4 nö ?gtß Sg Iúz 5 4IúŸ 5aKúâ…Iú´ 5a $ !"#$$KúúúÏ…Iú· 5aö?Kú¼…Iú¸ 5aâKú­…Iú¾ 5aÒ  fBKú–?…Iú¸ 5a¶Kú…Iú¼ 5a¢Kúl…IúÀ 5 )ß Ag Pfè:L ?Kú@€Iú² 5 )ß Ngÿ* Yfæ9ÿñ€Àÿñüÿóü€ÿ÷9ÿñÀÿñ0<ÿÿŽüQÈÿú9ÿñ€o ú»lower case except after a space or control character. The correct syntax is TOLOWER If not specified, the current work drive and an extension of .TXT will be assumed.$ ú` (N #e:., ‡HUMBf.., ‡UGf".8$ ‡ÿÿÿÿg#Çÿ ^Iú& 5 IúB 5 Iú 5 TRACENAB allows SK*DOS to work with HUMBUG to trace through user programs; it obviously only works with systems which use HUMBUG as the system ROM. To use it, first giv$Àÿôúñüÿ÷:ÎaÀÿó:¿aÀÿõ:°aÀÿ÷:žaòÀÿù:’aäÀÿû:ƒaÖÀÿý:waÈÀÿÿ9ÿñÀÿñ a.f `  c  `aˆü 0 3HD0 3Nu„ÿ/è DÈü HD/DHDØ/D(Nu9ÿñ@ÅÿñNu/$ú`B (N #eì< $ -0º."bØIú°E9|" fÌ.,dfIúK 5 )ß Yg Iú‚9|"CúØEé(N f˜(N g, f†<  f  `Üa gj  fÌ< a`ÄÅ gµÉf>Iú fD(NAúCè`R(#>("  fG<1G" G(fIú× 5`Nu(N $!e úúthe command TRACENAB HUMBUG to enable HUMBUG to work with SK*DOS; this need only be done once. Then give the command TRACE*** just before calling the program to be traced. SK*DOS will then load the program, enter it (via its regular e$9ÿñîú¿Åÿñ*Nu )0  bôB�Âü  )0  bàÚNu€ÿ€ü éH@ÐNuIú 5 TIME is used to display or set the current date and time in the clock/calendar IC. The syntax is TIME to display the current date and time, or TIME S to $NuúúIú  5  7aî TOMSDOS writes a text file to a specially-formatted MSDOS disk. Before using, you must first format a transfer disk with MSDOS's FORMAT A: /1 command. Then run the following Basic program using the PC's Basic (it takes a few min$"ntryôõ point) in the trace mode, execute one instruction, and transfer control to HUMBUG for further tracing.Tracing with HUMBUG is now enabled.Tracing is not possible; reset HUMBUG with !!, reboot, and make sure to use TRACENAB before TRACE***.$set a neèúw date and time. If setting the clock, make sure to answer all questions with two-digit numbers.Input the following data as 2-digit numbers:Enter day of week as 01-07 (01=Sunday): Enter month as 01-12: Enter day as 01-31: Enter year a$utesôú): 10 OPEN "A:TEXT.TXT" FOR OUTPUT AS 1 20 PRINT #1, "EMPTY" 30 GOTO 20 Now take the disk to your SK*DOS system and run TOMSDOS to copy the desired file to the disk (only one file can be copied to this disk; if you have more than ons 85-99: âæEnter hour as 01-12: Enter minute as 00-59: Enter second as 00-59: Enter A for AM or P for PM Enter Y when ready to start clock, or N to cancel: *NOT SET*SundayMondayTuesdayWednesdayThursdayFridaySaturday$e, youîú must start with another formatted disk.) The syntax for using TOMSDOS is TOMSDOS where is the name of the text file to convert, and is the drive containi^IúR 50<<|a*</a$<-a<\a Bgä< a<  3<  3 < 3 3@gÜ8NqQÌÿüNuSK*DOS: $ú` 4<B N(N #d `~ 7ar < $ fð(H g ,fâaV   f   gÞa  fÒ<  3`Ê  b< 3NuJgB 3Nu Aeö Zbð  3 Nu(H NuIú 5 TOLOWER is used to display the contents of a text file, with upper case letters converted tng the èíMSDOS disk. The disk can now be read on your MSDOS system. If you wish to copy the file to another disk, you must use the /A option of MS/PC-DOS's COPY command.OUTPUT DISK IS PROBABLY NOT A MSDOS DISK - CONTINUE? MSDOS DISK IS FULL.%ÿ` D` ` ¶TOññ™™STEPññˆˆRUNñâLLISTñ8LISTññ@NEWñ ¦LOADññ0SAVEññâGOSUBñœGOTOññÊONññ`THENññDLPRINTññFPRINTñNLETñ–INPUTñTIFññREADññšDATAññÌRESTOREñ4ENDñ RETURNññDIMñFORñúNEXTññ REMñÌMERGEñ4STOPññ2POKEññfDOSñññ–RND%     %(ññjTAB(ñÿZñÐINT(ññCHR$(ñ´PEEK(ñ ABS(ññ`SGN(ññ6  Ready ñ DELETEñRE-ENTERñERROR: ñ in line ñZüEúÿÚa<` <?aüa&Eúý*a\ gÜ gN f$Kúý»Êgâ•ü/ < aÆ<a¾$_`ÆKúý4»Êf<!`  ae zbßÀ`¢<ñ@Kúü¼*Š:ü°%÷¤Eêÿþ`' ¸þaþÎH§À<<™�*@•üfèÕüKú <Å Å Å Å Å Å $[LŸNua*@Nuá†**á‡*á‡*á‡*ã‡ã–ã‡ã–ã‡ã–ã‡ã–Gà�Gà�Gà�GFàŽFNué†á†**á‡*á‡*á‡*â†â—â†â—â†â—â†â—Gà�G%þ¦B‡>*Eúó¦ÕÇNêB. ËKúòiBOúóvKúhHçaö Eúô­aö Gè¨ýAÂü ÒGAÂüEú,ÕÁaõèKúÿ¸ :ñR°�eEúô}aõÔ$zñtaõ aõÔ`ÿ6Variable >255ñError in INPUTñIllegal/missing charñMissing quoteñError in DIMñIllegal arithmet%gÐNuáG*GÿðgGÿg Gðg`a0` a,a*Õü`a aaÕü`*a"a *aa< ahNu*a`è0Vo 9cJ`Ba`< Bg C gº.êg Nu D` ˜Nu D *º.êgô  g „`ìa `aÕü* ñfìNu/ Eúaì$_Nu ñÆü' a¢(J$S`$'% à�Gà�GFàŽ ¶üFNu' aý¬Kúö�Ba¶d0*jKúöo€aþÚ<À*@*faÿ*`ÿîB*B** em"<<™Àfø<d@Eêÿû`¬ �na :ögaþraý$[NuaþZ' aýa&d:aÿ*aýadaþô**°* gmêa`æaaBaüÊaÿ&%icñLine not foundñDivide by zeroñToo many GOSUBsñ¥üRETURN without GOSUBñIllegal variableñMiscellaneous errorñParenthesis errorñMemory fullñBad subscriptñToo many FORsñNEXT without FORñLoop nest% a–(JEêÿù*á‡*á‡*á‡*$G<Üføœ$[Nu' (J` ' aX> g.*ÿÿá‡*(G`(j<$zûÜfø@B*a$[Nuaþ–á€á€á€/ Kúýˆ°�g$@•ü" ñføEêaÿ&a Kúú¢B$_`ÿ < aÆNuaÚa�e>"*a„e8a@' $zú\Âüa8Kú% $[Nu$zõ´<** ²þ@@Õüfà$zõˆNu$zõ~ÕüKê<êÅ Å Å Å Å Å Nu' a baüra‚e<`vD*a^aþVaýŒ< B�a®J*jôaýražaýlaüBaü>aýÖÒ*A$zõaýÆfÂaüaÿ*EúüFÕÇN’a~$zú:OïNu<NuaRd (g •ü< Eê' $zùþµúú <g²*f°*f<îKúú2HÕLÛ<ýNuH§€* (LŸga&`¼*á‡*á‡*á‡*$G`¢aýüaÿ.hNuH§€efKúùš*Š$zùÖ (g8EêKúùÈ*Š$zù¶mmmma¤LŸ¾% ý(€Kúô¤€*Ð* h<xdDKúô’ °þ€Nu' aû´a²KúôŒ*Šaû˜aþÔa Œ< $zôv*aý(Jg aþî`ò$zôdaûŠaýrfÔaûlaþ˜:ô8@aûLaý¨:ô"jaüŒ$[Nu2:óô’zóîe8$zóä2:óäáG*’Ge(g2ÕüÕü* ñfðÕüµúóªfÌ$zó¤Kúó¤*Š<NuKúó˜*ŠNu*%šBšBšBš¾Šfô`¤| Ë`B. Ë :ºî®g~$zî®aû ñg>aûKúîœ*Šaú¨Kúîz*Š$zîŒaúê ñg ÕüaúîKúîqaú~$zîP`$zîRKúîR*Š$zîPµúîHgµúî>g aó~Õü`è`aú®aúEúîÄÔÇNê$zìºaùaóÚdx` æ< `û$zìžaôÎaôJgèKúì²�aùzB‡>*EúîzÕÇKú>µÍg>KúµÍg`¼KúìŠB$zì`aù"$zìšKúìÆµÍf< `ú¦$úìDKúì‚*Š`Kúì\B$zì.ðaø KúìNkaø~ ,fÿlÕü`Þaød<`ú`Kúëþ% !"#$%*Š`þÎ$zì6KúìBµÍf<`úBEêÿüKúì*Š$j`ÒEúaðVañ<$zëÄ`ú|STOP IN LINEñpü :ëªf<`úaîäEúìKúì *Š$zëŽañÜeTKúë„*Š$zëöafd ñgEúî’aïìaî°Eúëä`äaða÷¼ ,fÕüKúëÂ*Š$zëDa÷¢Õü ,g¦•üKúë:B ñf`ê<`ùxa÷tKúë,€Õü %ðaêìaòü`ù' $zæ(aîXÕü ,g )f,Kúæ*Š$[<îNuaíàKúåü*Š$[<Nu$zåîaëpie<`ô@ (fòKúåÔ*Š$zæA@a–daí:`þ`B�Aaí. @a$zå¦aòÕü ,g¨•ü`ÿX' *a&aìæKúå’*Š. $[Gà�Gà�Gà�GNuJf<`ó´°*bò²*bì% Š`óR:áEgk"j 3Nu gø(N gð 7  <$`î°Nu:ág` )`ä’(N g, fÒ fÎ`î$Nuav g ,f¸(N f²`ìKúà×¼$zßîKúßî*Š$zßìµúßägµúßÚg aåÕü`è fÿ~`íÒ LûaíPa$ fÿnKúà’¼Kúà0¼aãEúà.añp`ê$zߤaì "fEê (N-Jö #d "<%-g •üKúëBB€Kúë€Kúë €Kúë€aKúêÄ*ºë <a÷.añðd .fKúêÝ€Õü`âlþ<Nu•üÕü*añÀeb0f:ê¬f:ê§gÞKúêŸ`ÔKúê–€' $zêZJg:êˆf Ð*À`é@KúêpFKúê4*Š:êcfKúê[$[`Ž:êQf .f KúêE€`ÿzB� Ef*Õü%*Kúåa€Jgg:åQaìŽfö`êaì€föÕüaìzNu$zåaëRd`þšKúäö*Š$zå&Eêÿù*á€*á€*á€*Eú bµúåg°ªgÕü^ü`ìKú µÍf<`ó$ÀKúäâ*Š$zä¢añÕü =fþHaìÀaé>añnKúævµÍfþ2$zävaì¦Kúän*Š$zä¢aéaëÆKúä–*Š$zäVañ*Š`$zälaún<@@aëb$zäXaèÄaë|KúäL*Š$zä aðj ñfý¸ÕüKúãú*Š$zä*$úãðKúä"*Š`ö¼$zãÞaê,d`ýtað2 ñfÆÕüZþKúãÄ*Šaë *á€*á€*á€*$zãÚKú ,µÍg¦KúãÌ*ŠKú µÍg�Eêÿì°ªfæKúã¶*Š$jaè\$zã¨Eê <J*j%""MERGE NEW NEXT ON POKE PRINT READ REM RESTORE RETURN RUN SAVE STOP. Functions: ABS CHR$ INT PEEK RND SGN "Bÿ TAB All of the above are fairly standard, and he%á€*Kú댰�fÔEê`¸aí¶ÕüKúé*Š$zèðaõNÕü ,gÿ|•ü ñf”`š$zèÂKúèÒ*Š$zèÀ`ˆ| Ëhü`B. Ë$zè¬aõ "f"Õü "g„ ñf<`4aÈ`ä ñfb•ü ;g aíKúètBÕüKúè\*Š`û,`ö°$zèJaï a†Oúê KúùHç`"$zè.a漣:è6c%Kúãw€aè*Eúä´ÕÇNêaï Õü =f<Nu f Õü<Nu<N%##re are some examples: LOAD file-name loads a program from disk SAVE file-name saves program to disk MERGE file-name loads a program over an existing one#Aÿ DOS returns to SK*DOS L%äaí˜fö`ØaðHaŠaôn ,fÕü:è "ð�gaíf`ì ;f Õü`ÿ2 ñgÿV<`ÿ|<.` B€0dþaì:ç¾ Gc Og faì.B�Kúçž�Nu' aîÒB€Kúç�€J*fa¬$[`ìäJ*j <-a¤aïö* nP ÿmJJna€aÿxKúç_€J*j0aÿn*%u >g<`ðº =f Õü<Nu NuaèîJjö`ðaèäaúôdaèÊ`EúáÎaænEú:aæfaí a%$$ET is optional LLIST and LPRINT list and print to device 2 PEEK(decimal address) returns contents of address POKE dec.address, byte stores byte into address$@ü Decimal addresses in the above can be 0 %`î:çGf*aÿZað*fìapd˜aÿ<Eaÿ.*j <-aÿDB€ jö aþúbþ aþô`ÿBad*aþäaïŠ`îNu*zæÐ. gJfJ­fJ-f<îNuJ•fJmgð<Nu$zæhaì¶d<`ô¼aò¸Õü =g<`æaît ñf%èÀaêT**@@B*aè�aêìEúá’`åî7%AiHã aè†* o<`ï†B�B‡J*c ã�eê/å�eäÒŸeàÒ‡eÚaéê*`Þ$[NuHã a²*AB„$záa÷| ˆüdDaéÌHDPü„ÿˆü Ø*Daé´HDØ*DaçêaêFaçòLÛNuaúldè†aè (aÿN*A„$zà‚Kúà‚*&%through 16777215. Although UBASIC allows string constants (as in PRINT "HI"), it does not allow string variables (such as A$). Only one statement per line is allowed, the arithmetic is floating point BCD %<òwith nine significant digits, and n&     &o ^ is allowed. Variable names can be A through Z, and A0 through Z9, but array names can only be A() through Z(); one or two dimensions of 1 through 255 are allowed, but subscripts start with 1, not 0.or fatal râŠead error! DON'T USE THIS DISK ANY MORE!System Information Sector fatal write error! DON'T USE THIS DISK ANY MORE!Please wait ... ot gô=iven.ERROR READING INPUT FILESPECIFIED FILE DOES NOT EXIST&ú` (N #ez< $ fv fp9|" ft(,|àŒ„ÿÿ D(,~àŒ„ÿÿ"DIú 5B„B€B‚(N9H`9|"2,"9l`" f0R‚<,b Ff 0H@0,"&Sƒ>,`gRDJfÌ< g< 3B`¸J€g.žƒgþ9G9@9I9lJ" fÒB†,MKìMô`klÿõÝÝKíÝÝKíÝÝÝ& ú` *nöß Of>-ß Ng Fg`&*nFKí:¼Iú˜ 5 *nFKí:BIúž 5 Iú, 5*nFKí:fIú„ 6Iúd 6 Iú^ 6IúV 6 VERIFY is used to turn floppy disk verification on or off. The correct syntax is VERIFY ON to turn ve&÷` - ?gn 10º."b:Eì - .f* - 1 - /f Ae Zb°.!eß@é`B.éIúˆ 5.ì0 3.égIú� 6 3</ 3 Iú 5 IúL 5 WORK is used to display or change the current default WORK drive. the correct syntax is WORK to displ&ÝúúÝÝÝÝÝ f–9|" g g g g  g fzJCfB€H@>G€àOG.G‚àOG�JCf |}|~ g g g g  g f89@" f"Bl` f Iú2 5  ,fIúÝ 5  7 Iú 5 Iúa 5 Iúî 5 UNDELETE is used to restore a file which has been acci& riúúfication on, or VERIFY OFF to turn verification off. Turning verification off causes faster floppy disk operation, but we recommend that you leave it on (the default) for the best data integrity. ()Verification is now ON.Veri&ay÷û the current drive, or WORK to change to a new drive, or WORK ./ to change to a different directory. Use / alone (no letter) to change to the root directory.SYNTAX ERROR.The current &dentôúally deleted. It will restore only the last file deleted, but it can be used repeatedly, each time bringing back the next previously deleted file. The correct syntax is UNDELETE The restored file will be given the ficaôtion is now OFF.work driòve is , directory ALL&specifîúied file-spec regardless of what its name had previously been. The default work drive will be used if you do not specify a drive number, and the default extension is .SCR. NOTE: UNDELETE will not work correctly & ú` (N #eŠ< $ f†|ÿ;an g g g f„aRaPaNaLaJaHaF  g `gIúŽ`IúµB`IúÒ< 5(NaaB„ 8Jg<<. 3a 0 3`* f NuIúÄ 5`B€, fIúg`êIúH 5(N 7   Iú`ÖThe file specified is not binary. PossibleYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY &if REDOFèúREE has been run on the disk after the file was deleted. In any case, check the file after undeleting it to make sure it is what you want.That file already exists. Nothing undeleted.Can't find a file to UNDELETE.System Information Sect&  dúúefective version number  6809 file, Version number  68K file, Version number VERSION prints out the version number of binary files. The correct syntax is VERSION The extension defaults to .COM if n& ` Aú <0¼ÿÿ .ñ gè°.âgà - ?gÖ0º."bÒEAú B -  gø 1 Df¼(N9|" f®Iúç 5*<(.€àŒ„ÿÿ$ 8Iúð 5Èüüˆü„ÿÿ Dçb*< 8Iúó 6`Bˆüè&„ÿÿ*< 8<. 3BCHC<0 Ccb C b 3 3(*< 8Iúº 6Iú¿ 5(.& !"#$&|àŒ„ÿÿ&DàL*< :<- 38 „ÿ*< :Iú° 5(.~àŒ„ÿÿ&àL*< :<- 3*< :Iú§ 5.†„ÿ„*< 8Iú® 5.‡Iú ΄„ÿ.Hg„*< 8B‡> Þ‚Þƒgˆ> gJBg JCgIú‰avfj: €gIú Q 5Cú €2Ë(N9K`9l`" f4: \gDHçþþA& you wish to have the free chain table printed? Do you wish to have the table sorted? Sorting free chain link tableDo you wish to have the disk's free chain relinked? Segments relinked = REDOFREE is finished. to Can't fix free links - disk is co& ”`  nFAè,`gvžl" Gg8,#¾: f<,`ž," f.,a,Hf g eR`Jg`‚gF`ÿV‚g8. ‡ ¾®bZ2ì"2ì``ÿ0Hçþþ: ’gIú U 6Aú „8D 8 4LßBfø0,"2À"¼¶@gIúŒ 5I& rrupted.Disk is corrupted - a link points to sec 8tor 0.The System Information Sector says there are fewer free sectors than there really are.The System Information Sector says there are more free sectors than there really are.Sector read er&!<@`<€` -0  b¢ÒAú� -ß Pg`Aúü¼€`ÿAúî¼`þú$|AúÐ <0gª$@IúH 50 3IúC 60ff"f&f*Iúq 6<`$Iú= 6 3`Iú= 6 3`Iú= 6 3`Iú= 60 jIúM 6GúJ&<¶gJjJ30j`²30f Iúà&úÈ 5( Iú Z˜ŒäŒ&B… 8Iú×a*faH ƒgIúòafIú  5EéÿüAú KèB‡µÈg»ˆbø,(ÿü!Pÿü †<`èJfÚIúƒaÖfaôIúíaÈf¼AúÞ(N9h" g g g g  g f>9l`b9h` g g g g  g f Aè³Èfÿ²IúÀ 5(B… 8(N9|" g g g g& ror while relinkingSector write error while relinking ***** DO NOT USE THIS DISK ANY MORE *****System Information Sector read error after disk relinkedSystem Information Sector write error after disk relinkedDisk is too segmented ... not e&"6<  cÖ cÿFJg nFAè:ZG~àOG}>)ÿþG€àOG g g g g  g fÈIúq 5  5 D )ß Yg Ng< 3`â<NNuAúø 4aN<- 3aDIúG 6a:<- 3a0³Èg*<  38(ÿþ¸Pe<^ 3`Â8˜hÿþ Df¶<, 3`®Nu„ÿB :NuIúü`Iú `IúI`Iú›` Iúì`Iú 5Iú# & nough memory to relink.REDOFREE reads all the sectors in the free space on the disk, checks that the free space agrees with the System Information Sector, and then allows you to relink the disk, if desired, so as to recombine fragmented blocks of f&#éB€Iú¢|KIú˜ g 7fz)|37C6|5`)|1772| 0G(è0D(ƒÆüEú¤ÖŠ,C)V8n<)| B)| FJf)| <--B)|BOOTF 5Aè fÿf 4 4 Iú 5`ôLogical  =  *** ERROR - DUPLICATE PHYSICAL DRIVE *** Floppy F Har&5 IúN`ÿðIú`ÿèIú± 5 Iúà 5 Iúª 5 Iú¸ 5 IúÜ 5Iú 6 N(" :<- 3(# :  at track-sector:  Total free sectors =  Total free space =  Kilobytes Megabytes Beginning address of free chain =  Ending add& ree space. The correct syntax is REDOFREE [D] The D at the end is an optional parameter. If you type the D, then REDOFREE will print out the beginning track and sector, and the size, of all deleted files it finds.Invalid drive &$d H Other  RAMdisk  *** INVALID ***  (WP)MAXDRV doesn't match last active drive. ... being corrected. Available hard drives: H: Drive  partition  is  K. Command error - nothing done. Example of correct command syntax: &ress of free chain =  Number of data tracks on disk =  Number of sectors per track = Continue with analysis of segments in free chain? WARNING - end of chain doesn't match but we can probably fix it.Free chain read; number of blocks = Do number.Error in reading System Information Sector.Free chain read error  Length = Uncommitted space - Deleted file at  Bÿÿ' DRIVE L0=F0 L1=H0P L2=N L3=F1U L4=RP LD=MD Log dr. 0 = Floppy dr 0--' | | | | | Log dr. 1 = hard dr 0 wr prot -' | | | | Log dr. 2 = Non-existent drive -------' | | | Log dr. 3 = Floppy dr 1 '     'not write prot'ed -' | | Log dr. 4 = RAMdisk and write protected ----------' | Set MAXDRV to last drive -------------------------------' Available floppy drives:”_ F Controller: Drive Select: Drive Type: 'CEPTION: illegal instruction :5 - EXCEPTION: zero divide :6 - EXCEPTION: CHK intruction :7 - EXCEPTION: TRAPV instruction :8 - EXCEPTION: privilege violation :9 - EXCEPTION: trace ;0 - EXCEPTION: invalid $1010 call ;1 - EXCEPTION: line 1111 emulator ;2À DISK NOT LINKED  ERROR - TRY AGAIN?  ô$ ? 360K 720K 1.2M 1.44M 1M 8" '  - EXCEPTION: vector 12 ;3 - EXCEPTION: vector 13 ;4 - EXCEPTION: format error ;5 - EXCEPTION: vector 15 ;6 - EXCEPTION: vector 16 ;7 - EXCEPTION: vector 17 ;8 - EXCEPTION: vector 18 ;9 - EXCEPTION: vector 19 <0 - EXCEPTION: vector 20 <1 - EXCEPTION: v'``¼ì¬üü¼ý[«Ú«+jý;«Ë{ºZk .Lß(C) 1986, 1990 BY PETER A. STARK. ALL RIGHTS RESERVED–Nù/¨Nù0Nù NuNuNubÃNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNu'01 - FCS operation code error 02 - The specified file is already open or in use 03 - The specified file already exists 04 - The specified file does not exist 05 - System or directory error 07 - The disk is full 08 - Input past end of file 09 - Disk rea' ector 21 <2 - EXCEPTION: vector 22 <3 - EXCEPTION: vector 23 <4 - EXCEPTION: spurious interrupt <5 - EXCEPTION: level 1 interrupt <6 - EXCEPTION: level 2 interrupt <7 - EXCEPTION: level 3 interrupt <8 - EXCEPTION: level 4 interrupt <9 - EXCEPTION: leve'° Nù NùBÀ('SNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNu€fNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNuNùGØNù†Nù˜NuNuNu'd error 10 - Disk write error 11 - The disk is write protected 12 - The specified file is protected 13 - Error in closing specified file 14 - Disk seek error 15 - Invalid drive number 16 - Drive not ready 18 - FCS operation not permitted on this file 1' l 5 interrupt =0 - EXCEPTION: level 6 interrupt =1 - EXCEPTION: level 7 interrupt =2 - EXCEPTION: trap 0 =3 - EXCEPTION: trap 1 =4 - EXCEPTION: trap 2 =5 - EXCEPTION: trap 3 =6 - EXCEPTION: trap 4 =7 - EXCEPTION: trap 5 =8 - EXCEPTION: trap 6 =9 - EXCE'€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàQ: ÿ`SK*DOS: >  Ê#'9 - Cannot do random operation 20 - Disk I/O error 21 - Illegal or missing file name or extension 22 - The specified file cannot be closed 23 - Random file map overflow - file is too segmented 24 - Specified random sector number is invalid 25 - Random ' PTION: trap 7 >0 - EXCEPTION: trap 8 >1 - EXCEPTION: trap 9 >2 - EXCEPTION: trap 10 >3 - EXCEPTION: trap 11 >4 - EXCEPTION: trap 12 >5 - EXCEPTION: trap 13 >6 - EXCEPTION: trap 14 >7 - EXCEPTION: trap 15 >8 - EXCEPTION: unassigned vector 48-63 >9 - EXC'N\CONS*Ú€†’˜¤ÈŒžÔÚà#êPROMPT=SK*DOS: 'ê Nu'ô€ 'sector number does not match file contents 26 - Command syntax error 28 - Missing transfer address 29 - Disk has been switched while file was open 30 - File not open 31 - Disk verify error :2 - EXCEPTION: bus error :3 - EXCEPTION: address error :4 - EX EPTION: user interrupt vector 64-255 ' *ÚTDefault driver-& ZB9*é&.9Cú&#ÉB9ÁNzüÁNzüÁ#Ç.C(yÈ&Kù–(� 9€€ÿÿð*@,g¦  gøº9âgî`Ü#ÈöIúìN¹E~e®<N¹bT,b$#Ì+B' 1f*ažJ9+fµùe¾µùb´ÅBgÿ91MôP`J9+fµùeŽ7² µùb„ÞBf Å1`þÄJfÊÅ1`ŽaHA$Aa ÒŠ`*a`$aüHA$AaôÒŠ`aì 9-ñgÒ¹#Áü`þlaÆHA$Aa¾ÕÁ`a¶HA$Aa®ÕÁ 9-ñgÕùa˜HA' Welcome to SK*DOS (R) Version 3.3 Copyright (C) 1986 - 1990 by Peter A. Stark Star-K Software Systems Corp.  Please enter today's date (MM,DD,YY): STARTUPBATThank you.-Ž3× B9' 9N¹T f†#Ìü Ê`Ä Ê‘ü±ü`g ( ÿÿg (,ÿÿfAèÿÿ"yöÙ³üàfö#ù+ö`ÿH#ÈöIúé"N¹E~eÿ<N¹bT,d(#Ì+B9N¹U0fþô#Ìü Ë`ÿrÄ Ë`ÿh#ù+ö(|N¹E~eþ¾*9òg*Ea"g*<5”*Eag #ù+ö`'!$a�Ô�gþ,J9+fµùeĵùbºB‚fÚ`þa\HA$AaTÕÁÕù"Ò¹$�`ýà$|`Þa2HA$Aa,ÒŠÒ¹#Á'ì`ý¾aHA$AaÒŠÒ¹#Á'ð`ý¤B…N¹OBf"áIN¹OBf Ò…NuN¹OBgö, f6ßüB9N¹W’LßB9+NuIù9VN¹BB9Nù0:LOAD'B‡¯,o.ÿÿg d#Ì+ü Eb"å‡,|.,vpN–@ÇG,|B9Ns(||nN¹CÎNù0:/OPT-ê-êT U0WXW’N�Z@ZlZ~Z†Zø[h\`] MÀ-ê^î^Î]V]d-ê-ê]œNx_Œ_Ô0:1Äb@G.6RE~'V*UN•`Ô,|B…g<žfJfð* …þ*EBNu½ü gæJg`øÛüaÖ`¸Nuü+ùë+ ùè+ B9B9+a$flB9+J9g@N¹Ÿü/y>9 Žy$Gßÿ>‡Bo,|Nf,|B9NsüIúߪyalNù0:Aúß”Iúôh'" ERROR - Load address below OFFSET or above MEMEND.Iù9œN¹BNuGET loads a binary file into memory. The syntax is GET to load with offset and check load limits GETX to load with offset but not check load limits GET <' bT1¬`6`>HlIäI„I:A @ˆ@ÒBÔBÌGÆHàJúB$BBCÎBDB6CdCZCPInA ÎGˆG¤IXI¸NbGäNua`a^a\aZaXaVaTaRaPaNaLaJaHaFaDaBa@a>a- to load without offset and check load limits GETX - to load without offset and not check limitsùì*yö  gø0  bº9"bÅB„9Iú.N¹B0N¹Jú><,< /QÏÿüB/(|#Ì+B93ü"N¹_Œ' fIùGN¹CÎNù0:/¨ .|,|Nf@ÇG3Ç üB9QN¹€N¹N¹HN¹b@N¹G.N¹Mf#ü#¦B9B9B9+N¹Nx`È 9¼Aù0.#ȼNO#À¼N¹€By$#üú,|NfüPB9QN¹b@N¹G.N¹M”*9…ÿ…ÿÿÿ#' aborting execution., gúª`šTRACE***5úDIR:ÐGET6GETX6MON5âRESET5îSAVE=pXEQ3þB9NùªB9Nù°3ü€$ü+Nù0@ü+B9+(|N¹E~ebB…9+N¹bTB9#Ì+N¹T fº9Á f*<N{P*<'$fÈIúÖN¹BIùpBa zAúæ< a€9{áL9|<N¹BDN¹B$N¹B$9�áK9‚3ü"(|N¹_Œf\#ù`"Eùp Jk–g²(J<a þ*áL*<N¹BDB‡9*÷g.|*N¹GÆ Ae Zb‡PÂ`|<`|>BB9 ËÄüPMúäŒÝÂ.-f<' Å9ñº9âf*9öE#Åö`J9g,B9,y+#Îö,y*îNf.y*òLß9Nu.|N¹N¹\,9†ÿ†ÿÿÿ#ÆB9B9+ùì+ ùé+ N¹N�üÿ 3ü þJ9*égN¹ 9Á f*<N{P*<N{P(|'N¹Bü'N{PHç`((|B9#Ì+|ÿ;B9av gn gš gX g@ gú gÐ g8 g\ g gþ !gR "g: 0gÆ 1gØ`�aì$A`aä$A 9-ñgÕùaè$gÿj`8aÂHA$AaºÕÁ`a²HA$AaªÕÁ 9-ñgÕùa”$gÿ0J,P”.2dN¹B$` Iù=_N¹B €$@Aù`µÈfÿP>9`fÿ&N¹B$N¹B$8<N¹BDAú»< aFN¹B$J/gó~Iú N¹B(ON¹BOï N¹B$Nù0:Subdirectories used: f< N¹JüfìNu<N¹CŠNù0:(|N¹CÎNù0:Disk Name: Catalog of disk