UTILITIES 8507241545 8507241545>ÊÉROPW DUPW WO1- 31 WOMIN LINE STLEFT TO NEWKEY WO1+ 63 LINE STMID TO NEWSUBT ELSE 31 LINE STLEFT TO NEWKEY CLEAR NEWS `O1- TO DPTH .LOOP ELSE 1 +TO DPTH .IFSO . 'KEYFIND : NEWLINE "==== PARTIAL KEY FIND by Thomas Almy ====" STOUT LO3TEP GETKEY TO LASTOLDKEY GETSUBT TO OLDSUBT GETMARKS GETLEAF IFSO RAISE ?LEAF CUELEAF SWAPW DROPW TO LEAFSIZE  ^STUC TO FINDST LOOP KSTRAV ?ENDLINK UNTILT DPTH WO0= UNTILT FINDST GETKEY STUC STWITHIN IFSO DROPD RAISE ?GOTONE A>EÕüMF SETDRIVESBBS - Set the KAMAS drive search pathŠc)… 02LANG SYS ; Jexing this leaf lets you list a standard CP/M text file ; 'FLISTJOB :JOB "CP/M FILE I/O" SJEX ; SETDEC ; 'LST]by Thomas Almy ====" STOUT GETTNAME TO OLDTOPIC GETKEY TO LASTOLDKEY CLEAR DEPTH CLEAR GENCOUNT OPENCPM CUETOPIC LOOPÈrent SYSTOPIC." STOUT NEWLINE "No Help Screens are preserved" STOUT NEWLINE CRLFOUT "DO YOU WANT TO CONTINUE? " STOUT BEEÇDEPTH .IFSO .IFSO DEPTH WO0= UNTILT .LOOP OLDTOPIC TBUILD KEYSAVE KG NEWLINE "==== BRANCH COPY DONE ====" SdT WO< IFSO CLEAR LEVEL ELSE LEVEL UPCOUNT WO- TO LEVEL .IFSO 1 LEVEL +TO POSITION .IFSO .IFSO ;\thing ?PRINT IFSO ; turn off printer or file output if necessary TOGPRINT 12 WCPRT ELSE ?FILE IFSO STOPLOGÆW TO LEAFBEG CLEAR LEAFP .IFSO . 'DONEPACK : LEAFP NOT WO0= IFSO NEWLINE ".... Indexing" STOUT LEAFP PUTLEAF .IFSO . _.IFSO .LOOPS 2 SPSOUT .IFSO ; print title SHOWKEY GETSUBT DUPW STNULL= IFSO DROPW ELSE ?PRINT ?FILE WOR WFNO WRITENEW .LOOP RESDATE NEWLINE "==== TOPIC RESIZE DONE ====" STOUT . TOPIC-COPY DONE ROVE [er File Name SPTR FETB 2E WO= ; Was there an Extension? IFSO 1 +TO SPTR FCBP 9 WO+ TO DPTR 3 XFRC .IFSO . 'SETFCB : ;ÄWOCASES .IFSO . 'XFRC : ; ( #CHRS --- ) LOOPS FNEND? UNTILT SPTR FETB WCCVTUC DPTR STOB 1 +TO SPTR 1 +TO DPTR .LOOP.: SPOUT DUPW 100 WO/ BYTO BYTO SPOUT . ; SETDEC ; 'DUMP8 : 7 0 COUNT DUPW IWO WO+ FETB BOOUTH .COUNT DROPW SPOUT . ; 'PRTAi˜¥Ü OUTPUT LOOPS - Outline Output Loop RoutinesˆK!… U "( H @!  @€!€!@€@P €€€€@ J!€À@@  „‚@* €€‚@(!0 € !€ ”@@@ P€€@  €@@  …€À@@$ˆ€Â-LANG ; BASIC FILE I/O DEFINITIONS SYS ABENDVOC VMOUNT SETHEX 'BADFILEMOD :ABEND 'BADFILEOP :ABEND '?EOF :FLAGVAR '?OPEN  " X€€@ ! €%€@ €!@@€@$P$‚H€ @ €€@@ J À@h  €‚P(1UT SHOWTITLE PAUSE UNTILT SHOWLEAF PAUSE UNTILT .LOOP . 'FCL : LOOP GRAND CLSOUT SHOWLEAF PAUSE UNTILT SHOWTITLE PAUSE ONLY  E  (Â@ !0 @P %@ €@ PB€€@ €@@ !…À@H €@ €9-3765. This software is released for general public domain distribution, provided it is not sold for profit. A¶¦Ãþ CP/M FILE I/OACKAGES - A programming package for CP/M file I/O by Adam TrentŠñõ… 0*T NEWKEY STOUT "' IS A DUPLICATE." STOUT NEWLINE "==== NEW KEY: " STOUT NEWKEY STIN .LOOP TEMPST KG NEWLINE "===AüÊytAUX ROVES - Jexing this adds Auxiliary options via ROVE's U commandˆb … !! !VFOUT "==== Leaf '" STOUT GETKEY STOUT "' overflow -- appending new stem..." STOUT NEWLINE CRLFOUT DONEPACK ) the job and then the RETURN key. Each job will prompt you for any necessary parameters. After the job is done, you wil *( X €À@ !0 B!€ ¥€B@@!„@@A P$$†!@4@ €€Ð@IJ¡À@H ) ¤P U; Restore DATEGO 'CUEOLD : NOT ?SAMETOPIC IFSO OLDTOPIC TBUILD .IFSO LASTOLDKEY KG . 'CUENEWTOPIC : NOT ?SAMETOPIC IFSO ¾ant to be accessed via the MENU mode of KAMAS. In this mode, each title of this branch is itemized in a menu-like fashio(LANG SYS 'SHOWLEV : " { LEVEL=" STOUT DEPTH WOOUT "} " STOUT . SETDEC 'X 'CHR :STCON 'OPENCPM : ; Open CP/M input filZ"( R$¤€@ !  @„ ¥€B@ @!BÀ@$P $‚B¡€P(@¨€€P@) )Ä@H  „‚@ (!½FSO DISKFULL .IFSO . 'SETEOF : FF WAND NOT WO0= IFSO RAISE ?EOF ELSE CLEAR ?EOF .IFSO . 'SETOPEN : WO1+ FF WAND WO0= IRLANG SYS SETDEC 'FINPUTJOB :JOB "COPY SUBROUTINES" SJEX "LEAF PACKER" SJEX "READ-CP/M" SJEX READ-CP/M DONE .SYS .LANG ¼ View down value 'VU : VDA WO2- FETW . ; Get View up value 'SELECT CMDFIND IFSO DROPW WO1+ FETW 'LRNA :WOCON .IFSO 'LRN%LANG SYS '?SAMETOPIC CMDFIND IFSO DROPD JEND .IFSO "TOPIC PRIMITIVES" SJEX "TREE TRAVERSE" SJEX SETDEC 32 'OLDTOPIC Q to show section numbers '?WSFLAG :FLAGVAR ; set true for WordStar format to disk '?BOLD :FLAGVAR ; set true for WordStarº to DATEGO 'SAVEDATE : LANGVOC VMOUNT SYSVOC VMOUNT DATEST TO SAVDT ; save DATEST 'DATEGO CMDFIND DROPD 3 WO+ FET&=" STOUT LOOP OPENINF CLEAR ?DONE CLEAR ?NEWF LOOP LSDUMP "(N - Next, P - Previous, G - Go To, F - File, ESC -Pnsert Down NEWKEY NEWSUBT TID SHOWLEV .WOCASE 3 WOCASE GENTITLES NEWKEY NEWSUBT ; Insert Next D¹N INDENT "NEW SIZE: " STOUT WOIN TO NEWSIZE NEWSIZE NEWTOPIC TPREP OLDTOPIC TBUILD NEWLINE "==== COPYING AND INDEXNNEWLINE "???? NO SUCH DRIVE: " STOUT WCOUT 41 .IFSO 40 WO- 186 IWO W+ STOB .LOOPS ELSE NEWLINE "!!!! CAN ONLY BE US¸T GETPARAMS NEWLINE "==== COPYING AND INDEXING TOPIC STEMS ====" STOUT SAVEDATE CUEOLD ; get to first without traverN)? " STOUT NOYES IFSO PRINTO ELSE PRINT .IFSO CLEAR SKIP 12 WCPRT 'NEWPAGE TOGO PAGEGO DONE ROVE  *(¡X‚H % T €T ¡€@ !”D„Â@ $P J€ 4@ €€@I J¡€@@$  ¤†@!"!€@ @(  € !€ @ P@¨€@) !€€@@  € AD 8000 WOCASE SWAPW OVERW SETFCB 22 FCALL FULLCK .WOCASE ; WRITE OTHERS BADFILEMOD .WOCASES . ; 'INFL. 'WSPL : ; Loop to Output for WordStar ?LEAFS IFSO CRLFOUT GETLEAF IFSO CUELEAF LOOPS OUTCOUNT WO0= IFSO LA@'«ü>v KEYFINDJOBBS - Find a stem using partial keyŠQ+…0BLANG SYS ; Find Partial Key by Tom Almy 'KFINDJOB :JOB SETDEC 'DPTH :WOVAR 32 'KSAV :STVAR 32 'FINDST :STVAR '?GOTONKLANG SYS 'BCOPYJOB :JOB "COPY SUBROUTINES" SJEX 'GETPARAMS : LOOP INDENT "Copy What Branch? " STOUT LASTOLDKEY STIN LA=µhat Logical Sector? " STOUT WOIN ?BADSTCVT IFSO DROPW BEEPOUT ELSE TO LSN .IFSO .W´0 ELSE 4 LINE STLEFT STUC "..GU" ST= IFSO 1 ELSE WORKST "..ID" ST= IFSO 2 ELSE WORKST "..IN" ST= IFSJ>"af ?WSFLAG IFSO WSPL ELSE PRINTLEAF .IFSO ; print rest of branch LOOP ; go to next stem TRAVERSE ?ENDLINK UI DEPTH ELSE TIN .IFSO MARKHIDE INITPACK .IFSO LINE 2 WO+ LEAFBEG LEAFP WO+ LINE STLEN 2420 LEAFP WO- WOMIN MMOVE³€@ „€€ @€€ €AükãMAKE 8K SYSTOPIC - Replace Factory SYSTOPIC with much smaller oneer one ƒ*2…$E@ €@ B BP I€ R@B @@@€ €H INDENT "Is Destination in Current Topic (N)?" STOUT NOYES IFSO RAISE ?SAMETOPIC OLDTOPIC TO NEWTOPIC ELSE LOOP² INDENT "Destination Topic: " STOUT NEWTOPIC STIN NEWTOPIC TFIND UNTILT NBL "TOPIC NOT FOUND, TRY AGAIN" STOUT  LEAFP LINE STLEN WO+ 2040 WOMIN TO LEAFP . 63 'NEWSUBT :STVAR 'GENTITLES : " " LINE STWITHIN IFSO DROPW WO1+ 76 LIB#irst [T,L]? " STOUT WCIN WOCASES 'T ASCII WOCASE FCT .WOCASE 't ASCII WOCASE FCT .WOCASE 'L ASCII WOCASE FCL .GSTOLDKEY KFIND UNTILT BEEPOUT NEWLINE "???? NOTFOUND, Try Again" STOUT .LOOP GETTNAME TO OLDTOPIC GETKEY TO KEYSAVE ±MARG SOFTSPS ?INDENT IFSO LEVEL WO1+ WO2* WO1- SOFTSPS .IFSO .IFSO DUPW FETB WOCASES 13 WOCASE DUPW WO1+ FETBLANG SYS SETHEX NEWLINE "==== SET THE KAMAS DRIVE SEARCH PATH ====" STOUT 186 FETB 10 WO= IFSO NEWLINE "==== Old Drive SeED WITH KAMAS V. 1.2" STOUT BEEPOUT ROVE .IFSO SETDEC CRLFOUT CRLFOUT SIZES ROVE EPTH WO0= IFSO TID 1 +TO DEPTH ELSE TIN .IFSO SHOWLEV .WOCASE .WOCASES .LOOP GT .  bolding of titles 'PRINTLEAF : ; print leaf if asked ?LEAFS IFSO CRLFOUT LINCOUNT ?INDENT IFSO ROVE ®LANG SYS ABENDVOC VMOUNT "CP/M FILE I/O" SJEX ; load in standard CP/M File I/O SETDEC 'LEAFP :WOVAR ; pointer (displacemNEWTOPIC TBUILD .IFSO . 'CUENEWPOS : LASTNEWKEY KG . 'CUENEW : CUENEWTOPIC CUENEWPOS . 'READOLD : NEWLINE "READING: " STC1 +TO GENCOUNT FNAME GENCOUNT WOCVTST ST+ " - Autogenerated by FINPUTJOB Utility" DEPTH WO0= IFSO TID 1 +TOxLANG SYS "TOPIC PRIMITIVES" SJEX "TREE TRAVERSE" SJEX "OUTPUT LOOPS" SJEX "DO-OUTLINE" SJEX "OUTLINE OUT" SJEX OUTLINEOUTLANG SYS SETDEC 'PRINTJOB :JOB 'PAGEBREAK SJEX NEWLINE "==== PRINT WITH HEADERS AND FOOTERS ====" STOUT LOOP NEWLINE "Pri¬ ( RRN FCB --- ) 21 WO+ DUPD STOW WO2+ SWAPW DROPW 0 SWAPW STOB . 'FCALL : ; ( FCB DFN --- RCODE ) DUPD DROPW 24 WO .IFSO .IFSO KEYSAVE KG ; go to whence we came . A ; thru stems INITPACK LOOP ; within a stem GETLINE ?EOF UNTILT ; end of file LINE STLEN WO0= IFSO _ª NEWLINE GETKEY STOUT " ?" STOUT NOYES TO ?KSEARCH ELSE CONSOLE? TO ?KSEARCH ?KSEARCH IFSO "ABORTED!" STOUT KS^ T IFSO 79 OUTCOUNT WO- SWAPW STLEFT .IFSO STOUT .IFSO BOLD NEWLINE ; print leaf ?WSFLAG IFSO WSPL ELdOP NEWLINE "==== Search What Topic: " STOUT WORKST STIN WORKST TFIND UNTILT BEEPOUT NEWLINE "???? NOTFOUND, Try Again" ST*( X¤À@(!   „ ¡„B@!@„À@$P ‚€ P ”B©€@H@ Â@H$0) „†@ !@© CLSOUT "==== Logical Sector " STOUT LSN WOOUTH " of File " STOUT FNAME STOUT " ====" STOUT CRLFOUT CRLFOUT " iINDENT : NEWLINE 5 SPSOUT . 'WRITING : \`0D`\ ASCII WCOUT "WRITING: " STOUT . 'NBL : NEWLINE "???? " STOUT BEEPOUT . 'P~` stop if out of branch LEVEL WO0= UNTILT ; print outline section number NEWLINE LMARG SPSOUT ?INDENT IFSO LEVEf ( €€@ ! @€ ¥@!H@@ P‚B €@ €€€@ !„@  €@ neBmajor title NEWLINE GETKEY DUPW STLEN RMARG SWAPW WO- WO2/ SPSOUT BOLD STOUT BOLD NEWLINE CRLFOUT ; print title leNF 1 +TO LSN CLEAR BUFP .IFSO ?EOF IFSO 13 ELSE FOR INFILE BUFP W+ FETB 1 +TO BUFP 127 WAND ; Get rid of @N .WOCASE 'P ASCII WOCASE LSN WO0= IFSO BEEPOUT ELSE LSN WO1- TO LSN .IFSO .WOCASE 'G ASCII WOCASE NEWLINE "Go To WAc°˜0» DO-OUTLINEES - Command to Output the Text in an Outline =\… U§ FNAME OPEN INFILE ?OPEN UNTILT BEEPOUT NEWLINE "???? FILE: '" STOUT FNAME STOUT "' NOTFOUND, TRY AGAIN" SLANG SYS NEWLINE "==== MAKE 8K SYSTOPIC ====" STOUT NEWLINE "This Job DELETES your current SYSTOPIC and replaces" STOUT B<IFSO CRLFOUT .IFSO .IFSO . 'SOFTSPS : MARKLOC FETB 3 WAND WO0= IFSO SPSOUT ELSE LOOPS 160 WCOUT .LOOPS .IFSO "(  ‚@ !0 €@¥€@!@@@ P BH€@@ €@@( !À@@   P fJP ELSE NEWLINE BEEPOUT "???? NOTFOUND" STOUT RAISE ?STOP .IFSO LOOP ?STOP UNTILT NEWLINE "Titles First or Leafs FR WNOT IFSO DROPW 0 .IFSO .IFSO DUPW WO0= UNTILF DROPW .LOOP CHR 2 W+ STOB . 'GETLINE : ; Get a whole :EN 2000 WOCASE 10 FILEOP .WOCASE ; CLOSE 4000 WOCASE SWAPW OVERW SETFCB 21 FCALL SETEOF .WOCASE ; RE¤‚ @ @ B H€ @ @€ @AsÙíq PAGEBREAKOBS - Set up page break definition .…'rSE NOOP .WOCASE ; NOOP 1 WOCASE 24 WO+ .WOCASE ; FOR 800 WOCASE SWAPW OVERW MAKFCB 9€@  €@ P €H J€¤R@ @ £)?" STOUT NOYES TO ?FILE ?FILE IFSO NEWLINE " File Name: " STOUT FILENAME STIN NEWLINE " WordStar x €@P€@@0( @B… !PJ ¡R@ P   €@€€ @  P €8H(’¤@@ („ !J…@,J ¡ R@ ÀP   €HH€  €v ROVE ¢LANG SYS 'UTMENU CMDFIND IFSO DROPD JEND .IFSO 'SJEX : DUPW NEWLINE ".... Loading: '" STOUT STOUT "'" STOUT KJEX . 'UTMEN €’ €@( J„J ¡R@ @  €@€ 7? " STOUT NOYES IFSO NEWLINE "New Page Size: " STOUT WOIN TO PGSIZE .IFSO 1 TO PAGE# NEWLINE "Print in Outline format (  of status flags for stem 'CLRO CMDFIND IFSO DROPW 6 WO+ FETW 'MARKLOC :WOCON .IFSO 'GETMARKS : MARKLOC FETB TO MARKS . ' ER : CLEAR LINCOUNT CRLFOUT CRLFOUT CRLFOUT FOOT . 'HEADER : CRLFOUT CRLFOUT HEAD CRLFOUT CRLFOUT CRLFOUT . 'PGBREAK : FOd+€ €€@@ !B… J ¡@€R@€€ €I €  €A‚ÒÐ$¯ READ-CP/MOBS - Read CP/M Text file into KAMAS Topic fileŽÓ… "ŸVE KFIND IFSO NOOP ELSE BEEPOUT NEWLINE "???? NOTFOUND" STOUT ROVE .IFSO NEWLINE "Section Numbers (N)?" STOUT NOYES T NE "==== Destination Topic: " STOUT NEWTOPIC STIN NEWTOPIC TFIND UNTILT BEEPNF .LOOP LOOP NEWLINE "==== Input at Whatƒ5 'BRANCH-COPY : NEWLINE "==== KAMAS BRANCH COPY by Thomas Almy ====" STOUT CLEAR ?SAMETOPIC CLEAR DEPTH CLEAR UPCOUN‚4C 196 188 COUNT 80 IWO STOB .COUNT LOOPS WORKST WO1+ IWO W+ FETB WCCVTUC DUPW 41 WO< OVERW 50 WO> WOR IFSO BEEPOUT žporary string 14 'SAVDT :STVAR ; save string for date/time 14 'TEMPDATE :STVAR ; storage for date stamp 64 'OLDSUB IFSO 79 OUTCOUNT WO- SWAPW STLEFT .IFSO STOUT .IFSO BOLD NEWLINE ; print leaf ?WSFLAG IFSO WSPL ELSE PRI€@@ ¡€@@ (!$BPJ€¥PR@ P €@ $¡€P@€ 4„€EX 'MAKE : CHECKMOD 800 TO MODSTAT . 'OPEN : CHECKMOD 1000 TO MODSTAT . 'CLOSE : CHECKMOD 2000 TO MODSTAT . 'READ : CHEC2AND RESIZE by Adam Trent ====" STOUT INDENT "OLD TOPIC: " STOUT OLDTOPIC STIN INDENT "NEW TOPIC: " STOUT NEWTOPIC STIœ€@’¤@  B„@ €J  €RB!  @@B €@€ T "DUPLICATE KEY...." STOUT ASKNAME .LOOP CUENEWPOS WRITENEW CUEOLD TRAVERSE ?ENDLINK ; go to next source stem UNT0WOCASE DEPTH NOT WO0= IFSO GU ; Go Up DEPTH WO1- TO DEPTH .IFSO .WOCASE 2 WOCASE GENTITLES 1 +TO DEPTH ; Iš WOCASE 8 OUTCOUNT 7 WAND WO- SOFTSPS .WOCASE OTHERS CWO WCOUT .WOCASES WO1+ .LOOPS DROPW NEWLINE CRLFOUT  €@  ¥ P€ €€@@ €@/FOR INFILE 128 MDUMP CRLFOUT CRLFOUT . ; 'FDUMP : SETHEX NEWLINE "==== CP/M FILE DUMP UTILITY (84/11/05 by A.Trent) ===™ ; outline item number for each level '?PRINT :FLAGVAR ; set true if printing '?FILE :FLAGVAR ; set true if file outputO .IFSO .IFSO . 'UTMENU SETDFENCE 'UTMENU TOGO USERGO NEWLINE "==== UTILITIES (v.4) loaded. Type U at ROVE prompt for Uti.LEAFSIZE :WOVAR ; size of the leaf 'NEWSIZE :WOVAR ; size of new topic 'CLKCMD :WOVAR ; for save of cmd assigned›WSFLAG IFSO WSPL ELSE PRINTLEAF .IFSO ; print rest of branch LOOP ; go to next stem TRAVERSE ?ENDLINK UNTILT A›ÙüW­ OUTPUTJOBOBS - Output Outline to Screen, Printer, or Fileˆ+… - '?LEAFS :FLAGVAR ; set true to show leafs '?INDENT :FLAGVAR ; set true to indent the titles '?SECNO :FLAGVAR ; set trueCRLFOUT .IFSO .IFSO . 'BOLD : ?WSFLAG ?BOLD WAND IFSO 2 WCOUT .IFSO . €œ˜ ; adjust position ?DOWN IFSO 1 +TO LEVEL 1 LEVEL TO POSITION ELSE LEVEL NOT WO0= IFSO LEVEL UPCOUNT WO< ¡›" P„€@ ! € €@!@€@ P€ @ €@ !À@@   "( ¤‚@(!  $@€ ¥€@!H€@$P$‚B P@@¨€€@(!Ä@`  „†@ „•T :STVAR ; stem subtitle '?SAMETOPIC :FLAGVAR ; true if Dest=Source topic '?LEAF :FLAGVAR ; true if leaf to copy 'ÿO ?SECNO NEWLINE "Leafs (Y)?" STOUT YESNO TO ?LEAFS NEWLINE "Indent (Y)?" STOUT YESNO TO ?INDENT NEWLINE "To Printe*PUTMARKS : MARKS 191 WAND MARKLOC STOB . 'SETVIEW CMDFIND IFSO DROPW 5 W+ FETW 'VDA :WOCON .IFSO 'VD : VDA FETW . ; GetAœ¦ç TREE TRAVERSEVESAGES - Universal KAMAS Tree Traversal Routine 6&„F”U : "UTILITY JOBS" KFIND IFSO MENU ELSE 'HELP TFIND DROPW 'UTILITIES TFIND IFSO "UTILITY JOBS" KFIND IFSO MENU .IFSýOutput (N)?" STOUT NOYES IFSO RAISE ?WSFLAG NEWLINE " Bold Titles (N)?" STOUT NOYES TO ¦* P€€€@ €!@ !@BÀB@€  €@  €@@ „€“LANG SYS 'PRINTLEAF CMDFIND IFSO DROPD JEND .IFSO SETDEC 'LEVEL :WOVAR ; nesting depth of outline 20 'POSITION :WOARRAYA§¤üÊPROGRAMMING PACKAGES - Jex Leafs containing common programming primitives &^%…$(¦TOUT .LOOP CLEAR ?EOF CLEAR LSN CLEAR BUFP . 'READINF : LSN READ INFILE . ‘ADDR 0 1 2 3 4 5 6 7 8 9 A B C D E F ASCII" STOUT NEWLINE 74 LOOPS 45 WCOUT .LOOPS NEWLINE »ûAV KG .IFSO .IFSO ?KSEARCH UNTILT .LOOP NOT ?KSEARCH IFSO NEWLINE "==== " STOUT ?GOTONE IFSO "NO MORE" ELSE "NOT FOUA¬=$ü¿/ RESIZEJOBOBS - Copy and Resize a TopicŽ"…(«'+ 1A DOSCALL DROPW DOSCALL . 'OPCK : WO1+ FF WAND WO0= IFSO BADFILEOP .IFSO . 'FILEOP : FCALL OPCK . 'FULLCK : NOT WO0= I@ €€€€ úent) into leaf buffer 'LEAFBEG :WOVAR ; beginning of leaf buffer 'GENCOUNT :WOVAR ; count for auto-generated titles 80 '%€ ’P  €@@ ( J€ €PP BK€¡R@ P €@  ¡€H„@ B  €€A±i˜ OUTLINE OUTS - Main Outline Output ProgramˆC=… U¶° 13 WO= MARKLOC FETB 3 WAND WO0= WOR IFSO CRLFOUT ELSE 141 WCOUT 10 WCOUT CLEAR OUTCOUNT .IFSO .WOCASE 9ø.LOOP .IFSO GETTNAME TO TEMPST LOOP INDENT "Destination Branch Key Name: " STOUT LASTNEWKEY STIN LASTNEWKEY KFIND € €€ !@ @P @€  @ ŽO 3 ELSE 0 .IFSO .IFSO .IFSO .IFSO NZDUPW NOT WO0= UNTILT PACKLINE .LOOP DONEPACK ?EOF UNTILT WOCASES 1 ÷OCASE 27 WOCASE RAISE ?DONE CLEAR ?NEWF .WOCASE 32 WOCASE 1 +TO LSN .WOCASE OTHERS BEEPOUT A±õPRIMITIVE FILE I/OES - Primitive Definitions for CP/M File I/O VA… 0#This branch contains various JEX (Job Execution) leafs that you can Jex to perform utility operations. This branch is meŒsal LOOP READOLD CUENEWTOPIC ?SAMETOPIC IFSO ASKNAME ELSE LASTOLDKEY TO NEWKEY .IFSO LOOP DUPKEY? UNTILF INDENÀöING TOPIC STEMS ====" STOUT CLEAR ?SAMETOPIC SAVEDATE READOLD NEWTOPIC TBUILD GETKEY TO LASTNEWKEY WRITING GETKEY STO"W TO CLKCMD ; save DATEGO 'NOOP TOGO DATEGO . 'RESDATE : SAVDT TO DATEST CLKCMD MFATNFA NFATST TOGO DATEGO DATEGO . ª€‚ €@ C B€ K¡¡R@ @ @ P@@€€ : LRNA FETW . ; Get current Topic Logical Rec Num 32 'KEYSAVE :STVAR ; Save key to return to at end FSO CLEAR ?OPEN ELSE RAISE ?OPEN .IFSO .  n on the screen with a number preceeding it. To Jex (run) one of the jobs, just type the J key followed by the number ofŠLANG SYS 'TCOPYJOB :JOB "COPY SUBROUTINES" SJEX 'TOPIC-COPY : ; Copy/Resize an entire topic NEWLINE "==== TOPIC COPY ¹ùLANG SYS SETDEC 'FCJOB :JOB '?STOP :FLAGVAR 'PAUSE : NEWLINE ".... [Press ESC to Stop; Any Other Key to Continue]:" STô@„€@ ( € @@ J €P €@€@€@ !€B ’@ € €@@ $A BD  P K ¡€R@  P  €@ €@!€Ph(€ ‰LANG SYS ; File I/O Package for CP/M files by A.Trent ':FILE CMDFIND IFSO DROPD JEND .IFSO "PRIMITIVE FILE I/O" KJEX SETHòS . 'MAKFCB : ; ( FNST FCB --- ) DUPW TO FCBP DUPW 24 MCLEAR WO1+ DUPW TO DPTR B MBLANK WO2+ DUPW TO SPTR WO1- FETB 'PACKLINE : NEWLINE LINE STOUT ; echo what is happening '`0D` +TO LINE LINE STLEN LEAFP WO+ 2040 WO> IFSO NEWLINE CRLTOUT RESDATE . BRANCH-COPY DONE ROVE ñPOUT NOYES WFNOT IFSO ROVE .IFSO 'SYSTOPIC TBUILD 'AUTOJEX KG GETLEAF DROPW 'SYSTOPIC TKILL 8 'SYSTOPIC TPREP NEWLINE 'UBT .IFSO GETKEY TO TEMPST ; check for duplicate key LOOP NEWKEY KDUPK? UNTILF BEEPOUT NEWLINE "==== KEY: '" STOUAÍÁ UTILITIES - KAMAS Utilities Topic as of 85-09-20ˆC+… UðUNTILT LSTYPE 1 +TO LSN .LOOP CRLFOUT CRLFOUT "==== Type any key to continue " STOUT YESNO DROPW . ; FLIST DONE ROVE .SThe Contents of this KAMAS topic file are Copyright (c) 1985 by KAMASOFT, Inc. POB 5549, Aloha, Oregon, 97007. (503) 64….LOOPS 2 SPSOUT .IFSO ; print title SHOWKEY GETSUBT DUPW STNULL= IFSO DROPW ELSE ?PRINT ?FILE WOR WFNOT ï< IFSO DROPW TRUEWF ELSE WOCASES 24 WOCASE TRUEWF .WOCASE 2A WOCASE TRUEWF .WOCASE 2E WOCASE TRUEWF .WOA$Ùü)D FINPUTJOBOBS - Read-in an Outside Text File into a Topic Branch +…'€@@„€B(  J …€P JB  @€€ €AÔÐS: LEAF PACKERS - Pack CP/M Text into KAMAS leafsŒj… " €€‚@ !  @€ ¥€@!@BÀB@ P@ "€@@  €@@hÀ@`  €@ Ò„ 32 'LASTNEWKEY :STVAR ; name of last destination key 32 'NEWKEY :STVAR ; name of new key 32 'TEMPST :STVAR ; temAüÛwFDUMPJOBOBBS - Interactively Dump a CP/M File in Hexidecimal S)…ƒ: " STOUT WORKST STIN WORKST WO1+ FETB DUPW 10 WO>= IFSO DROPW NEWLINE "???? TOO MANY" STOUT BEEPOUT ROVE .IFSO CLTìhat Header? " STOUT HEADST STIN NEWLINE "What Footer? " STOUT FOOTST STIN NEWLINE "Want to double space (N)? " STOUT NODSUBT ?DOWN IFSO TID ELSE TIN .IFSO GETKEY TO LASTNEWKEY PUTNEWLEAF PUTMARKS CLRO . ; set format marks except READAÚИrüX!PRINTJOBBOBS - Print with Headers, Footers, and Page Numbers V+…(ÙSTLEN 78 WO< UNTILF .LOOP .IFSO . 'BEEPNF : BEEPOUT NEWLINE "???? NOTFOUND, Try Again" STOUT . 'CUETOPIC : LOOP NEWLIëLANG SYS ; Jexing this leaf lets you dump a CP/M file in HEX ; 'FDUMPJOB :JOB "CP/M FILE I/O" SJEX SETHEX ; 'I :WOVAR ; '€! ’P €@ !B„€ K¡¡R@  €@B¡@H€€NEOUT : NEWLINE "==== OUTLINE OUTPUT by Thomas Almy ====" STOUT NEWLINE "Output What Branch? " STOUT KEYSAVE STIN KEYSAê counter 'UPCOUNT :WOVAR ; count if going to upper level '?DOWN :FLAGVAR ; flag is set if dropping to new lower level  *( €À@ !  @€ ¥@ @À@ P $‚€! P@¨ €H B¡À@@$ ‰€@‚UT YESNO TO ?DOWN . 'ASKNAME : BEEPOUT INDENT "Rename '" STOUT LASTOLDKEY STOUT "' to: " STOUT NEWKEY STIN NEWLINE . *( HÂ@ ! )PB€ ¥ B(!”@@„€$‚€!€   €H J¡À@`¤ ‰@€‚@ €@@  J„€@ BK€¡R@  ¡@€ $€}GE# HEADST STOUT PAGE# 79 OUTCOUNT WO- WOOUTR . 'FOOT : FOOTST DUPW STLEN 79 SWAPW WO- WO2/ SPSOUT STOUT 12 WCPRT . 'FOOT 1 +TO UPCOUNT .LOOP NOT ?ENDLINK IFSO CLEAR ?DOWN .IFSO ELSE RAISE ?DOWN .IFSO . @ €@(J   R@ P@@€P@|LANG SYS 'LRN CMDFIND IFSO DROPD JEND .IFSO SETDEC 'MARKS :WOVAR ; for mark flags of current stem ; find locationæ 'TRAVERSE : CLEAR UPCOUNT GD ?ENDLINK IFSO LOOP GN ?ENDLINK UNTILF GU ?ENDLINK UNTILT NIBO : F WAND DUPW A WO< IFSO 30 ELSE 37 .IFSO W+ WCOUT . 'BYTO : DUPW 10 WO/ NIBO NIBO . 'BOOUTH : SPOUT BYTO . 'WOOUTH {YES IFSO 1 TO SKIP ELSE 0 TO SKIP .IFSO NEWLINE "Current page size is " STOUT PGSIZE WOOUT " Want new page size (N)åLANG SYS SETDEC 'PGBREAK CMDFIND IFSO DROPD JEND .IFSO 'PAGE# :WOVAR 63 'FOOTST :STVAR 63 'HEADST :STVAR 'HEAD : 1 +TO PACASE 3A WOCASE TRUEWF .WOCASE 3D WOCASE TRUEWF .WOCASE 3F WOCASE TRUEWF .WOCASE OTHERS FALSEWF .YS .LANG AUTOJEX " - A Leaf that is automatically Jexed at initialization time" TID CUELEAF SWAPW DROPW PUTLEAF TC SIZES ROVE 2 WO> IFSO SPTR WO1+ FETB 3A WO= IFSO SPTR FETB 40 WO- DPTR WO1- STOB 2 +TO SPTR .IFSO .IFSO 8 XFRC ; Transf(€€@!   %€ €€ €!€$@ €€@@!…À@H €â’PB ¡€@ € !€J…  BB ¡¡  RB @ B @@P@ € „€ùUT 24 SPSOUT OLDSUBT PUTSUBT PUTNEWLEAF LOOP CUEOLD TRAVERSE ?ENDLINK UNTILT READOLD LASTOLDKEY TO NEWKEY CUENEW .WOCASES ?DONE UNTILT .LOOP ?NEWF UNTILF .LOOP . ; FDUMP DONE ROVE .SYS .LANG á GETTNAME TEMPST ST= WAND UNTILT NBL "KEY NOT FOUND IN TOPIC, TRY AGAIN" STOUT .LOOP INDENT "Insert Down (Y)?" STOöOUT WCIN 27 WO= IFSO RAISE ?STOP ELSE 13 WCOUT 60 SPSOUT NEWLINE CLEAR ?STOP .IFSO ?STOP . 'FCT : LOOP GRAND CLSO LINE :STVAR ; line to store input characters 'INITPACK : GETLEAF IFSO CUELEAF TO LEAFP TO LEAFBEG ELSE CUELEAF DROPND" .IFSO STOUT NEWLINE KSAV KG .IFSO . KEYFIND DONE ROVE Aþ¦˜Ê·Ñ UTILITY JOBS - Type J followed by item number to run a JobˆC+!… 0 ?BOLD ELSE CLEAR ?WSFLAG CLEAR ?BOLD .IFSO FILENAME STUC STARTLOG .IFSO .IFSO DO-OUTLINE ; do our üà€ ’B!€@ (€H!J„ P FJ€¥R@ €  HH€(€ur (N)?" STOUT NOYES TO ?PRINT CLEAR ?WSFLAG ?PRINT IFSO TOGPRINT CLEAR ?FILE ELSE NEWLINE "To CP/M file (NÞ; Universal KAMAS tree traversal routine by Adam Trent 'TRAVERSE CMDFIND IFSO DROPD JEND .IFSO 'DEPTH :WOVAR ; Depthû* $€€@ ! @ € %€B@(!@€@ $PBH€  €€@@  ¡ÀH $ ‰„‚@(lity menu." STOUT A$,ÂCOPY SUBROUTINES - for Branch and Topic copyingŠ!iS…$EÝLANG SYS SETDEC 'OUTLINEOUT CMDFIND IFSO DROPD JEND .IFSO 32 'FILENAME :STVAR ; file name to use for file outputs 'OUTLI ILT ?DOWN IFSO 1 +TO DEPTH ELSE DEPTH UPCOUNT WO< IFSO CLEAR DEPTH ELSE DEPTH UPCOUNT WO- TO AÕ'üzFLISTJOBOBBS - List an ASCII CP/M File to the Console $+…'NTLEAF .IFSO .LOOP NEWLINE . sKMOD 4000 TO MODSTAT . 'WRITE : CHECKMOD 8000 TO MODSTAT . ; ':FILE : BUILDS A4 ALLOT TORUN GETMODSTAT WOCASES 0 WOCA Branch: " STOUT NEWKEY STIN NEWKEY KFIND UNTILT BEEPNF .LOOP . 'READ-CP/M : NEWLINE "==== READ-IN OUTSIDE TEXT FILE OTER HEADER . 'PGBREAK TOGO PAGEGO * €@ !  @„  @!”@À@ P €€€$ €€@¡¡€@@   „† !  "  H €À@ !  @€ €@!@€@,PH€ @ @ €€H) J!€À@@  ¤‚  SE PRINTLEAF .IFSO .LOOP NEWLINE . p DUPW 13 DOSCALL DROPW 16 FILEOP .WOCASE ; MAKE 1000 WOCASE SWAPW OVERW MAKFCB F FCALL SETOPEN .WOCASE ; OPÚline of chars into string LINE CLEAR LINE NOT ?EOF IFSO LOOP GETCHR CHR ASCII 13 WO= UNTILT CHR +TO LINE LINE EEPOUT NEWLINE "it with an essentially empty 8K SYSTOPIC--only the AUTOJEX" STOUT NEWLINE "leaf is preserved from the curotop bit DUPW 26 WO= IFSO RAISE ?EOF DROPW 0 .IFSO ; end of file DUPW 13 WO= OVERW 9 WO= WOR OVERW 31 WO> WOØUTNEWLEAF : ?LEAF IFSO LEAFSIZE PUTLEAF .IFSO . 'WRITENEW : UPCOUNT LOOPS GU .LOOPS WRITING NEWKEY STOUT NEWKEY OLOUT .LOOP GETKEY TO KSAV CLEAR DPTH CLEAR ?GOTONE CLEAR ?KSEARCH NEWLINE "==== Partial Key: " STOUT FINDST STIN FINDST m€@€€@@(! B…@ J¡ RB  @ @€„ ×nt What branch? " STOUT WORKST STIN WORKST KFIND UNTILT BEEPOUT NEWLINE "???? NOTFOUND, Try Again" STOUT .LOOP NEWLINE "W>˜0» OUT-OUTLINES - Output the content of an OutlineˆÓK…3OUT GETKEY STOUT GETSTAMP TO TEMPDATE 2 TEMPDATE STLEFT TO DATEST 13 4 STEP IWO 2 TEMPDATE STMID +TO DATEST 3 .SlLMARG DUPW LEVEL WO1+ WO2* WO+ WO1- TO LMARG SHOWLEAF TO LMARG ELSE SHOWLEAF .IFSO LINCOUNT NOT WO= Öarch Path: " STOUT 196 187 COUNT IWO FETB 80 WO= UNTILT IWO FETB 40 W+ WCOUT .COUNT NEWLINE "==== New Drive Search PathNE STMID TO LINE ELSE NEWLINE "???? BAD TITLE" STOUT BEEPOUT 5 76 LINE STMID TO LINE .IFSO "\" LINE STWITHIN IFSO DJ*€@ !  @ ¥€@!@„€@I! P€P @ „@ !ÀB@  €€!+ L WO1- WO2* SPSOUT .IFSO BOLD ?SECNO IFSO LEVEL LOOPS IWO POSITION 0 WOOUTR IWO LEVEL NOT WO= IFSO '. STOUT A¡¦è‹TOPIC PRIMITIVESAGES - Primitive Commands for Topic Operations !i5„F"E :FLAGVAR '?KSEARCH :FLAGVAR 'KSTRAV : GD ?ENDLINK IFSO LOOP GN ?ENDLINK UNTILF GU ?ENDLINK UNTILT DPTH WjILE :FILE ; Make a general input work file variable ; 'OPENINF : LOOP NEWLINE "==== CP/M File: " STOUT FOR FNAME STINÓ €@@ @ B€@PK€ R@ @ ¡@€€ # NTILT ; adjust position ?DOWN IFSO 1 +TO LEVEL 1 LEVEL TO POSITION ELSE LEVEL NOT WO0= IFSO LEVEL UPCOUN"WOCASE 'l ASCII WOCASE FCL .WOCASE OTHERS BEEPOUT CLEAR ?STOP .WOCASES ?STOP UNTILT .LOOP . FC DONE ROVA&«Ðü?‡COPYJOBOBOBS - Copy a topic Branch to same or other topicŠ! …(Ô:STVAR ; source topic name 32 'NEWTOPIC :STVAR ; destination topic name 32 'LASTOLDKEY :STVAR ; name of last source key$h Escape)? " STOUT WCIN WCCVTUC WOCASES 'F ASCII WOCASE RAISE ?NEWF RAISE ?DONE .WOCASE 'N ASCII WOCASE 1 +TO LSA=üÀ~ FLASHCARDSBS - Play this Game to Learn the Knowledge in Your Topics $j#… !! ge OPENINF 128 TO BUFP . 'GETCHR : ; Get a character from input file. Goes to CHR LOOP BUFP 128 WO= IFSO READIl be returned to the ROVE mode. = NEW KEY: '" STOUT NEWKEY STOUT "' " STOUT .  " € €@ !0 D€¡€@!@@@ P€@ @ €€ÀH J!€@@ €@ !Ï :FLAGVAR 'LSN :WOVAR 'BUFP :WOVAR 'SPTR :WOVAR 'DPTR :WOVAR 'FCBP :WOVAR 10 'FNAME :STVAR 'FNEND? : SPTR FETB DUPW 20 WO9CHR? : DUPW 32 WO< SWAPW 126 WO> WOR . ; 'ADUMP8 : 7 0 COUNT DUPW IWO WO+ FETB DUPW PRTCHR? IFSO DROPW '. ASC0e€!€@ ) B„@ €€ÀR@¤  €  €@€ 1/fLANG SYS 'DO-OUTLINE CMDFIND IFSO DROPD JEND .IFSO ; 'DO-OUTLINE : CLEAR LEVEL CLEAR ?DOWN CLEAR POSITION ; print 0nUNTILT .LOOP . 'FC : TRUEWF NEWLINE "==== FLASHCARD IN WHAT TOPIC: " STOUT WORKST STIN WORKST TFIND IFSO CLEAR ?STO8YPE : FOR INFILE DUPW 127 W+ SWAPW COUNT IWO FETB DUPW 26 WO= DUPW IFSO TO ?EOF DROPW TRUEWF .IFSO UNTILT WCOUT .COUNT cELSE CLEAR ?LEAF .IFSO . 'DUPKEY? : ; ( -- wf) GETKEY TO TEMPST NEWKEY KDUPK? DUPW WNOT IFSO TEMPST KG .IFSO . '7DUMP8 8 WO+ ADUMP8 . ; 'MDUMP : ; (woaddr wolen --- ) WO1- 0 1 FOR I +WODO DUPW I WO+ DUMPLINE 1b5 +TO I .WODO DROPW . ; '?DONE :FLAGVAR '?NEWF :FLAGVAR ; 'LSDUMP : READINF ?EOF IFSO BEEPOUT CLEAR LSN READINF .IFSOÌ. ; 'FLIST : NEWLINE "==== CP/M FILE LIST UTILITY (84-11-12 by A.Trent) ====" STOUT OPENINF CLSOUT LOOP READINF ?EOF 5II .IFSO WCOUT .COUNT DROPW SPOUT . ; 'DUMPLINE : NEWLINE I WOOUTH DUPW DUMP8 DUPW 8 WO+ DUMP8 SPOUT DUPW Aa€@P$  €@ (!„ J„„B H J ¤‘R@ P B $@B¡@ €  €€i°˜¥Ü OUTPUT LOOPS - Outline Output Loopsput LoopˆK…3