IMD 1.18: 22/01/1996 7:40:22 micro cornucopia kaypro user group disk 33 a super utilities disk   åååååååååå  33-DISK DOC CRC COMCRC DOC CRCKLISTCRC D COM EDIT COMEDIT DOCaHELP COMNSWP2 HLPX !"#$%&'()NSWP2 WS €*+,-./0123456789NSWP2 WS ^:;<=>?@ABCDENSWP207 COM\FGHIJKLMNOPQNSWP207 DOCRSTNULU DOC€UVWXYZ[\]^_`abcdNULU DOC€efghijklmnopqrstNULU DOC?uvwxyz{|åå******************* Welcome to Disk 33******************* Disk 33 is a utilities disk containing some very useful programs. The Micro C staff would run half speed without them. NSWP207 -- The latest version of SWEEP, written by Dave Rand. There are 4 related files on this disk: NSWP2.HLP, NSWP2.WS, NSWP207.DOC, and NSWP207.COM (See NSWP2.WS for a tutuorial and discussion.) NSWP allows you to tag files for copying, erasing, squeezing, unsqueezing, finding, and printing. For an undocumNULU11 COMx}~€�‚ƒ„…†‡ˆ‰Š‹NULU11 NOTŒ�NULUTERMASMŽ��SUPERZAPCOM/‘’“”•–SUPERZAPDOCU—˜™š›œ�žŸ ¡VDO-KP COM'¢£¤¥¦VDO23-KPDOCg§¨©ª«¬­®¯°±²³åNSWP2 HLPX³´µ¶·¸¹º»¼½ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååented start type -- NSWP207 and ? to get a menu. NULU11 -- creates, manipulates, and extracts libraries. There are 4 related files on this disk: NULU.DOC, NULU11.NOT, AND NULU11.COM. Please read NULU.DOC for an excellent description of this super library tool. To get an undocumented start type -- NULU11 and -m for a menu. SUPERZAP is a full screen debugger at only 6K. You should read SUPERZAP.DOC before plunging in. Happy bit fiddling. VDO-KP is a fast, mini-åå  editor -- small and easy to use. Read VDO23-KP.DOC for info. EDIT -- a utility to: copy and edit files (text and binary). Read EDIT.DOC. *************************************************************‚#"‚ɯ2i2}! "€!"‚]Í]Í<ÂS ;ÍÃî NO DIR SPACE: CRCFILE$1‡ >2Ò Ís Ò :· ·Ê~Í# ++FILE NOT FOUND++$:± þFÂ*‚}æÂ’"€>õ͇ñ†]Í<ÂÊ ³ÍÃÊ CANNOT CLOSE CRCFILE$ÃîCRCKLISTCRCSK FULL: CRCFILE$€ÍÍà å w# ÂþÑÍÉ!]ÍÍùÍ� DONE$!eÍ ÊS!]QÍ !eZÍ Í@ --> FILE: XXXXXXXX.XXX CRC = ÍoÊSÃ) \Í<‘Í@ ++OPEN FAILED++à !"² !"Ó *Ó |þÊÈ Í·Ê¹ÍþÊ) \Í·ÂÖ!€~2¶ #"Ó Í Ã�þÂî:³ Í) > ÍT :² Í) ¯ÉÍ@ ++FILE READ Eth file - !× ~·ÊÍT #ÃÍM ÍM ¯2­ 2® 2¯ 2° É!× >2Õ åÍ3áþÂo:Õ ·Â�:¸ ·ÊÍ@ ***No CRC Files found***$>·Éæþ ʉþ ʉw#:Õ <2Õ þPÚ6:Õ ·Ê.6¯ÉÍ@ Can not parse string !× ~·Ê½ÍT #ñÍM !× ÊÕ> ¾ÊÐ6 #ÂÈ6^#6!× ~·ÊéÍT #ÃÝ!¯ 4ÍM ɾÀ#x¹ÈÃñå]Í #eÍ ¯wá~·Ê ÍT #Ã>2· Í@ - Ís ÒMÍ@ File not found !° 4à >2Ò ÍoÀ:µ G:² ¸Â„:´ G:³ ¸Â„Í@ *Match* ¯2¸ !­ 4¯ÉÍ@ <-- is, was --> :´ Í) > ÍT :µ Í) ÍM ¯2¸ !® 4¯<ÉÍÀ2´ ~#þ ÊëÍ@ Not a space between CRC values¯<ÉÍÀ2µ G¯É-CATALOG??? Using CRC Type CRC to verify all the files on this disk. Type CRC *.* F to generate CRC's for an entire disk and create a CRC file (CRCKLIST.CRC) for checking the CRC's of a copy of the disk etc. Omitting the F will suppress creation of a CRCKLIST.CRC file. *.* can be replaced with an unambiguous file name for checking just one file. RROR++ ¯<É*² |æ€õ):¶ …oñÊ% |î g}î—o"² ÉõÍ2 ñæþ Ú; ÆÆ0ÃT ã~ÍT #~·ÂA ãÉ> ÍT > ÅÕåæ_ÕÍh ÑÍáÑÁÉ:± þFÀ{͇ɀͯ2h2|:· ·Ê² !\º  Í :\2Æ !º \ Í \ÍÃÚ !Æ \ Í \Í!º \ Í \Í<7È=懇‡‡‡Æ�o&åÇ  Í á] Í ¯2h2|2· ÉÍ ÀÍ À~æþ$#É~# x±Â ÉÑ Í:± þFÂ} *‚}æÂ= "€>õ͇ñÂ1 ]Í<Âu  ^ ÍÃu CANNOT CLOSE CRCFILE$]ÍÍ� ++ABORTED++$Ñ Í:Ò ·Ê~ ¯2± ÍM Í@ Quantity of file CRC that matched - :­ ̓ :® ·Ê ÍM Í@ Quantity of file CRC that did notÍ@ ++ Now searching for "-CATALOG" file++ !õ Í ÍÂ) Í.Â) !× Íå”>.¾Â”#Íô”Í͔͡”ÍÍ›Íø›ÍøÊtþK›ÍÍ›͸›*« ÍýÃ=:¸ ·Â=Í”Ã="« Í ÀÍ ʳþ À ª~#þ.ÀÍ ÊÈþ À ¿É~þ ÊÖþ À#~þ ÊÖþ ÊÖ¿ÉÍôÀÍøÈþ.À+¿ÉÍøÀ~#þ0Úþ:Ò¿Éþ0É~#þ!ÚþÒ¿ÉþAÉÍ.ÀOÍ.ÀGy°¿É~#þ0ÚMÖ0þ ÚKæÖþ ÚMþÒM¿É·É:m2± þFÂSÄCRCKLIST$$$›Íø›ÍøÊtþK›‰, ݈ õ*€ë*‚}“|šÚù!"‚ë*€{•zœÒë*~ëÍ]Í·ÂÊ€*‚"‚Ü ÖÍñÃî DISK FULL: CRCFILE$€Í!"‚ë*~ëñÃ#CRC.COM 5.0 6/18/82CRCKFILE???!9"‡ 1‡ ÍM Í@ CRC Ver 5.0 CTL-S pauses, CTL-C aborts :]þ ÂOÍ@ ++Searching for CRCKLIST file++ÍÊÇÍ@ Now searching for "CRCKFILE" file++ ! Í ÍÂ1‡ Í.Â) F!×  ÍñÂÍ¡Â]ÍñÂ͸Â!â ÍýÃÇÍ”ÃÇÃ0CRCKLIST???CRCKFILE???!9"‡ ‰ M à*,ë*.}“|šÚ‰!".ë*,{•zœÒ{**ëÍ Í·Âu€*.".ÃG*.",€Í!".ë**ë*,}´>È*.#".ɯ22)! ",". Í<ÂÙ ÇÍÃî NO FILECRC FILE$! × Í >.Í ¯Í@ Checking wi match - :® ̓ :¯ ·ÊJ ÍM Í@ Quantity of lines failed parse test - :¯ ̓ :° ·Ê~ ÍM Í@ Quantity of file(s) not found - :° ̓ *‡ ùÉdÍ”  Í” Æ0ÃT ÿ �Ò– €Wy³Ê© ö0ÍT 0zÉtiil   --> FILE: NSWP2 .HLP CRC = 5A 75 --> FILE: HELP .COM CRC = D6 CC --> FILE: NSWP2 .WS CRC = A7 DE --> FILE: NSWP207 .COM CRC = 47 88 --> FILE: NSWP207 .DOC CRC = A9 FB --> FILE: NULU .DOC CRC = 91 E0 --> FILE: NULU11 .COM CRC = FE 7C --> FILE: NULUTERM.ASM CRC = 67 5D --> FILE: SUPERZAP.COM CRC = 8D 5E --> FILE: SUPERZAP.DOC CRC = 68 E2 --> FILE: EDIT .COM CRC = 25 21 --> FILE: EDIT .DOC CRC = 81 FF --> FILE: VDO-KP .COM CRC = 51 7F --> FILE: VDO23^#Vë"; *; ˆ ͪ  å*; Áq#pÃ�Ãn*„ " É!‹ p+q*Š )ë*= ^#Vë"; !Œ 6> !Œ ¾Úi*Œ &ë*; >¦OÍK :Œ <2Œ ÂE:/ÒÖ *; ^#V*% ÍÔ DMÍf kÍK :ÒÖ *; NÍf ÍE*; ~þ€Ú»WÍK þÍE *; ~þ€ÚÓSÍK ÃÖÍEÉ Í= !— 6:!— ¾Ú':/Ò :Ò –Í= !:— ¾Ò‰Í= :— <2— Ââ* "• !"‘ >!• Í. Ò *• ë*&͵ ë"( *• ë*&͵ >Í µÊj*( #"( *DM*( ëÍV"( !"� ( � Í ÒúÍK!"� }2— :— <2— O:¹Úð*� ë*� å*‘ Á "“  “ Í Úâ>!— ¾ÒÓÀÍ= *“ DMÍ**• +"• *( ë*� "� Ø*� #"� Ã*&ëC 4Ø:Ò!4Ã:Ò!5É( Í µÖŸ! ¦ÒI3Í= ÿÍ: [Í= ÉÍt:\þÊa:\=_Í: :]þ Ât Å?]Í\ : Òƒ! 6?ÃŽÿ Í: 2  Å ]ÍQ  Å?\Í\ ÅÍ: DM, ÍQ !Ñ "= *3 ##)ë*= "; */ &#Íì "! *3 #"#  !! Íò "% >ÿ!1 Í. Ÿ2' É\Í: 2 : þÿÊ©: 懇‡‡‡Æ€o&"* ~þåÊ›*# +"# ** DMÍY Ò›** DMÍ  å*; Áq#p* " . å** #DM*; ëá -Âe**  å*; Ñw* #" )ë*= å*; ëás#r*; "; Í: 2 ÃÉ!S 6!"V * "n >!S ¾Òd*S &T ) ^#Vë"K O!l ^#Vë"M :S =2S M K Í Òa*K "G *:]þ ÊÑþ-Ê”:l·Â¨:mþCÊ(þDʶþPÊx͇<Â8ÍÃoÍF>!â>#¾ÂC"UÍ*~þÊoæ_ÍŠ#{þ ÂXÂXÍÍÍË*KÕþBÊþDÊlþEÊ€þFÊžþHÊëþIÊøþJÊYþKÊcþNÊìþPÊìþQÊþRÊ{þTÊoþUÊlþZÊìÂ!GÍËÖ0þ ÚêÖæÅO ÁÍËþGÐÈ))))ÃÝ!ã"Éw# É~#ÂÉw#þÂ+"ÉÍFë"•Í> O€Í:�·ÊÍÖã"~Íl2¨x2©¡Í €Í:�·Ê0ÍÖ}*wÃ0AüÍ`œÿÍ`öÿÍ`ÿÿÍ`!@#~þ0À6 œÉõÍFñ2\Í|Ã!"ÍF!" ÍŠ ÍŠÍŠ!ãå:Íl_ÍŠXÍŠ:Íl_ÍŠXÍŠ ÍŠÍŠ-KP.DOC CRC = F7 5D --> FILE: NULU11 .NOT CRC = 14 FD --> FILE: D .COM CRC = 66 48 --> FILE: CRC .COM CRC = B2 07 --> FILE: 33-DISK .DOC CRC = 58 E3*( ÍÔ ë*‘ "‘ Í Ã3É*1 #"ž "  "¢ *5 "œ >œ Í# µÊR :œ ÒB *ž +"ž !œ Íò ë+s#rÃ( !¤ 6Í: "š *š ~2¥ *¢ #"˜ *˜ +"˜ >Í µÊ¶ :¥ 2¥ Ò’ *  +"  :¤ <2¤ O>¹Ò³ !¤ 6*š #"š *š ~2¥ Ãp ̓Í: ÆAOÍK �Í= *ž Ͱ�Í= * Í·›Í= * Ͱ�Í= *# Í·›Í= *  Ͱ¬Í= ÉÉ. æg æ”ÂS -ÂA É>ÿØ>É!  ~þ?Êl W æº>À#Â^ :·À /æÉ!:' ·Â—  ·Ê‘ #‹ É W ²Ê¢ #™ Éi`N#F�oˆgÉDM!>õ)ë—)ë�‘o|˜gÒÎ ñ=¼ ÉDM!>)ë)ëÒã =ÂÛ É^#Vë) Âì É^#Vë|·g}o ÂöM "I ë*K Íö )ë*= ^#Vë"O I G Í ÚÇ*G )ë*= N#F*O ëÍ? þÿÂJ*G #"G Ã(*I )ë*= ^#V*O DMÍ? þÿÂm*I +"I ÃJI G Í ÚÄ*G )ë*= ^#Vë"Q *I )ë*= å*G )ë*= ãN#Fáq#p*I )ë*= å*Q ëás#r*G #"G *I +"I ÃK I Í G M åÍ ÑÍ Ò!M G Í Ò:S <2S O!T å*G ëás#r*S &l ) å*M ëás#r*I "M Ã^I K Í ÒX:S <2S O!T å*K ëás#r*S &l ) å*I ëás#r*G "K ÃíûÉ!"„ "†  † Í Ò#*† #"† )ë*= å*„ #"„ )ë*= ãN#Fáq#p † Í Ÿõ*„ )ë*= å*† ) ë*= ^#VáN#FÍ? ÖÖŸÁH¡Ò *† #"† )ë*= ^#Vë";  *; ^#Vë"ˆ *„ )ë*= á~Íl_ÍŠXÍŠ ÍŠ#å ͊ðÿ~.þ Ú9þÒ9_ÍŠ#Â+ ÍŠ ÍŠ*"}æÂØ*+"|µÂØÃõÍvGñæÆ0þ:ØÆÉ*"É\ÅÕåÍáÑÁÉ ÍÃÍ>€ €Í!ãÍà�G>¾Ê¾Â²ÊÔ#¾Â²ÃÆ+~þ ÂÔ#"É~þÈ#þ ÂàÉÍàÂí"ÉåUÍ>€2€2‚ €ÍŠYÍ!‚~+þ/Â%~þÊT44^6 +6 ÍÀ!�F>#¾Â@6 Â9!�F#Íë"Ãá"ɹÍÞÊÉT]ÍàëÃþUÌàÄ7"ÉÍFë6!ã<~#þ ʇþÊþ § ÍŠzæ˜Ç_ÍŠ{þ ‡‡ ÍŠÃ*DM *ë"w+y“xšÚÎÉ[ÍÃ0ÍÃOyþNÌàÄ7Âï"ÉÃÿ Hit Space: ÍKÃK : k Used: /k Not used: k ë*% ÍÔ DMÃf : remain on 1 !9" !Ñ ùÍJÍú> Í# µÊ->! Í. Ò*ͪÍe> Í# µÊ<Í×Í * ùÉv ÍK É ÍK  ÍK É!B r+s+p+qA ? Í Úp*A É*? É:]þ$ÂŽ Ål]ÍQ !]6 !E 6!C 6 :C Í Ú*C &l ~2D þU¼:E 2 :D þSÂÊ:E 2:D þFÂØ:E 2:D þVÂæ:E 2:D þPÂô:E 2 :D ÖNÆÿŸ2E ! É_{•ozœgÉO{‘oz˜gÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉà þÈÅOÍK ÁÃ= YÃáã -ÂS Éáã{-Â_ É!¨ s+p+q*¦ å« ͼ 2ª <2© :¨ !© ¾Ú—  ÍK !© 4Ã� !© 6:ª =!© ¾Ú» *© &« NÍK !© 4œ Éáã>õ3ÊÕ Íá Æ0õ3}´ÂÄ Z;ñÂ× {ÉÅ ¯)¹Úî ‘#Âæ ÁÉÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ   Ê!\l Í!u6B#6A#6KlÍ͇�*~Í *÷ÍL"Í|ï2h2|͇<ÊÚ!"*å͇Ñ·À*#"!€€ÍÕÃ`}Í> €Í!�~…o#6!\ Í!\6#>  Í !‚:ƒþ:ÂÃ~ÍËÖ@2\##]~þ.Êâ·Ê÷ÍË#ÂÈ~þ.Â÷#e~·Ê÷ÍË#Âè͇<Ê+#͇*})))))))åÑÍÀÍF!€ÿ€~þÊ(#ÂÍ!\ ÍÉ+~#þÈ++~#þÈ+þ Â>#ɯ|g}oyOÂN·È#É>/ÕT]< ÚcëÑÉÍÍÞÀ"6ÉÍ_Õ ÍÑÍ͇¯2h2|͇<Êã! Í͇·Âãå*+"|µá¦͇ÉþaØÖ ÉÍõ:\=úä_ÍÍ##~2###^#Vë#"ÍÆile must fit in the 'TPA' of your computer. For most 64K machines, this means that you can use EDIT on files up to about 50K in size, which is more than adequate for most applications. EDIT won't damage a file too large - it simply won't work with it. System Requirements EDIT will work with any CP/M 2.2 or 3.0 computer. If the machine is a CP/M Plus system with bank switching, the amount of disk free space reported will be incorrect, but all other functions work normally. EDIT's functions is used, the program is still smaller than comparable single-function utilities. An example of a typical use is with dBase II. EDIT will enable the user to write and modify command files, check on the disk space left, copy files for backup, list command files on his printer, and even (assuming enough knowledge) examining and repairing 'broken' files. EDIT is unique in that all of these functions are within a single program only 2K in length. Operatirocess for addresses 856, and 857 if needed. Then when you are done and EDIT is still asking ADDRESS?, just hit and EDIT will rewrite the changed file, in this case itself. Now look at the disk. You should have EDIT.COM and EDIT.BAK. EDIT.BAK is the original file and EDIT.COM is your newly instal- led version. Instruction To get used to EDIT, we suggest making a special disk for prac- tice. Prepare yourself a work disk with CP/M on it (check your computer manA2P2’>?!] Í !ãå͇þÿÊ;‡‡‡‡‡!€_#Ñ ÍÕ>2Ãá6!ãåá~þÊ�] Íå�Í>$2h]Í> 2h#͇*}:GÍL:ÖÊ„)=ÂÍ|@ÍÃB> 2FÍFxGÚ§ ¯#Få*+"|µá ë:ÖÊË)=ÂÆÍ|=Íñ_ÍÃÍÍŠÍËþYÉfÍÞÀÍàÂõë*ÃããNew file $ Command? $ Label to find? $ Disk full$ xxxxk$space on x: $ $ No file$ap this screen? (y/n) $ File to insert? $ x:$ Address? $ Byte=xxh change to: $unk changes? (y/n) $runcate file? (y/n) $EDIT 1.1 Mike Rejsa Mpls MN A specific amount of RAM is not required. Installation EDIT is easily installed using only EDIT itself. Follow the following steps. 1. Copy EDIT onto a disk with CP/M on it, using whatever method your computer outlines for copying files. Put the original EDIT disk away with your backup disks. 2. Find out the 'hex code' your computer or terminal uses to Šclear its screen. If you don't know this or can't find it in your manual, ask your dealers technician. Be sure it ison is fast and easy with single letter commands for editing, and prompting where required. EDIT will replace PIP, STAT, XDIR, and ED for most users needs. One of the reasons for EDIT's small size and fast operation is its method of handling files. The entire file is read into memory at one time, and re-written only after the desired changes are made. For safety EDIT never changes the original file, always writing a new modified copy. However, the tradeoff is that the entire fual if you don't know how to do this.) Then put your empty work disk in drive A: and a disk with EDIT on it in drive B:. 1. Copying files First we will learn how to copy files using EDIT. Type B: so that we are on the B: drive (where EDIT is now). To copy EDIT onto our work disk type EDIT EDIT.COM A: . EDIT will copy itself to drive A:. Then we can type A: to go back to the A: drive. Type DIR to see that EDIT is there. Here is what w EDIT.COM Multiple Utility Program --------------------------------- Version 1.1 Introduction EDIT is a utility program which performs many different functions often needed in daily computing, put together in a single small program which is easy to use. Functions include text editing, disk file size and free space reports, file printing, file copy- ing, 'dumping' of a file in binary format, and alteration of machine code files. Even if only one of in 'hex'. For example, an Osborne's code is '1A hex'. A Z-19 terminal would use '1B hex, 45 hex', two codes. 3. With your EDIT disk in the computer type EDIT EDIT.COM C . EDIT will respond with the question ADDRESS? which you answer 855 . EDIT will respond with BYTE=00h CHANGE TO: . Enter your first hex code. (For Osborne this would be 1A.) 4. If you have more than one hex code to enter (each one is two digits) repeat the above p  e did: EDIT EDIT.COM A: (starts EDIT) (tells EDIT what) (tells EDIT what) (tells EDIT to) ( file to copy ) (drive to put it) ( get going! ) ( on ) 2. Make a test file Now we are going to make a test file for us to practice on. Type EDIT TEST.TXT . EDIT will inform you that this is a new file and ask for a command. We want to insert text, so press I for Insert. (You d files and see whats inside them. 5. Printing EDIT can send files to the printer for you. Get your printer ready to go, and type EDIT TEST.TXT P . The text you entered earlier is now sent to the printer. When the printing is done and you are back at the A> prompt, type EDIT - and you will get a list of files on the B: drive. 4. Hex Dump Many users won't have much need for this function, but it is fun. A 'hex dump' is a display of the digital codes that are inside a file. Type EDIT TEST.TXT D . You should see on your screen a complete list of all the digital codes inside TEST.TXT. Over on the right is a list of the letter that goportant thing to note here is that the text was inserted before the line that was at the top of the screen when you pushed 'I' (insert). The line at the top of the screen is the 'active line', i.e., most things will happen at that place in the file. Now use 'U' to move the line you inserted to the top of the screen. Hit 'K' for kill. This command deletes the line at the top of the screen. Hit 'B' (beginning) and you will see that the inserted line is now gone. If you ever wanon't have to hit Return!) Your screen will clear (if you installed EDIT properly). Now type in whatever you want, say part of the newspaper. Put in Šenough so that you fill up more than the screen can display at once. When you are ready to stop inserting, type / at the beginning of a new line. When we do this character at the beginning of a line EDIT knows that we want to stop inserting. EDIT will now ask for another command. We're done for now so type Q for Quit . EDIT will load TEST.TXT into memory and display the first 22 lines on the screen. Š First we will try the commands for moving around. All of these commands are just one letter - no Return needed. 'U' and 'D' are the commands for moving the text on the screen up or down one line. 'H' is a special kind of up that hops five lines. 'P' and 'N' will jump the screen to the previous or next whole screen. Finally, 'B' or 'E' will move you to the beginning or the end of thes with that code, if any. (If no letter goes with that code we just put a period there.) It is easy to stop the display from scrolling when you want to examine something - just type a Control-S to freeze the display. Then when you are done, type any key to start it again. (A CP/M Plus computer needs Control-Q to start again.) While this function is mostly useful to programmers, it can sometimes help to locate a bad byte in a 'broken' file. Try doing a hex dump of othert to kill an entire screen of text, use the 'Z' (zap) command. Because deleting a whole screen is pretty drastic, Zap will first ask you to confirm your choice with a 'Y' or 'N'. EDIT is what is called a 'line editor'; this means that you must insert or delete an entire line when you make changes. This is part of the reason why EDIT is so small. One last word on inserting: If you ever have an entirely seperate text file that you would like to include in the one you are work. (Again, no Return.) EDIT will save the file we made onto the disk. When CP/M gives you the A> prompt, type TYPE TEST.TXT , and you should see the words we just entered. Try copying TEST.TXT to the B: drive (the command is EDIT TEST.TXT B: ). 3. File size and Free Space Now try typing EDIT . We should get a list of all files (in this case just EDIT.COM and TEST.TXT) with their sizes, and a report on how much room is left on the disk.e file. Try each one of these commands until they are understood fully. Now we will insert some text. Push 'B' (to the beginning) 'H' (hop up five lines) and 'I' (insert). Your screen will blank. Type some recognizable line such as 'This is the inserted text.' and hit return. Now type / to stop the insert mode. You should see the line you inserted at the top of the screen. Hit 'B' (go to beginning) and you will see your inserted line five lines down. The im  ing on you can use the 'R' (read file) command. This will ask you for a filename, go get the file, and insert the whole thing at the top of the screen. There are two commands for you to use when you are done editing. One is 'Q' for quit. This saves your edited file, and renames your original file to filename.BAK, for backup. The other command is for when you have decided not to save your work, and want the files on the disk to remain just as they originally were. This command is n B - moves to the BEGINNING of the file E - moves to the END of the file I - INSERT text mode / - / at start of new line to stop inserting R - READ in file and block insert into current file K - KILL line at top of screen T - TRUNCATE file from top of screen Z - ZAP entire page F - FIND line (asks for label to search for) J - JUNK changes, leave disk file as it was Q - QUIT and save file. original is named .BAK Install on specific machine by patching in clear screen------------------ Function commands (entered at the A> and followed by Return) All commands can be upper or lower case EDIT - gives XDIR report for current disk EDIT B: - gives XDIR report for specified disk EDIT filename.typ - Edits file, creates file if new EDIT B:filename.typ - Edits file on specific drive, creates file if new EDIT filename.typ C - allows changing a byte in any file EDIT filename.typ D - dumps file to screen EDIT filename.typ P !9"Ô¯2�!Í!]~þ Ê·Â0+Ž ëÍ)>2�ÃF!e~þ Ê=·ÂF—ëÍ)\ÍþÿÂa:�·ÂnÆÍÉ!Ö"‚Í4·Êg1Ô!Ö~þ:‚ÍØ*ÔùÉÍ›1ÍÍýþÊ}þ*ÊêæßõÍŠñÖ@GʨÒ±ëÍ ¹Ò¨*~ÂÄ#ÍØÂ~#þÊáþ ÊÖþ ÂÄ#~þ:ʹþÂÄÍÂ*~Í•#ÍÛ~þÂðÃnÅÕåÍáÑÁõÍŠñÉõÅÕå_ÍáÑÁñÉÅÕå ÍáÑÁÉ~æ#Â)É\Íõ*‚€€ëÍ)ë"‚ñÉ~þ Êaþ ÊbÍ#ÃO##ÍŠ:€=2€ÀšÍÍýæßþAÊnþÊ}͕͊É> Í> ÍÉ>2€É!ÖÍ•>A2}lÍ~þ:ÊÔþÊ} :}Í<2}>.Í> ÍÍOî"~ÉÍ•ÍO~þÊþ:Êþ ÂÛÍôÃÛ:€GÅÍcÁÂø'J', for 'junk changes'. Just as with the Zap command, abandoning a file can lose important work, so before we go through with a Junk you are asked to confirm the choice with a 'Y' or a 'N'. The last command to learn is the 'F' (find) command. This works a little differently than most other editors, and is intended primarily for programmers. Š Look ahead in your test file for a word which is the first word on a line. Then use 'B' to move away from it. Hit 'F' and EDIT  codes in bytes 0855h - 0857h. Set unused bytes to 0.  - Sends file to the printer - expands tabs and provides page breaks EDIT - - Sends formfeed to printer EDIT filename.typ B: - Copies file from current disk to B: EDIT A:filename.typ B: - Copies file from A: to B: EDIT B:filename.typ A: - Copies file from B: to A: Text editing commands (not followed by pressing Return) Š U - moves text UP a line H - HOPs text up 5 lines D - moves text DOWN a line P - moves to the PREVIOUS screen N - moves to the NEXT screeÉÍŠ:€=2€Â-ÍÍýþÊ}Í•ÉHELP V1.1 $ ++ EOI ++ Type CTRL-C to return to CP/M, to continue -$ HELP File Selections are -- $HELP HLP Type "A"=Abort, CTRL-C=CP/M, =Cont -$ HELP FATAL ERROR -- File not Found$ HELP ERROR -- Invalid Response $ HELP ERROR -- EOF on HELP File $ Type CTRL-C to return to CP/M, "*" to select all, or enter selection - $ections are -- $HELP HLP Type "A"=Abort, CTRL-C=CP/M, =Cont -$ HELP FATAL ERR:The HELP Subsystem for Online Documentatiwill ask you what label to find. Give it the word you saw and a . EDIT will search the file for a line starting with that word and position that line at the top of the screen. If no word is found, EDIT positions the file at the beginning. Caution: the word must match the case of the original - if one is upper case and one is lower case, the word will not be found. Quick Reference - EDIT.COM Version 1.1 ---------------------  on This is HELP, the Online Documentation Subsystem. The purpose of HELP is to allow the user to interactively query the *.HLP files of the system in order to receive information summaries on various aspects of the user's working environment, such as the language systems he is using and certain subsystems available to him. When the user types 'HELP', a search is done for the file 'HELP.HLP'. If found, the contents of this HELP File is displayed to the user; if not found, the HELP Infor on. A>NSWP B: will begin with drive B: logged in. Selecting user area * will cause all user areas to be "swept" at once. At any time, you can view the menu of functions by typing a question mark (?). Simply typing 'x' exits the program. Note that all characters can be entered in upper or lower case. :C - Copy file function C -- This allows you to copy the file to the drive and user area of your choice. You will be prompted for the drive and user area. J 3.0. NSWP2 will not run under CP/M 1.4, but it will run under MP/M . This software was orginally written in PL/I by Robert Fisher. The current version was written in CP/M assembler by Dave Rand with a number of added functions. :Invoking NSWP2 and moving about the directory When NSWP2 is invoked, you will see a display of the current user area you are in, along with the total amount of space occupied by the files, the number of files there are and the amount of disk space remallow two files of the same name to be open on the same drive, even in different user areas. Thus, when transferring between user areas on the same drive, the target file is first named with the $ convention and then renamed. This can result in an extra file being erased. If there is too little room on the target drive, the transfer is aborted and the directory entry is erased. :D - Delete (ERAse) file(s) D -- The current file is deleted. You will be asked if you really wmation you are now reading is displayed. If the user desires information on a specific topic and he has a HELP File of that name (ie, CPM.HLP is a HELP File on CP/M), he may issue of HELP Command of the form -- HELP d:topic where "d:" is the disk the HELP File resides on (optional) and "topic" is the name of the HELP File (topic.HLP, like CPM.HLP). Please refer to the HELP File "HELP.HLP" for more information. ust enter 'b3:', say, to transfer the file to drive B: user area 3. If you omit the user area, the current user area of the file is used. Any file of the same name in the target area is first erased, an exception being when you are transferring to the current drive and user area. In the latter case, the transferred file is copied with its named changed by putting a $ in the last letter of the file type. If an existing file in the target area that must be erased is marked rining in k. You will then get a display of the first entry in the directory. NSWP will also give you a listing of the user area that the file(s) are on, if you logged in all user areas. Typing 'space' or 'return' or 'F' moves you forward in the directory, typing B (or b) moves you backward. The directory is circular, so typing space at the end of the directory moves you to the beginning. (A line is skipped.) When you first invoke NSWP, you can specify an alternate drive to startant it erased. If the file is read-only (R/O), then a bdos error will occur, and the program will warm boot. :P - Print a file P -- The current file is sent to the LST: device (your printer). If the file is squeezed, it will be unsqueezed as it is listed. A control-C interrupts the function. :R - REName file(s) R -- The current file is renamed to the name and user area you specify. For example: A15:FOO .COM? A0:FOO.COM will rename the file from A15 to A0. Lower What is NSWP2? Invoking NSWP2 Copying a file Delete file(s) Print file(s) REName file(s) View ASCII file(s) Tag files Mass copy of files SQ/USQ file(s) Re-Tag files Batch REName Log to new drive/user Other commands Special features DDT customization Remarks :What is NSWP2? NSWP2 is a utility program for maintaining file directories, transferring files between user areas on the same drive, and transferring files between drives and user areas under CP/M2.X and under CP/Mead-only (R/O), then the copy is simply not made. You will be told. You may use the delete function to delete the file, and then retry the copy. As an option, NSWP will perform a CRC verification of the copy. When you are prompted for the drive and user, add a 'v' or 'V' to request verification. Thus specifying 'b3: v' will copy the file to drive b:, user area 3, with verification. A description of the verification method is included with this documentation. BUG: CP/M does not a   case will be converted to upper case, but other 'illegal' characters are not trapped. It is quite possible to give names to files that CP/M won't recognize. (You can also change them back again later, however, so no harm is done.) Responding with "*" to the prompt will put you in the batch wildcard renaming mode.If the file is read-only, a bdos error will occur and the program will warm boot. :V - View an ASCII file V -- The current file is displayed at the terminal, wit If SQueezed, then USQ, etc. NOTE: The "Q" option will NOT work on untagged files :A - Tag again A -- Retags all the files currently marked with '#'. This allows you to repeat the transfers on another disk. Useful when the same batch of files must be sent to several disks. :R - REName file(s) R -- Batch rename. You will be prompted for an "Old name:" and a "New name:". In each case you may give any "ambiguous file name" in response. The logged-in directory is searched for matchesokes the copy function used by C, so everything said above applies here. To abort the transfering process, you must enter a CTRL-C. After transferring a tagged file, the tag is changed to '#' so you can tell what has been sent. This is for display only, the file is otherwise considered untagged, but see the A command. The '#' can be removed with the U command, if desired. If no user area is specified, or if "*" is specified, the current user area of the file is used. You may ru directory listing S -- Calculates space remaining on a drive. Simply enter drive letter to be examined W -- Wildcard tag of files. Allows you to select a large group of files for tagging. *.* *.ASM *.OBJ etc... X -- Exit to CP/M. ? -- Redisplay menu of commands. :Special features If your terminal supports reverse (or inverse) video modes, then NSWP2 can show you the attributes set for each file. If none of the attribute flags are set then the direch automatic pagination. The return key will continue the process until a control x is typed to cancel the display to the screen. Single line spacing is possible by typing the space bar when the screen display has stopped. :T - Tag file(s) T -- Tag a file for later transfer. (See below.) After being tagged, the file will be marked with an asterisk,'*'. The total of all tagged files is displayed both in units they occupy on the current disk and in units they would occupy on a with "Old name", and the files are renamed, if possible, by the formula specified in "New name". A '?' in "New name" means keep that character of the current file name, an * is equivalent to filling out the remainder of the field (filename or filetype) with "?"'s. Any other character replaces the corresponding character in the current file name. When the substitutions are done, embedded spaces are removed. :L - Log new du: L -- Login new drive and user area. I request verification on mass transfers just as in the single file copy. Just follow the drive and user specification with a space and a 'v' or 'V'. :Q - SQ/USQ Tagged files Q -- Mass transfer of all tagged files to a selected drive and user area, unsqueezing those which have been previously squeezed, or squeezing those which are tagged. OPTIONS: S - SQ tagged files during transfer U - USQ tagged files during transfer R - Reverse status to specified du: tory listing will appear as normal. If any of the 1-4, R/O, SYS, or ARC bits are set, they will appear with a reverse video block in the directory listing. NSWP2 may be also set to clear your local CRT when it signs on. To use these special features, see the next section dealing with DDT customization of memory byte locations. :DDT Customization The byte at location 103h sets the number of lines displayed per screen by the "V"iew command The reverse (or inverse) ON video bytes are from 1 single-density disk with a 1k block size. U -- Undo the effect of T (and take away the '*' or '#'). * -- Indicates a currently "tagged" file # -- Indicates a previously "tagged" file, may be re-tagged with the "A" option :M - Mass transfers M -- Mass transfer of all tagged files to a selected drive and user area. This is the main reason for the program. If the target drive fills, the operation is aborted, with the untransferred files remaining tagged. This function invf the user area is ommitted, the current user area is used. You can NOT specify a starting place in the directory. Selecting "*" for user area, logs in all user areas at once. When logging into a new drive/user area be sure to follow the user number with a colon. i.e. B2: logs ALL files on B2 B*: logs ALL user areas of drive B B2:*.OBJ logs ONLY the .OBJ files of B2 :B, S, W, X, and ? commands B -- Moves you backward th  04h to 10Ah, the first byte indicates the length of the sequence. The reverse OFF video bytes are from 10Bh to 111h, again the first byte indicates the length of the sequence. Bytes 1D13h thru 1D17h or for your clear screen code sequence. These memory locations can be set with DDT in the "S" mode, or even easier by using the EDFILE utility program. Be sure to SAVE 43 after using DDT.COM :Remarks Whenever a drive is asked for (and on start-up), the disk system is reset. This is to pre..................... 3 Overview of NSWP ............... 4 Invoking NSWP .................. 5 Single file commands ................ 6 Help ........................... 7 Forward and Backward ........... 7 Exiting ........................ 8 Finding a file ................. 8 Viewing and Printing ........... 8 Deleting a file ................ 8 Copying ........................ 9 Renaming ....................... 9 The Space command .CRC checksum while writing the file. NSWP then reads the copied file back computing it's checksum. The two checksums are compared and you are told if they don't match. The CRC verification takes approximately 2.5 times as long as the straight copy. This documentation last updated 28 Mar 84 by Steve Sanders. It reflects the latest version available at that time. NSWP202 Z8° compatiblå � processoò wilì serve® Notå thaô thió prograí WILÌ NOT‚ ruî oî CP/Í � 1.4. Wheî  NSWР waó  conceived¬  thå dominanô filå  utilitù  waó � SWEEP¬  anä thuó NSWÐ ió syntaø compatiblå witè SWEEP¬  buô  witè � manù  extensions®  Thió  allowó  yoõ tï directlù renamå  NSWР tï � SWEEP¬ iæ yoõ sï desire¬ witè nï retraininç period. É  hopå thaô yoõ enjoù thió program¬  anä uså iô  well®  Anù � problems¬ oò suggestionó maù bå directeä tï myselæ aô thå addresó � oî thå firsô page¬ oò vent a disk from being 'read only' under CP/M, and to allow you to repeat operations on fresh disks (e.g., finish a mass transfer after a disk fills by inserting a second disk). It also means that you should be free to switch density and/or number of sides of a disk in a particular drive. This, however, depends on how well your BIOS is written. There is no logical upper limit to directory size, nor to the size of a file that may be transferred. The directory size is limit............. 11 The Log command ................ 11 Introduction to Multifile Commands .. 12 The Tag command ................ 12 Wildcard tagging ............... 13 The Untag command .............. 13 The Mass copy command .......... 13 After the mass (Again) ......... 14 Erasing files .................. 14 Squeezing and Unsqueezing files. 14 Setting file status ............ 15 Epilogue ............................ 16 Credits ........................ NSWP - A disk maintenance utility. Dave Rand 10232 - 160 Street Edmonton, Alberta Canada T5P 3E9 .pa Š.he NSWP 2 - A disk maintenance utility .fo - # - I N D E X Page Introduction ...oî onå oæ thå followinç RCP/Ms: Edmonton RCP/M - (403) 454-6093 (300 or 1200 baud) Stadium RCP/M - (403) 479-3450 (300 baud only) or voice at: (403) 484-4114 Disclaimer and warning Whilå thió prograí haó beeî testeä oî manù systems¬  É  wilì � havå  nï  liabilitù  oò responsibiltù tï thå useò  oò  anù  otheò � persoî  oò entitù witè respecô tï anù liability¬  losó oò  damagå � caused¬  oò  alledgeä tï bå causeä directlù oò indirectlù bù thió � program¬  including¬ ed by available memory, though, as certain information must be kept on each entry. You should be able to use well over 1500 entries in a 64k system. Figure 20 bytes per entry starting at 26k and running up to within 1k, or so,of the BDOS. File transfers make use of as much memory as possible to buffer data. It is required to include the colon when specifying a drive and user area. Thus responding "B3:" is not equivalent to just "B3". Copy verification is done by computing a ..... 16 Contributions ....................... 16 .pa ŠIntroduction NSWР ió ne÷ disë utilitù thaî caî replacå manù oæ thå  morå � commoî utilitieó thaô arå used¬ sucè aó STAT¬ PIP¬ USQ¬ SQ¬ TYPE¬ � PRINT¬  SWEEP¬  DISK7¬  PROT¬  anä  others®  Iî onlù 12Ë oæ disë � space¬ iô replaceó oveò 100Ë oæ utilities! NSWÐ ió writteî entirelù iî assemblù language¬  anä wilì ruî � oî anù CP/Í 2.x¬  3.ø oò MP/Í baseä systeí witè nï changes® Sincå � iô ió codeä iî 808° assembler¬  anù 8080¬  808µ oò    buô  noô limiteä to¬  anù  interruptioî  oæ � service¬  losó oæ business¬ anticipatorù profitó oò consequentiaì � damageó resultinç froí thå uså oæ thió program. Furthermore¬  althougè thió prograí haó beeî placeä intï thå � publiã domain¬  É retaiî alì copyrightó tï thió program¬  botè iî � thå U.S.Á anä iî Canada¬  anä pursuanô tï this¬  thió prograí MAÙ � NOÔ  BÅ  SOLÄ BÙ ANÙ PARTY unlesó specificallù authorizeä bù  thå � author¬  Davå Rand¬  iî writing¬ previouó tï thå firsô copù beinç � sold® adó NSWÐ anä scanó thå currenô drivå anä  useò � foò  alì filenameó witè thå extensioî "COM"®  Notå thaô NSWР caî � finä  systeí fileó aó well¬  sï nï additionaì informatioî neeä bå � given. A>NSWP B:*.COM * Thå  presencå oæ thå seconä asterisë indicateó tï NSWР thaô � yoõ wisè tï scaî alì useò areaó oæ thå indicateä disë  drive®  Iî � thió case¬ alì "COM¢ fileó oî alì useò areaó oî drivå B. Combinationó  oæ thå abovå arå acceptable¬  anä yoõ maù eveî � loç tï alì useò areas¬  anä finä aô leasô once. Thå mosô importanô thinç tï remembeò wheî usinç NSWÐ ió thaô � iô  provideó á lisô oæ youò fileó iî ALPHABETICAÌ  order®  Movinç � arounä  iî thió lisô ió quitå easy¬  anä wilì sooî becomå  seconä � nature. Iî  thió  documentation¬  alì useò inpuô ió  underlined®  Aó � well¬   wheî   thå   "current¢  filå  ió   referenceä   iî   thió � documentation¬  iô meanó thå filå jusô tï thå lefô oæ youò input® � Thió  "current¢  filå  ió ofteî referreä tï aó thå filå  yoõ  arå � "on"./user¬  oò tï eXit®  Nï � other choices are valid, nor will they be accepted. .pa ŠCommanä Structure Therå arå twï primarù typeó oæ commandó iî NSWPº  thoså thaô � acô  oî  onå filå anä thoså thaô acô oî manù files®  Wå  wilì  gï � througè  theí both®  Beforå doinç thaô though¬  let'ó trù  movinç � arounä iî NSWÐ first. Tï movå iî NSWP¬ yoõ musô firsô understanä thaô thå fileó oî � youò  selecteä  drive/useò wilì bå presenteä tï yoõ iî  á  sorteä � manner®  Thå  fileó  arå sorteä iî   Aó  well¬  thió prograí MAÙ NOÔ BÅ INCLUDEÄ IΠ ANÙ  OTHEÒ � PACKAGÅ FOÒ SALE¬  eveî iæ thió prograí ió indicateä aó beinç 'iî � thå publiã domain'® Alì oæ thå abovå applieó tï botè thå originaì � aó  welì  aó derived¬  oò modifieä copieó oæ  thå  original®  Anù � modifieä  copieó  oæ  thió prograí MUSÔ NOÔ  havå  thå  copyrighô � noticå violated¬ changeä oò altered. Pleaså reporô anù copyrighô violationó tï thå author¬ aô onå � of the above telephone numbers. Thank you. .pa Š alì fileó witè thå specificatioî � "*.ª *". Oncå  insidå  NSWÐ yoõ arå presenteä witè  á  menu¬  theî  á � reporô oæ whicè drivå anä useò yoõ arå loggeä to¬  ho÷ mucè spacå � ió  takeî  bù thå fileó yoõ havå specified¬  ho÷ manù fileó  havå � beeî founä witè thå specificationó given¬  anä ho÷ mucè spacå  ió � lefô oî thå disk® Á samplå follows: Drive A0: 596K in 36 files. 735K free. Á  speciaì formaô oæ thió linå showó thaô yoõ arå loggeä  tï � alì useò areas: Drive B*: 950K in 234  .pa Š Invoking NSWP Tï  makå effectivå uså oæ NSWP¬  yoõ musô kno÷  thå  variouó � optionó  availablå tï yoõ wheî yoõ invokå NSWP®  Herå arå somå oæ � thå options: A>NSWP Thió  formaô simplù loadó NSWP¬  anä scanó thå defaulô drivå � anä  useò foò filenames®  Oncå insidå NSWP¬  yoõ maù changå tï  á � differenô  drivå  and/oò  user¬  buô wheî yoõ exiô  yoõ  wilì  bå � returneä tï thå drive/useò thaô yoõ calleä NSWÐ from. A>NSWP *.COM Thió formaô lothió  orderº  Filename¬  Filå � extension¬ useò area: 1. B0: -WORK .001 0K : 2. B0: ARCADD .COM 4K : 3. B0: ARCCOPY .COM 2K : Aó yoõ caî see¬ thå fileó arå numbereä foò youò convenience® � Yoõ maù noô directlù uså theså numbers®  Aó yoõ caî see¬ thå filå � sizå ió alsï showî (roundeä tï thå nearesô blocë size). Notå  thaô  iæ yoõ havå enableä thå reverså  videï  sequencå � (seå  Epilog)¬  yoõ  maù seå somå oæ thå letteró iî thå  filenamå � printeä  iî reverså vi NSWP Overview NSWÐ ió á directorù anä filå manipulatioî program®  Witè it¬ � yoõ caî copy¬  delete¬  rename¬  unsqueezå anä squeezå files® Thå � documentatioî  followinç  ió  spliô intï twï  majoò  sectionsº  Á � tutoriaì  foò thå inexperienced¬  anä á  referencå  section®  Thå � referencå  normallù wilì bå useä iî conjunctioî witè thå  prograí � tï  answeò specifiã questionó regardinç NSWP®  Thå tutoriaì ió  á � broaä  coveragå  oæ  alì oæ thå functions¬  anä  shoulä  bå  reaä � througè files. 2956K free. From this point, you may execute any of the menu options. Á  speciaì  displaù  occuró iæ nï fileó arå founä  witè  thå � specificatioî  yoõ havå given¬  oò iæ therå arå nï fileó  iî  thå � giveî drive/useò area(s): No files. Thió  displaù maù alsï occuò iæ yoõ deletå alì thå fileó ouô � oæ á giveî specification® Wheî thió occurs¬ youò menõ choiceó arå � limiteä tï ONLÙ S¬  L¬  oò X®  Thió allowó yoõ tï seå thå  freå � Spacå oî á drive¬  tï Loç tï anotheò drive  deo®  Thå charô belo÷ showó ho÷  tï  decodå � thió information® FFFFFFFF RSA 12345678 /YR |||||||| OSC 4. B0: ARCDEL .COM 2K : Aó yoõ caî see¬  thió lookó confusing® Really¬ though¬ iô ió � not®  Thå  tagó F1-F¸ normallù arå noô used¬  buô NSWÐ allowó yoõ � seô F1-F´ foò youò owî use®  Thå R/Ï taç meanó thaô thå filå  maù � bå read¬ buô noô writteî to® Thå SYÓ taç meanó thaô thå filå doeó � noô appeaò iî normaì DIÒ listings¬ anä iî CP/Í 3¬ MPÍ anä CP/Í 8¶¢  tï � thå otheò enä automatically. ŠExiting Tï exit¬  jusô uså thå 'X§ commanä aó showî above® Thió wilì � returî yoõ tï thå samå drivå anä useò areá thaô yoõ invokeä  NSWÐ � from¬ regardlesó oæ anythinç yoõ maù havå donå iî NSWP. Finding a file Sincå yoõ maù havå manù hundredó oæ fileó selected¬  yoõ maù � wisè  tï  movå  rapidlù tï á particulaò file®  Yoõ  maù  dï  thió � througè thå 'F'¬ oò FINÄ command. 1. B0: -WORK .001 0K : f Which file? BASCOM ton, Alberta A - Retag files | Q - Squeeze/Unsqeeze tagged files B - Back one file | R - Rename file(s) C - Copy file | S - Check remaining space D - Delete file | T - Tag file for transfer E - Erase T/U files | U - Untag file F - Find file | V - View file L - Log new disk/user | W - Wildcard tag of files M - Mass file copy | Y - Set file status. P - Print file | ? - Display this help X - Exit to CP/M | cr, sp - Forward one fil÷ wilì  stop¬ � anä allo÷ yoõ tï aborô thå viewinç witè á ^à oò á ^X®  Tï geô onå � morå linå froí thå file¬  hiô thå spacå bar® Tï geô anotheò page¬ � hiô thå nswp b: NSWEEP - Version 2.xx 10/22/1983 (c) Dave Rand, 1983 Edmonton, Alberta Drive B0: 850K in 64 files. 118K free. 1. B0: -WORK .001 0K :  2. 8. B0: BASCOM .COM 32K : Thå  Finä  commanä alwayó startó lookinç froí  entrù  numbeò � one® Yoõ maù uså thå standarä CP/Í syntaø foò wildcardinç (egº tï � finä thå firsô .HEØ file¬  yoõ maù uså *.HEX)¬ anä alsï notå thaô � thå  Finä commanä wilì filì alì blanë spaceó witè questioî marks® � Thió  makeó thå searcè stringó "B*.*"¬  "B"¬  anä "B??????.¢  alì � finä thå firsô filå beginninç witè "B"®  Aó yoõ  experiment¬  yoõ � wilì finä otheò interestinç useó foò thió command. Aô  thióe Moving forward and backward Aó yoõ caî see¬  thå twï mosô commoî commandó wilì bå movinç � forwarä anä backwardó througè thå directory® Eitheò thå SPACÅ baò � ()¬  oò thå RETURÎ keù (© maù bå useä tï movå forward® Tï � movå backwards¬ simplù uså thå 'B§ key® Notå thaô alì commandó iî � NSWÐ caî bå eitheò iî uppeò oò lowercase®  Internally¬  lowercaså � wilì  bå  converteä  tï uppercase®  Iæ yoõ reacè thå enä  oæ  thå � directorù  witè eitheò command¬  yoõ wilì bå "wrappeä aroundkey® � Beforå deletioî occurs¬ yoõ wilì bå prompted. 12. B0: CDP1 . 40K : d Delete file? y 12. B0: DEAD .DAT 100K : Š Iæ  anù replù otheò thaî 'y§ oò 'Y§ ió giveî thå filå ió noô � deleted®  Iæ thå filå ió deleted¬ iô ió removeä froí thå lisô anä � thå nexô filå ió giveî thå currenô file'ó number® If the file is a Read Only file, you will be prompted again: 12. B0: CDP1 . 40K : d Delete file? y R/O. Delete? y 12. B0: DEAD .DAT 100K :  B0: ARCADD .COM 4K :  3. B0: ARCCOPY .COM 2K :  4. B0: ARCDEL .COM 2K :  5. B0: ARCDIR .COM 2K : b 4. B0: ARCDEL .COM 2K : b 3. B0: ARCCOPY .COM 2K : b 2. B0: ARCADD .COM 4K : b 1. B0: -WORK .001 0K : x A> Help Aô anù point¬ yoõ maù requesô thå maiî helð menõ bù pressinç � '?'. 1. B0: -WORK .001 0K : ? NSWEEP - Version 2.xx 10/22/1983 (c) Dave Rand, 1983 Edmon  point¬  yoõ  no÷  kno÷ ho÷ tï  movå  througè  youò � directory¬  botè rapidlù anä onå steð aô á time® Let'ó movå oî tï � somå morå usefuì commands. Viewing and Printing a file Thå Vie÷ command¬  invokeä witè á 'V'¬ wilì typå thå currenô � filå ontï thå screen¬ unsqueezinç thå filå iæ required® Notå thaô � thió commanä wilì NOÔ prevenô yoõ froí listinç ANÙ typå oæ  file¬ � sï  yoõ  musô  uså youò owî judgemenô oî whaô caî anä  cannoô  bå � listed®  Aô thå enä oæ eacè pagå oî thå screen¬  vie   Copying a file While on any file, you may copy that file to: A) Another name, on the same drive/user B) Another name, on a different drive/user C) The same name, on a different drive/user NSWР wilì  prevenô  yoõ froí copyinç á  filå  tï  thå  samå � drive/useò  thaô  thå sourcå filå resideó on®  Otheò  thaî  that¬ � therå arå nï restrictionó oî wherå yoõ wisè thå filå tï be®  Iæ á � filå  existó  oî thå samå drive/useò thaô yoõ wisè tï  placå  thå � destinatioî  file¬  thå  existi renamed® � Anù  valiä wildcarä maù bå useä tï selecô thå sourcå  files¬  anä � thå destinatioî fileó wilì takå onå characteò froí thå sourcå foò � eacè  '?§  iî  thå name®  Aî asterisë qualifieó  aó  fillinç  thå � remaindeò oæ thå fielä witè '?'®  Iæ thå destinatioî filå exists¬ � thå renamå ió noô made. .pa Š Yoõ  maù  alsï chooså tï renamå á grouð oæ fileó tï  anotheò � useò area¬ optionallù changinç theiò nameó aó well: 9. B0: BASIC .COM 24K : r New name, or *? * Old name? *.HEXname of one file B) Change the names of many files C) Change the user number of one file D) Change the user number of many files To just change the name of one file, the syntax is simple: 12® B0º CDP± ® 40Ë º r New name, or *? CDP2 12. B0: CDP2 . 40K : Š You may also change the user number of the file, as follows: 12® B0º CDP± ® 40Ë º r New name, or *? B1:CDP2 12. B1: CDP1 . 40K : Notå  thaô iæ alì useò areaó arå noô specifi 16. B0: DD .COM 4K : l New drive/user/mask? A14:*.HEX NSWEEP - Version 2.xx 10/22/1983 (c) Dave Rand, 1983 Edmonton, Alberta Drive A14: 44K in 2 files. 1118K free. 1. A14:NSWP .HEX 22K: .pa Š Introduction to Multifile commands No÷ thaô alì thå commandó thaô affecô singlå fileó havå beeî � described¬  iô  ió  timå tï introducå thå  concepô  oæ  Multifilå � commands® Theså commandó arå oneó thaô affecô aó fenç filå ió deleteä  automatically¬ � eveî  iæ  iô  ió Reaä Only®  Wheî NSWÐ copieó  á  file¬  alì  thå � attributeó oæ thå originaì filå arå passeä oî tï thå  destinatioî � file®  Thus¬  iæ á filå ió á SYS¬  R/Ï file¬  NSWÐ wilì causå thå � destinatioî  filå  tï bå SYS¬  R/Ï afteò thå filå copù haó  takeî � place. 12® B0º CDP± ® 40Ë º ã Copù tï (filespec)¿ C9:BACK.CDÐ Iæ yoõ wisè tï preservå thå namå oæ thå file¬  yoõ maù  jusô � enteò thå destinatioî drive/useò parô oæ thå filespe New name? B1:*.BAK Thió commanä wilì renamå alì .HEØ fileó oî drivå  useò ° tï � thå  samå filename¬  buô witè thå extensioî .BAK¬  anä placå  thå � resultanô filå iî useò 1®  Yoõ maù wanô tï trù thió commanä á fe÷ � timeó tï geô thå hanç oæ it¬ buô iô ió extremelù powerful. The Space command Thå  Spacå commanä ('S'© simplù askó yoõ foò á  drivå  code¬ � theî  telló  yoõ  thå remaininç spacå oî thå drivå  yoõ  specify® � Beforå doinç thå spacå check¬ á drivå reseô ió perfoeä iî thå  logoî � oæ NSWP¬  thå filå maù noô bå showî oî youò lisô wheî renaminç tï � anotheò useò area. Tï changå á grouð oæ fileó froí onå namå tï another¬ yoõ maù � enteò thå followinç commanä aô anù file: 9. B0: BASIC .COM 24K : r New name, or *? * Old name? *.HEX New name? *.BAK Aô  thió  poinô  alì fileó witè thå extensioî .HEØ  wilì  bå � renameä  tï thå samå filenamå buô witè thå  extensioî  .BAK®  Yoõ � wilì seå á runninç displaù oî thå screeî aó eacè filå ió÷ aó onå oò aó � manù aó alì oæ thå fileó oî á singlå disk® Tï affecô theså files¬ � though¬  wå  musô havå somå waù oæ describinç whicè fileó neeä tï � bå affected®  CP/Í haó á waù tï dï this¬  usinç "wildcards"® Thió � program¬ oî thå otheò hand¬ useó thå concepô oæ á filå "tag". The Tag command Tagginç á file¬  iî itó simplesô form¬  caî bå  accomplisheä � jusô  bù  depressinç  thå  'T§ keù wheî thå  filå  tï  bå  taggeä � appears®  Whaô  exactlù ió á tag¿  Á taggeä filå ió á filå iî thå �ã (eg® C9º iî � thå  precedinç examplå woulä havå copieä thå filå tï drivå à useò � 9¬  retaininç thå namå CDP1)® Jusô enterinç thå drivå parô oæ thå � filespeã  causeó  NSWÐ tï retaiî thå useò numbeò  oæ  thå  sourcå � file. Iæ thå filenamå ió followeä bù á space¬ theî á "V"¬ thå filå � wilì bå verifù reaä afteò iô ió written®  NSWÐ maintainó á CRà oæ � thå filå aó iô ió writinç thå file¬ anä verifieó thió CRC. Renaming files The Rename command ('R') may be used to: A) Change the rmed¬ sï feeì � freå tï changå disks. The Log Command Thå Loç commanä ('L'© allowó yoõ tï changå youò directorù tï � anotheò drivå oò user®  Additionally¬ iô allowó yoõ tï re-specifù � thå wildcarä masë jusô likå enterinç thå NSWÐ prograí froí  CP/M® � Aó well¬  thå drivå systeí ió reset¬  sï agaiî yoõ shoulä bå ablå � tï  changå  tï á differenô diskettå aô thió poinô oò  tï  anotheò � parô  oæ  thå samå diskette®  Wheî thå Loç commanä ió  used¬  thå � instructionó arå reprinteä foò review.   lisô  oæ filenameó thaô haó aî asterisë nexô tï thå  coloî  afteò � thå namå oæ thå file¬ aó showî below. 9. B0: BASIC .COM 24K :* Á taggeä filå ió differenô froí aî untaggeä filå iî thaô yoõ � maù  no÷  requesô aî operatioî thaô dealó witè severaì  unrelateä � fileó (eg®  Fileó thaô wilì noô matcè usinç onlù onå wildcard)® Á � samplå "tag¢ sessioî ió shown: 9. B0: BASIC .COM 24K : t Tagged files = 24K ( 23K). 10. B0: BRUN .COM 16K : t Tagged files = 40K ( 39 .COM 16K :* Aó  yoõ caî see¬  thå untaç functioî subtractó  thå  currenô � file'ó  sizå  froí  thå total¬  theî displayó thå  totaì  oæ  thå � remaininç files. The mass copy command No÷  thaô wå havå á numbeò oæ fileó "tagged"¬  whaô dï wå dï � witè them¿  Well¬ thå Masó copù functioî ió onå oæ thoså thaô acô � oî manù files® Itó purposå ió tï copù thå taggeä file(s© froí onå � drive/useò areá tï anotheò drive/user. 12. B0: CDP1 . 40K : m Copy to drive/user? Aù alreadù kno÷ thaô CP/Í caî allocatå � storagå  onlù iî "BLOCKS"¬  anä thaô theså "BLOCKS¢ maù bå uð  tï � 16Ë iî length® Thió meanó thaô NSWÐ woulä sho÷ á filå containing¬ � say¬ 51² byteó iî information¬ aó beinç uð tï 16Ë long¬ dependinç � oî youò computer®  Thå seconä numbeò iî thå taç displaù showó ho÷ � mucè storagå thå cumulativå fileó woulä takå iæ theù werå  storeä � oî á singlå sided¬ singlå density¬ 8¢ diskette. .pa ŠWildcard tagging Anotheò waù tï taç fileó ió thå wildcarä taç funcdifferenô disketteó oò useò  areaó  oî  á � drive® Tï invokå this¬ uså thå "A¢ command. 12. B0: CDP1 . 40K : a Retagging--> B0: BRUN .COM Tagged files = 16K ( 16K) Erasing files Yoõ maù wanô tï copù á grouð oæ files¬ theî deletå theí froí � thå sourcå disë afteò thå copù haó beeî made® Tï dï this¬ yoõ caî � uså eitheò thå "C¢ commanä tï copy¬  followeä bù thå "D¢ command¬ � whicè ió tedious¬  oò á combinatioî oæ thå "T"¬ "M"¬ "A"¬ anä thå � "E¢ commands®  Thå Å K). Notå  thaô  thå "T¢ commanä automaticallù performó  á  "movå � forward¢ operation. Tï  thå righô oæ thå "Taggeä files¢ messagå twï numberó  arå � displayed® Thå numberó arå thå totaì size¬ iî K¬ oæ thå fileó yoõ � havå  taggeä sï far®  Thió ió usefuì if¬  foò  example¬  yoõ  arå � movinç fileó froí onå sizå oæ diskettå tï another¬  smaller¬ sizå � diskette®  Iæ  thå  sourcå disë holdó 500K¬  anä thå  destinatioî � holdó 256K¬  yoõ caî stoð thå tagginç operatioî wheî youò sizå ió � jusô l14: V Copying --> B0: BRUN .COM to A14: with verify Verifying --> file ok. Thå  Ö ió optional¬  anä iô indicateó thaô yoõ wisè tï  havå � thå filå verifieä afteò iô ió written. Aó  yoõ caî see¬  thå fileó havå beeî senô tï drivå A¬  useò � 14®  Iæ yoõ wisè thå taggeä fileó tï residå iî thå samå useò areá � aó thå sourcå fileó afteò thå copy¬ dï noô specifù á useò areá iî � thå  Masó command®  Thió wilì causå NSWÐ tï puô thå filå  iî  thå � samå useò areá aó thå sourcå file. tion®  Thió � functioî acceptó á CP/Í typå wildcarä anä proceedó tï taç alì thå � fileó thaô matcè thå wildcard®  Tï invokå this¬  jusô hiô 'W§ anä � yoõ wilì bå prompteä witè thå messagå 'Whicè files¿  '® Enteò anù � CP/Í wildcard¬  righô dowî tï á uniquå filename¬ anä iæ thaô filå � existó iô wilì bå taggeä anä displayed. Untagging files Iæ  yoõ caî taç á file¬  yoõ musô bå ablå tï Untaç á filå aó � well. 9. B0: BASIC .COM 24K :*u Tagged files = 16K ( 16K). 10. B0: BRUN commanä Eraseó taggeä oò untaggeä files¬  aô � youò option¬ oî á globaì scale. 12. B0: CDP1 . 40K : e Erase Tagged or Untagged files (T/U)? t Do you wish to be prompted (Y/N/A)? n Deleting --> B0: BRUN .COM Iæ  yoõ specifù Untaggeä files¬  thå untaggeä fileó wilì  bå � erased®  Yoõ  maù wisè tï bå prompteä beforå eacè filå ió  tï  bå � deleted¬ anä yoõ caî dï thió viá thå seconä question. Squeezing and Unsqueezing files Thå  'Q§ commanä allowó yoõ tï Sqesó thaî 256K®  Thå taç functioî iî itselæ doeó noô perforí � anù  operation¬  otheò thaî tï marë thå filå foò á futurå  "mass¢ � operation. Bù  no÷ thå astutå readeò wilì noticå thaô É  havå  cleverlù � skippeä  oveò thå functioî oæ thå seconä numbeò display¬  thå onå � iî  parenthesis®  Thió numbeò ió thå combineä sizå oæ thå  taggeä � files¬  IΠ 1Ë BLOCKS®  Iæ yoõ arå usinç á computeò  systeí  thaô � supportó  manù differenô disë sizes/formats¬  oò á systeí witè  á � harä  disë attached¬  yoõ ma NSWÐ wilì noô allo÷ yoõ tï copù á filå tï thå samå drivå anä � useò areá aó thå source® Thå copù ió simplù noô made. .pa ŠAfter the mass Afteò anù masó filå operation¬  thå tagó arå "reset¢ aó eacè � filå ió copied®  Visually¬  theù changå froí á "*¢ tï á "#"®  Thå � fileó  arå  logicallù untagged¬  anä wilì responä aó  such®  But¬ � sincå  NSWР rememberó them¬  yoõ caî automaticallù  retaç  theså � files®  Thió ió usefuì if¬ foò example¬ yoõ neeä tï copù thå samå � fileó  tï  á  numbeò oæ   ueezå anä Unsqueezå  taggeä � files®  Thió filå squeezå prograí ió compatiblå witè thå originaì � squeeze/unsqueezå programó writteî iî thå 'C§ languagå bù Richarä � Greenlaw® After hitting Q, you will see the prompt: Squeeze, Unsqueeze or Reverse (S/U/R)? Afteò  answerinç thió skill-testinç question¬  yoõ  wilì  bå � askeä  whicè drive/useò yoõ wisè tï placå thå destinatioî  files® � Thå syntaø herå ió thå samå aó foò thå Movå command¬ excepô iô ió � permissiblå  tï  'Q§ thå fileó bacë tï thå  bå reset®  Tï reseô alì thå  flagó � (IEº  Changå tï R/W¬ DIÒ anä nï "Sysoð tag")¬ jusô enteò á singlå � commá oò spacå aô thå "Whicè flags¢ prompt®  Notå thaô thå  flagó � iî  thå  "Whicè flags¢ questioî dï noô havå tï bå entereä witè  á � commá betweeî them¬  aó anythinç (oò nothinç aô all!© wilì do® Aó � faò aó thå prograí ió concerneä "RSA"¬  "Ò Ó A"¬ anä "R,Ó A¢ arå � alì valid. .pa Š Epilogue Alì thå functionó oæ NSWÐ havå no÷ beeî described®  Thå besô � waactivå featurå oæ thå Ñ commanä iî generaì  ió � thå abilitù tï Squeezå fileó ONLÙ iæ iô ió "worth¢ it® Thió meanó � thaô  bù  usinç  NSWP¬  yoõ caî archivå datá  intï  thå  absolutå � minimuí amounô oæ spacå possible®  Thå SÑ algorithí useä iî NSWÐ � ió  betteò thaî thå onå iî thå originaì à squeezer¬  anä produceó � the smallest output file possible with current technology. Thå filå squeezeò sectioî waó donå bù Jií  Lopushinsky¬  anä � ió  copyrighteä  separatelù bù him®  Hå alsï haó á publiã  do oæ Edmonton¬  sincå withouô hií thå SÑ sectioî � oæ NSWÐ mighô neveò havå beeî completed¡ Thankó tï thå uså oæ hió � SQ section, NSWP can produce the smallest possible SQ'ed files. Contributions Iæ yoõ like¬ uså anä enjoù thió program¬ feeì freå tï senä á � contributioî  (suggesô  $20)®  Thió  wilì helð  må  expanä  thió � program¬  anä adä eveî morå features® É aí currentlù workinç oî á � CP/Í 8¶ version¬ anä oncå thaô ió running¬ É intenä tï porô iô tï � MSDOS®samå  drive/useò  thaô � they originated. .pa Š Wheî  Ñ ió invoked¬  yoõ arå askeä iæ yoõ wisè  tï  Squeeze¬ � Unsqueezå  oò Reverse®  Á carriagå returî herå wilì returî yoõ tï � thå commanä linå oæ NSWP® Iæ  yoõ  selecô  Ó foò Squeeze¬  alì taggeä  fileó  wilì  bå � examineä  tï  seå  iæ iô ió "worth¢ squeezinç  them®  Fileó  thaô � exibiô ANÙ spacå reduction¬  eveî iæ iô ió onlù onå sector¬  wilì � bå squeezed® Iæ thå fileó ió noô "worth¢ squeezing¬ thå filå wilì � simplù bå copieä tï thå desù tï geô morå familiaò witè thå prograí ió tï actuallù USÅ  it® � É thinë iô wilì bå onå oæ youò mosô frequentlù useä programs. Therå  arå severaì thingó iî thió versioî thaô yoõ wilì wanô � to alterº 103H Thió bytå controló thå screeî lengtè useä iî thå "V"ie÷  command® � Iô ió currentlù seô tï 23Ä (17H). 104H-10AH - Turn reverse video on Thå firsô bytå iî thió sequencå oæ seveî showó thå lengtè oæ  thå � reverså  videï oî sequence¬  whicè followó aô locatioî 105H®  Alì � seveî byteó armaiî � standalone squeezer, call NSQ. Setting the tagged files status Yoõ  maù seô thå attributeó oæ á grouð oæ taggeä fileó  jusô � likå STAT¬ oò PROT® Tï dï this¬ taç thå files¬ anä selecô thå "Y¢ � command. 12. B0: CDP1 . 40K : y Which flags (1-4,R,S,A)? r,s Setting ---> B0: BRUN .COM to R/O SYS Thå  flagó yoõ maù seô arå thå F1-F´ flags¬  aó welì aó  thå � Reaä Only¬  System¬  anä Archivå (MP/M¬  CP/Í ³ only© flags®  Anù � flagó  yoõ dï noô specifù wilì  Suggestionó foò enhancemenô arå alsï appreciated¬ anä yoõ � maù senä theí to: Dave Rand 10232 - 160 Street Edmonton, Alberta CANADA T5P 3E9 tinatioî drive/user. Iæ  yoõ  selecô Õ foò Unsqueeze¬  alì taggeä fileó  wilì  bå � examineä tï seå iæ theù arå squeezed®  Iæ theù are¬  theù wilì bå � unsqueezed¬  anä moveä tï thå destinatioî drive/user® Iæ theù arå � not squeezed, then they are simply copied. Iæ  yoõ selecô Ò foò Reverse¬  alì fileó thaô  arå  squeezeä � wilì  bå  unsqueezed¬  anä alì fileó thaô arå unsqueezeä wilì  bå � squeezeä  (iæ  iô  ió wortè it)¬  anä moveä  tï  thå  destinatioî � drive/user. Thå  mosô attrå currentlù seô tï zero. 10BH-111H - Turn reverse video off Thå  firsô bytå iî thió seqencå oæ seveî showó thå lengtè oæ  thå � reverså videï ofæ sequence¬  whicè followó aô locatioî 10DH®  Alì � seven bytes are currently set to zero. Credits Mù  thankó  tï  alì  whï madå  thió  prograí  possible¬  anä � especiallù  tï  Davå  Mccradù  foò  hió  helð  iî  composinç  thå � documentatioî  anä .HLÐ fileó foò NSWP®  Thankó alsï goeó tï  Jií � Lopushinsky¬  alsï  ÃkNSWP is copyright (c) 1983 by Dave Rand 10232-160 Street Edmonton, Alberta (403) 484-4114!9"õ1‡=*.€÷"7.Í2.2. ÿÍ2.2.¯2. Íþ0Ú±2.-þÍ!]». Í`>?!ÿÿ" .".ÍÜ!€^#6#6!�ÃM ÍͼÍrÍ@Drive :.ÆAÍQ:.<Â>*ÍQ>?à =õ_Í_ño&ÍS¯2º.Í@:!».åÍ]Í@ !ÿÿ" .#"+."-.Íw!‡=º.ÍŠ}´+Êh#" .Í!ÍeÍ2*.+" .åÍøá#͈".!"."/."1.1‡=:.2:.Íd* .#}´Â»Í@ No files.ÍÖþXÊäþLÊ'þSʪÀÍ9*.͈ÍdÍÖG!€å!5~·È¸#Êß##ÃÒ^#VÕÉ:._Í:._Í_1ÉåÍÙ*-.ÉåÕÅÃï 1 2 3 4 R/W R/O SYS ARC :9.ÆAÍQ:;.þÿÂ< ::.o&þ ÚG Í>:ÍQ:.·Êe Í@ with CRC.áå:D.þÊz þÊ´ ÍÃ} Íz áÍ6ÍæÊœ á#ë* .Í,ëÒï Í9ñ Í@ --- Aborted ---ÀåH.¯ Í`~õÕá6Í`ñ2:.Íd!I.o. ~æw¶w#ÂÛ H.Í!I.Ñ Í`Ã} !å͈åÍ4~þÂ3 Í@ Retagging --> áåÍ> ÍQáÍ4ÍŒåáá#ë* .Í,ëÒÿ ÀÍ"·ÀõÕåÍ@(áå~#·Êa åÍQáÃS Í@)áÑñÉ~þ åÅÄQÁá#Âj É".Í͵ ë*."".*.Âó ëvÿÍ,­ *.:.þUÊ$ þRÊ$ Ãó *.:.þRʽ þUÊó !ñ0Í‚#·*.Âó Í0!H.n. 6Í`!w.~æþ Âê 6Q#6Q#6QÍ@(!o.Íj å>.ÍQuÍ4~6þÀå#Íìå*1.Í~"1.áë*/.Í~"/.áÉÍ@ New drive/user/mask? Í@!ú!~·Ê€#">.åÍÒ:\·Â`:.<=2.:;.þÿáÂy#~þ*>ÿÊy:.2.:]þ ‘!]^ 6?Í`!\º. Í`Í9Í9Ãäå¯2.~·Ê¸þV#ª2.áÉÍ@ Illegal drive code.ÀÍ¥:.2;.:.29.~þ0Úºþ:ÚþAÚºþQÒºÖA29.#~þ:È·Èþ*Ê:þ0Øþ:ÐÖ'G#~þ:Ê3·Ê3þ0Ú3þ6Ò3Ö0€þÐ2;.ÉxÖ 2;.É>ÿ2;.Éù! Í!ú!å^#6#pá#~·ÈÍiwÃVÍ@ Copy to drive/user? Í@!ú!~·Ê€å ÍÍrá#ÍÖ:D.·À::.G:;.þÿʧ¸À:9.G:.¸ÀÍ@ Can't copy to same drive and user.À*.͈å¯2H.I. Í`~2:.Í@ Copy to (€åÍ@ Tagging --> áå͈åÍ> ÍQáÍ4ÍŒáÃý#ë* .Í,ÚJëå͈]ÍNáÈÃ/>·É ë~þ?Ê\æ¾À#ÂQÉ*.͈ ~2:.Í@ New name, or *? Í@!û!">.!låÍÕá#~þ Ê€ þ?Êö#¡:;.þÿ¶::.w*.͈Íùþ.ÂÍ ÍÍr*.å* .#" .ÍeÍ2*.+" .ëá".Í,Ú€!".Àå:.29.\¯2\ Í`¯ÂÍd:eæ€Ê9:eæ2e:uæ2u\Í:;.þÿ_::.ÂF_Í_!mI. Í`¯2H.ÍùH.*.ÍŠ}´Ê’Í@ Destination file exists! ÍÍrÀ:;.þÿÊ¢G::.¸ÂÊ::._Í_ÿÍ_õ\Íñ_Í_¯Ñõ!m Í`ñ¿É::._Í_!\H. Í`Íù¯2H.>?2T.*.H.ÍŠ}´Ê½" .ÍùH.ÍÍ@K in á#ÍÍ@ files. *+.ÍÍ@K free.É u uB’XäSªDšTÈUðVÀPµEkL'CÛMÕ Aü RcF…WÏY%?�QŒ *.#".ë* .Í,Ò€!".Í9À*.|µ+".€Í9* .".ÀÍ@ Which drive? Í@:û!þAÚ€þQÒ€õ Í:.GñÖA2.ÅõÍ9ÍrÍwÍ9*+.ÍÍ@K remaining on drive ñÆAÍQ>:ÍQÍ9Áx2.ÍrÀÍ@ Which flags (1-4,R,S,A)? Í@!o. 6#ÂL!ú!~·Ê€#">.*>.ëÍÒë#">.·ÊŠ!�o. ¾Ê„#ÂwÃ_>€Ã_>ÃÖ 1234zzzzRSAÍ@ Delete file? ÍÖþY€*.;À͈åÍáå]¯2\ Í`åÕá6Í`ÿÍ__áÕ^Í_:eæ€Ê!Í@ R/O. DeleáÍj Í@)Ís*.Í!H.͘'ÍëÍ}Í0É!ñ0ÍD ·ÊC Í@ Not a SQ file.É">.ë"B.:;.õÍÂñ2;.!\n.6 Í`Ís!åÍÜ"áÂ| _åÍÎáÃh ë*B.Í,õÍëÍ}Í0ñÈÍ@ ERROR - Checksum error in file ÉÍnÀõÍngño¿É͵ ÈÍ@ Premature EOF on file... aborted.Àá·ÉåÍ0áÃÍÃ*:9.G:.¸Â::.G:;.þÿȸÈÍ!H.n. Í`¯2n.!"@.ÍsÍd*."5.:.·Â–åëÍH.Íá·Âl€"5.ë*7.Í,ëܺÃCͺÍ}Í0Í É¯|g}oÂ{É)))))))É,Ã*.åë*7.Í~ÍyÑå|·Â±}þ€Ú³.€&åÕ],ÍÑÕÍH.Í·ÂðÑá͇"5.ëá€ÿ |æ€Âê|µÂ¥ͺÖõåÍ�áñþÿÊ€Ñl&filespec)? Í@!ú!~·Ê€#">.ÍÒ*>.Í¥:]þ Â> !I.] ~æ#Â4 :\=29.!I.]ÍNÂT Í™!]I. 怶w#Â\ !\n. Í`:.G:9.¸Ê…  ÍÍráÍû ÀÍ@ Squeeze, Unsqueeze or Reverse (S,U,R)? ÍÖ2.þSÊÐ þUÊÐ þR€>ÃÖ ¯2D.õÍ9:.2:.ñþÊì Ía!å͈åÍ4~þ+Fრåx2:.:D.·ÂO :.G:9.¸ÂO ::.G:;.¸ÂO Í@ Skipping, same drive & user --> áÍà :D.þÊs þÊŠ Í@ Copying --> Þ Í@ SQ/USQ --> Þ Í@ Setting --> áåÍÍ@ to :D.þÂ) !o. ~·Äê #» !w. ~·Ì  ~·Ä #ÂØ Ãe åÕÅë~åÅÍQÁá#Âð ÁÑáÍÍR!mI. Í`ÍùH.Í!å)))))ë*. åT.Í`H.Í<ÊpáT.Í`:V.æ2V.H.Í* .+" .}´á# >.ýÍ@ Directory full.ÀåÕ€ÍÑÕÍ<Ñá¨!ÉÕÅå=‡‡‡‡‡!€…oÑ Í`Õ*7.Í,ÒÞÍ@ OUT OF MEMORY?ÃÑÕáÁÑÕÅåÍ<áÁѨi`ÉÍ@ Old name? Í@!û!">.!”.ÍÕ:•.þ Ê€:;.2 .Í@ New name? Í@!û!">.!n.ÍÕ:o.þ Ê€Í9!å͈å•.ÍÅ¢Í@ Renaming --> áåÍáå ~2:.Í@ to áåÍò!mÍáÍùG:´°2´åáá#ë* .Í,ëÒRÍ9>þ.ÂÍ ÍÍrÃÍ~þåÊïå Fá: .þÿÊܸÀþ?ÊèG>¦¸À# ÂÜɯ/Éo.m> õþ?Âte? ÍÖþYÊÑáÉ:eæ2e\Í\ÍÑÍ_* .ë*.{•ozœg))))åÁáåÑx±ÊV~# x±ÂL* .+" .ë*.Í,ØÈ+".ÉÍ@ Erase Tagged or Untagged files (T/U)? ÍÖþTʤþU€þT>ʬ¯2 .Í@ Do you wish to be prompted (Y/N/A)? ÍÖþÊ€þAÊ€þNÊõþY>¯Ãö¯24.!å".͈åÍ4~æG: .¸áÂfåÍ@ Deleting ---> áÍ:4.·ÊWÍ@ Delete (Y/N/A)? ÍÖþAÊzþYÂfÍæʃáå;áÃhá#ë* .#}´Êz+Í,ëÒü!".À!".Ü ~6þÊ©#Íìå*1."1.áë*/."/.*/.ÍÍ@K (*1.ÍÍ@K).ÉÍÚ*.͈Í4ÍŒÃuÍ@ Tagged files = ÉÍÚ*.͈ÍÍ©Ã͇"5.ÑáÃl:.·ÈÍ@ Verifying --> ÍR!z.{.6Í`n.Í<ÂYÍ@ Can't open file!À€Í*@." .!"@.n.Í·Â…!€ÍÃmÍm* .ë*@.Í,Ê­Í@CRC verify error!ÀÍ@file ok.É*5.ë*.Í,ÈÍÍR*.:.·ÂåëÍn.Íá·ÂY€ë*5.ëÍ,ÂÕÍd*."5.É*.åë*5.Í~ÍyÑåÕ|·Â}þ€Ú .€],ÍÑÕÍn.Í·ÂVÑáë@ ë€ÿ |æ€ÂP|µÂÍ�ÃøÍ�Í@ Destination disk full.Í0ÍWÀ}“o|šgÉÍ@ Find what? Í@!û!">.ÍÂ!]~þ Ê€ ~þ µ6?#­Í@ !ÿÿÍ/€".ÀÍ@ Tag what? Í@!û!">.ÍÂ!]~þ Ê€Í@ !ÿÿÍ/  ~æ#ñ=Âú:;.þÿÂ::.Éå:.ÆAÍQáå n&}þ Ú5 ÅÍ>:ÍQÁyþÊJ> ÍQáͧå>.ÍQáͧÉÑáÕåÃJå*.#ÍÍ@. áÍ#~õ#å> ÍQáÍìÍÍ@K :ñ· Ê¢þ*Ê¢#yÍQÉÅå~ÍQáÁ#§ÉÍ9>2=.ÃÍ9¯2=.<23.Í@Press ^X to abort, L to advance a line, cr to advance a page. >2<.*.͈ÍÍ vÿÍ,!nÂD*."".!ñ0ÍD ·ÂDÍ9!Ü"ÃLå*."".á"bÍòþÊÃþÊÃþÊÉÍnÂÃþÊÃæþÂu>-_þ ‚:3.<23.:<.OÍ:=.·ÂO:3.G:¸ÂOÍÞþLʹþlʹþÊÃþÊï23.ÃO:3.=23.ÃOÍ0ÀÍÞÃO Í·ÈÍÃiÍò·ÊÞÉÍÏþÈÍiþXÉÿÃ!T.U.%# ÂáÉ:.·È~Í#Í, ÉÅåÕ*@.ëªO!à. ~«W$^ë"@.ÑáÁÉ ÉÍ@ Éá~·#åÈÍQÃ@ Ã_æ€{ÊdõÍlñÍdÍrÉæ_Ã!Ãu! ~#·ÈGåÅ~ÍdÁá#ÂzÉ))))‡=É NSWEEP - Version 2.07 07/17/1984 (c) Dave Rand, 1983, 1984 Edmonton, Alberta $ A - Retag files | Q - Squeeze/Unsqueeze tagged files B - Back one file | R - Rename file(s) C - Copy file | S - Check remaining space D - Delete file | T - Tag file for mass E - Erase T/U files | U - Untag fileæ¹À#Âü¾À# É*.ë*.Fwx#  É|ºÀ}»É!".".#".* ." .ÍÊQÍŸÌh*.".#".* .+" .|µÂEÉ*.͈ë*.Í`*.#".É*.͈".å*.͈".Ñ ¾À#•É*.~þåÊ×å Fá». xþÒ×:.þÿÊĸÀþ?ÊÐG>¦¸À# ÂÄÉ·É!"-.* .#}´ÈåÁ!”=åÕÅÍìë*-."-.ÁÑá x±ÂîÉå'Í,ÚÃ?èÍ,Ú$Ã?dÍ,Ú2Ã?}þ Ú=Ã?y’ÊRÚRõ> ÍQñ=ÂGáõÅÕåöÿÿÿ Ú] ë|µÄS{Æ0ÍQáÑÁñÉ Í}þ0ÒÁ*ç0#åÁå*à0~å.Ò˜g x±Ê©|-“á#Ã�áá}“o|šg:*.·Ê½)=õ"+.É€Í:._.Í*€:‚G·xG|g}o ÂÛý^ë)))))ë#~å&o)))Ê%45 %¾Â%¾Ò%#Â%!�*p¯27,28,Íl*¯g2î+2ú+ý<ÿ27,29,à '>ÿ29,! ,,Í»+ÚÒ&¯29,!,:5,Í�+::,Nw:6,/<þÿÊ 'G:;,‘þÒ '4x26,Ãó&!$,,ÍÌ+!,:5,Í�+~2:,:6,†ú¨&w:9,·Ê#%! ,,6Ã`H.¯2H. Í`~õÍùñ2:.Íd*.""." .H.Í<ÀÍ@ Can't open file!ÀÿÍ__É:9._Í:;._ Ã:._Í::.Ã^*."&."$."(.ÍRÍ"n.ÕÍ<ÊÂÑÕÍ:w.æ€Ê»:w.æ2w.Í"ÑÕÍÑÕÍ!w.åE.Í`á6$#6$#6$ÑÕæ ÂÛÍ"ÑÕÍÍ"ÑÍ<ÀÍ@ Destination disk directory full.À!z.{.6Í`ÉÍdH.Í<ÀÍ@ Can't close file!ÀÍRn.ÕÍÍ"ÑÍÉÍRn.Í<Ê=ÉÍmÍ"!n.~.Í`!E.‡.Í`n.Í<Ê=!E.w.Í`:Q.æ€G:w.°2w.:y.æ2y.n.ÍÉ*(.ë*$.GÍ,xÊãw#"$.ÉõÍëñÃÎ*$.ë*&.Í,ÈåÍRá:.·Â F - Find file | V - View file L - Log new disk/user | W - Wildcard tag of files M - Mass file copy | Y - Set file status. P - Print file | ? - Display this help X - Exit to CP/M | cr, sp - Forward one file $"x#"z#!9"�"Íc#vÿÍ]#>À¯2t#2w#Íc#"~#*x#åÍnáõÍ�"Gñp#ÂŒ"·Â<"Íc#"€#Í]#Úc">·Éë*z#ë"|#|µÊ“"ÕÍc#Ñës#r#åÍc#ëás#r#ë*|#+Ãh"1>·É*x#ë*~#ë¯ÉþaØþ{Ðæ_ÉUSQ section (C) 1983, 1984 by Dave Rand (403) 484-4114!9"�":w#·Êó"=2w#:v#¿ÉÍ#þ�Â#Í#·Â)Ñõæ…oÒ$ñæàÊ#åÑ:*.·ÈþÊZþÊKþÊ<}æÈÕ>ð¥oÑÉ}æÈÕ}æøoÑÉ}æÈ}æüoÕÑÉ}æÈ#É~#Â`ÉþaØþ{Ðæ_É:._Í<Ê€Íâ0Í`:ä0Ö2*.Í"à0É‘ÍL ÍL* .ÍøÍ9ÍÚÍ©Í9É‘ÃL*>.ëÍÒ!\¯w=ÃL!\å*>.ëÍÒá:.Æ OñÖ0�Oþ:Ê7·Ê7Ñ:.ÿÃLxþÒ,yþÿÊHþÒ,ñpy2;.Í·Êr#þ*Âb6?ÃdwÂQÍ·ÊyÃh#6 Ârþ.¢Í·Ê¢#þ*Â’6?ÔwÂ�Í·Ê©Ø#6 ¢#6«ë">.É·Èþ Èþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>É·Èþ ÀÃÒ!à.ë!yŬg)Ò÷>¬g>!­oÂëÁër$sÍÌ+Ã#%>ÿ26,:�*!5,4¾Ò!'>ÿ28,Ã#%~!,Í�+~2;,ÃÞ&! ,Í„,¯2è+*ø+))>Í�+ ,",!",!,Í’+ë~öwë6å#¯w#w#wáÍ’+ëÍ„,!ÿ+Í„,*ÿ+ë* ,ͨ+>Ò�'¯*‚,ù* ,É:è+·Ê¡'¯É"D,!9"‚,1‚,!vÿÍþ(*ý+Íþ(ë!Í¡+"ý+*D,#~þ ÊØ'Í)#ÂÊ'>.Í)xÍ�+~þ Êñ'Í)#Âã'¯Í)*ø+Íþ())ë*é+~Í)#z³Â(¯2ì+2î+>2ë+Íc+Ãv(Íc+Ê(!í+¾ÊY(#45Êv(õ~6þÒJ(G+~õÍÅ(ñÂ=(ñÃv(õ>�ÍÎ(ñ<ÍÎ(ñÃv(þ�Êv(#4~þÿÂ(å>�ÍÎ(á~6ÍÎ(:í+2í+ÍÅ(Ã(:î+·Ê‘(õ>�ÍÎ(ñ<ÍÎ(>ÿÍ�+###ÍÓ(:ë+þʰ(G:ì+¨(Í)>ÿ2è+*ý+|µ>ÂÀ(¯*‚,ùÉþ�ÂÎ(ÍÎ(¯ÅÍ�+ÁÅF#^#V:ë+O{_zW:ì+ Âñ(Í)¯2ì+ÂÝ(y2ë+ÁÉ}Í,åëÍn.Í·ÂYá€ë*$.ëÍ,Ú*&."$.É*&.åë*$.Í~}æõÍyñÊC#|·ÂN}þ€ÚP.€],ÍÑÍn.Í·ÂVÍ�Ã%* .ë*".Í,Ê‚~#"".¿ÉÍd*.""." . :.·ÂÌÅëÍH.ÍÁ·Â¼* .€" .—Ãn*".ë* .Í,Ân¯=É ,Í*".ëÍH.Í·ÂøÍ�*"." .ÃnõåÍ�áñþÿÊ€l&͇ë*"." .ü* .åÁ!‡=‡=ÉÍ~þÒVåõ#Å Í`Áñ~õ#¯#~ñ#~áÕ Ñ x±Â$ÉÅ>åÂ[ÁÃI* .".+|µÈ*.|µÈ¯|g}o".´Â„#".ë* .+}“o|šg".!".*.".*.ë*.".ÍæÊÒÚÒÍ*.ë*.}“o|šg".úÒµÊÒá*.#".ë*.Í,ÚoÛ*.͈".å*.͈".Ñ ~æO#>�¿É==2w#:v#¿É2v#¿É:u#O:t#·Â.#ÕÍnÂŒ"ÑO>=2t#yO*z#Ò=###^#Vzæ€Ê#y2u#zþþ>ÊZ#{/¿Éá·É|ºÀ}»ÉÍnÂŒ"õÍnÂŒ"gñoÉ>ÿ2è+"B,!9"‚,1‚,*B,}æüo>Í�+"é+">,"@,Í&+¯2î+ÍW+ÂÃ#>Ã�'vÿͨ+ÂÑ#>Ã�'}2í+åÍ+á|Ãä#Íc+Ê?$!í+¾Ê$#45Ê6$õ~6þÒ $G+~õÍ+ñÂý#ñÃ6$õ>�Í+ñ<Í+ñÃ6$þ�Ê6$#4~þÿÂÞ#å>�Í+á~6Í+:í+2í+Í+ÃÞ#:î+·ÊQ$õ>�Í+ñ<Í+*>,^#V#N#z³±Âl$#ÂV$>Ã�'~å*@,w#s#r#q#"û+á>2ï+#^#V#N#~#2<,{²±Êó$åÅ:ï+G*@,#åÍ®+Ú¶$á####Ÿ$y2=,ÃÒ$*û+y2=,ÁÅ }‘O|˜GÕT]+Í×+Ñá+Á:<,w#s#r#:=,w*û+####"û+:ï+<2ï+á„$:ï+!‚*·  )|ÅÕåÍÎáÑÁÉõÅ:8,·ÊI):ô+*ø+ë*ö+G:ú+Os#r#}æÂ0) z·Ê:)»Ê`)Â%)"ö+ë"ø+y2ú+!í+4~þÒ`)¯2î+!ô+~‡wÁñÉÁñá:�*=GÂp)>ò�':8,·Â~):7,·Â¤&!�*p:8,·Ê#%¯28,27,Ã#%õÍ�+:í+w#å*ò++2,,¯Í×+!"," ,,!,Íe- ,!,Í’+:í+!$,Í�+4!ô+5:8,·Âç)áñÉ*ö+6ÿ:ú+O}æÊú)7zW{_~þÚ*A+~+õ}æÊ* ñ·Â*~¸Êó)Ã*ás#r*ö+ñ/w#6ÿ#"ö+}æÀ!ú+4É>ÿÍ�+###å!I*ãÍ—)*ö+>þ+w+Éë,Õ¯ÍÌ+áã+ä,ÖÚø*Ãï*xÉ!ã+4À#m the tagged file size. It is correctly handled in all cases now. NSWP now saves the SP, rather than (SP), in order to support totally non- standard implementations of BDOS and CCP. When using the '?' function, the current disk information, along with the tagged file size. The copy file speed has been further optimized by elimination of a redundant BDOS call (deleting a file, when we know it ain't there!). NSWP has been modified to better support MPM and MPM86 by doing a rename after a copy------- NSWP 207 has the last of the CPM 3 features, and concurrent as well, this being the multisector IO feature. This speeds file transfers under these operating systems by at LEAST 1.5 times, and it even handles physical IO errors whilst doing this. Also, the copy command has been alterted so that if you copy to a DIFFERENT drive, the disk system is reset. This will permit fast copies to the same diskette, and the ability to freely change the destination disk! 4À#4À#4Éþ�Â+Í+¯Íú*o&))ë*>,4À#4À#4ɯGO*>,w#w#w#q# Â,+!ã+w#w#w#w#!ã+ÿ+ÍÌ+!"ý+ÉÍc+ÈoåÍc+ágÉÍnÊk+¿Éõ*ý+Í�+"ý+ñ!ÿ+4À#4À#4É*>,GÍ�+xÍ�+x…oÐ$ÉåÕ·Ž#•+ÑáÉ}“o|šgÉ|ºÀ}»É##~¹À+~ºÀ+~»ÉH ë +¾À ÂÁ+¾Éx±È ~#ÃÌ+x±È ~+Ã×+ÿy·Èx·ÈX+·õG]T~w+”,kbñ Â�,Éx·ÊG-"L-ë"N-Hi&)))#"T-!W-^-A¯w#ÂÃ,!W-"P-!^-"R-*N-A¯¶#ÂÜ,·ÊC-·A*L-~w#Âë,!T-5Âÿ,#5úG-* operation. This will drop the copy speed slightly, nullifying the effect of the above change. If you find anything else, please drop me a line... Notes on NSWP 205 ----------------- NSWP 204 introduced a bug that would not allow you to copy a file if that file was set to R/O, unless you had a destination that was ALSO R/O! Notes on NSWP 206 ----------------- NSWP 206 has further CPM 3 features, such as using the display-and-return error mode. As well, NSWP now fully implements the $$Dave Rand 10232 - 160 St. Edmonton, Alberta Canada T5P 3E9 (403) 484-4114 04/04/84 Notes on NSWP 204 ----------------- NSWP 204 has a few new features! First, limited CPM 3 has been established, in that if you have BDOS version over 3.0 (which may include MPM), you may now run with ALV banked. NSWP will use the BDOS call to obtain the ALV information. This also applies to the 16 bit version. Before 204, if you attempted to delete a file that was currently tagged, it was not removed froP-A~w#Â-Åy2V-*R-DM*P-ë*N-·ž#:V-=2V-Â-Á?Òç,*P-ë*R-"P-ë"R-Ãç,7ÃH-·*P-Éx·ÈH ë"Í-!Ï- "Ë-i`)))#"É-A!Ï-6#„-·A*Ë-+~wÂ�-kbA+~w›-Òº-Õ*Í-ë!Ï-A·Žw#°-Ñ!É-5ÂŒ-#45È5ÃŒ-$ copy file techinque, for both regular and SQ/USQ file copy operations. This will permit the use of 'PUBLIC' BDOS patches, and full use under MPM, as well as concurrent CPM 86. You may now log directly to a drive/user from the CCP, by using the syntax NSWP A4:*.*, or more simply NSWP A4 . NSWP now uses the same routine for CCP logon, as it does for the LOG command within NSWP. If you have selected a group of files (*.QQZ, for example), this information is displayed at logon. 07/07/84 NSWP 207 -   NULU.DOC Documentation for NULU.COM as of 10/01/84 Version 1.0 NULU.COM and NULU.DOC are both Copyright 1984, by SYSTEM SOLUTIONS, P.O. Box 35972, Dallas, TX 75235. Both may be used freely for non-commercial purposes, but neither may be sold, included in a package for sale, or used as an incentive to buy, by any person, organization or corporation without prior arraULU will run on any system running CP/M 2.x or higher, however it has only been tested on the Osborne 1 and the Osborne Executive computers. It is written entirely in 8080 assembly language. A complete discussion of the nature and advantages of library files is beyond the scope of my endurance, however a short recap is in order. A library file is a single CP/M file which maintains 1 or more smaller files as its members. Each file is written into the library andwith an option to unsqueeze where appropriate Bigger libraries, up to 800 members or more depending on available memory Automatic member sorting, all members kept sorted at all times Faster reorganization Enhanced error handling Access to deleted members Optional read only mode General compatibility with LU and NSWEEP syntax Numerous user patches DIFFERENCES BETWEEN NULU AND LU I am aware of only one thing that LU do one file. However, there are also dangers associated with using libraries. The main one is that if a library file is lost or damaged, all of the member files are lost as well. The solution to this problem can be summed up in one word: BACKUP. NULU probably isn't perfect, and we all know that disk systems aren't, so backup your important libraries, please. I don't want to hear any sad stories. Almost as important as backing up libraries is the use of discretingement with the copyright holder, SYSTEM SOLUTIONS, or the author of this version, Martin Murray. Furthermore, neither SYSTEM SOLUTIONS nor Martin Murray will bear any responsibility for losses resulting from the use or inability to use this program. NULU.COM may not be distributed without NULU.DOC, nor may the copyright messages be removed from either file nor caused to not be displayed. ACKNOWLEDGEMENTS This program would not have been pos recorded in the library directory. After that, it may be accessed for viewing, printing, or execution, or may be extracted from the library to assume the status of a stand-alone file once again. The reasons for doing this are many. For one, under CP/M each file occupies a minimum amount of disk space. This amount can range from 1k to 16k, depending on the system. Even though a file may only be 1 byte in length, it will still occupy the minimum required amount; oes that NULU does not do. LU maintains a CRC for each member file and for the library directory as a whole. NULU doesn't do this at all. In fact, NULU changes these CRC bytes to 00 as soon as it gets the chance. In case you still want or need to run LU on a library modified by NULU, LU will simply regard it as a library created by an earlier LU version and will promptly set CRC's for the various members. NULU To the best of my knowledge, Non when deciding what to put into them. Let's face it, if a file is in a library it is not as easy to get to. If you need to get to a file every 15 minutes, it probably shouldn't be in a library except as a backup measure. AN ASIDE CONCERNING FILESPECS When specifying a filespec, wildcards may be used freely, however, unlike most programs, NULU doesn't insist that a "." separate the filename from the filetype. For example, the filespec "**" sible were it not for the elegant work of Gary P. Novosielski and those others working with the LU library structure. INTRODUCTION NULU is offered as a complete replacement for LU and LSWEEP. Weighing in at 14k, it includes nearly all features of both programs and then some. It features: Two operation modes with a full menu for each Viewing and printing of member files, unsqueezing when necessary Extraction of member files the rest of the space is wasted. Putting these files in a library minimizes the possible waste to 127 bytes. Each file also occupies a directory entry. On most floppy disk systems, the maximum number of files per disk is 64. By including a file in a library the directory space it used to occupy is freed for another file. Additionally, using library files can simplify the process of categorization by subsuming several files of similar types or subjects int   means the same thing as "*.*" to NULU. On the other hand, the filespec "FRED.TXT" should be typed in just like that. "FREDTXT" would make NULU think that no filetype had been specified. The rule is simple: use a dot any time you like, but it is only strictly necessary when it is needed for clarity. When specifying a drive and/or user area the syntax is very liberal. "A15:**" means the same as "15/A:*.*", as does "1A5:**". The colon is absolutely necessary. If a  after a parameter indicate infinite repetition. COMMANDS -A ADD MEMBERS Syntax: -a filespec[ filespec...] Use this command to add files from disk to the current library. NULU will make a series of passes through the directory, adding files as it goes, until the list of matching files is exhausted. If matching filename already exists as an active member in the library, its nep mode -G Get filespec -K Krunch the library -L List members -M Menu -N Rename members -O Open a library -P Print members -Q Unsqueeze members -R Replace members -T Replace/Add members -U Drive/User change -V View members -X Exit NULU -Y Disk directory -< Redirect input -> Redirect output Commands may be strung together, each terminated by a s directory. The library directory is NEVER written except when the library is closed, so be sure to do it. If you forget to do so and remove the disk, NULU will prompt you for the disk again and will attempt to recover, but no guarantees! Some other operations that cause the current library to be closed are: -k, -o, -x -D DELETE MEMBERS Syntax: -d filespec[ filespec (filespec) different user area is desired for the default drive, the drive specifier may be omitted, as in "15:**", just as the user area may be omitted as in "A:**". If a drive/user specification is made, but no filespec is indicated, a filespec of ????????.??? is generated. Therefore to indicate the default drive, current user area, and a filespec of ????????.???, just type a colon by itself (e.g., ":") ! NULU OPERATION NULU may be invoked with or wame will be displayed and the file will not be added. In all file addition and replacement operations, if a deleted entry of identical size can be located, that disk space and directory entry will be used rather than allocating new space for the file. This means that it will be necessary to reclaim wasted disk space less often. -B BRIEF TOGGLE Syntax: -b This toggles the prompting mode. The relpace. They are processed left to right. All characters are converted to upper case. The default drive/user area are displayed along with the name of the current command mode each time the console is prompted for input. The commands will be explained in order of their appearance above. All items in [square brackets] indicate optional parameters. Filespec parameters enclosed in (parenthesis) indicate references to deleted member files. Three dots ("...") ...] Member files matching the given filespec will be given deleted status in the library directory, except when the filespec is enclosed in parenthesis. In that case matching deleted members will be given active status. That is, they will be undeleted. If the filename of a matching deleted member file already exists as an active member, the filename will be displayed and the file will not be undeleted. ithout a command tail. A command tail can consist of any combination of valid NULU operators up to 128 characters (the limit imposed by the CCP. Once NULU is running, command lines can be as long as 254 characters.) As in LU, all NULU commands are preceded by a dash. This is a copy of the menu for the command mode of operation: -A Add members -B Brief toggle -C Close the library -D Delete members -E Extract members -F Filesweease version of NULU is setup to print the full name of the current mode for a prompt, as in "-ADD MEMBERS A0:>". If BRIEF is turned on the user will simply see "-A A0:>". NULU may be permanently patched to default to BRIEF ON or OFF. See NULU MODIFICATION. -C CLOSE THE LIBRARY Syntax: -c This command closes the current library, writing its directory to disk if any changes have been made to the    -E EXTRACT MEMBERS Syntax: -e filespec[=newfilespec filespec...] Use this command to extract active member files. If extraction to the current drive/user area is desired, no further syntax is necessary. To indicate another drive, however, a destination filespec may be included following an equals sign. Example: -e **=a5: would extract all active members to drive A, user area 5. F only a short description of each command will be given. A -- Advance to next member (spacebar, cr, or lf will produce the same result) B -- Back up to previous member C -- Close the current library D -- Delete current member file E -- Extract current member file (prompt allows redirection) L -- Logon to new library (closes the current library) P -- Dumps the currasm=*bak" is valid while "**=*bak" is not valid. -F FILESWEEP MODE Syntax: -f This command places NULU in its second operational mode: the filesweep mode. This allows the user to move through the directory of active member files as if they were individual files being examined by a program like NSWEEP. The filesweep mode's command list is as follows: A Next member B as been closed, there is not a library currently open, the filesweep mode will prompt with: No library open. and will accept only the following commands: L,U,X,Y,Z,? Likewise, if a library is open but only has a directory with no other active members, the message No member files. will be printed and only the commands listed above will be accepted. During the filesweep mode operationiles may be renamed as well as redirected by indicating a filespec along with, or in place of, a drive user specification. Examples: 1. -e *asm=*bak 2. -e *asm=5:*txt 3. -e fred.txt=sam.txt jane.inf=c8:girls.dbf The examples would produce the following results: 1. Extract all files with a type of .ASM to the default drive/user renaming them with the filetype of .BAK. 2. Extract all files of tyent member file to LST: (unsqueezes if needed) Q -- Extract current member file, unsqueezing if necessary (prompt allows redirection) R -- Rename current member file U -- Change drive/user defaults (returns file pointer to the top of the file list) V -- View current member file (unsqueezes if needed) W -- Wildcard rename of members (prompts foPrevious member C Close the library D Delete member E Extract member L Log new library P Print member Q Unsqueeze member R Rename member U Drive/User change V View member W Wildcard rename X Exit NULU Y Disk directory Z NULU command mode ? Menu Because of the extreme similarity between these commands and the commands of NULU's command mode, , each file will be listed in the order in which it is found in the directory, along with the size in K that the file would occupy if it were extracted to the default drive. If the filesweep mode is terminated by a return to the NULU command mode, any commands that followed the -F command on the previous NULU command line will be executed. -G GET FILESPEC Syntax: -g filespec Npe .ASM to user area 5 of the default drive, renaming each with the .BAK filetype. 3. Extract the member file FRED.TXT to the default drive/user under the name of SAM.TXT, and extract the member file JANE.INF to user area 8 of drive C: with the filename GIRLS.DBF. The only rule to remember is that if a destination filespec is entered it cannot be any less ambiguous than the source filespec. That is, "*r both oldname and newname) X -- Exit NULU (closes all files) Y -- Get disk directory for default drive/user (returns file pointer to the top of the file list) Z -- Return to NULU command mode (current library remains open) ? -- Print the filesweep mode menu (returns file pointer to the top of the file list) If, when the filesweep mode is entered, or after a library h  ULU will search for the filespec indicated. If it is found, processing continues. If not, the user is prompted to insert the disk containing that filespec. The drive is then reset and search again. The program will prompt forever until it receives the proper filespec or until a cntrl-c is entered, forcing NULU to continue without the filespec being found. This command can be useful when attempting to tain the currently active members, the number 1 or any number less than or equal to the current number of active entries may be entered. If the optional parameter listed above is entered, it will be used as the number of entries. (The KRUNCH processed may be aborted here by typing RETURN or 0. Please note that the library directory counts as an entry and will automatically be accounted for by NULU.)  ASM.LBR back so it could update the directory. Therefore the GET operation would be effectively negated. -K KRUNCH THE LIBRARY Syntax: -k[ REDIRECT OUTPUT Syntax: -> filename Syntax: -> With the first form of this command, NULU output will be sent to the filename indicated. If the file already exists, it will be deleted. All special characters   oblem: This means that you entered an ambiguous filespec where an unambiguous filename was required. ERROR 68: disk full Problem: The library disk became full during file addition or KRUNCHing or the destination disk of an extraction command became full. Solution: If the error occurred during KRUNCHing, NULU should have recovered by itself, reopening the old library. If it did not rec An attempt was made to run NULU on a system with an CP/M version number of less than 2.0. ERROR 88: seek to unwritten sector Problem: A sector required to gain access to a file is indicated by CP/M to be unwritten. Solution: The library directory or perhaps the library itself has become trashed at some point. Deleting the entry and KRUNCHing will probably render it harmless, but the saf NULU MODIFICATION) or a letter higher than "P" was indicated. Solution: Choose another drive or re-patch NULU. ERROR 77: not enough memory Problem: An attempt was made to open a library with a directory too large to be accounted for with available memory. Solution: Open the library on a computer with a larger TPA and reorganize it so it can be handled by the smaller system. ERROy to help. NULU MODIFICATION Patches will be listed in the order in which they appear in NULU.COM. Each patch is explained and the default values are listed immediately next to the patch address. All addresses are absolute hexadecimal. Patch Default Explanation 00171h 00h Non-zero makes NULU use the Z80 instructions LDIR and LDDR for data movement. over, then you removed the original disk before the KRUNCH was complete or a serious read error occured. If the error occurs during file addition to the library, operation should not be impaired, but no files that required additional disk space can be added to the library. Note that deleted entries can still be overwritten by incoming files as long as the file est course to take is to obtain a fresh copy of the library. ERROR 100: bad library directory Problem: The file specified could not be opened as a library file. Solution: The directory could be bad, but most likely the file simply isn't a library. Check it out with some disk editor like SPZ or EDFILE. ERROR 115: bad syntax Problem: Improper syntax was user to attempt some operation. ERROR 116: sR 78: user cancel Problem: No problem. NULU is simply letting the user know why an OPEN LIBRARY or KRUNCH operation has been cancelled. ERROR 83: no directory space Problem: An attempt was made to create a file on a disk with no free directory entries. ERROR 85: file not found Problem: The filespec indicated for some operation could not be located. ERROR 86: CP/M 2.x or higher required Problem: 00172h 50h Number of characters each full video line can contain. Not necessarily the same as the number you can see. 00173h 50h Number of characters visible on a line at any one time. 00180h 10h Number of contiguously numbered disk drives in your system. If you sizes match. The original file that caused the error will be recorded in the library directory as a deleted entry. If the error occurs during file extraction or unsqueezing the destination file is deleted because it is an incomplete file. Extraction can continue as before. ERROR 73: invalid drive Problem: An invalid drive for your system was chosen (see below,queeze decode table Problem: A file has a squeeze decoding table, but at some point the table is trashed or perhaps is missing. Solution: None really; get a new copy of the file. ERROR XX: undefined Problem: Unknown. Solution: Write down all information presented on the terminal. The number following the word ERROR is especially important. Get the information to me. Mail it or call and I will tr   have drives A and B, set this value to 2. It will prevent you from accessing an invalid drive. 001c5h 00h Set to a non-zero value to make NULU READ/ONLY. No operators will be executed that could change the library directory in any way. 001c6h 00h LU.COM was set up to  available for text...not a byte more. The 40th byte is for the null terminator. 03103h 0ah If you have trouble thinking in decimal, you can change this byte to get NULU to output all numbers in whatever base you please, from 2 to 24h (36ally executed when NULU is loaded, even before any other parameters passed on the command line. This might be used to create a version of NULU that, after loading, sets the drive/user defaults to B0:, prints the menu, scans the drive for library files, ontrol. The attributes are, in order: DIM or REVERSE VIDEO ON (DIM is preferred) DIM or REVERSE VIDEO OFF UNDERLINING ON UNDERLINING OFF CURSOR POSITIONING (not used in NULU) CLEAR SCREEN Each control becomes active as soon as it is patched in. Likewise, there is one string defined for the LST: device that will be issued immediately before printing a file. It begins at 038adh and has the same format as the strings above.  exit automatically if a command tail was used when LU was invoked. With the release version of NULU, it takes the -X command to exit. Set this byte to a 01h to get it to act like LU in this respect. That is, it will automatically exit after d). 03825h 0005h This is the address of the BDOS vector. All operating system calls go through this address. If you have some weird, non-standard CP/M implementation you can patch this to try to make NULU work with it. 03876h 3ch This is the number of lines that NULU then switches to the open library mode. That command line would look like this: -U B: -M -Y *LBR -O Notice that all characters in this line MUST be UPPER CASE. The entire line MUST be terminated by a null byte. Only 39 bytes are  FINAL NOTES Please report any bugs or problems to Martin Murray, P.O. Box 35972, Dallas, Tx 75235 or call (214) 351-6117. Donations will be gratefully accepted. It took a lot of work to produce NULU and if you enjoy it and it benefits you, don't hesitate to show your appreciation with a check!  executing the passed command tail, if one was present. 001c7h 01h Set to a 00h to start NULU with BRIEF mode ON (long messages not printed). 001c8h 00h Starting here are 39 bytes in which any valid NULU operators may be stored. This line will be automatic will print on each page during member file printing. Change this value in accordance with the line printer patch below. Starting at 03848h are 6 data areas used to define strings needed to control the console attributes. Each string is preceded by a byte indicating its active length. Then 5 bytes are available for each definition. Therefore a total of 6 bytes is consumed for each video c  ÃF NULU 1.1 (02/01/85) Copyright (C) 1984, 1985 by Martin MurrayÃUPPÿF D!9"ð2*L&###:MO ë*ë<ù"!9ë*ODM) "ë<Í+ã-OWORK-LBR.$$$ NCF NOF LBR Add membersBrief toggleClose the libraryDelete membersExtract membersFilesweep modeGet filespecKrunch libraryList membersMenuRename membersOpen a libraryPrint membersUnsqueeze membersReplace membersReplace/Add membersDrive/User chang*3! y°Ê·͸:Òÿ "4 ÍñÍÍ<"D 2v ëÍÍ<"U ÍáÍ*3!ÍFÍ13.>Í4!Í4&ëÍÃ-ëÍ.."�5!m Íê4ë> Í 7>k2s Í13 : ÍC3OÍÇ5ABCDEFLMOPQRTUVWXYZ? Êx õyÍ;ñ!1Ãë:*4 #à *4 +}´Â * ð ÍíÃ� Í13elete?Í÷2Ê- *D Íñ Õ åͧ%Í!3Deleting: Íè%á:‡·>OÂI>þà &Í13xtract to: Í\Ê- ÍêÍ6 Ã- Í13ind what? ÍýÍ\Ê- åO >*w#w#—wáÍ%Ê- Í�%ÍBK͸:ÂK * à Í13Log drive/user: Í\Ê� "�5͹Ã� >*ÍýÍ!3Delete, Extract, Print, Unsqueeze, or View (DEPQV) Enter one: ÍC32+ OÍÇ5EQDPVÊ- õyÍ;ñþÒ# Í!3Destination drive/user?13 closed. 2Ò:õ<·Ä®*ÃþÀ~þ-À#~GÍîxÊÕ<¿É*æ6éÍlÍSÈ!ÅÍ Í-Í!3Console input to be received from ÍÏ>OÍ¿'ÊŽõ:ö2,ñ2ö*ÃÍZéÍIÃ6Íl:×Íû*Ä“ÍIÈÍåÍVÈ!ÊÍ Í!3Console output to be sent to Í®*ÍÏ2Í„9Í*3>KÍ¿'ÌIÊ”2×:é<ö2é<Í©!ÂÃÊ7Íl!©åÍSÈÍÈ1>UÊI!",Í!3Press ^C to stop...Í®*ÍË:È\!€Íá- =Í ,È:ÒÍû*Ê\*¥+Í€.ÊuÍ!3Deleting: ͵->PÍD1Â6*,#",Ã6ÍlÍÍ*�5Í% :HþþÊœÍ\ÊIÃÊÍ%ÊIëÕÍ‚8ÊIÍ!3Undeleting...Í�%Ê Í!3 åͧ%Íè%*�%å*›%å*é%Í..—Í%á"›%á"�%áÊ Í13 cannot be undÊ"Í•Ê"å!+" }´áÂý Í·3!" É!" Í6:,2öÍá&Ãõ>ÍD4ÈO*�5> ¾ÚHw# ÂC<É!©åÍIÈÍåÍ}4È}´È" :öÍû*ÈÃ]*õ:R;2�Í­ͳERRORñÍIÍ'3>þÍ”>Ã4—Íë&2Íš9ͳclosed. 2×!Âó7Í!3CONOUT file Ã13ÍlÍÑÍ!3 Krunching...* ëÍ„9Í;$`i"Õ"—ëÍ‚8ͽ<Í�%ÊÕÍ4&Ñ#Íx<ÃúëŽÍ‚8Í8ÍG+!ðÍá-Íí!¶ö<Í“7ÍVÍ®*—ÍD1>͆3!ÙÍá-ÍÍ13will be krunched to >WÍ\3>͆3Í*3ÍÊŽ!"ðͧ%ë"\"!!ðÍVÍú1!"ÿÍ."à%!ö<"¦ÍË:Ê}"ë*à%}´ÄÂ:ÊÔÍ13 CRC ERROR-Continue?Í÷2Ê}!}´Ê×+"ÕÍ!3 Copying: !#"ðå—Í &å#ë!eView membersExit NULUDisk directoryZap disk filesRedirect inputRedirect outputREADYNext memberPrevious memberClose libraryDelete memberExtract memberFind memberLog new drive/userMass operationsOpen new libraryPrint memberUnsqueeze memberRename memberTag memberUntag memberView memberWildcard renameExit NULUDisk directoryNULU command modeMenu?DIJKMNOSUVXdktsambiguity errordisk fullinvalid drivechecksum errorCRC errornot enough memoryuser cancelNULU is READ ONLYcan't make f Í\\åÍb,áÌIÊ- Íá-å>:ÍÕ;#6áÍêÍÊH ë>þDÂ7 ÍÛ Ã# õÍ4&Í.."�5ñÍ$ Â# :+ þDÊ• Ã- Í13Library name: Í\Ê� "�5ÍSÃ� ÍïÃ- Í13Unsqueeze to: Í\Ê- ÍêÍéÃ- Í13ename to: Í\Ê- ÍêÍ<Õ Í5þ*Êà >*"22Ó Í13 Tagged = ÍF>kÍ;æ Í5þ Êô ÍÂ:> ÃÅ ÍÃ- Í!3Old filespec: Í\Ê- ö<<OÍ_<ë"�5Í!3New filespec: ë Ía Ã� ÍIùÍ8!"�5!"æÉÍ€Ã- >!ÙÍ/4Ãò5ÍC3OÍÇ5LOXYZ?Èáyþ?Â{ Ã{ Í¥NULU Filesweep Menu>͆3—2“ 2C>28 !\Í%> 2“ ÉÍèNo members. Íg÷ÍèNo library open. ÍgÃÍÍáÍ'3Ã13+ÍÒ9 É!eleted--name existsþ—Í &þÑÍ8ÃÇ~þ(À#å>)ÍÕ;Â6 á+É6>þ2HáÉ:‡·ÂX ÍjÂX Íx<ë6:Sî2SÉ> ͦ;2Û 2ç ÍIÊz ÍåÃ} !ä<ÍVÈÍ®*͘2!€Ís2Í'3× ÕÍ<ÑþÿÊø ‡‡‡‡‡!�O å 6áÍ]7.Å~õ>܆3~æÍ;ñ>܆3#Á y°Â½ >=2Û Âî Í*3>2Û Ã• Í13 | Õ ͽ2ÍÝ1õÍM2:R;=Ä*3ÍÃ/Í*3ñÍM2ú0ÕeÍ#<ÑÃh>?Íî!õÍë:—2H<2ÛÉ—2[ ÍlÍѲÕÍ„9*Ãë*�5>ÍÁÑõÍš9ñÊIÉ*�5"J*æ"P!Â"æÍ€ÍÃ/!"4 >O2# :ÒÍû*ÊÍùÍ8:ÒÍû*Í;$y°Ê·`i#" " ëÍ‚8Ê@ͽ<Í�%Êã ës#r#6 #åëͧ%ë:¸=ÍP7ëás#r#ëÿ ëùÍ‚8Ê@Í8!"*4 à ÍÍx<"ÿá€$Í_<ÍÇ-ãͧ%á s#r###"¦Í`&ÍM+>Í5+Í¡(Í5+Êyå*!"!!"IëáþMŸ*,DM!å"\á>OÍq)Ê}*,"Á(Í.—Ã4·ÊŸÍIÍÏ&—2Ò* ëÍ„9Í13Krunch aborted...reopening old library>K2# *�5å!ð"�5ÍSá"�5Í©ŽÃ8*I}´Êðë*,DM*\>OÍq)Ê}\—ÍD1ÍG+!ð>:ÍÕ;#>.ÍÐ5Í 2ÍÍÌÍ13 krunched.Í©ŽÍ8ÍÍÃÇ!"IÉÍÍÍ*3ÍIÊLÍåÍ% >ÃN!ä<—ÃN*�5å\Íb,áÊIÉ!ä<ÍV!ö<Ãá-Í¥NULU Command Menu>͆3—2„>-2C>28m!Í%>?2„ÉÍ'3Í3Í13 >͆3Ã13ÍSÈÍ®*ÍM2͘2ͺ0é—2Û>·Ê/Íû*>·ÈÍG+*ë<Íá-ÍVÍÈ1ÀÍÙCannot find ÍÏilefile not foundCP/M 2.x or higher requiredseek to unwritten sectorno library directorylibrary directory CRC errorsqueeze decode tablebad syntaxundefined Í<".=}þ1-ÿÔ<:I·ÊÚ!í°"{µ_TmÍ<Ãkþ ÒV>VÍIÃï2*#"ÍÍ<"!ër+sÍÕ22æͺ0!€N#Ë=Í_<ë 6!Œ"�5>2Ûy°Ê›:ˆ2SÍ‚Í" ÛÍÙABORTEDÃÔ—2ÀÍlÍÑ*�5>Íu!ÌIÍž—2$%Í;$>2$%ÃÆÍ!3Ã13 Í<·È>ÃD4:õ<2ÛÍÑÍ*3ÍÍÌÍ" 2$Éå!#" ͸:Ú—áÉÅÍñÁÍÃ<>·Ê2¾Â #N#F—<áÉ*4 Íñ##~"É #ÍÃ<*É*�5"]*ë<å"�5*æ͇5!"�5áÈåÍáÉ*æ>"¾À#åÍÕ;Ê}6#—"æáÉÍåÊ?ÍÂÔO:# ¹Ê‚2Ây2# ÍÇ5BCFKLMXY>ÂÈyÍÇ5'":;HJÊ‚:ö·ÂÈÍ©ÂÍ" Í©ÂÍI3þÈþ ÂÑ·ÉÍlÍ©ÍSÈÍ®*Í92ÍÈ1ÀÍÙInsert disk containing ÍÏÍ!3 and press RETURNÍÑÈÃëղ̈́9ÑÉղ͚9ÑÉ!Ë="�5"æ!µ~6·Â‚>·ÂÑÍáÍ!3-:‰·:# ÊŸÍÇ5ABCDEFGKLMNOPQRTUVXYZ<>?O!Íš7×Í“7ëÍò5Í(5âÍ;> Í;Íb>:Í\3Í13:>>þÍòÊX*�5:ö·ÂØ:×Íû*ÊØåÍ|&ÌnáÍò5Í]7 Â!Œ͇5"æ*�5É28>Íû*Ê7ÍË:  Í!3Replace it and press RETURNÍÑʤÍÈ1®*Ãîá:# ÍÇ5KOX©Í!3NO LIBRARY OPENéÍíÍSÈÍ®*!ÏÍ Í$ʲ2ÒÍÍÌÍ13 open. (Buffer size: *,ë* ,ÍÂ:>Í–:ÍFÍ13 sectors)Í©·ÃÊþUÂI:‡·>UÂI!ö<> ÍÐ5ÍÍ(5Í13 not found. To make it, enter the number of entries to allow.!"—Í!3 Press RETURN now to abort making the library. Allow how many entries: ÍIÊ~~þ<Â~Íå#åÍ(5áÉ!Ù> Í/4Ê‘Í}4Ê}´>NÊI͸:Úªã͸:Ò¼DM!ö<ÍVÈÍ“ÂiþMÂIÍÙToo many entries.Ã!ä<"Ã*�5>=ÍÕ;È6#ÍD<È"×ÉÍlÍÑÍå3ÍÚ3> Íb3: *\&ÍFÍ13, Total: *©%ÍFÍ13.áñÉ—2õ<>OÍ¿'Èå—!"Z&"^&"\&Íã(áÊú~·Âú #~Ö ÂúÂP#¶Âú#¶Âú#ÍÍ<åëÍÍ<"ÍÍá&áå))Íj&Úò"©%"Ú!ÍÒ9" ëÍš9Íö;*ë<>Í¿'áÈ>Ím:͸:Òóë!€"ü+{²ÊÃDM>O!Íã(Êú*ü+",Íî%{²ÄÂ:>kÄI*ø+ ~ÍB& x±Ââ:À+·ÉáÍ >M¿ÉÍá&>d¿ÉÍ„9Ãá&Í%È:À+2^'ÍË:ÈÍ�%ÊÓ<Ío!Ì3Ì*3ͧ%Íâ%ÍZ Ío!Ê< ÍÍ¡(Âg ·ÂIÉ!H'"{/" !Í�**ª*"L'*ø+ ÍÚ."I'ÂŽ þtÊIû åë*ø+ëÍÂ:"Á(Í13---> !ö<Í(5Ñ*ª*ÍÂ:>tÚI!*/" !Ío!:ƒÂ!>͆3Í!3^C=abort,^X=next file,L=next line,=next page>Ír*ü+",ÍõÌÏ&ñÈ*¸Í$ÀþM¹<ͽ<>KÍD1Ã*ÍÏ&>M¿Éÿ ͺ02�"‘Í!3Library: Í„*Í!3Name Index Size KiloBytes CRC2$%>!Í%åë"ë<Í�%Ê,åͧ%Á x±ÂÛëÍͶ>͆3Í!3DIRECTORY >͆3ÛÍ*3Íâ%>ÍÄ3ÕÍ­á>ÍÄ3åÍ­>ÍÄ3á:¸=ÍP7Í­>ÍÄ3:ê<õ>2ê<*à%ö<Íê4ë>0Í 7Í(5ñ2ê<Ûá"ë<*U%åjͶ*f%ƒͶá›Ͷ>͆3Í!3Active sectors Í!3Unused Í!3Total <2$%>͆3ÃÆͳÃ(5ö<Íê4ë> à 72w:À+2^'Õ—Í%ÊÜ<ëÍ‚8ÊÜ<á =Íb,Ê%ë\BKÍJ.Ê%Í®*Í!3Extracti—<É2m%\Íb,ͽ<Õ!"_%"N%"U%"f%DM!#åÕÅͧ%Ê~%þÿÊ~%2H%Õ*é%ë!\Í€.ÑÂn%>·Â^%!#"N%!"U%Ãl%!#"_%!"f%þÁÑáÂ&%ës#r#ëÃ&%á"�%DMÑáá"›%y°>UÉ!|µÈ+"�%Õ!^#V#"›%ëÑÉë!ÍÂ:Úâ<*,DM"a&ëÍ4&"é%<~õ ÍÃ<ÕÍÃ<ÕÍÈ<"à%á"d&ëá"g&ñÉÕÍè%ÑÉÃÇ-Å*ø+å " &6#6*,DMáÍ;"ÁÉÕõÍ4&>2õ<~å!Z&·Ê&&<##Ã&^#Vr+sáñwÑÃB&å+>͇:ë*ø+ÑÉõå!Z&·ÊQ&<##ÃG&4ÂWáñÉ!ÉÅåAÍÒ9² Íp9áÁÉ~·ÊÓ<Í &Êû7#Ã|&Åx±Ê�&~Í &Êž&# ÃŒ&<ÁÉÅÕåÍ�**ª*w:é<æÊË&*¬*+|µÂÁ&Í''ÃÞ<*ü+#"ü+ÃÞ<<ÃÞ<åÕÍG+ÍD1ÑáÈÃá&—Ãë&>ÿÃë&>þÃë&ÅÕåÍ�*<Ê'<Ê ':¬**ª*�5Í% :HÍ õÍå3ÍÚ3ñÊIÉÍ!3Library ÉÍ'322·Ê'3O>·Ê?>Í4ÃBÍ*3>·Ä;yÍ;> Í;Í(5#:2î22Ã+:é<õö2é<Í*3Í(5ñ2é<ÉÍjÀÍaé1ÉÍj©ÍD<2¡ͽ<Í“7>Í;*ë<Ía>ÍD4Êš*�5å͇5áÍò5~þÂÃ:Š·ÂÆÚÍ©ÍÔ*æ6Ã" Íí:×Íû*Ä“Í*3>ÍM2>Íâ2:.=þ1ÚmÍ<*P €Í“7*ð2ùÊ</Ã<!"*P ÍD<Êï2ëÍ}.qëÍ“7*ð2ùbk.ˆs#r.éÍlÍÍ*�5Í% ë*Ãä<͸:>sÊIë:HÍB$ÊIÉ>Oó>Ró:‡·Èá>OÍIéÍ!3Brief now O:‰î2‰·Âš>NÃ;Í73FF:é<î2é<É:# ÍÇ5'":BHIJLMOUY<>ÊÆ>ÃÈ>?2# ÉÍG+å*ë<Íá-> ÍÐ5Í(5áÉÍ‚ÂàÃ" >ÿÃ7 ÍÇ5'":;ABCDEFGHJKL†3>2*!Í*3ÍÊ!æþÈÍ!!à !þÈÃIõÍ;ñþ À>=2*!ÀÍo!ÊA!:ƒ2*!> Ãb3ÍC3ÍÇ5 LÊA!!V!Ãë:`!e!j!ß<`!>Ã,!>Ã,!ááà :é<æÉ2" =Íb,È! ="<+!*$Íá-!",}2Â"ÍË:Ê>#!"$—2$%Íö#>þÍö#*,#", =!*$Í ,Ê6#Õë̓<=Í$Âã!!*$>.ÍÕ;#ëÍ$Êã!ÑÕ!!"$á#Í*3Í%Ê1"ÍÍ<"$Í$Ê1">þOÊc"þRÊc"Íè%Í13 already exists--not added.Õ!:"þRÂc" =͵-Í13 not in library--not replacedÕ! =Ͷ.Ò–"͵-Í13: Cannot add an 8 megabyte file!Õ!"¦#Í$>þÄ &Í<$Í�%ÊÁ"åͧ%"�#*¦#ÍÂ:á¤"ÍL#Ã*#>þDÂã"Í13No room for:  =͵-<à #*\&}´>f #Í13No directory spang...!H'"{/:^'Íû*ÍË:Ê%Í�%Ê$Í.à <õÍ8ñÉÍ!3 ͧ%*é%ëÍÃ-\ÍñÍ13 to Í`&<Í¡(Â`·ÂIÍýÃæ&!H'"¸Í�**ª*"L'*ø+ "I'><´ÍÚ."I'Â�þtÊIôåë*ø+ëÍÂ:"Á(!ö<̓<ÍéÑ*ª*ÍÂ:>tÚI!*/"¸ÍýÍÊÆÍ &Ê÷÷þÂ÷ÍÝ&Ê÷:^'Íû**,ë*à%}´ÄÂ:>KÂIÉ\Íb,BK! =ÃJ.ÍIÃÏ&\Í92͵-!ö<Íá->KÍö;Í¿'ÀáÃI* ëÍ„9:õ<·Êá&Íî%*,>Í–:ë!DMåÍq)áÈÍã(Íæ&ÈÍÝ1õÍG+Í92ÍM2ñÃM2—Í%ÈÍ!3Deleting...Í�%ÊÓ<åͧ%ÕÍ!3 Íè%Ááy°Â–>ÿÍ &ÍžÃp>þÍ &Ãp*©%+"Ä>2õ< *ø+"º!ºÃ6A õåÍ!3Active entries: *N%ÍFÍ13, Deleted: *_%ÍFÍ13, Free*ÍÀ;Í''ÊÞ<ÍG+Í·1ÊÞ<>2¹+Í�+*ú+ëÍ8—<ÃÞ<*ü+DMÍ™.ÍG+*ø+Ís2Íß0>D¹Íû*—Í¡(õ*ø+ "I'Í�**ª*"L'>Íû*ñÂH'·Â¹<>ÉÅå*þ+DMͧ' 'Í*ʤ'!ÃŒ'#"þ+áÁÉå*ü+͸:á>RÈÚ½'å*ø+ ~áÉ¿É2^("D(`i>Í¥:>͇:"'(:À+Íû**×+:NG~·Êî'#Âá'>FÉ:N<�Íû*Íö;*œ94PYëÍÂ:Ú (>Í–:>͇:¼Â$(>€½Ú$(Ê$(—>MÉDMÍÂ:Ú1(BK*ë<ë*ú+s#r`i" ,Í�+!:^(=$Ìx<Êc(Íb,È:ï<þ?È>Íe-È*ø+ë* ,ë*ú+ëÍ‚8È*G+!$>ÍÀ;:À+õÍû*>2¹+:é<ö2é<ñ·* ,DM*ø+É·Ê·("Ä(ë"¸(`i"Á(!",{²*,È!>OÍã(õ"Ä(*¸(ÍÂ:"¸(ñÂU+þM¹<·É+")ë"8)!"1)þOÄM+ÅPY* ,ÍÂ:ÚMNOPQRTUVXYZ<>?ÉÍÑ:éÍû*ñõÍ &ÅÕåÌnáÑÁ>Íû*ñuƒ3.²zí6 i Þ OÆ5n<Sïégb¹? a 6”ঠ­ ¼  ÿ  \ € S u { � º é ù ÿ Ñ:CV¦ ¦ ¦ <  "¸\Íb,È:ï<þ?È`i#>Í¥:"ü))Íj&Ú*å!Íö;>PÍ¿'áÈ>2õ<͇:͸:Ò'*ü}´Êï+å !.Í‹&ÂÞáÃÕ" *ø+6s#ce for: ÃÙ"ë*$"�#*©%ÍÂ:ÍL#Â*#õÍ$>Ä &ñ•!2Â"ÍIÕ!*,+}´>Uõ>2$%ñ!\"<+ÉåÍ$Êe#Í13Replacing: Ãt#Í13Adding: á"å#—Í &ë! =Í“7ë̓<͵- q#p#å##"Æ#î#Õ =Íú1*,DM!"ð#>Í5+Í¡(Í5+ÂÊ#·Â¹<"<É*�#>OÍq)"�#*ð#"ð#Êã#—õ#õ!>þÍ &ñÉáq#pÉÍ<$Í�%Èͧ%͸:Úù#"$Ãù#!+|µÈ#åͧ%áÉ!'$Ã.7LBR—!ä<Ã%ÕÍ%áÈÕ =Íb,ë€\ÍJ.áÈ%Í‚8ÈÍ!3Renaming...Í�%Ê÷$Í!3 ͧ%*é%ëÕ€! =ÍJ.*�%å*›%å`iÍ..—Í%á"›%á"�%ÑÊ×$ÍÇ-Í13 can't be renamed--new name existsÃq$<2õ<ÍÃ-Í13 to !� Í_<ÍÃ-Ãq$%Í8Íž  L)>Í–:|µ>MÊg)DM*ø+Ís2ÍG+!#")̓2Í1ÂQ)Í_+Íg2!#"1)!+"8)|µÊc) x±Ê^)Ã)>RÃg)—>X*)+")Ãd)>MÃd)<Íi+Á*1)ë*)#É+"¦)ë"À)!"¹)PY*ü+ÍÂ:ÊÔ)ÚÔ)>Í–:|µ>LÊû)DM*ø+Ís2ÍG+!#"¦)̓2Í 1ÂÙ)Íg2!#"¹)!+"À)|µÊë) x±Êæ)â)>RÃû)—>D*¦)+"¦)Ãì)>LÃì)<õ*ð<ë*ø+ëÍÂ:DMñ*¹)ë*¦)#Éå!"ü+áÃ*ÅÕå!"F*Í�**¬*>Í–:|µ>MÊÞ͆3>2R;ÉÍ*3Ã13Í*3Í13 ÉãÍ(5ãÉãÍ(5áÉÍõ:ð<ÍI3ð<å>ÿÍ7<ÂÜ<*ó<#"ó<ÃJ3Íè;÷3ÅÕåG!„N#~¸Ê{3 ÊÞ<Ãn3#N#ͪ3ÃÞ<ÅÕåG!_N#~¸ÊŸ3 ÊÞ<Ã’3#N#Í·3ÃÞ<å ~6áõÍ5ñwÉå ~6áõÍ(5ñwÉ2Ð3:R;æøþÐ> Í;ÃÇ3õ:é<î2é<ñÉõå! 4:é<õæÊÿ3ñæý2é<ͳ7áñÉñö2é<ÍÊ7áñÉ;44õÍe;ñÅO:R;¹Òà<> Í;à 4å*L4ã++"L4ÍD4##ã"L4áÉÅÕåO:L!É=#å6+q¹ÒY4wë Í<á^#6{·ÃÞ<õÕåö<Íê4ëÍ(5áÑñÉÅÕ—2ç4ÍD<Êâ42ò·Éë"5ëõÅåÍù4áÁñÉÕ:êtÃ/ÅÕå!]/å>·Ê>/=22/>ÉÍm/þ�ÂY/Ím/·ÂP/>�É==22/:O>·Â„/ÕÍÑʾ/O>=2t/yO!Ò“/##^#Vzæ€Ês/y2q/zþþÊ­/{/É*a/ÍÂ:>ʾ/>J¿ááÃÞ<ÅÕåÍÝ1Æ@2ß/Ö@Í@0ÊÞ<Í13Drive : Total å*¿=]T*»=#—zW{_Ò0+Âõ/:¸=ÖÊ0)=à 0ÍFÍ13k, Used ÑÍÂ:ÍFëÍ13k, Free ÍFÍ13k<ÃÞ<ÅÕ:.=þ1Ú{0*ð<å*ë<åÍs2ÍÝ1=_.Í<Dá^#VáÍs2<Âq0—xÃx0ë>Í–:<ÑÁÉͺ0Í<ë*»=#ÕÑÕÚ—0W+|µÊ¦0ÊŒ0zÃ’0`i:¸=Öʵ0)=°0Ñ<Ãx0õÅÕåÍ<ÍÉ0Ã×<¶=Íx<:.=þ1È—ë+w+wÉ͘2*í<|µÊ½2+"í<ÕÍ<ѷ½2Íg2Ãâ0Í 9ÍÂ:à 9"Ãñ8áãÃÞ8!|µÈå!#~“#Â09~’Ê;9ã͸:ã#Â#9áÉ++~æ<2V9~>2h9ãbk"^9á<É>·È=2V9!å##"^9á>·ÄÈ<—<ÉÅÕåëÍö;*œ9Í}: ÍÂ:ÃÞ<å*œ9ÍÂ:Ú•9"œ9—<áÉ>M¿áÉå!"œ9áÉÅÕ·ÊÆ9_—2Í9DMÊÌ9ÍÒ9ʱ9W:Í9‚2Í9ñ9!ÃÏ9>·ÑÁÉÅÕ—2:>ëõ—x±Ê:xGyOÒø9Òø9å!:4áë)ëñ=ÂÞ9Ã:ñ>·ÑÁÉy°ÈÅÅë"Q:ëÁÅÅÕ}‘|˜ÚB:3333xÚD:ÅÕ—yOxG—{_zWÃ:ÑÁz³Ê[:}‘o|˜gå!"Q:áÃ:Áë*Q:<ÁÉå`i͇:DMáÉå`iÍ–:DMáÉë͇:ëÉõ}/o|/g#ñÉ·Èõ—}o|gñ=È:·Èõ—|g}oñ=×:·Èõ—|g}oÒ³:#ñ=æ:åÕPYÍÂ:ÑáÉ}“o|šgÀµÉ>ÿÍ7<þÀ>NÉõÅÕå~õwñ# x±ÂÚ:Ã×<Õ_Í <ÑéÅÕåÍ<ÃÞ<Ä�+ñ2À+Í{+È·À>uÉ:NOß+*ë< ÅÍ‚8Á×+*ë·ÊÐ+O:N¹ÒÕ+—>BÃõ+·!+ "¶+!++ "ú+ÍÈ<"¥+4 "ø+áÁÉÅÕå!"?,!€Ís2áÑÕåÍb,ÊÞ<͘22\,Ã3,ÕÍ<ÑþÿÊ·2O!+"?,}´Â1,y‡‡‡‡‡!€O #Íb,><÷2ÅåÕ:ê<2Y-> 2ê<2ï<—20-ÍÕ22S-Õå! ë>  ÍÀ;áÍ_<ëå>:ÍÕ;ÊÓ,6#ãåÍ}4ʸ,|·Â¸,:Rg}¼Ò¸,2S-á~·ÊÓ,Í6#ʹ,Ö@O:Q¹Ú$-yÃÖ,ÍÝ1áÑ ~#þ*Êî,þ.Êý,Í-ÃÜ,?yÍ->¸ÊÜ,Ãð,xþÍ :|µÄù4{Æ0þ:Ú5Æ!w#"56ÑÉ~·ÈÍe;#Ã5Å~·Êà<#þÿÊ)5+þ Ê€5þ Ê€5:ç<·Ê`5G:R;¸Ò`5> Í;> Í;ÂT5Ã5:è<·Ê5G:R;¸Ú5Ê5> Í;> Í;Ã55~#Í;Ã)5Õ+ͽ5"Å5Ë=~·Ê®5þʬ5#Ͳ5Ê•5ͽ5—Ñy°É~ÍÇ5 É#Ͳ5½5ÉãÍ<Íû7ãÉÅÕåOÍÕ;ÊÞ<áåyÍÕ;Êî5T]#ÅÍ“7ÁÃÚ5<ÃÞ<õå~ͰD÷2ÅÕå͘2!€Ís2Í<<÷2ÅÕåÍ<<ÃÞ<ÅÕå͘2Í<<>S÷2ÅÕå͘2Í<<>U÷2ÅÕå͘2åë\$Í_<Ñë Í_<mÍx<\Í<<>U÷2õÅÕå=Äw:%Í<Ã×<ÅÕå_:Q»Úc2Í<—<ÃÞ<—ÃÞ<Å*ð<€ ÁÃs2õÅÕå"ð<ëÍ<Ã×<Õå͘2!!Ñs#r#6áëý2õåÍÕ22Ä2!#~æÍâ2~æw"Î2áñÉáÑÁý2õåÍÕ2õ>Íâ2ñ·!¶wáñÉÅÕåÿ Í<ÃÞ<õÅÕå_ Í<Ã×<1Ã<Í13 (y/n)ÅÕëy°Ê;Í‘< Ã;ÑÁÃË;ÅÕåõ_:é<Ü<ñþ ÊQ;þ ÒQ;þ ÊU;ÿþÊQ;þ ÂÞ<:R;=æøÆ GÃU;>€G:J¸Ò^;x2R;ÃÞ<ÅÕåõþ _Â~;Í“;:–;=æÊ�;Ão;Í•;ñáÑÁþ Ê�;þ À>2–;É ><2–;:é<Ú<ÉÕW:K ’ʽ;Ú¼;�Ò­;ý; yÑÉõ·ÊÚIáÃ,-=áÑõ>·ÂC-> ?bk#ÍÀ;y2ïÍÀ;!#>w>2ê<ñáÍû7#ÁÉͰ<þP›-ÍÈ1Êé1Í13File exists-delete it?Í÷2È>PÍD1ÈÃé1þKÊ’-2©-Íú1Àõ>þMʱ-ñÉñÃé1õå!ö<Íá-Í(5áñÉ—ÃÉ-> åõ!ö<Íá->:ÍÕ;#ñ·ÄÐ5Í(5áÉÅÕåõ͘2:ê<õ> 2ê<åÍÕ2o&ã·ÌÝ1Æ@w#ëãÍê4ëÍD< 6:#ÑëÍx<ë6.#ëÍx<ë6ñ2ê<ñ÷2ÅÕ# >.Í_<ëÑÁÉÅÕå~> 2z.#õ~þ?Êh.þ?Âg.2z.~ñ=ÂT.#PYÍx<>þ?ÃÞ<ÅÕå #~þ?Ê’.–ÂÞ<Â….ÃÞ<õÅå`i—|g}oÒ«.# ."í<áÁñÉÍÈ1È͘2ÅÕÕ#Í<á# —¾ÚÕ.+V+^ë<ÑÁý2ÅÕåÍÍ<vÿ͸: /2t/22/ëÍÍ<"±/!"a/ëö<ë*7ÉÅÕå2"7åÅͽ<Í“7á•áÒÞ<Å=/ÍÀ;ëÁÍx<ÃÞ<Ͱ<297x±ÈÅ>þUõ~̰MÚ¡8*9ë*OÍÂ:¦8>T¿ÑááÉëDM#"9Ñ*!9 ñw#s#rÍ9ͽ<á"ë<ÍU9ÊÓ·  2/1/85 Please let me know if you work with libraries that have in excess of 200 members. I am seriously considering some future NULU upgrades that would limit the maximum library size to somewhere in the range of 150 to 200 members. However, if there is a sufficient number of people that use libraries larger than that, I will recant. Thanks, Martin Murray P.O. Box 35972 Dallas, TX 75235 (214) 351-6117 EVENINGS AND WEEKENDS ONLY!!!!!!  ; Mead, WA 99021 ; Northwest GodBout/CompuPro RCP/M (509) 624-6799 ; S.M.U.G. (509) 624-7321 ; ; ************************************************************** ; * 01/25/85 Revised for Version 1.1 (kwa) * ; * 12/02/84 Added EQU's for Patch ORG's (kwa) * ; ************************************************************** ; ; See NULU.DOC for further information on the following values. ; ; true equ 01h false equ 00h ; patch1 equ 00149h ;Z80 instructions, Number d CP/M 2.2) be sure to put your BDOS location in at 3825h with DDT or EDFILE. It is default set to 0005h which is the standard BDOS entry point for standard CP/M 2.2 If you do enter your BDOS at location 3825h it must be done in reverse order. example: BDOS is D406h, it must be entered as: 06 D4 Location 3825h would be 06 Location 3826h would be D4 Steve Sanders (Sysop) DATA COM NETWORK RCPM SYSTEMS #1 & #2 (813) 937-3608 (813) 937-6829 s. See NULU.DOC for details ; db '-O',0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0 db 0 ;Terminator...Do Not Change org patch5 dw 5 ;BDOS vector (See Doc) ; ; The following routines are for a TeleVideo 950 terminal. ; Change to suit your terminal. Use This Format: ; ; ID byte,Number of Bytes,byte,byte,byte,byte,byte ;7 bytes total ; Do Not Change The ID Byte ; org patch6 db 1,2,27,41,0,0,0 ;Background Mode ON db 2,2,27,40,0,0,0  NULU10.MSG ========== Just a couple of things to remember when using NULU10.COM ******************************************************* ** K A Y P R O U S E R S ** ** ** ** USE DDT OR EDFILE TO CHANGE THE BYTE AT LOCATION ** ** ** ** 00171h from 00 to FF ** ** ** ** THIS MAKES IT USE THE Z-80 (KAYPRO) INSTRUCTIONS ** ** FOR DATA MOVEMENT. THE PROGRAM WAS WRITTEN IN ** ** of Characters etc. patch2 equ 0014eh ;Number of Open Files etc. patch3 equ 00151h ;Number of Contiguous Drives and Users patch4 equ 00187h ;Some Toggles and Storage Area patch5 equ 01944h ;BDOS Vector patch6 equ 01a60h ;Terminal Control Area patch7 equ 01a83h ;Number of Lines for LST patch8 equ 01a86h ;Printer Initialization Area ; nl equ 03 ;Nesting Level for NCF files org patch1 db false ;Use Z80 instructions for Data Movement db 80 ;Number of Characters each line can contain db 8; NULUTERM.ASM 01/25/85 ; ; For NULU.COM Version 1.1 ; ; The NULU.DOC contains the information to patch NULU.COM ; using DDT and the save command. An easier way is to use ; this routine and MLOADxx.COM. Set the various items as ; desired and assemble with ASM or MAC to obtain a hex file. ; Then use MLOAD as follows: ; ; MLOAD NEWFILE.COM=OLDFILE.COM,NULUTERM ; ; NOTE: NULUTERM is the hex file NULUTERM.HEX. The file ; type extension is not necessary. ; ; Keith W. Antcliff ; P.O. Box 906 ;Background Mode OFF db 3,3,27,71,56,0,0 ;Underline ON db 4,3,27,71,48,0,0 ;Underline OFF db 6,1,26,0,0,0,0 ;Clear Screen org patch7 db 60 ;Number of lines/page for LST ; Number of Bytes,byte,byte,byte,byte,byte,byte ;6 bytes total ; org patch8 db 0,0,0,0,0,0 ;Initialize Printer ST ; Number of Bytes,byte,byte,byte,byte,byte,byte ;6 bytes total ; 8080 ASSEMBLER LANGUAGE NOT Z-80. ** ******************************************************* ALWAYS BE SURE TO CLOSE THE "OPEN" LBR FILE WITH THE -C COMMAND BEFORE EXITING - DO N O T EXIT WITH A CTRL-C NULU will write the directory when -C is used but will not write the directory if you bail out with CTRL-C If you have -Added or -Krunched the library, the new directory must be re-written to disk or the file will be T R A S H E D !!! If you have a highly modified system (not standar0 ;Number of Visible Characters/Line org patch2 db 04h+nl ;Number of Open Files Allowed dw 0ch+nl ;Number of Relocatable Tasks org patch3 db 16 ;Number of Contiguously numbered drives db 32 ;Number of Contiguous User Areas org patch4 db false ;NULU Read/Only db false ;Exit like LU on command tail db true ;BRIEF mode OFF db true ;Allow ESC,RET from PROMPT etc. db nl ;Nesting Level for NCF files ; ; The following 39 bytes can be used to store any ; valid NULU operator  ÃC SUPERZAP 2 FOR OSBORNE 1 (C) W.M.DAVIDSON JULY 1981 DBGRÿCNFGT=“SUPERZAP VERSION 2.2:·À:*;þUÀ<2*;ÉÍÿ‹yþ,Êu":=ú°???????????DSK:???????????É:$:·Ä˜:":·Ì˜ÊÙ&=Â? 4=2W:<2$:Ã? 5ÃÏ&:":_þ2>ÐW!%:7~ÉõÍÝ&$:ÒMAIN*ù*0í°*–"»€"½í[»Í!"¯¯2ÒÍ2Ó2Ö<2Õ!�> ¾ #úçÍœ :€þÚ¤Ía9ÍM:\·(2Õ=2Ö!]~þ !ÜÍ  ~þ?(#øþ?(ÍW!]Í :×!Íá  Í÷íÍÈ Í:Ó_Í ͉ÍÿÍÖÍ?!qÍÉ ÈBWTR*n|µ *h"n*n+"n͉Í?ÍÿÍÖÉSPBL*r" !šÍ!"rÍÖ:±Æ2[:°2ZÍJÍuÍŽ2Æ!SÍá åí[rÍ Ñ"rdþ * "rXþ í[rÍ+íSrDþ =·í[r*^íRòÉ Í°* "r¯2Æí[ríKjÍ í[lëíKYÍ+íSn"pͰ:Æþ (þ(ÃR ÍÿÍÖ͉Í?!—ÍÉOLSELì í°ÉNXFS*À#"ÀÍ\:¿· >ÿ2 Ͱ*Ä"À"}ÉPRFS*À|µ Ͱ+"ÀÍ\:¿· >ÿ2Ãs Ͱ*Ä"ÀÉFSCH:Ç·(ͰÍÆ !öÍ:+ ·(Í|Í\>ÿ2ÉPSCHÍÆ !­Í:+ ·(Í´͉Í?ÍÖÉSCCH! Íô!, Í>2+ 2š2* 2›¯2²2±2³ÍbÍJÍuþ Ò !½ Íá(͉Í?ÍÿÍÖ¯2¸2¹2º:ËÍ×!ËÍÍuÍŽ2Æ!³Íá(Ͱ¾Í÷:×þP à Éá:7=<2ê;Ä�¯2ê;Ã,!”,Í-!˜,Í-*:|µÊN,>,ÍÖ Enter Hex Track Enter Hex Sector 2Enter Hex Block N Next SectorC Change SectorP Previous SectorS Select SectorD Next TrackT Select TrackU Previous TrackX Exit from Superzap6F Exit to File List6K Select Block Current-Track Current-Sector 2Current-Block  # 7 NCPSDTUXFKA ¤ m ˜ F m  kM@ DPSI!ªÍ*nÍx!­Í*pÍx!°Í*rÍxÉUBLKí\Í!"}"À"ÄÍ\:¿· ÍW\Í!U"¯Ͱ:ÒÍÔÉWRBF*»"¶>2±2³*¶"´>2²2[ÍiÍJÍO:ºÆ2ºÍœÍJ*¶~#"¶Ígͼ:²<2²æ ͼ:²þ Ý>2²*´"¶Í­:[=2[ÍJ>|Í�*¶~#"¶ÍS:³<2³:²<2²þ ã>|Í�:±<2±þÂMÉ #&),0369?@ABCDEFGHIJKLMN (2ºÍOÉ:¸Íg:¹Íg:ºÍgÉÍiÍ~É!á:³æO ~2ZÉ:š·(Í­Íœ:›·(:[<2[É!é:³æO ~2[É·!ù:³æO ~2[É:Æþ 8þ€8Ͱ':³&oí[»:ÆwÍSÍœÍJ:ÆÍgͼÍ­ÍDÉ:ÆÍŽ2ÆÃXFDPŒENDR¯2×ÉFDMD\Íþÿ !n"¯ÍMÃÊ!"À"Ä"}Í\:¿þ( !U"¯ÍMsÍÈ!˜Í\Í4]Í!öͯ2¸2¹2º/2:·( Í!Í?¯2!ËÍ(!ËÍÍuÍŽ2Æ!÷Íá(ͰÍ÷:×þF À\ÍÉ Select Function ===> $Enter Hex SectorN Next Sector(C Change SectorP Previous Sector(F Select New FileB First Sector of File(S Select SectorE Last Sector of File(X Exit from Superzap File-Name Access $Current-Sector 5File-Offset d:filename.typ R/s ) 7NCPFBESXͰÆ Í÷:š·(Í¿Í÷:* · Í! ÍôÉ^H Cursor left(^L Cursor right^K Cursor up(^J Cursor down^I Change Side(CR New Line^Q Cancel changes(^Z Save Changes Ú .Dl‡”LEFT:›· :³=æ2³:š· :›/2›ÍbÍJÉTOGL:š/2š>2›ÍbÍJÉDOWN:³·Ææ2³ÍbÍJÉUPWD:³·Öæ2³ÍbÍJÉRGHT:šþ :›/2›:›· :³<æ2³ÍbÍJÉNWLN>2›:³·Ææp2³ÍbÍJÉCHND>ÿ2* 2+ ÉQUIT>ÿ2* ÉSFSN*À"Â!ãÍ!"À"}Í!:òÆ2[:ñ2ZÍJÍuÍŽ!SÍá ë*À))))"À"}¯-þ !"À"}þ !Á¯íg[níKYÍ í[pí[l·íR0!"rëíKjÍ+*^·íR8íSr!"rÉNXPS*p#"pí[Y·íR8 !"pÍF  ͉Í?ÍÿÍÖÉPRPS*p|µ *Y+"pÍ *p+"p͉Í?ÍÿÍÖÉSPSN*p"@ !‡Í!"pÍÿÍÖ:®Æ2[:­2ZÍJÍuÍŽ2Æ!SÍá ë*p))))"p?þ *@ "p3þ !q¯íg!píg"þ ·*pí[YíR8 Ͱ*@ "p¯2ÆͰ:Æþ (þ(ê ͉ÍÿÍÖÍ?!„ÍÉþ;FRTR*n#"ní[h·íR8!"n͉Í?ÍÿÍÖÉSPTN*n" !tÍ!"nÍÿÍÖ:«Æ2[:ª2ZÍJÍuÍŽ2Æ!SÍá ë*n))))"n?þ * "n3þ !o¯íg!níg"þ ·*ní[híR8 Ͱ* "n¯2ÆͰ:Æþ (þ(Ã!SÍá(ͰEM:ÆÍS:³&oí[»F:›·(xæð± y·æðOxæ±w2ÆÍ­ÍJ:ÆÍSÍœÍJÍDÉ0123456789ABCDEFDLST:ÕÆ@2Ú!ÒÍ*Ú"ʯ2Ð:Ï!о(H~Ë?Ë?æ_! F!:Ðæ_n`Íì:•Í�ͼí[ÊÍ!ÝÍC*Ê"Ê!Ð4(¯ÉDrive d: Directory ListRDIR*½"Ê"Ú+"د2ÏëÍþÿÊK_*»"ÈÍÂ*Ø"ØëÍþÿÊK_*»"ÈÍLÍÂÃ(É*Ú"Ì*Øí[Ì·íRúz*È# Íœí[Ìúz!"ÌÃRíSÊ*Ø#·íRDM*Øå"ØÑx±Ê›ëí¸É>2Áy°Ê¼ÅæG~æ�2ÁÁ¼# á:Á·É_í[Ê*È#í°!Ï4É2ó! æ_F!:óæ_n`ÍìÉ |EÍ×<úÉFMT! x I MTnžk’DRMD:Õ2ë¯/2‡!]^6  í°Íð:‡·(ÍÈ!˜Í!—ÍÍh¯2‡*¯|µ !RÍ(Í(*¯ÍͰ!"¯:ÒÍÔÍuÍŽ!6Íá(Ͱ@Í÷:×þD Ã0É^H Cursor left^L Cursor right^K Cursor up^J Cursor downS Select FileX Exit from Superzap6C Change Drive6P Select physical sector  SXCP>¥Wq‹Ïk‹a** No records in file ** File not found ÊPSMD:ÖOÍ'Ií°*SYí°í[YíKfÍ å"l:\_íSjíK^Í Ñí[YëíKYÍ+íShÍ$!"n"p¯2¸2¹2ºÍÈ!˜Í!­Í!Àíg*À"}þ (Ͱ:Æþ ˜*À"ÄÍ\:¿·(Ͱ*Â"À"Ä"}Í!Í?Í!> 2Æ!¸ÍÉFRFS!"}"À"ÄÍ\Í?Í!ÉLSFS\#Í*}+"ÀÍ\Í?Í!ÉCHDR!Í(!Í>ÿ2‡ÍuÍŽþ NÖAõ!%Í(ñõOÍ'|µ ñͰ5ñ2Ö<æ2ë2Õ Í:Ö_Íí[»Í:Õ2\>2ÒÍðÍM:×þD(�ÉEnter Drive Name or press ESC ===>** No files on drive -:Ò=æ?2Ò;þÿ î:ÒÍÔÉ:ÒÖæ?2Ò;þÿ í:ÒÍÔÉ:ÒÆæ?2Ò;þÿ í:ÒÍÔÉ:ÒÆæ<2Ò;þÿ í:ÒÍÔÉ:Ò<æ?2Ò;þÿ î:ÒÍÔÉ!Ï:Ò¾ÚÊ>ÿÉSTFL:Ï· Ͱ!n"¯Z:Õ2\:Ò&o))))í[½] í°¯2h  N!Ýæw#ø>.w#æ€2Çæw#ò:Ç·>W(>O2îÉFMTD!Û· > w#wÆ@w#>:wÉåõ:Zg:[oÍìñáÉ>2¿2*}"Ä*À"}\!Í2¿É\"ÍÉPSRDíKnÍ*íKp*ní[f·íR8 í[IÍ<DMÍ-Í3ÉPSWRíKnÍ*íKp*ní[f·íR8 í[IÍ<DMÍ-Í6ÉMTCHÅN#Åí±á ·íB+¿ÁÉDOIT)ÍéLDHLõ~#foñÉMULT>!·ëíjëÒ Ò=Ê&)ÃÉDIVD>!)ë)ëÒ8#·íBòA =ÊHÃ0ÉSETD>D2×ÉSETF>F2×ÉSETP>P2×ÉSETX>X2×ÉCHRIåÕÅÿÍþ(õ2ÆÁÑáÉFOLDþa8þ{0æ_ÉCHROÅÕåõ_ÍñáÑÁÉALRMõ>Í�ñÉSPCOõ> Í�ñÉCLRSõå!‰ÍCáñÉCLRLõå.gÍì!�ÍCáñÉCURSõå!‘ÍCá|Æ Í�}Æ Í� to a scratchpad buffer, or exchanged with the scratchpad. The directory list may be full (*.*) or selective, eg *.ASM and the selection may be changed at any time. A file TYPE facility gives a paged, formatted display of any file. Control characters are displayed as "." except for TAB and Carriage return/Line feed which are processed normally. COM files are not formatted. The SPZ command format may enter anor 8080 but extensive use is made of Z80 opcodes, and this would be a large exercise. Subroutines would be required to simulate LDIR, LDDR, and CPIR, to say nothing of varieties of shift, rotate and load instructions. CPM 2.x is required. One or more disks may be used - SPZ determines if a selected disk is defined in the BIOS before attempting to access it. The terminal used must support cursor addressing, clear aged forward and back. Other drives may be selected or the current disk changed - NOTE - if the disk in the current drive is changed, the "change disk" function should be used to select the same drive again. This provides a new directory list, and avoids CP/M making the disk Read Only. Track/Sector addressing is selected from the directory list display. The directory list selection may be changed - the defañÉDPNLF#ÅÍÁùÉDFLDå~#ngÍìá##ÍCÉCFLDå~#ngÍìá##~·(ͼ#ö#ÉSTRO~·(Í�#ö#ÉASCOõþ0þ 0>.Í�ñÉHEXOõ͇ñ͇ÉHEXWõ|Íg}ÍgñÉHEXCæÆ�'Î@'Í�ÉLDå~#ngÍìá##ÍCÉCFLDå~#ngÍìá##~·(ͼ#ö#ÉSTRO~·(Í�#ö#ÉASCOõþ0þ 0>.Í�ñÉHEXOõ͇ñ͇ÉHEXWõ|Íg}Így operational mode directly - SPZ enters SPZ with a *.* directory list. SPZ d: as above with d:*.* directory list. SPZ [d:]afn as above with d:afn directory list. SPZ [d:]ufn enters SPZ in file relative mode, using the specified file. SPZ [d:]DSK: enters SPZ in Track Sector addressing mode on  screen, and erase to end of line. At least an 80 by 24 display is required. FACILITIES. SPZ enables disk sector editing in HEX or ASCII, using File Relative or Track/Sector addressing. In File Relative mode a sorted directory listing is used to select the file. In both modes forward and backward browse is provided, in addition to random record selection. The displayed sector may be copiedult is *.* unless set by the SPZ command. FILE RELATIVE MODE. In this mode the selected file is displayed in HEX and ASCII format with record number and file offset displayed. For .COM files the address when loaded at 0100H is diplayed. The record displayed may be selected by browsing forward and back, locating the first or last record, or by setting a record number (in HEX). When setting a record number, Hex digit SPZ.COM SPZ is a full screen interactive disk update utility, providing many of the features found in DU.COM. The program is menu driven, and little additional documentation is required. The following notes consist of a functional overview, plus notes on features not documented in the menus. SYSTEM REQUIREMENTS. SPZ requires a Z80 - it may be possible to update the source fthe specified drive. DIRECTORY LIST MODE. In directory list mode the cursor is positioned on the first filename displayed. The cursor can be moved LEFT, RIGHT, UP or DOWN using Control keys. A file is selected by typing a command character against the required file name - "E" for file relative editting, or "T" for the TYPE function. Up to 32 file names are listed. If there are more files, the directory list may be p  s are entered in "calculator style" - new digits are entered on the right while the number moves left. Backspace deletes the last digit entered, and Escape restores the original number. These features are common to all number entries in SPZ. The selected record is read when RETURN is pressed. If it is not found, the previous record number will be restored. The displayed record may be changed by typing s between editing the NAME and TYPE. The ESCAPE key restores the original selection, RETURN produces a new directory list. NOTE - insert and delete affect only the field being editted, - characters do not wrap between name and type. TRACK/SECTOR ADDRESSING. This mode is entered by typing "S" in directory list mode. The facilities provided here are similar to File Relative mode, but sectors are selrminal control functions. Forward and backward paging operations are provided, including return to top of file. Following paging, the highest page displayed can be restored. DIRECTORY LIST SELECTION. The ambiguous file name used for the directory list may be edited by typing "M" in the directory list mode display. The existing file NAME and TYPE may be overwritten or edited using Iand other functions may be altered using DDT, or preferably a Z80 debugger. Three 4 byte strings are reserved at 180H, for VDU control strings, each of which MUST end in 00H. 180H - Clear Screen 184H - Erase to end of line 188H - Cursor position prefix The byte at 18CH is used as a "flag" character in the directory list - the cursor is positioned over it. The control keys used f "C". The cursor is positioned on the first hex digit, and is moved using the same control keys as are used in the directory list mode. Any valid hex digit may be typed to alter the record. The TAB key moves the cursor to it corrosponding location in the ASCII display, allowing character strings to be easily changed. Another TAB returns the cursor to the HEX display area. Two control codes are available to stop editing the reected by setting (or browsing back and forward) track and sector numbers. The allocation block number is also displayed and may be set. When a block number is set, the first sector of that block is displayed. The record diplayed may be altered in the same manner as File Relative mode. The scratchpad facility is also available in this mode. Note that sectors saved in one mode are available for exchange in the other mode. NSERT and DELETE control keys. Only those characters defined as legal in the CPM documentation are permitted. If "*" is typed at any point in the NAME or TYPE, the remainder of the field will be filled with "?". If a SPACE is typed the remainder of the field will be blanked out. Period also has this effect if used in the NAME field - an ambiguous file name may thus be entered in the normal fashion. The TAB key switcheor cursor movement are defined by equates in the assembler source and may be altered if desired. The menus will reflect any changes made to these equates. SPZ.MAC Several Macros are used in the SPZ assembly. These are provided inline. $RTN is used to head each subroutine. It generates a label (using DS 0 because Microsoft seem to think EQU statements do not need to be listed in tcord - one saves the changes and rewrites the record to disk, the other restores the record to its original contents. Return to directory list mode is made by typing "L". TYPE FILE Files are TYPEd with up to 72 characters per line, 18 lines per page. Except for .COM files, Carriage return/Line feed codes are honoured, and Tabs are expanded. All other control characters are displayed as "." to prevent unwanted te INSTALLATION SPZ uses the following terminal facilities - Cursor Addressing Clear Screen Erase to end of line. SPZ assumes that the cursor is positioned by a prefix string followed by ROW+020H, COLUMN+020H. If this is not the case for your terminal you must update routine CURS and reassemble and link SPZ. The cursor positioning prefix, !  he Macro expansion [ Ah well, it takes all kinds ...]). An entry statement is also generated so that the L80 /Y otption will provide symbols for ZSID. $PANEL Generates a call to the panel display subroutine, passing a panel name as a parammeter. $NPANEL Does the same, but first clears the screen. $FLD Generates a call to the field display subroutine. $IFLD Same as $FLD, but also input2³É>2³Éþ(Àå\Íက·ÈÑÞÍsÍ¡ VDO LN CL Insert FC Space ÍÞÍVÉ:¨õ:©õ>2¨>2©ÍHí[¾*Ü#Í&> 2©ÍH*¿&#Í&>B2©ÍHÍe`iÍ&>42©ÍH*kí[i·íR#Í&ñ2©ñ2¨ÍHÉ>2©¯2¨ÍH:\·( Æ@Í>:Í!]~þ (Í#õ!e>.Í~# ø:©þÐ> ÍóÍOðØÍOüÍOœÿÍOöÿ0ÍOÿÿÈ> Í÷ãN#F#ã>0å 0<33÷áþ0 z0þÈÍÉå͵áþ (Fþ(þ(þ(w#þ 0 Æ@õ>^ÍñÍ×>€½(Ò+~å!©5þ 05ÍH> Í> Í55ÍHá±6É*i+6 *%6 +6 "m+"oÉ!"®"°ÉåÆíBDMáÉÍ[Øí[k*mí°"m  converts to upper case. $STRO Prints the specified string. Hͳ ÍÑ É*k"®É*k"°É*°|µ( ë*®|µ(íR8>2³É7Éåë*k·íRáÈ8#ÍÉí[k·íRí[m+ÍïÉ*®*°|µ >2³ÉÍ2 Í�ÍÈÉÍ ÐÍ *°í[®·íRíB8>2³É*kåí[®·íR8*kí[°·íR0F>2³áÉ*®í[k·íRí[må*°í[®·íRDM*® "®*° "°áí[kí°íSkáÍ2 Í�Éí[®*°·íRDMëí[k#í°íSkáÍ2 ÍÈÍ�É*kåÍp á:³·Àåí[®·íR8 *°íRëá·íRåÍ? áÍ2 Í�ÍÈÉÍ Ð*°Í2 *®"kÍ�ÍÈÍÛÉÍ¡ Erase all (Y/N)͵æ_þYÀ*i+"k*o#"mÍÛ¯2\ !]6 # úÍÞÉ~#·ÈÍ­ ÷>ÿ2Áá͘ éþ 0þ ( þ (>2³ÉÃM í[g*kå#·íRá0Íl ìë¯GO2¾Í)8~#þ :¾<2¾éÍì ä:¾<þ8Ís a character and converts to upper case. $STRO Prints the specified string. $HEXW Prints a 4 byte HEX number. $MTCH Calls the string search function. $EXVA Calls the vectored call function. Control Code Equates. A set of EQU statements is provided to change the control codes used throughout SPZ. These EQUates are also used in the menus, hence changes to theíSkÉÍPØí[m*kí¸"kíSmÉåÕë*o·íRÑáÉÕåí[kë·íR0 áåí[m·íRáÑÉåÕí[i·íRÑáÉ*iDM*kÃå*oå*mDMáÃå*kDM*m++ÃåÍH 0(÷ÍDÉÍ 0(÷ÍDÉ!"Ü*iÍ*i"g>ÿ2ÁÉ*oÍïÍM*k> í¹â¿(ö##"gÍÈÉ*gí[i·íR|µ(DM*g> í¹êàíSÜÉÍH ÈÐÍ(öÍH ÐÈÍ öÉþ!8¯É·ÉÍ ÈÐÍ öÍ ÈÐÍ(öÉÍH ÐÍÀ Í{ÉÅÍ Á0 ÷>ÿ2ÁÅͼ ÁëÍDÉÍH 0(÷Í :¿_y»È8ÍH ÉÕÅÍ ÁÑÐ(Íì èÍH ÉÅÍ­Á8>ÿ2ÁÅÍH Á0 ÷éÍDÉ*k> ¾(#ø#"g Í­8(öÍÈ*gíKi·åíBDMx±á7È*Ü+"Ü*g++> í¹(*i"g·É##"g·É>ÿ2¶ÍþÍÍ*ã¯2¶ÍþÍ*ãÍ¡1²*"Â!"ÍáÍs*Â"ÃåÕÅ_Í!©4ÁÑáÉåÕÅÍÁѯ2©!¨4áÍHÉåÕÅÍ=Í:¨Æ _Í:©Æ _ÍÁÑáÉåÕÅÍÁÑá¯2©2¨ÍHÉåÕÅÍEÍÁÑáÉåÕÅÍRÍÁÑáÉåÕÅÿͷʸÁÑáÉÍ¡ Tab stop (2,4,8,16): !€Ír!€~Ö0þ 0 W{‡_‡‡ƒ‚_#í{þ(þ(þ( þ(> 2³É=2qÉ1°Í&>2³ÃMåÕÅõ_ÍñÁÑáɯ!hw#üÉÅåÍ7€Í\Í<(+\Í· &ကæþ ( þ(#wã+|µã(éåÕÁÁö7ÉÁÁöÉÁ¯Éå 6Íõ Íñ_Í!\l í°!«í°lÍ\ÍÍ7\Í<(*က~Í ~þ > Í ¯#þ ì\Í<À>� ¼2¨y2¿xþP8Í ÉÍã 2©ÍHÉxÖMW>ÿ2ÀÍM*k> í¹#~#Íì xº8÷¯2©GÅåÍHáÁÍ)8~#Í­ ô:©õÍÐ Í/!¨5ñ2©ÍHÉÍ­¯2©<2¨ÍHÍ‹¯2©<2¨ÍH*gÍÑ É¯2©<2¨ÍHÍ ¯2©>2¨ÍHͼ ͳ ÍÑ É*gÍ)0*mÍØ~#þ î>» èÉÍ)0*mÍØ~#þ ÈåÍ­ áèþ (þ 8  É :q¡ øÉÉ:¨þÈÕÅõ<2¨:©õ¯2©ÍHÍ ¯2©>2¨ÍHͳ ÍÑ ñ2©ñ2¨ÍHÁÑÉÍã > 2²Ín ÍH É2²þ õÌã ñ:·· Í 0 ÍH *k Í (ÍÛ*k#"k:²w>2³ÃMþ ( õ:¿OñÍ­ ÍÐ É:¨þ Í/Í� ÍÀ É> Í­ Í‹ÍÀ ÍÐ É*Ü#"Ü*g~þ # ú"gÉ*mÍØ~#þ ÈåÍ­ áôõÅÕå:À·(¯2À2©ÍM*k> í¹âse will correctly update displayed messages. Take care not to use 00H - CPM function 6 does not return the ^@ key! also codes realy must be control codes - 01H to 1FH otherwise the panels get funny, and results might not be what you expect when editting a sector. Thats it Folks - Willie Davidson. 8 Comely Bank Street Edinburgh Scotland.  Find: !²ÍrÉÍ¡ Replace with: !2ÍrÉÍ¡ Ignore U/L case? ͵æþ(þ(>Yò>YÍ­ >ÿ2´!²~·(Í?w#õ>NÍ­ ¯2´Í¡ Backwards? ͵æþ( >NÍ­ >2µÉ>YÍ­ >ÿ2µÉ:¶·(3ÍÜ:³·Àí[m!²>¾(#ùíSmí[k!2~·(#÷íSkÉ>ÿ2Á:´G:µ·²(*k+Í+(+ÍA8"óÍÍ�É*m#Í+(#Í0õ+ÍïÍ�É>2³É>2³É·ÈO~ËÜ?¹À#Í++ÉþaØþ{Ðæ_É͵ÃM :·î€2·>,2©¯2¨ÍH:··(!¸!»~Í# øÉÍXØÍÛ*m~#"mþ Í :¿OÍÐ ÉÍ/ÍÀ :¿OÍÐ ÉÍ{ÍÀ *m~#Í(ùþ ( þ ( Í(~#ï+"m:¿OÍÐ Í/ÉÍÛÍH 0 öÍ *kåÍ 0 ùá"kÍ ¯2©>2¨Í"   ##åÍHáÍÑ áÑÁñÉ*mí[k·íRDM+|µÉ*mí[o·åíRáÐí[k~þ õÌã ñ#"míSkþ 7É*ií[k+·íRÐ*mþ õÌã ñ+w"míSkþ 7É~#þ É:Á·ÈÍ€ >2ÁÉÍ&¯O2©<2¨ÍH*gÍ)0*mÍØ~#åÍ­ á:¨ÖÈåþ ¯OÅÍ/ÁÉþ (þ 8Íà É> Íà :q¡ õÉõ>^Íà ñÆ@Íà É ÅG:©ÖPxÁÐÍÉÍb:³·À"Í¡ Abandon changes? (Y/N)͵æ_þYÀááÉÍÁ:³· Í6Ͳ>ÿ2ÁÍÛÉÍe8*kÍB >2³É0>2³Éë*kë"kë#ÍÍÛÉ:]þ ÍÌ:³·À*m+å*iÍÍX8*mÍ“áÃïÍY ÍÁ:³· *®#ÍP*®#8Í“>2³ͲÉ \!rí°ÍÞÉ r!\í°Í¡ Filename: !€Ír!€~·(bÁ > ü:�þ: ~Í?Ö@2non- document file full screen editor. It originally appeared in a BYTE article by Richard Fobes (BYTE 9/82 and 10/82), was subsequently modified by Spite Software, then Bill McTeer, then Don Krantz, then Mike Rejsa, then Don Krantz, then James H. Whorton. The present version (2.3) bears almost no resemblance to the original, except that both purport to do full screen editing. VDO is a memory based editor - that means that both the editor and the file being edited reside in memory. With a®« £H  ì H  r r)r « « > {×§NHÆÑ:³·( ÍsÍ¡ Error: :³‡o&Ä~_#~Wë͘ Í¡ Press ESCAPE to continue¯2³͵þ ù§BAKÿ€on offÿØåñ!2HVFile too bigInvalid keyInput/Output FailureString not foundDisk fullBlock not markedBlock staddles cursorBlock too bigIllegal tab stopóóòput/Output Fa In the first version, where no filename is specified, VDO will create a new file when you exit, asking for the filename at that time. If the second version is used, VDO will attempt to open the specified file. If no file of the specified name exists, VDO will display an error message. You may continue from that point, and the name specified will be used to save the new file. If the file specified can be located, VDO will load the file and place the cursor at the start of the file. In anyÀ##¯2ÀÁ~Í?þ.( ·(#þ (+#ì~·(þ.# ÷É~·(Í?#ô!À\ í°É>2³ÉÍ¡ Printer Setup codes: !€Ír!€~·(Í(#öÍXØ*mÍm þ > Í(:q¢ ôÍ(þ > Í( x± ×ÉáF#^#V#¾# ^#V## òëÕéÍsÍ¡ ^O Commands S Save/continue X save/eXit Q abandon Z Zap file B mark Block start K mark block end C Copy block V moVe block Y delete block W Write block R Read file P Print file ͬ͵õÍ•ñæÍ® Ðb‹O  p  ? ù ï Y ÉÍsÍ¡ ^Q Commands R top of file C botto 59K CP/M system, that gives you a maximum file size of about 48K. Since you will probably use this for program source files, that ought to be plenty. If not, there's always WordStar. VDO uses a small subset of standard WordStar keystroke commands. Where possible the keystrokes to activate a VDO operation are exactly the same as for WordStar. Advantages to VDO VDO's major advantage over WordStar and other screen editors is its small size - only 5K of disk s.fo VDO Version 2.3 02/20/85 Page # Documentation for VDO Version 2.3 Contents The following appears in this document: Overview of VDO Advantages of VDO Disadvantages of VDO Operation Cursor Control Single Keystroke Commands Quick Commands Block Commands Error Handling Customizing Notes Overview VDO (Video Display Oriented editor) is a small (5K)  of the the three situations, you will be ready to start editing the file. VDO has only a few commands, broken into three major groups: Cursor Control, Quick Commands, and Block Commands. Several minor commands are also implemented. Anything not a control character which can't be interpreted as a command will be entered into the file as text. Cursor Control The standard WordStar cursor controls ^A, ^S, ^D, ^F, ^E, ^X, ^R, ^C are all implemeted, and all wm of file F find a string A find-and-replace B find block start K find block end T change tab stop ͬ͵õÍ•ñæÍ®Ð¤ŒñàT Y ÇÉþ 0 õ>^Í­ ñÆ@Í­ Í¡ ÉÍ¡ While editing, these Control codes may be used: ^A word right ^F Word left ^G delete char ^Y delete line ^T delete word DEL destruct/BS ^C page down ^R page up ^V toggle insert ^U repeat find ^P enter printer code ^N insert C/R ^O block cmd menu ^Q Quick cmd menu Selection: ÉÍ&ÍÄ:]þ (Í6ZÍr ÍÀ Ív͵Ípace is needed, as opposed to 60+ for WordStar. A minor advantage is VDO's speed - with no overlay files to swap in and out, VDO seems very fast. VDO normally uses a memory mapped display interface, which speeds it up even more. Disadvantages to VDO VDO lacks many features found in WordStar. However, most of the important features are implemented. .cp 5 Operation of VDO VDO is started by typing either: VDO -or- VDO d:filename #  ork pretty much as you'd expect. Definitions are: ^S move cursor a character to the left ^D move cursor a character to the right ^A move cursor a word to the left ^F move cursor a word to the right ^E move cursor up a line ^X move cursor down a line ^R move a page (usually about 18 lines) up ^C move cursor a page down Notes: The Osborne 1 version ALWAYS patches the arrow keys to "WordStar" mode when entering VDO, and ALWAYS patcat the start of the text. ^QC places the cursor at the bottom of the text. ^QB places the cursor at the marker for the beginning of the block, if this marker is set (see ^K B). ^QK places the cursor at the marker for the end of the block, if the marker is set (see ^K K). ^QF allows you to specify a string to search for in the text. This string may not include carriage returns. After selecting 'F', VDO will ask for the string to look for (the "target" string). Type cters (doesn't include control characters displayed). Next, delete following white space (blanks and control characters) except for tabs or end-of-lines. ^Y delete entire line cursor is on ^G delete character right of (under) cursor DEL delete character left of cursor When moving the cursor, the display will adjust to the cursor position. You can't move the cursor off the screen accidentally. If a line is too wide to fit on the screen, it will scroll left automatically whe is substituted for the target string. Note: Strings containing Carriage Returns may not be serached for, but any other control character may be included in the target string. (both ^QA and ^QF) ^QT Set tab stops. VDO allows tabs to be set to 8, 2, 4, or 16, with the default at 8. This is a dynamic process, and is used mainly for C, Ada, and Pascal programmers for variable indentations. Block Commands The block commands are ahes the arrow keys to CP/M on exit. The Osborne 1 uses ^- in place of DEL. The Kaypro version allows the use of the arrow keys, as well as the above WS cursor controls. (JHW) All versions may patch the source code to modify how many lines the ^R and ^C commands move. Single Keystroke Commands These commands are all activated by single keystrokes. RETURN and TAB are both accepted at any time, and entered into the file as text. ^L repeats last ^Q F in the string, then press RETURN. VDO will next ask if you wish to ignore upper and lower case differences. If you do not press "Y", VDO will look for a string capitalized exactly as you capitalized the target string. Pressing a "Y", "y", or "^Y" will cause VDO to treat upper and lower case letters as exactly identical. (The default answer for this question may be configured in the source code) Next, VDO will ask if you wish to look backwardsn the cursor travels off the left end of the screen. The column count on the status line will reflect the correct logical column at all times. Control characters do not count as occupying a logical column. Quick Commands The Quick Commands are all accessed by typing a Control-Q. A menu will display showing Quick options. The Quick commands, with one exception, all involve moving the cursor to a different position in the text quickly. ^QR places the cursor ll accessed by typing a Control-K. A menu will appear with second-keystroke options. Not all Control-K commands necessarily relate to marked blocks. Block commands mainly operate on large portions of the text. A "Block" is a section of the text file begining with the Block Start marker, and ending with the Block End marker, which you may set at any point in the text. Attempting an operation which requires the blocks to be marked will generate an error if the blocks aren't marked properor ^Q A (see Quick commands), using same options. (Note: ^U for Kaypro version. JHW) ^P Enter a printer code - The next character typed will be entered into the text as-is, even if it normally has other significance (e.g. ^P^L will enter a ^L into the text file rather than doing a "repeat find" operation). ^V toggle Insert mode on or off ^T delete one word to the right - the scheme is: first, delete character under cursor. Next delete following displayable chara from the cursor position. If you do not answer "Y", "y", or "^Y", VDO will look forward from the cursor postion. When VDO finds the target string in the text, it will move the cursor to that position and display the surrounding text. If the string is not found, an error message will display and the cursor will be returned to the starting position. ^QA Find-and-replace. Works just like ^QA, except when the string is found, a string of your choice$  ly - i.e. the beginning or end not marked, or the block end marker prior to the block start marker. [NOTE!: The following commands are accessed with ^O in the Kaypro version. (JHW)] ^KB Set block start marker. ^KK Set block end marker. ^KC Copy marked block to the cursor position. Block remains marked at its original position, a copy of the block appears at the cursor, the cursor is positioned at the start of the copy. ^KV Move marked block to the cursor position. The ma start the editing session or using ^KR. In the case of ^KR, none of the file is retained: the text remains as it was before you attempted ^KR. This message may also occur when attempting to insert text after the memory size of your system is exceeded. INVALID KEY - occurs when an entry contains an unexpected key. Can happen during text entry when an undefined control character is typed (e.g. ^O), or when entering filenames if bogus characters are entered as part of the filename (e.g. "space" disk versions of the file), and erases the filename. ^KX End of Edit. Saves the file under the current name and creates a backup file if a version is on disk already. If VDO was invoked without a filename, or if you ZAPped the file, VDO will ask for a new filename. ^KQ Abandon file - any changes to the file (unless you did a ^KS are abandoned. Any disk versions of the current file are not affected. ^KS Save and continue. Saves the file as it appears in memory, ce code for VDO, M80 and L80 from MicroSoft, and experience with assembly language. VDO is configured for the Osborne 1, the Zorba, the Fergusen BigBoard, DEC VT52 terminal under CP/M and the Kaypro. Which version is generated depends on four equates near the start of the source code. Several other equates allow setting a custom scroll point for the horizontal scroll, default insert mode, default answer to the Ignore U/L Case question for ^QA and ^QF, the DELETE key to be usrked block is removed from its position and appears at the cursor. The markers disappear and the cursor is placed at the start of the moved material. A block can't be moved "into itself". ^KY Delete marked block. The marked block is removed from the file and the cursor remains where it is. ^KW Writes the marked block into a file of its own. You specify the new filename. ^KR Reads a disk file into the current file at the cursor position. You specify the filename.) or if the filename can't be properly formed. INPUT/OUTPUT FAILURE - occurs when a requested file can't be found during initial load or ^KR, or when any system failure occurs (e.g. DIRECTORY FULL, BAD SECTOR, R/O). STRING NOT FOUND - occurs during find or find-and-replace operations if the target string can't be located. DISK FULL - self explanatory. You may insert another disk and try again. BLOCK NOT MARKED - occurs when attempting a block operation which require the block to be marked ifand continues the editing session. Used in case of failure. -- VDO resets the disk system before writing files, so the disk may changed between reading a file in and saving a file, or in case of system failure (e.g. DISK FULL, BAD SECTOR). Error Handling VDO has 9 editing errors which may occur, which clear the screen, display a message, and wait for you to press the ESACPE key to clear the error display. The messages are: FILE TOO BIG - occurs when loading a file toed, and the number of lines to scroll for ^R and ^C. Custom terminals may be installed by either memory mapping or terminal mapping. Terminal mapping should follow the VT52 map, which actually is found as "not memmap" in most of the display interface. Memory mapping is easier, except for the cursor. You'll have to modify "CH.IN" to display some sort of cursor  i ^KP Print the file. You will be asked for printer setup codes, which are entered as you wish them sent. Example: You wish to send ESCAPE B to the printer prior to printing. Press the ESCAPE key, then the B key, then RETURN. Problems: You will not be able to send any codes for which keystroke equivalents don't exist, and you will not be able to send the RETURN code (ASCII CR, hex 0DH, decimal 13). ^KZ Zaps (erases) current file from memory (does not affect any  both the block start and block end markers aren't marked or if the end is prior to the start of the block. BLOCK STRADDLES CURSOR - occurs when trying to move a block into itself. The cursor can't be inside the block when copying or moving a block. ILLEGAL TAB STOP - occurs when setting dynamic tab stops, if you do not enter an valid tab stop number (2, 4, 8, 16 are the valid numbers) Customizing VDO VDO may be customized if you have the following: The sour%  ining in k. You will then get a display of the first entry in the directory. NSWP will also give you a listing of the user area that the file(s) are on, if you logged in all user areas. Typing 'space' or 'return' or 'F' moves you forward in the directory, typing B (or b) moves you backward. The directory is circular, so typing space at the end of the directory moves you to the beginning. (A line is skipped.) When you first invoke NSWP, you can specify an alternate drive to startant it erased. If the file is read-only (R/O), then a bdos error will occur, and the program will warm boot. :P - Print a file P -- The current file is sent to the LST: device (your printer). If the file is squeezed, it will be unsqueezed as it is listed. A control-C interrupts the function. :R - REName file(s) R -- The current file is renamed to the name and user area you specify. For example: A15:FOO .COM? A0:FOO.COM will rename the file from A15 to A0. Lower ead-only (R/O), then the copy is simply not made. You will be told. You may use the delete function to delete the file, and then retry the copy. As an option, NSWP will perform a CRC verification of the copy. When you are prompted for the drive and user, add a 'v' or 'V' to request verification. Thus specifying 'b3: v' will copy the file to drive b:, user area 3, with verification. A description of the verification method is included with this documentation. BUG: CP/M does not a single-density disk with a 1k block size. U -- Undo the effect of T (and take away the '*' or '#'). * -- Indicates a currently "tagged" file # -- Indicates a previously "tagged" file, may be re-tagged with the "A" option :M - Mass transfers M -- Mass transfer of all tagged files to a selected drive and user area. This is the main reason for the program. If the target drive fills, the operation is aborted, with the untransferred files remaining tagged. This function inv on. A>NSWP B: will begin with drive B: logged in. Selecting user area * will cause all user areas to be "swept" at once. At any time, you can view the menu of functions by typing a question mark (?). Simply typing 'x' exits the program. Note that all characters can be entered in upper or lower case. :C - Copy file function C -- This allows you to copy the file to the drive and user area of your choice. You will be prompted for the drive and user area. J case will be converted to upper case, but other 'illegal' characters are not trapped. It is quite possible to give names to files that CP/M won't recognize. (You can also change them back again later, however, so no harm is done.) Responding with "*" to the prompt will put you in the batch wildcard renaming mode.If the file is read-only, a bdos error will occur and the program will warm boot. :V - View an ASCII file V -- The current file is displayed at the terminal, witllow two files of the same name to be open on the same drive, even in different user areas. Thus, when transferring between user areas on the same drive, the target file is first named with the $ convention and then renamed. This can result in an extra file being erased. If there is too little room on the target drive, the transfer is aborted and the directory entry is erased. :D - Delete (ERAse) file(s) D -- The current file is deleted. You will be asked if you really wokes the copy function used by C, so everything said above applies here. To abort the transfering process, you must enter a CTRL-C. After transferring a tagged file, the tag is changed to '#' so you can tell what has been sent. This is for display only, the file is otherwise considered untagged, but see the A command. The '#' can be removed with the U command, if desired. If no user area is specified, or if "*" is specified, the current user area of the file is used. You may ust enter 'b3:', say, to transfer the file to drive B: user area 3. If you omit the user area, the current user area of the file is used. Any file of the same name in the target area is first erased, an exception being when you are transferring to the current drive and user area. In the latter case, the transferred file is copied with its named changed by putting a $ in the last letter of the file type. If an existing file in the target area that must be erased is marked rh automatic pagination. The return key will continue the process until a control x is typed to cancel the display to the screen. Single line spacing is possible by typing the space bar when the screen display has stopped. :T - Tag file(s) T -- Tag a file for later transfer. (See below.) After being tagged, the file will be marked with an asterisk,'*'. The total of all tagged files is displayed both in units they occupy on the current disk and in units they would occupy on a&   request verification on mass transfers just as in the single file copy. Just follow the drive and user specification with a space and a 'v' or 'V'. :Q - SQ/USQ Tagged files Q -- Mass transfer of all tagged files to a selected drive and user area, unsqueezing those which have been previously squeezed, or squeezing those which are tagged. OPTIONS: S - SQ tagged files during transfer U - USQ tagged files during transfer R - Reverse status to specified du: tory listing will appear as normal. If any of the 1-4, R/O, SYS, or ARC bits are set, they will appear with a reverse video block in the directory listing. NSWP2 may be also set to clear your local CRT when it signs on. To use these special features, see the next section dealing with DDT customization of memory byte locations. :DDT Customization The byte at location 103h sets the number of lines displayed per screen by the "V"iew command The reverse (or inverse) ON video bytes are from 1f the user area is ommitted, the current user area is used. You can NOT specify a starting place in the directory. Selecting "*" for user area, logs in all user areas at once. When logging into a new drive/user area be sure to follow the user number with a colon. i.e. B2: logs ALL files on B2 B*: logs ALL user areas of drive B B2:*.OBJ logs ONLY the .OBJ files of B2 :B, S, W, X, and ? commands B -- Moves you backward thed by available memory, though, as certain information must be kept on each entry. You should be able to use well over 1500 entries in a 64k system. Figure 20 bytes per entry starting at 26k and running up to within 1k, or so,of the BDOS. File transfers make use of as much memory as possible to buffer data. It is required to include the colon when specifying a drive and user area. Thus responding "B3:" is not equivalent to just "B3". Copy verification is done by computing a  If SQueezed, then USQ, etc. NOTE: The "Q" option will NOT work on untagged files :A - Tag again A -- Retags all the files currently marked with '#'. This allows you to repeat the transfers on another disk. Useful when the same batch of files must be sent to several disks. :R - REName file(s) R -- Batch rename. You will be prompted for an "Old name:" and a "New name:". In each case you may give any "ambiguous file name" in response. The logged-in directory is searched for matches04h to 10Ah, the first byte indicates the length of the sequence. The reverse OFF video bytes are from 10Bh to 111h, again the first byte indicates the length of the sequence. Bytes 1D13h thru 1D17h or for your clear screen code sequence. These memory locations can be set with DDT in the "S" mode, or even easier by using the EDFILE utility program. Be sure to SAVE 43 after using DDT.COM :Remarks Whenever a drive is asked for (and on start-up), the disk system is reset. This is to preru directory listing S -- Calculates space remaining on a drive. Simply enter drive letter to be examined W -- Wildcard tag of files. Allows you to select a large group of files for tagging. *.* *.ASM *.OBJ etc... X -- Exit to CP/M. ? -- Redisplay menu of commands. :Special features If your terminal supports reverse (or inverse) video modes, then NSWP2 can show you the attributes set for each file. If none of the attribute flags are set then the direcCRC checksum while writing the file. NSWP then reads the copied file back computing it's checksum. The two checksums are compared and you are told if they don't match. The CRC verification takes approximately 2.5 times as long as the straight copy. This documentation last updated 28 Mar 84 by Steve Sanders. It reflects the latest version available at that time. NSWP202  with "Old name", and the files are renamed, if possible, by the formula specified in "New name". A '?' in "New name" means keep that character of the current file name, an * is equivalent to filling out the remainder of the field (filename or filetype) with "?"'s. Any other character replaces the corresponding character in the current file name. When the substitutions are done, embedded spaces are removed. :L - Log new du: L -- Login new drive and user area. Ivent a disk from being 'read only' under CP/M, and to allow you to repeat operations on fresh disks (e.g., finish a mass transfer after a disk fills by inserting a second disk). It also means that you should be free to switch density and/or number of sides of a disk in a particular drive. This, however, depends on how well your BIOS is written. There is no logical upper limit to directory size, nor to the size of a file that may be transferred. The directory size is limit'   NSWP - A disk maintenance utility. Dave Rand 10232 - 160 Street Edmonton, Alberta Canada T5P 3E9 .pa Š.he NSWP 2 - A disk maintenance utility .fo - # - I N D E X Page Introduction ...oî onå oæ thå followinç RCP/Ms: Edmonton RCP/M - (403) 454-6093 (300 or 1200 baud) Stadium RCP/M - (403) 479-3450 (300 baud only) or voice at: (403) 484-4114 Disclaimer and warning Whilå thió prograí haó beeî testeä oî manù systems¬  É  wilì � havå  nï  liabilitù  oò responsibiltù tï thå useò  oò  anù  otheò � persoî  oò entitù witè respecô tï anù liability¬  losó oò  damagå � caused¬  oò  alledgeä tï bå causeä directlù oò indirectlù bù thió � program¬  including¬ ..... 16 Contributions ....................... 16 .pa ŠIntroduction NSWР ió ne÷ disë utilitù thaî caî replacå manù oæ thå  morå � commoî utilitieó thaô arå used¬ sucè aó STAT¬ PIP¬ USQ¬ SQ¬ TYPE¬ � PRINT¬  SWEEP¬  DISK7¬  PROT¬  anä  others®  Iî onlù 12Ë oæ disë � space¬ iô replaceó oveò 100Ë oæ utilities! NSWÐ ió writteî entirelù iî assemblù language¬  anä wilì ruî � oî anù CP/Í 2.x¬  3.ø oò MP/Í baseä systeí witè nï changes® Sincå � iô ió codeä iî 808° assembler¬  anù 8080¬  808µ oò  NSWP Overview NSWÐ ió á directorù anä filå manipulatioî program®  Witè it¬ � yoõ caî copy¬  delete¬  rename¬  unsqueezå anä squeezå files® Thå � documentatioî  followinç  ió  spliô intï twï  majoò  sectionsº  Á � tutoriaì  foò thå inexperienced¬  anä á  referencå  section®  Thå � referencå  normallù wilì bå useä iî conjunctioî witè thå  prograí � tï  answeò specifiã questionó regardinç NSWP®  Thå tutoriaì ió  á � broaä  coveragå  oæ  alì oæ thå functions¬  anä  shoulä  bå  reaä � througè ..................... 3 Overview of NSWP ............... 4 Invoking NSWP .................. 5 Single file commands ................ 6 Help ........................... 7 Forward and Backward ........... 7 Exiting ........................ 8 Finding a file ................. 8 Viewing and Printing ........... 8 Deleting a file ................ 8 Copying ........................ 9 Renaming ....................... 9 The Space command . buô  noô limiteä to¬  anù  interruptioî  oæ � service¬  losó oæ business¬ anticipatorù profitó oò consequentiaì � damageó resultinç froí thå uså oæ thió program. Furthermore¬  althougè thió prograí haó beeî placeä intï thå � publiã domain¬  É retaiî alì copyrightó tï thió program¬  botè iî � thå U.S.Á anä iî Canada¬  anä pursuanô tï this¬  thió prograí MAÙ � NOÔ  BÅ  SOLÄ BÙ ANÙ PARTY unlesó specificallù authorizeä bù  thå � author¬  Davå Rand¬  iî writing¬ previouó tï thå firsô copù beinç � sold® Z8° compatiblå � processoò wilì serve® Notå thaô thió prograí WILÌ NOT‚ ruî oî CP/Í � 1.4. Wheî  NSWР waó  conceived¬  thå dominanô filå  utilitù  waó � SWEEP¬  anä thuó NSWÐ ió syntaø compatiblå witè SWEEP¬  buô  witè � manù  extensions®  Thió  allowó  yoõ tï directlù renamå  NSWР tï � SWEEP¬ iæ yoõ sï desire¬ witè nï retraininç period. É  hopå thaô yoõ enjoù thió program¬  anä uså iô  well®  Anù � problems¬ oò suggestionó maù bå directeä tï myselæ aô thå addresó � oî thå firsô page¬ oò aô leasô once. Thå mosô importanô thinç tï remembeò wheî usinç NSWÐ ió thaô � iô  provideó á lisô oæ youò fileó iî ALPHABETICAÌ  order®  Movinç � arounä  iî thió lisô ió quitå easy¬  anä wilì sooî becomå  seconä � nature. Iî  thió  documentation¬  alì useò inpuô ió  underlined®  Aó � well¬   wheî   thå   "current¢  filå  ió   referenceä   iî   thió � documentation¬  iô meanó thå filå jusô tï thå lefô oæ youò input® � Thió  "current¢  filå  ió ofteî referreä tï aó thå filå  yoõ  arå � "on".............. 11 The Log command ................ 11 Introduction to Multifile Commands .. 12 The Tag command ................ 12 Wildcard tagging ............... 13 The Untag command .............. 13 The Mass copy command .......... 13 After the mass (Again) ......... 14 Erasing files .................. 14 Squeezing and Unsqueezing files. 14 Setting file status ............ 15 Epilogue ............................ 16 Credits ........................ Aó  well¬  thió prograí MAÙ NOÔ BÅ INCLUDEÄ IΠ ANÙ  OTHEÒ � PACKAGÅ FOÒ SALE¬  eveî iæ thió prograí ió indicateä aó beinç 'iî � thå publiã domain'® Alì oæ thå abovå applieó tï botè thå originaì � aó  welì  aó derived¬  oò modifieä copieó oæ  thå  original®  Anù � modifieä  copieó  oæ  thió prograí MUSÔ NOÔ  havå  thå  copyrighô � noticå violated¬ changeä oò altered. Pleaså reporô anù copyrighô violationó tï thå author¬ aô onå � of the above telephone numbers. Thank you. .pa Š