NSSE2  FILE%  HEAPS   TST16K  COMPACT  COMPACTR " % FILEDIT ? FILEDITCC HEXDEC ( HEXREM / MEMREM 3 MEMSET 8 FILEDITPG FILEDITEK  FILEDREMU MEMRYMAPY BASICEXP[ SORT ^  ALPHSORTj x y } 4 � â PROGRAM SHOWS FILE CAPACITY ì CUR¨T USAGE - � â OF SERIAL ‡ FILES � NíTHSTAR BASIC . � â 10ç12ç77 B. PALMER à415) 941å2270 2( ‹ A$à255)\ � â USE “LY � FILE WITH STRINGS 52 � â UNDER 255 CHARACTERS IN ÌGTH %< ’ µà12)\ ’" (BYTES OF STORAGE)", -F ’³à24),"CAPACITY",\’³à38),"USED %"\’ )P †1 "FILE NAME: ",F$\ — #0,F$,L\ Uõ0 $Z Cõ256âL\’³à25),\’%C7I,C,\ ‰ šn 6d ’³à35),\’%C7I,U,\’³à45),\’%5F2,Pâ100,\’" %"\ˆ šP #n „ ßà0)õ0 ² š \ „ ßà0)õ1 ² š– 4x � THE C“STANT 5 IN THE ƒ STATEMENT ASSUMES THAT 0‚ � EIGHT DIGIT PRECISI“ BASIC WROTE THE FILE Œ … #0,N\ UõUã5\ ˆ šn – … #0,A$\ UõUãÌàA$)ã2\ ˆ šn   ˜ #0\ PõUçC\ Š  + � ¦RIBUTED BY B¨T ROMAN ì BRIAN WITT 4 � 1 OCT 77 AT BYTE WALNUT CREEK COMPUTER FAIR , † "HOW MANY NUMBERS TO SORT? ",N\NõÆàN) ( „ Nô1 ² š 2 ‹ Y$à1),DàN) "< † "INPUT OR RANDOM DATA? ",Y$ F „ Y$õ"I" ² š  5P † "PLEASE GIVE AN OFFSET FOR RANDOM VALUES " , J Z JõÎàJçÛàJã1)) d � Aõ1 ± N n DàA)õÆà10âNâÎà0))åN x ƒ A ‚ ‚ \‚ ³à25),"RANDOM DATA" Œ ‰ šà – ˆ šÜ ;  ‚\‚ "INPUT",N," NUMBERS EACH SEPARATED BY A RETURN."\‚ ª �Zõ1 ± N ´ †1 "",DàZ) ¾ SõZç5\„ SõÆàS) ² ‚ È ‚ ³ààSåÆàS))â64), Ò ƒ Z Ü ‚\‚ #æ ‘ �PàX)õàXåààXç2åÆàXç2))â2))ç2 .ð ‘ �BàX)õXãXãààDàXãX)ôDàXãXã1)) ì àXãXôT)) ú � Tõ2 ± N  QõDàT)\IõT  „ Iõ1 ² š@  Jõ�PàI) " „ Qð DàJ) ² š@ , DàI)õDàJ)\IõJ 6 ˆ š @ DàI)õQ J ƒ T T TõN ^ BõDàT)\DàT)õDà1)\TõTå1\Iõ1 h „ IãIöT ² šš r Jõ�BàI) | „ DàJ)ðB ² šš † DàI)õDàJ)\IõJ � ˆ šh š DàI)õB ¤ „ Tï2 ² š^ ® ‚ ³à25),"SORTED DATA" ¸ ‰ šà  ‚ \† "ANOTHER SORT? ",Y$ Ì „ Y$õ"Y" ² š< Ö � à � Zõ0 ± Nå1 ê SõZç5\„ SõÆàS) ² ‚ ô ‚ ³ààSåÆàS))â64),DàZã1), þ ƒ Z  Š àS) ² ‚  ‚ ³ààSåÆàS))â64),DàZã1),  ƒ Z  Š XO�[;XDB�R/á-CÂBÂ4Â" ‹ Eà4,8) ' ’"16KRA DIAGNOSTIC FOR BOARD AT ", * � CíRESP“DING ± ROWS A,B,C,D “ BOARD\ #! Rà0)õ7\ Rà1)õ6\ Rà2)õ9\ Rà3)õ8 # R$õ"02468ACE" C% ’ R$àRà3)ç2ã1,Rà3)ç2ã1),"000 AND ",R$àRà1)ç2ã1,Rà1)ç2ã1),"000" 2 € Eõ0 4 � Rõ0 ± 3\ � Cõ0 ± 7 6 € EàR,C)õ0 8 ƒ C\ ƒ R d � ™ FIXED PATTERN n � Rõ0 ± 3 x PõRàR)â4096 ‚ Ž šŽ Œ … A – „ Aõå1 ² ˆ š¾   … D ª • PãA,D ´ ˆ šŒ ¾ ƒ R È � … BACK FIXED PATTERN Ò � Rõ0 ± 3 Ü PõRàR)â4096 á Ž šŽ æ … A ë „ Aõå1 ² ˆ š" ð … S ú WõÚàPãA)  „ WõS ² ˆ šæ  ‰ šè\ � ERRí R”INE  ˆ šæ " ƒ R ", „ Eö0 ² ‰ š° ´ ‚ "NO ERRORS" 6 ‚ ); † "NOW RANDOM TESTING: HOW MUCH? ",M < „ Mõ0 ² ˆ š @ JõÎà1çM) J � Rõ0 ± 3 O PõRàR)â4096 T � Tõ1 ± M ^ • PãT,Æà255âÎà0)ã.49) h ƒ T r ƒ R � JõÎà1çM) š � Rõ0 ± 3 Ÿ PõRàR)â4096 ¡ � Tõ1 ± M ¤ SõÆà255âÎà0)ã.49) ® WõÚàPãT) ¸ „ WõS ² ˆ šÌ  ‰ šè Ì ƒ T Ö ƒ R à ˆ š, .„ � FIXED ‡ PATTERN\ àDISPLACEMENT,‡) PAIRS +Ž ‡ 0,255,1,0,2,0,4,0,8,0,16,0,32,0,64,0 &˜ ‡ 128,0,256,0,512,0,1024,0,2048,0 *¢ ‡ 4000,254,4001,253,4002,251,4003,247 *¬ ‡ 4004,239,4005,223,4006,191,4007,127 ± ‡ å1 è � ERRí SUBR”INE ò � B õ 0 ± 7 ü W1õW  S1õS  SõÆàSç2)  WõÆàWç2)  „ 2âWãS1õ2âSãW1 ² ˆ š8 $ € E õ E ã 1 . € EàR,B) õ EàR,B) ã 1 8 ƒ B B Š ° ‚ E," ERRORS SO FAR" µ ‚ ³à20),"ERROR SUMMARY" º ‚ ³à10), $¿ ‚ %5I,9,10,11,12,13,14,15,16,17 Á E$õ"ABCD" Ä � R õ 0 ± 3 'Î ‚ " ",E$àRã1,Rã1)," (P)", BØ ‚ %5I,EàR,5),EàR,4),EàR,6),EàR,1),EàR,0),EàR,2),EàR,3),EàR,7) â ƒ R ì Š d’\’\’\’"BASIC COMPACTOR" n’\’³à10),"BY GLENN STEINER" 3x’\’\’"PROGRAM WILL REMOVE ALL SPACES WHICH ARE" -‚’"NOT NORMALLY NEEDED IN A BASIC PROGRAM" 3Œ’"NOTE--BASIC PROGRAM MUST FIRST BE DEFINED AS" –’" A TYPE 3 DATA FILE" / ’"COMPACTED FILE WILL REPLACE THE ORIGINAL" ª’"BASIC PROGRAM FILE" (Ȇ"NAME OF FILE TO BE COMPACTED: ",A$ Ò—#0,A$ Ü—#1,A$ úPõ0\Nõ0\Rõ2 ,,…#0,&K,&L1,&L2\� … CHAR COUNT ì œ NUMBER .™#1,&K,&L1,&L2,¹\� ™ IT BACK 1„Kõ1²šô 3’"LINE NUMBER: ",L1ã256âL2, 4K1õK\Aõ0\A1õ0 !5RõÛàR)\Qõ0\� RESET QUOTE FLAG 6�Iõ4±K +;A2õA1\A1õA\� ª PREVIOUS TWO TOKENS READ @…#0,&A\� FETCH A CHARACTER 0E„A1õ154íA2õ154²šL\� IGNíE STATEMENT NUMBERS .J„Aõ32ìQõ0ìRö0²š|\� SKIP SPACES „ POSSIBLE L„Añ92²šO *MQõ0\RõÛàR)\� NEW STATEMENT ENCOUNTERED O„Aõ143²RõÛàR)âå1 T„Aõ34ìRö0²Qõ1åQ ^™#1,&A,¹ hˆš� |K1õK1å1 �ƒI �„KñK1²™#1%P,&K1,¹ '•’" ",KåK1," CHARACTERS REMOVED" —NõNãKåK1 šPõPãK1\…#1%På1,&A ˆš, ô˜#0\˜#1 #þ’\’N," CHARACTERS WERE REMOVED" ’"DONE"   � PROGRAMå COMPACT � AUTHíå GÌN STEINER � 6(� PURPOSEå PROGRAM �OVES UNNECESSARY SPACES FROM A :2� BASIC PROGRAM. THIS IS USEFUL WHEN YOU ARE 5<� PUSHED � SPACE ì EVERY BYTE IS NEEDED. 7F� USEå THE PROGRAM YOU WISH ± BE COMPACTED MUST 4P� FIRST BE CHANGED FROM A ßE 2 ± A ßE 3 1Z� PROGRAM UËG THE DOS "TY" COMMì. ² 5d� THE COMPACT PROGRAM MAY BE  . WHEN THE 5n� COMPACT PROGRAM IS D“E THE FILE MUST BE 1x� CHANGED BACK ± A ßE 2 PROGRAM FILE. 5‚� ÷ESå THE PROGRAM ± BE COMPACTED MUST HAVE GOOD /Œ� SYNTAX í FUNNY THINGS MAY HAPPEN. 3–� COMPACT DOES PROPERLY TAKE ÆO ACCOUNT $ � QUOTES ì � STATEMENTS. 3ª� UNLESS YOU UNDERSTì HOW BASIC WíKS, I 4´� WOULD ADVISE YOU ÷ ± TRY MOD„YING THIS ¾� PROGRAM. AM YOU WANT ±   MUST BE ENTERED Ü� ÆO THE DIREC±RY. /æ� THE HELP DIREC±RY IS ÍED HELP.DIR -ð� ì EACH � PROGRAMå FILEPRNT � AUTHíå LARRY G. KAVERT � *(� PURPOSEå ± ‚ ” í COPY ANY ßE 3 FILE. 8P� USEå   THE PROGRAM. � COPY, YOU JUST ENTER THE 4Z� SOURCE ì DESTINATI“ FILESå N“E OF THE 1d� ¦ENTS ARE ¡ED. � ‚, AFTER YOU ENTER 4n� THE FILE ± BE ¡ED, THE COMPUTER WILL ‚ :x� ” THE ELEMENT # FOLLOWED BY A COL“, A SPACE, 0‚� ì THE ELEMENT. 15 œS ARE ‚ED AT A 9Œ� TIME, AFTER WHICH, A CR WILL CAUSE THE ƒ 15 –� ± BE ‚ED. 7 � ÷ESå ATTEMPTS ± EXECUTE PROGRAM WITH N“åEXISTENT .ª� FILES WILL CAUSE PROGRAM ± BOMB.  ANSWER FOR A ",C$  ‚ "WOULD BE"\ † G$ " „ G$õ"YES" ² š@ , „ G$õ"NO" ² šJ 6 ˆ šd @ B1õL1\ B2õL1ã1\ ˆ šT C1õ0\ C2õ0\ ‹ A$à500)\ ‚ - ‚ "PRINTS OUT OR COPIES ANY TYPE 3 FILE"  ‚\ † "PRINT OR COPY? ",A7$ ( „ A7$õ"PRINT" ² š– 2 „ A7$ñ"COPY" ² š < † "SOURCE FILE: ",F1$ F † "DESTINATION FILE: ",F2$ P — #0,F1$\ — #1,F2$ Z “ àßà0)ã1) ˆ šŒ,šd,šx d … #0,A$\ ™ #1,A$ n ˆ šZ x … #0,B1\ ™ #1,B1 ‚ ˆ šZ Œ ˜ #1\ ˆ š !– † "FILE TO BE PRINTED: ",F1$   ‚\ — #0,F1$ ª ‚ "FILE CONTENTS:" ´ C1õC1ã1\ C2õC2ã1 ¾ „ C2ñ15 ² šÒ È C2õ0\ † " ",A1$ Ò “ àßà0)ã1) ˆ š,šÜ,šð Ü … #0,A$ æ ‚ C1,": ",A$\ ˆ š´ ð … #0,N1 ú ‚ C1,": ",N1\ ˆ š´  ˜ #0\ �  ‚ "THE ANSWER FOR A ",C$  ‚ "WOULD BE"\ † G$ " „ G$õ"YES" ² š@ , „ G$õ"NO" ² šJ 6 ˆ šd @ B1õL1\ B2õL1ã1\ ˆ šT- � HEX ± DECIMAL ì VICE VERSA C“VERTER 1 � PROGRAMMED 10ç10ç77 BY R“ALD M. LAPEDIS  ‹ A$à6),Z$à1),Xà3)  † "INSTRUCTIONS?",A$  „ A$à1,1)õ"N" ² šP 4( ‚ "TYPE THE NUMBER TO BE CONVERTED FOLLOWED BY" 92 ‚ "'H' IF IT'S IN HEX. NUMBERS WITH HEX DIGITS ARE" << ‚ "IMPLICITLY ASSUMED TO BE HEX, AND NO 'H' IS NEEDED." F ‚ "TYPE '0' TO END." -P ‚ \ †1 "THE NUMBER: ",A$ \ „ A$õ"" ² š” .Z „ A$à1,1)õ"0" ² š” \ „ A$à1,1)õ"H" ² šn (d A õ ÌàA$) \ „ A$àA)õ"H" ² š´ ´ š, n ‚ " IS INVALID" \ ˆ šP x � ‚ � Œ � HEX ± DECIMAL – � >  � „ THE NUMBER HAS ANY HEX CHARACTERS, ITS OBVIOUSLY HEX’ 6ª AõAã1 \ � MAKE ALLOWANCE � ÛENCE OF 'H' � HEX ´ „ Aö5 ² šn ¾ � Xõ1 ± Aå1 \ X1õ¶àA$àX,X)) 6È „ àX1ô48 í X1ö70) í àX1ö57 ì X1ô65) ² – šn \ ƒ X Ò Põ0 \ Dõ0 Ü � XõAå1 ± 1 ° å1 #æ DõDã�AàA$àX,X),A)â16áP \ PõPã1 ð ƒ X !ú ‚ " = ",D," DECIMAL" \ ˆ šP  �  �  � DECIMAL ± HEX " � , � Xõ1 ± A \ X1õ¶àA$àX,X)) /6 „ X1ô48 í X1ö57 ² – šª \ � MAYBE ITS HEX? @ ƒ X J Aõ·àA$à1,A)) 'T Aõ�CàA) \ „ Aõå1 ² šn \ A$õ" " ^ � Xõ0 ± 3 h A$àXã1,Xã1)õ�B$àXàX)) \ ƒ X 9r � X õ 1 ± 3 \ „ A$à1,1)õ"0" ² A$õA$à2,ÌàA$)) ´ – š† | ƒ X † ‚ " = ",A$," HEX" � ˆ šP š Œ ¤ � ® � ¸ � � OF MAINœ  � 0Ì ‘ �AàZ$,A) \ � HEX ¶II ± DECIMAL NUMBER !Ö € Aõ¶àZ$)å48 \ „ Aö9 ² AõAå7 à Š A \ �� ê � ô � *þ ‘ �B$àB) \ � DECIMAL NUMBER ± HEX ¶II # „ Bô10 ² Š µàBã48) ´ Š µàBã55)  ��  � & � <0 ‘ �CàC) \ � BREAKDOWN DECIMAL # ÆO 4 DECIMAL CODED HEX #: „ Cö65535 ² Š å1 \ � OVERFLOW 1D Xà0)õ0 \ Xà1)õ0 \ Xà2)õ0 \ Xà3)õ0 \ C1 õ4096 !N � C2 õ0 ± 3 \ � MSD IN Xà0) X “ ÊàCåC1)ã2 ˆ šv,šl,šb #b CõCåC1 \ XàC2)õXàC2)ã1 \ ˆ šX l XàC2)õXàC2)ã1 \ – š€ v C1õC1ç16 \ ƒ C2 € Š C Š �� ” � 3 � HEXDEC å HEXADECIMAL ± DECIMAL ì VICE VERSA. 4� INSTRUCTI“S ARE PROVIDED IN THE BASIC PROGRAM. 8� THE LIMITS ARE FFFFH ì 65535 DECIMAL. RING A BELL? A( ‚ "THIS PROGRAM IS A COLLECTION OF REM STATEMENTS. LIST IT"  8 � MEMSETåSETS NíTHSTAR BASIC ± USE ANY ¦IGUOUS MEMíY 8� LOCATI“S. ÚPLE å THERE IS A 4K BOARD AT LOCATI“ 3� 0. THE † ± MEMSET WOULD BE 0 � THE START, ì 6(� FFF � THE LAST. „ THERE WERE 20 K OF MEMíY AT ,2� 2000H, ² THE † WOULD BE â � START, ì 6<� 6FFF � THE LAST. THE â REPRESENTS �BAS SO THAT #F� YOU D“'T HAVE ± MEMíIZE IT. AP ‚ "THIS PROGRAM IS A COLLECTION OF REM STATEMENTS. LIST IT"  LOCATI“S. ÚPLE å THERE IS A 4K BOARD AT L 5 � MEMSET SETS UP NíTH STAR BASIC ± USE N“åSTìARD $ � WíKING S±RAGE ² ERASES ITSELF ) � PROGRAMMED OCT 1977 BY R“ LA PEDIS ( � 2 ‹ A$à4),B$à4),C$à2) &< †1 "START ADDRESS IN HEX? ",A$ +F † " / END ADDRESS IN HEX? ",B$ \ ‚ P � Z � d „ A$à1,1) ñ "*" ² š¾ "n „ �CàB$)õ0 ² š< ´ B$õ�A$àB$) x SõÚà10758)ãÚà10759)â256 ‚ Fõ�AàB$)ãBâ256 Œ „ SöF ² š< – • 10761,A \ • 10762,B   ˆ šú ª � ´ � %¾ „ �CàA$) õ 0 í �CàB$) õ 0 ² š< 0È A$õ�A$àA$) \ B$õ�A$àB$) \ „ A$ ö B$ ² š< 1Ò • 10758,�AàA$) \ • 10759,B \ � START ADDR Ü S õ B â 256 ã A -æ • 10761,�AàB$) \ • 10762,B \ � � ADDR ð F õ B â 256 ã A :ú ‚ "BASIC IS NOW SET FOR",FåSã1," BYTES. THAT EQUALS", . FõàFåSã1)ç256 \ „ FõÆàF) ² š ´ FõÆàFã1) ) „ F õ 0 ² ‚ 1, ´ ‚ F, \ ‚ " BLOCKS."  CõÍà10752) " � , � � OF MAIN œ 6 � @ � *J � ADD LEADING ZEROS � C“VERSI“ EASE. T � ^ ‘ �A$àZ$) h „ ÌàZ$) õ 4 ² š| *r � X õ 1 ± 4åÌàZ$) \ Z$ õ "0"ãZ$ \ ƒ X | Š Z$ \ �� † � � � 9š � CHANGE 4 ¶II CHARS ÆO TWO BYTES OF BASE 10 ÷ATI“. ¤ � ® ‘ �AàA$) <¸ C$ õ A$à3,4) \ A$ õ A$à1,2) \ � MOST SIG BYTE IN A$ ì B ) A õ �BàC$à1,1),A)â16 ã �BàC$à2,2),A) )Ì B õ �BàA$à1,1),B)â16 ã �BàA$à2,2),B) Ö Š A \ �� à � ê � !ô � ¶II HEX ± DECIMAL NUMBER þ �  ‘ �BàZ$,B) + € B õ ¶àZ$) å 48 \ „ B ö 9 ² B õ B å 7  Š B \ �� & � 0 � : � 9D � MAKE SURE THAT STRING IS HEX ì ÷ GARBAGE àGIGO’) N � X ‘ �CàZ$) b � Xõ1 ± ÌàZ$) 0l „ ¶àZ$àX,X)) ö 57 ì ¶àZ$àX,X)) ô 65 ² – š” 0v „ ¶àZ$àX,X)) ô 48 í ¶àZ$àX,X)) ö 70 ² – š” € ƒ X Š Š 1 ” Š 0 ž �� ¨ � Ï-\0YO<\ØYOG\µZOR\O[�„\5FFF�Œ\5FFF�FF� FFFF PA!�EB%PC ‚\ ‚\ ‚ ³à20), "FILEDIT" 8 ‚ "PRINT CONTENTS, EDIT, OR COPY A BASIC DATA FILE" & ‚\ † "PRINT, EDIT, OR COPY? ",A7$ !( „ A7$õ"PRINT" ² › "FILEDITP" "2 „ A7$ õ "COPY" ² › "FILEDITC" < „ A7$ñ"EDIT" ² š 5F † "DO YOU WANT DETAILS? ",Y$ \ „ ÌàY$) õ 0 ² šª P „ Y$à1,1) ñ "Y" ² ˆ šª BZ ‚ "TYPE A SPACE TO ACCEPT A LINE, A QUESTION MARK TO DELETE," Ad ‚ "AN S TO SKIP DOWN TO A PARTICULAR LINE, AN M TO MOVE ALL" @n ‚ "LINES DOWN TO (BUT NOT INCLUDING) A GIVEN LINE, AN A TO" ?x ‚ "TO INSERT A LINE AFTER THE OLD LINE, A B TO INSERT ONE" C‚ ‚ "BEFORE THE OLD LINE, OR AN EQUAL SIGN TO REPLACE THE LINE." <Œ ‚ "WHEN INSERTING, TYPE C AFTER EACH LINE TO CONTINUE." =– ‚ "FILEDIT IS NOT INTENDED FOR EDITING FILES OF DATA OF"   ‚ "MIXED TYPES." ª › "FILEDITE" ´ �  |K1õK1å1 �ƒI �„KñK1²™#1%P,&K1,¹ '•’" ",KåK1," CHARACTERS REMOVED" —NõNãKåK1 šPõPãK1\…#1%På1,&A ˆš, ô˜#0\˜#1 #þ’\’N," CHARACTERS WERE REMOVED" ’"DONE" & C1õ0\ C2õ0\ ‹ A$à200),B$à200) \ ‚  † "SOURCE FILE: ",F1$  † "DESTINATION FILE: ",F2$ ( — #0,F1$\ — #1,F2$ 2 “ àßà0)ã1) ˆ šn,š<,šP < … #0,A$\C1 õ C1 ã 1 F ™ #1, A$ \ ˆ š2 P … #0,B1\ C2 õ C2 ã 1 Z ™ #1,B1 d ˆ š2 7n ˜ #1\ ‚ C1, "STRINGS AND ", C2, " NUMBERS COPIED." x ˜ #0\ � DIT" ² š" # ‚ B1,\ † Q$ \ „ Q$ õ " " ² š"  „ Q$ õ "?" ² šŒ  „ Q$ õ "=" ² † B1 " ™ #1,B1 , ˆ šŒ 6 ˜ #1\ ˆ š® !@ † "FILE TO BE PRINTED:  ‹ A$à500) ! † "FILE TO BE PRINTED: ",F1$  ‚\ — #0,F1$ \ C1 õ 0 ( ‚ "FILE CONTENTS:" 2 “ àßà0)ã1) ˆ šd,š<,šP < … #0,A$ \ C1 õ C1 ã 1 F ‚ %5I,C1,": ",A$ \ ˆ š2 P … #0,N1 \ C1 õ C1 ã 1 Z ‚ %5I,C1,": ",%,N1\ ˆ š2 d ˜ #0\ �  & C1õ0\ C2õ0\ ‹ A$à200),B$à200) \ ‚  † "SOURCE FILE: ",F1$  † "DESTINATION FILE: ",F2$ ( — #0,F1$\ — #1,F2$\ J õ 0 2 “ àßà0)ã1) ˆ š^,š<,šú < … #0,A$\J õ J ã 1 3F ‚ %5I, J, " ",A$,\ † ">",Q$ \ „ Q$ õ " " ² š‚ P „ Q$ õ "?" ² š2 Z „ Q$ õ "=" ² † A$ d „ Q$ õ "M" ² ˆ šª n „ Q$ õ "S" ² ˆ šª x „ Q$ õ "B" ² ‰ š  ‚ ™ #1,A$ Œ „ Q$ õ "A" ² ‰ š  – ˆ š2 0  †1 B$ \ ™ #1, B$ \ † ">",Q$ \ „ Q$õ"C"² š  ¡ Š 'ª † "LINE # ? ", N \ „ N ï J ² ˆ šÈ '´ ‚ "CANNOT WORK BACKWARDS!" \ ˆ šF ¾ … #0, A$ \J õ J ã 1 È „ N õ J ² ˆ šF Ò „ Q$ õ "M" ² ™ #1, A$ Ü “ àßà0)ã1)ˆ šT, š¾, šæ (æ … #0,B1\ J õ J ã 1 \„ N õ J ² ˆ š !ð „ Q$ õ "M" ² ™ #1, B1 \ˆ šÜ ú … #0, B1 \ J õ J ã 1 2 ‚ %4I, J, %, B1,\ † ">",Q$ \ „ Q$ õ " " ² š,  „ Q$ õ "?" ² š2  „ Q$ õ "=" ² † B1  „ Q$ õ "M" ² ˆ šO  „ Q$ õ "S" ² ˆ šO " „ Q$ õ "B" ² ‰ šJ , ™ #1,B1 6 „ Q$ õ "A" ² ‰ šJ @ ˆ š2 0J † B2 \™ #1, B2 \† ">",Q$ \„ Q$ õ "C" ² šJ K Š 'O † "ITEM # ? ", N \ „ N õ J ² ˆ š P „ N ö J ² ˆ šð &Q ‚ "CANNOT WORK BACKWARDS" \ ˆ š -T ‚ "REACHED END OF FILE SEEKING LINE ", N ^ ˜ #1 h ˜ #0\ �  T ‚ "FILE CONTENTS:" ^ C1õC1ã1\ C2õC2ã1 h „ C2ñ15 ² š| r C2õ0\ † " ",A1$ | “ àßà0)ã1) ˆ š®,š†,šš † … #0,A$ � ‚ C1,": ",A$\ ˆ š^ š … #0,N1 ¤ ‚ C1,": ",N1\ ˆ š^ ® ˜ #0\ � O BE PRINTED: ",F1$ J ‚\ — #0,F1$ T ‚ "FILE CONTENTS:" ^ C1õC1ã1\ C2õC2ã1 h „ C2ñ15 ² š| r C2õ0\ † " ",A1$ | “ àßà0)ã1) ˆ š®,š†,šš † … #0,A$ � ‚ C1,": ",A$\ ˆ š^ š … #0,N1 ¤ ‚ C1,": ",N1\ ˆ š^ ® ˜ #0\ �  � 8 � FIL¬ IS A SYSTEM OF FOUR MODULES WHICH PER�M COPY, 0� ¬ í ¡ FUNCTI“S “ BASIC ‡ FILES. THE CODE � 7� FIL¬ IS AN EXTENSI“ OF FILEPRNT BY LARRY KAVERT ì 1(� GÌN STEINER. „ THE FOUR MODULES ARE ± LINK :2� CíRECTLY THEY MUST ALL BE “ DRIVE #1 í THE CODE MUST 7<� BE CHANGED. FIL¬ IS IN MODULES BOTH ± REDUCE THE 2F� S±RAGE REQUI�ENT ì ± SIMPL„Y THE INSERTI“ OF P� SPECIAL PURPOSE CODE.  14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15  � "MEMRYMAP"  ‹ A$à16) & A$õ"0123456789ABCDEF" \ B$õ"048C" 8( ’ " MEMORY MAP (ASSUMES MDC AT E800, 16K AT 2000H)" 2 � Mõ1 ± 16 < ’A$àM,M),"...", F ƒ M P ’ Z � Mõ1 ± 16 d ’B$, n ƒ M \ ’ x I õ 0 \ J õ 8191 \ ‰ šª ‚ � I õ 1 ± 16 \ ’ "M", \ ƒ I "Œ I õ 24576 \ J õ 59391 \ ‰ šª +– ’ ".", \ I õ 60416 \ J õ 65535 \ ‰ šª   � ª � A õ I ± J ° 1024 ´ DõÚàA) \ • A,255åD !¾ „ ÚàA)õ255åD ² ’"M", ´ ’".", È • A,D Ò ƒ A \ Š Ü � ŽW¥WÖW¾WÆW¶W8 ’"BASIC WORKSPACE EXPANDER FOR STANDARD BASICS" \ ’  Aõ10752 \ � 2A00H  L0õÚàAã6)ã256âÚàAã7) ( H1õÚàAã9)ã256âÚàAã10) <2 ’"OLD LO MEMORY BOUND: ",L0," OLD HI MEMORY BOUND: ",H1 "< DõÚàH1ã1024) \• H1ã1024,255åD *F „ ÚàH1ã1024)õ255åD ² H1õH1ã1024 ´ šn P • H1,D \ � Ž ‡ )Z � Œ BE�E THE DISK ¦ROLLER IS REACHED d „ H1 ô 58368 ² š< n •àAã10),ÆàH1ç256) x • H1ã1024,D \ � Ž ‡ &‚ ’ \ ’"NEW HI MEMORY BOUND",H1 \ ’ Œ VõÍàA) u E + � FAST SíT, MINIMUM COMPARIS“, MIN. °S . � VARIATI“ OF WOODRUM SíT BY RICHARD HART 3 � PUBLISHED IN CREATIVE COMPUTING JANçFEB 1978 +n †"HOW MANY RANDOM NUMBERS TO SORT: ",N s „ Nð0 ² � x ‹ NàN) \ � ¤ ARRAY � † #'S ‚ � Iõ1 ± N Œ † "NUMBER: ",NàI) – ƒ I  ’"SORTING..." ´ � ENTRY 4¹ L9õÆàÝàN)çÝà2)ã.9) \ � LINKSõNãÝ2àN)ã2 ELEMENTS !¾ ‹ LàNãL9ã2) \ � ¤ LINK ARRAY à Iõ0 È � K1,I,M1,T2,T4õ0 Ò € JõNã1 \ � HEAD OF SEQ 1 Ü Là1)õ1 \ LàJ)õ1 \ K2õ1 #æ „ Nð1 ² š¬ \ � –, ÷HING ± SíT ð S1õN \ � NUMBER OF LEAVES ú � CLIMB TREE ) „ S1 ô 4 ² š@ \ � LOW íDER TWIG ·UE  K2õK2â2 \ � ±TAL # OF TWIGS  B2õS1ç2 " S1õÆàB2) , T4õT4ãàB2åS1)âK2 6 ˆ šú @ � INITIAL CALCULATI“S $J T4õK2åT4 \ � # OF LOåíDER TWIGS $T B2õK2ç2 \ � HIåBIT · OF BIN CTR ^ � ƒ TWIG #h „ K1õK2 ² š¬ \ � – SíT COMP€E !r T1õK1ã1 \ K1õK1ã1 \ � TWIG # | B1õB2 \� HI BIT ·UE $† T3õT2 \ � PREV REFLECTED TWIG # #� � ADD 1 ± REFL BIN CTR & CARRY š T1õT1ç2 '¤ „ ÆàT1)ôT1 ² šÖ \� NO MíE CARRIES &® M1õM1ã1 \ � # OF MERGES & CARRIES ¸ T2õT2åB1  B1õB1ç2 \ � ƒ BIT ·UE Ì ˆ š� \ � CARRY 1 Ö � TWIG CALCULATI“S "à T2õT2ãB1 \ � REFLECTED TWIG # 'ê „ S1õ2 ² š& \ � 2åTWIGS & 3åTWIGS ô � 3åTWIGS & 4åTWIGS ,þ „ T3ôT4 ² š0 \ � LOåíDER TWIG à3åTWIG)  � 4åTWIG % M1õåM1 \ � DISENGAGE # OF MERGES  ˆ šv ,& „ T3ôT4 ² šb \ � LOåíDER TWIG à3åTWIG) 0 � 3åTWIG : M1õM1ã1 \ � # OF MERGES D IõIã1 \ � ƒ LEAF (N LàI)õI \ LàJ)õI \ � GENERATE A LEAF X JõJã1 \ � ƒ SEQUENCE HEAD b � 2åTWIG l M1õM1ã1 \ � # OF MERGES v IõIã1 \ � ƒ LEAF .€ L1õI \ LàI)õI \LàJ)õI \ � GENERATE A LEAF )Š L0õJ \ � HEAD OF OLDER LEAF àLAST œ) +” JõJã1 \ � HEAD OF LATEST LEAF àƒ 2 œS) ž IõIã1 \ � ƒ LEAF /¨ L2õI \ LàI)õI \ LàJ)õI \ � GENERATE A LEAF ² ˆ šî \ � MERGE LEAVES ¼ � MERGE TWIGS & BRANCHES +Æ JõJå1 \ � HEAD OF LATEST BRANCH í TWIG +Ð L0õJå1 \ � HEAD OF OLDER BRANCH í TWIG $Ú L1õLàL0) \ � HEAD OF SEQUENCE 1 #ä L2õLàJ) \ � HEAD OF SEQUENCE 2 ,î „ NàL1) ð NàL2) ² š4 \ � STAY IN SEQ 1 ø LàL0)õL2 \ � SWITCH ± SEQ 2  L0õL2 \ � ±P LEAF IN SEQ 2 !  L2õLàL0) \ � ƒ LEAF IN SEQ 2 ! „ L2õL0 ² šf \ � � OF SEQ 2 *  „ NàL1)öNàL2) ² š \ � STAY IN SEQ 2 * LàL0)õL1 \ � SWITCH ± SEQ 1 4 L0õL1 \ � ±P LEAF IN SEQ 1 > L1õLàL0) \� ƒ LEAF IN SEQ 1 "H „ L1ñL0 ² šî \� ÷ � OF SEQ 1 R LàL0)õL2 \ � SWITCH ± SEQ 2 \ ˆ šp f LàL0)õL1 \ � SWITCH ± SEQ 1 p M1õM1å1 \ � # OF MERGES z „ M1ö0 ² š¼ „ „ M1õ0 ² š^ $Ž � GENERATE 2ND HALF OF A 4åTWIG &˜ M1õ1åM1 \ � REåENGAGE # OF MERGES ¢ ˆ šv ¬ � – !¶ L0õNã1 \ � FIRST LINK IN SEQ è � Iõ 1 ± N ò L0õLàL0) \ � FOLLOW LINKS ü ’NàL0),  ƒ I  Œ A �/Ì]AA AAA@Aï]P@P + � FAST SíT, MINIMUM COMPARIS“, MIN. °S . � VARIATI“ OF WOODRUM SíT BY RICHARD HART 3 � PUBLISHED IN CREATIVE COMPUTING JANçFEB 1978 "n †"HOW MANY WORDS TO SORT: ",N s „ Nð0 ² � t † "MAXIMUM WORD LENGTH: ",W u „ Wô1 ² � v W1õWå1 'x ‹ N$àNâàWã1)) \ � ¤ ARRAY � † WíDS ‚ � Iõ1 ± N „ Põ1ãàIå1)âW \ � WíD POÆER Œ † "WORD ",N$àP,PãW1) – ƒ I  ’"SORTING..." ´ � ENTRY 4¹ L9õÆàÝàN)çÝà2)ã.9) \ � LINKSõNãÝ2àN)ã2 ELEMENTS !¾ ‹ LàNãL9ã2) \ � ¤ LINK ARRAY à Iõ0 È � K1,I,M1,T2,T4õ0 Ò € JõNã1 \ � HEAD OF SEQ 1 Ü Là1)õ1 \ LàJ)õ1 \ K2õ1 #æ „ Nð1 ² š¬ \ � –, ÷HING ± SíT ð S1õN \ � NUMBER OF LEAVES ú � CLIMB TREE ) „ S1 ô 4 ² š@ \ � LOW íDER TWIG ·UE  K2õK2â2 \ � ±TAL # OF TWIGS  B2õS1ç2 " S1õÆàB2) , T4õT4ãàB2åS1)âK2 6 ˆ šú @ � INITIAL CALCULATI“S $J T4õK2åT4 \ � # OF LOåíDER TWIGS $T B2õK2ç2 \ � HIåBIT · OF BIN CTR ^ � ƒ TWIG #h „ K1õK2 ² š¬ \ � – SíT COMP€E !r T1õK1ã1 \ K1õK1ã1 \ � TWIG # | B1õB2 \� HI BIT ·UE $† T3õT2 \ � PREV REFLECTED TWIG # #� � ADD 1 ± REFL BIN CTR & CARRY š T1õT1ç2 '¤ „ ÆàT1)ôT1 ² šÖ \� NO MíE CARRIES &® M1õM1ã1 \ � # OF MERGES & CARRIES ¸ T2õT2åB1  B1õB1ç2 \ � ƒ BIT ·UE Ì ˆ š� \ � CARRY 1 Ö � TWIG CALCULATI“S "à T2õT2ãB1 \ � REFLECTED TWIG # 'ê „ S1õ2 ² š& \ � 2åTWIGS & 3åTWIGS ô � 3åTWIGS & 4åTWIGS ,þ „ T3ôT4 ² š0 \ � LOåíDER TWIG à3åTWIG)  � 4åTWIG % M1õåM1 \ � DISENGAGE # OF MERGES  ˆ šv ,& „ T3ôT4 ² šb \ � LOåíDER TWIG à3åTWIG) 0 � 3åTWIG : M1õM1ã1 \ � # OF MERGES D IõIã1 \ � ƒ LEAF (N LàI)õI \ LàJ)õI \ � GENERATE A LEAF X JõJã1 \ � ƒ SEQUENCE HEAD b � 2åTWIG l M1õM1ã1 \ � # OF MERGES v IõIã1 \ � ƒ LEAF .€ L1õI \ LàI)õI \LàJ)õI \ � GENERATE A LEAF )Š L0õJ \ � HEAD OF OLDER LEAF àLAST œ) +” JõJã1 \ � HEAD OF LATEST LEAF àƒ 2 œS) ž IõIã1 \ � ƒ LEAF /¨ L2õI \ LàI)õI \ LàJ)õI \ � GENERATE A LEAF ² ˆ šî \ � MERGE LEAVES ¼ � MERGE TWIGS & BRANCHES +Æ JõJå1 \ � HEAD OF LATEST BRANCH í TWIG +Ð L0õJå1 \ � HEAD OF OLDER BRANCH í TWIG $Ú L1õLàL0) \ � HEAD OF SEQUENCE 1 #ä L2õLàJ) \ � HEAD OF SEQUENCE 2 1î P1õ1ãàL1å1)âW \ P2õ1ãàL2å1)âW \ � WíD POÆERS 7ó „ N$àP1,P1ãW1) ð N$àP2,P2ãW1) ² š4 \ � STAY IN 1 ø LàL0)õL2 \ � SWITCH ± SEQ 2  L0õL2 \ � ±P LEAF IN SEQ 2 !  L2õLàL0) \ � ƒ LEAF IN SEQ 2 ! „ L2õL0 ² šf \ � � OF SEQ 2 1  P1õ1ãàL1å1)âW \ P2õ1ãàL2å1)âW \ � WíD POÆERS 6% „ N$àP1,P1ãW1) ö N$àP2,P2ãW1) ² š \ � STAY IN 2 * LàL0)õL1 \ � SWITCH ± SEQ 1 4 L0õL1 \ � ±P LEAF IN SEQ 1 > L1õLàL0) \� ƒ LEAF IN SEQ 1 "H „ L1ñL0 ² šî \� ÷ � OF SEQ 1 R LàL0)õL2 \ � SWITCH ± SEQ 2 \ ˆ šp f LàL0)õL1 \ � SWITCH ± SEQ 1 p M1õM1å1 \ � # OF MERGES z „ M1ö0 ² š¼ „ „ M1õ0 ² š^ $Ž � GENERATE 2ND HALF OF A 4åTWIG &˜ M1õ1åM1 \ � REåENGAGE # OF MERGES ¢ ˆ šv ¬ � – !¶ L0õNã1 \ � FIRST LINK IN SEQ è � Iõ 1 ± N ò L0õLàL0) \ � FOLLOW LINKS ô Põ1ãàL0å1)âW \ � WíD POÆER ü ’N$àP,PãW1) \ � ‚ WíD  ƒ I  Œ š^`A’^B�A�BBTERRY NIKSCH WORKS AT NORTHSTAR COMPUTERS pA *ü)QS: ëæÂæ): ëæÊï)"ü)É: � THE RANSEED FILE IS USED ± SET UP THE DOS ± RìOMIZE 9 � THE SEQUENCES GENERATED BY THE Î FUNCTI“ IN BASIC. > THE FOLLOWING SEQUENCE OF OPERATI“S WILL INSTALL RANSEED\ ( � âLF DOS 3000 2 � âLF RANSEED 39E0 < � âSF DOS 3000 @F � THE SOURCE CODE � RANSEED MAY BE FOUND IN THE FILE RANSRC 8P � RANSEED IS USED BY ÍING IT FROM BASIC AS FOLLOWS\ %Z � A õ Îà Íà10720) ç 65536 ) 8d� ËCE RANSEED DEP�S “ THE DISK ¦ROLLER PSEUDOåSEC±R