' +JJJJ ?\>m0M='+l> /+l   d']6@5L&]655]6LF%5 & "L}"BB5L&]6 X  `6 77777777777JJJJx 77L? L7877777777 776i 7 7867 7`77 777777`x =(`(8`5775I7`B` 76`77`>J><;VU<)?<`8'x0|<&HhHh 8 8 8 8V&` aI꽌ɪVɭ&Y:&<&Y:&;: 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8 9: :' 9: :& :x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?8  1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#000'#07#0:"4<*55**5*%5)1)1)1)'#0/#0*5*75**5*:5/#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh < <݌ < < h < < < <`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 (G FG HZXj 80x D9$xxH` >( Z>h Z>L=.xxH >hh@(LH>9L>HH/Hh/ H?-З( 8(& 8$8 H` *8HNx`* >x$50x*$50xL9JJJJ`HHjf5 >h $50x`HA>VD;;P >(ED Z> ?$0x8x D9- 8DD# H8`?E Vˆʎ55L $ 5 55555 &a*5`*5` "L&5_*b*JL%u**Lz%`** $  Q(lXJ̥KlV $  Q(lV eօ3L e3L &%R*L &%Q*L d' "L4% N'e*)n*5 5 &`@-e*f*f* 5 "L# "5f*`L %.* *t*Q*L$ %L&*L` "O**P**u** d' "L% N'e*)n*o*o*n* &8ɍ` ^&f\*555L& ^&NR* & "R*ΩL&)\*Z* ʽ LH*v 3h`0h8` " ['L & N'С55 &5`*A*@` +5L^6L65`  \* ?*0 '\* '  Q( ^&\*lZl^?*c*q)H c*h`f*5h*5j*555@O*AP*`u*@`@5&`Q*R*`E 'Ls' ' ' @DAE@u*`8` %@ @A@`@`**@*A`M5 ) "L&`8@AW*c*@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@c*h8&ȑ@Hȑ@Ah@L'Hȑ@ȑ@* htphso`hMhL`9V*8U*897T*6S*67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmx- (   Ϡ734@~3!+,W,o,*--,,9,-.-~3~3,,,,~3~3,,,,~3_*3 j.5 *H*H`Lc3 (+L3 +55555 1^3_* )3J Q*L_3Ls3443 D23455545554 70 / 7 :/354545455454555535L^/5-5I5555 55` / 4/ 2-5! / 08555454 70L3 (+50+5B5C3 2 70L35 *H*H`Lg3L{3505 *H*H` 3 ,5L3 3 1 ,H 1hBL, 0 BH [1 1h`Lo3 35 ,L3 3 1B , 1L,H 0hB@ 55 [1L133 (+34) 34 70L3 3L3 (+ 055L- (+34L{33454445 70 ^/* / 3B0 HȱBh -355 -8 /L38 25` +5 /3 /. /. 3 E7D B. /. /. 0]34S0J4 4) 3 4D4E B. 4  /. 02L3 Ν3 3`HD٤33DEEhiHLG.h ` /5B5-` /5B-` + X05I33383 33DH /4 E03744Ȍ7 X040 7 J7L35B5C`,5p` / R0-55`50` K/ R0-55`575755` 4/ K/ /( 55L/BȱBL/58` D2BH5BH :/ 75Bȭ5Bhh55 R0B5m55ȱB5m55` /LR0557755`*7*75LR0 E0(33 48`433 R0` E033LR0*7*7`777 555I7575757577** 7757`7 L35555f /55555555 ^/`855 i /B58` 41L 15ȱB5 /5555 /5`3 D23ȑB55B5 / 7 55`5555555555 5555`555`55BC55`5555`L3 /5B5C355 0Q340"B4 3` 02۰Ϭ33B438`3i#`3ЗLw35!50>5555`53 /3m3 3 3733i35 3583 /35ЉLw35`H /5h 25L/~43 533`55555555J5m55m5jn5n5n5ۭ55m5555m55m55`"L? 585H ~.(3` # d ֠z# u*`נԠĠԠΠРİϠԠӠԠŠijϭijàԠŠΠРijˠϠijҠԠ٭àҠ٠àנĠàŲƾŲàԠŲŠΠĠΠנĠԠԠΠĠΠԠԠΠ٠Ԡ٭ҠϠij٠Ġ٠РӠԠѠҠӭҠ٠Ԡ٭Ҡ٠ŠŠIJϭIJԠ٠ΠàҠ٠àĠàűƾűàԠűƠŠΠƠĠΠĠ͠°ŠΠ°ԠԠΠؠؠӠؽѠбӭϠбРıˠϠıбРƶԠҠ˱àԠР٠ŠԠŠIJϭIJàԠР٠Ҡ٭ҠϠı٠Ġ٠РӠԠϠѠ˱ӭ˱IJؠĠؠŠԠΠ٠Ԡ٭Ҡ٠ӠԠŠıϭıàԠؠέנ͍Ġ΍ŠԠ̠ϠŠΠӠŠӠЍǠԠԠĠŠԠΠנĠŠΠ٠ԠrL Liݘiij LOiL HIS PROGRAM AND RECALL IT.: (THE SOURCE CODE HAS BEEN INCLUDED FOR: YOUR INFORMATION.) A PROGRAM WILL RESTORE THE APPLESOFT: POINTERS TO 'UN-NEW' ANY PROGRAM IN: MEMORY THAT HAS BEEN ERASED BY MEANS: OF THE 'NEW' COMMAND.: WHEN YOU WISH TO RECOVER A PROGRAMX WHICH WAS ACCIDENTLY ERASED: AND IT WILL BE RESTORED. TO TEST IT: ERASE TZz ::A$"UN-NEW":21(A$)2::A$::3:N14:A$:A$:::A$:A$:A$:A$;", AND":"THUS CANNOT BE LISTED, SIMPLY":((93);"BRUN UN-NEW.OBJ"::A$:A$;",":A$:A$::A$:A$:A$:A$::(93);"NEW":"THEN":(93);"BRUN UN-NEW.OBJ":19: d THIS   ЧȠӧƠŠӠ̧ĮŠàԠˬΠӠ٠ŲàŠӠٽө  ԬԬҬҬԠ ƬĸԠƍؠؠؠؠؠĠŠȠŠг ̠ӠϠŠàϠˍ٠ҠӍĠҠԠРĠԠàҠϠ΍ϠӠΧԠРӠĠŠŠؠвŲؠԠҠҠٍҠԱԠԍ؍ؠŠȠŠвҠΠԠōР٧ӠԠӠŠĠϬԠ͠ƍؠгҫؠҫؠÍ٠ҠӍҫԠƠӠϠƠРԠЍҫôҫõР̠ϠӍ« ̠Ӎ٠ҠӍҠԠРҠӠōΠˠ«͠Ҡˮ« ̠Ӡ٠ ҠӍҠҠԠˍР̠ϠĠÍ««« ̠ӠϠĠŠӍҠŠҠ΍ҠԠ ΍ҠԠϠӮؠРЍԱŬؠԠҠ͠ŠҠԱԠԍؠؠĠƠŠŠԱҠΠҠԍΠР̍ǠΠΠӠӠˠŠҍӠՠĹӠՠİҠՠưčŠՠõŠՠƴԠՠƳƍΠՠıԱՠưԠՠĸŠԠ΍ҠՠԠҠŠ,6;@ACEYA\^hAA8 J X "  #ە㕩  㕩ەܕ $4ĔŔ㕩   89 򩕠  ?HLԠˬΠӠ٠ŠӠٽө`$`؁"'A*  J X "  #ە㕩  㕩ەܕ $4ĔŔ㕩   89 򩕠  ?HLԠˬΠӠ٠ŠӠٽө`$` RITTEN BY :":10)"HARRY OWEN JONES":10)"MEMBER #62":10)"APPLE-CAN USER'S GROUP":10)"TORONTO, ONT.":"'23:"TYPE A KEY TO CONTINUE . . .";:A$:A$::2:R WORKINGS OF DOS.":!" SOME IDEAS AND LOCATIONS WERE FOUND":"IN AN ARTICLE BY CRAIG CROSSMAN IN THE":"VOLUME 2 NO 6 OF NIBBLE MAGAZINE. AGAIN":"THIS IS A GOOD PUBLICATION TO HAVE FOR"k"."THOSE FEW WHO DO NOT YET KNOW ABOUT IT."::"PROGRAMS W10000:15)"CREDITS"::" SOME OF THE LOCATIONS USED HERE CAME":"FROM THE BOOK 'BENEATH APPLE DOS' BY"!"DON WORTH AND PIETER LECHNER. THIS IS":"PUBLISHED BY 'QUALITY SOFTWARE' AND IS":"QUITE GOOD FOR THOSE WHO WISH TO KNOW":"MORE ABOUT THE INNE). FROM NOW""ON, ALL DISKS INITIALIZED WITH THIS":"VERSION OF DOS, WILL HAVE 36 TRACKS.":" THIS IS GIVEN AS AN ALTERNATIVE TO THE":"PROGRAM DISCUSSED EARLIER. IT DOES NOT"j "FREE UP THE AREA USED BY DOS. IT JUST":"MAKES TRACK #35 AVAILABLE.":HANGE TO $24"::" THESE CHANGES AFFECT THE INITIALIZ-":"ION ROUTINE OF DOS ONLY. YOU WILL HAVE" "TO DIP INTO THE MONITOR TO MAKE THEM.":"FORMAT FOR A MEMORY CHANGE WHEN IN THE":"MONITOR IS '
:' ALL":"IN HEX (IE. AS GIVEN ABOVEARE SLAVE),"z"ARE LOST WHEN THE DISKETTE IS UPDATED.":10000:5)"INITIALIZATION CONT'D"::" THE PATCHES TO MAKE TO DOS, PRIOR TO":"INITIALIZING A DISKETTE, ARE THESE :"c6)"@ $AEB5 CHANGE TO $90":6)"@ $B3EF CHANGE TO $24":6)"@ $BEFE COCATE ITSELF.":" THE UPDATE PROGRAM WORKS BY COPYING":"THE MASTER DOS FROM THE MASTER DISK TO" f"THE SLAVE DISKETTE TO BE UPDATED. THUS":"IT OVERWRITE THE DOS RESIDENT ON THE":"DISKETTE. PATCHES MADE TO A SLAVE DISK-":"ETTE (ALL DOS'S IM MEMORY ENT THING AL-">"TOGETHER. WHEN BOOTED, IT RELOCATES A":"PORTION OF ITSELF INTO AVAILABLE MEMORY":"THE VERSION NOW IN MEMORY IS A SLAVE":"VERSION AND IS UNABLE TO FIT INTO ANY"bR"MEMORY LESS THAN THE ONE IT WAS BOOTED":"ON. IT CAN NO LONGER RELN MEMORY ONTO IT. THIS":"SAME DOS WILL BE BOOTED INTO THE SYSTEM":"WHEN THE DISKETTE IS BOOTED. THE DOS IN":"MEMORY IS A SLAVE DOS, AND MATCHES WHAT""WAS ON DISKETTE. SO FAR SO GOOD.":10000:5)"INITIALIZING, CONT'D"::"A MASTER DISK IS A DIFFERE, BUT A DISKETTE":"INITIALIZED FROM DOS BOOTED FROM THE""UPDATED DISKETTE WILL NOT HAVE THE NEW":"DOS ON IT, NOR WILL IT HAVE 36 TRACKS."::" IF THIS SOUNDS FUZZY, WE CAN PUT IT":"THIS WAY : A SLAVE DISKETTE IS MADE BY""COPYING THE DOS I FOLLOWING PATCHES TO":"DOS, A DISKETTE CAN BE SET UP WITH 35":"TRACKS FROM THE START. THIS ONLY MAKES":"A SLAVE DISKETTE; HOWEVER, SINCE THE":"UPDATE PROGRAM WILL PUT THE OLD DOS ON":"THE 36 TRACK DISKETTE. ALL 36 TRACKS":"WILL STILL BE AVAILABLSTARTS @ $9500, IS 256":"BYTES LONG AND HAS A BUFFER STARTING AT":"$$9400, ALSO 256 BYTES LONG.""THIS PUTS IT JUST BELOW DOS, SO":"BEWARE OF OVERWRITING ANYTHING ELSE":"STORED THERE !":10000:5)"INITIALIZING A NEW DISK":" BY MAKING THEl"IATE MODE (VIA DOS), EXITING THE BASIC":"PROGRAM AT THE SAME TIME. SINCE I DON'T":"THINK THAT THERE WILL BE MUCH USE FOR":"THIS ROUTINE IN THE DEFERRED MODE (IT"b"CAN BE 'EXEC'ED), THIS PROBLEM SHOULD":"NOT BE A HANDICAP."::" THE ROUTINE TRICKY. FOR THIS":"REASON, THE PROGRAM WAS TERMINATED WITH":"A 'JMP' TO THE DOS WARMSTART ROUTINE AT":"$3D0 INSTEAD OF AN 'RTS'."X10000:10)"HOW TO USE CONT'D"::" IF USED FROM WITHIN A BASIC PROGRAM":"THE ROUTINE WILL EXIT INTO THE IMMED-"FOR THE USER"&"WHO WISHES TO MAKE MODIFICATIONS AND/OR":"ENHANCEMENTS. THE THIRD VERSION IS A":"THE BINARY OBJECT FILE, AND IS INTENDED":"TO BE 'BRUN'. DOS DOES A 'JMP' WHEN A":"FILE IS 'BRUN' NOT A 'JSR' WHICH IS APT":"TO MAKE A RETURN A BIT VERSION IS THE":"ORIGINAL SOURCE CODE, COMPATIBLE WITH":"THE APPLE ASSEMBLER FOUND IN THE DOS" "TOOLKIT. A RELOCATABLE VERSION IS ALSO":"INCLUDED FOR USE WITH THE RELOCATABLE":"LOADER FOUND IN THE TOOLKIT. THIS WILL":"AFFORD MAXIMUM FLEXIBILITY " AT THIS POINT, THE VTOC IS AGAIN":"WRITTEN ONTO THE DISKETTE. THIS":"COMPLETES THE MAIN PROGRAM. THE REST OF":"THE PROGRAM JUST MAKES A NEAT EXIT.":10000:10)"HOW TO USE IT":a" SEVERAL VERSIONS ARE AVAILABLE ON":"THE DISKETTE. A TEXTBE OVERWRITTEN. IF IT IS,":"THEN THE BIT MAP FOR DOS IN THE VTOC":"(STILL RESIDENT IN MEMORY), IS ALTERED""BY WRITING $FF IN THE BIT MAP FOR THE":"DOS SECTORS, THAT AREA OF THE DISK":"APPEARS FREE TO DOS, AND WILL BE OVER-":"WRITTEN AS NEEDED."IS ALTERED TO":"INDICATED THAT THE ADDITIONAL SECTORS""ARE UNUSED ($FF IS WRITTEN INTO TRACK":"35'S BIT MAP). THIS COMPLETES THE":"RECOVERY OF TRACK 35.":10000:10)"HOW IT WORKS CONT'D":l" THE PROGRAM THEN ASKS IF THE DOS":"SPACE IS TO ACK WRITE @ $BFOD) IS CALLED TO":"FORMAT THAT TRACK.":" THE VTOC IS THEN READ FROM THE DISK-":"ETTE AND TWO MODS ARE MADE TO IT BEFORE"7r"REWRITING IT ONTO THE DISKETTE : FIRST;":"THE NUMBER OF TRACKS IS RAISED TO $24":"AND, SECOND; THE BIT MAP W RETURNS AND":"PAUSES FOR A KEY TO BE PRESSED. THIS":"ALLOWS FOR REPLACEMENT OF THE PROGRAM"J"DISKETTE WITH THE ONE TO BE PROCESSED":"(THE DATA DISKETTE).":" THE READ/WRITE HEAD IS THEN MOVED":"OVER TO TRACK 35, AND A ROUTINE IN DOS"^"(TRTA DISKETTES ON DUAL" "DRIVE SYSTEMS (USEFUL FOR ARCHIVING).":"YOU WILL BE ABLE TO BOOT FROM THE DISK-":"ETTE UNTIL THE TRACKS ARE ACTUALLY USED.":10000:10)"HOW IT WORKS":_6" THE FIRST PART OF THE PROGRAM CLEARS":"THE SCREEN, OUTPUTS A FESTED. SEE YOUR DEALER.":" THE SECOND PART OF THE PROGRAM WILL":"INQUIRE AS TO WHETHER YOU WISH TO USE" "RESERVED DOS AREA. IF YOU DO, BEWARE":"THAT YOU WILL NOT BE ABLE TO BOOT FROM":"THAT DISKETTE. THIS OPTION IS ADVISABLE":"ONLY FOR USE ON DAIED BY APPLE WERE":"ORIGINALLY UNABLE TO ACCESS TRACK 35." "FOR THIS REASON, TRACK 35 WAS NOT USED.":"IF YOU HAVE ONE OF THESE DRIVES YOU'LL":"FIND OUT QUICK ENOUGH BY AN 'I/O ERROR'"j "MESSAGE. THE DRIVE MAY, OR MAY NOT BE":"ABLE TO BE READJU ALLOWING THIS AREA TO BE USED":"AND, IMPLICITLY, OVERWRITTEN.":" THE ROUTINES/MODIFICATIONS DISCUSSED":"HERE ARE FOR A 48K SYSTEM AND WILL NOT"; "WORK WITH ANYTHING LESS, WITHOUT SOME":"ALTERATIONS.":10000:15)"CAVEAT"::" SOME DRIVES SUPPL5, (0 IS FIRST), IS NOT USED":"ALTHOUGH THE DRIVES SUPPLIED BY SHUGART" "TO APPLE CAN ACCESS IT. SECONDLY (AND":"OPTIONALLY) THE AREA ON THE DISKETTE":"NORMALLY RESERVED FOR DOS, IS RESET IN":"THE DISKETTE'S VOLUME TABLE OF CONTENTS" "(VTOC),d:2:15)"TRACK 35":14)"----------"::" A DISK EXPANSION UTILITY."::" THIS MACHINE LANGUAGE PROGRAM WILL":"INCREASE USEABLE DISK SPACE IN TWO"H "WAYS : FIRST, AN ADDITIONAL TRACK WILL":"BE CREATED ON THE DISKETTE. NORMALLY,":"TRACK 3      ``` ɍԍύ 鍍 ٍ Ӎԍ ҍፍ 鍍Ǎƍ  Ǎ ōč  ̍č ˍč  ύ ō   ύ ˍԍ č  ō Ӎ ٍ͍ō ō  ōōčō    ȍ      7L@FINISHED-FEW CHAR LOSTFINISHED L ii 7 @7 / 0 @i i"""""73!40]/"! @!*ɍɟ ɿ)? ! ii`!  I  : 3!4/ 03 473i 4i/ 0 @ii0Pi#iՠ 0 Х  LFILE LOCKEDWRONG FILE TYPE !)  TEXT., / X36 SLOT NO. DEFAULT ` < `ة+L,JJJJ j)ɰЧ) ,E DRIVE NO. DEFAULT CATALOG INPUT FILE NAME FILE NOT FOUND- j)ɰМ)-  j  A$)13450  & I7688086 J:I,J::O 169,1,133,30,169,25i 133,31,32,12,253,160 0,9,128,201,141,240,12 201,160,144,241,201 $224,144,2,233,97,105 .64,145,30,230,30,208 8227,230,31,208,223D |" SAVE TO WHAT DRIVE:";IN$8 IN(IN$):IN2390j D$"BSAVE TEXT."N$;",A$1900,L"E64001;",D"INx 18:958 " T)RANSFER ANOTHER, E)EDIT, Q)UIT"  "WHICH ?"; A$ A$"T"Ĭ A$"E"ĺ:D$"BRUNTEDITOR,D1" A$"Q"($:200 " FILE NOT FOUND !"A (IN)ĺD$"OPEN"N$",D"IN:220Q D$"OPEN"N$[ 320k D$"READ"N$t 768 @D$"CLOSE"N$ J216,0 O6400,131 TE(30)(31)256 YE,96 ^A$""N$"TRANSFERED" h18:20((A$)2)::A$: rd4096::nD$(4)0xI139:"*";:R4:10:"TEXT TO APPLEWRITER"q10:"---- -- -----------"{100010:" TEXT FILE TO TRANSFER:";N$:(N$)0Ģ22:12:958:" FROM WHICH DRIVE:";IN$:IN(IN$):IN2190 D$"VERIFY",NS "RC  X891,0:36892,0:36893,0636894,0:36895,0:36896,0Y36897,1:36898,239:36899,216_hw CHECK RETURN CODERC(IOB13)RC0ı20:5:"AN ERROR HAS OCCURRED WHILE"21:5:"READING THE DISKETTE"22:5:"THE RETURN CODE I0:36868,32:36869,217636870,3:36871,96:36872,0V36873,0:36874,1:36875,96v36876,1:36877,0:36878,1736879,0:36880,32:36881,14436882,0:36883,145:36884,036885,0:36886,1:36887,036888,0:36889,96:36890,136DOM ACCESS"8 "TEXT FILE.)"(B 3000. i 24:1::"PRESS ANY KEY TO CONTINUE OR ESC TO END";: A$:(A$)27ė:: 11:1:958  LOAD RWTS JUMP INSTRUC AND IOB AND DCT AT $900036864,169:36865,144:36866,16036867,1YPE OF FILE,">"THE LENGTH (INCLUDING THE T/S LIST), THE";o"ADDRESS OF THE T/S LIST, AND WHETHER THE"; "FILE IS CURRENTLY ACTIVE, OR HAS BEEN" "DELETED." $ "(NOTE: THIS PROGRAM WILL NOT IDENTIFY" . "ALL SEGMENTS USED BY A RAN ORDER. ONLY";?"THE ORDER OF THE ENTRIES IN THE T/S LIST";T"IS IMPORTANT."^3000"THIS PROGRAM READS THE T/S LIST OF A""FILE, AND PRINTS A LIST OF EACH TRACK/""SECTOR USED BY THE FILE." "IT WILL ALSO TELL YOU THE TEED TO FIND ENOUGH CONTIGUOUS"Mp"STORAGE TO STORE A FILE. IT CAN USE ANY"~z"UNUSED TRACK/SECTOR ON THE DISK, AS LONG";"AS IT KEEPS A POINTER TO IT ON THE T/S""LIST. THE SECTORS ON THE DISK DON'T EVEN";"HAVE TO BE IN ANY PARTICULAR FROM"4*"YOUR FILE. INSTEAD, IT CONTAINS A LIST"e4"OF ALL THE TRACK/SECTOR ADDRESSES OF THE";>"DATA SEGMENTS WHICH MAKE UP YOUR FILE,"H"IN THEIR PROPER SEQUENCE."R3000\"BY STORING ITS FILES THIS WAY, THE APPLE";f"DOES NOT N15.)3000;"THE CATALOG CONTAINS A POINTER TO THE"] "FIRST SECTOR OF EACH FILE."c"THE FIRST SECTOR OF ANY FILE IS CALLED""THE TRACK/SECTOR LIST (OR THE T/S LIST""FOR SHORT). "THE T/S LIST DOES NOT CONTAIN DATAH OF THESE 256 BYTE SEGMENTS HAS A"Q"PHYSICAL LOCATION ON THE DISK WHICH IS""SPECIFIED BY A TRACK NUMBER AND A SECTOR";"NUMBER WITHIN THAT TRACK.""(TRACK NUMBERS RANGE FROM 0 TO 34, WHILE";"SECTOR NUMBERS RANGE FROM 0 TO 0ĺ:23:34,0:1"END OF THIS T/S LIST"R"PRESS ANY KEY TO CONTINUE"_A$:950s INSTRUCTIONS ~11:1"EACH FILE ON THE APPLE ]";(91);" IS STORED ON""THE DISK IN 256 BYTE SEGMENTS CALLED""SECTORS."#"EAC(TS13I2)'eTT0SS0ĺ:23:34,0cf"DO YOU WANT TO DO ANOTHER ONE? (Y/N)";:A$:A$"Y"95igzjTT10ĺ" ";tTT;"/";:SS10ĺ" ";~SS;:" ";I79ľA$ITRK(TS1):SECT(TS2): NEXT T/S LIST SEGMENTTRK0SECTIGH BYTE ($9300)3IOB8,0: T/S BUFFER LOW BYTEHIOB13,0: RC=0RRWTS72,0: RESET P REGISTER IN REGISTER SAVE AREA$5000: CHECK RC.TS37632: LOCATION OF T/S BUFFERLI0121: 122 T/S PAIRS PER BUFFER `TT(TS12I2):SSNUSED"1TRK255ST$"DELETED":TRK(ENTRY32)d5:1:" T/S LIST:TRACK ";TRK;" SECTOR ";SECT;6:1:" STATUS:";ST$34,7:: SET TEXT WINDOW READ T/S LISTIOB4,TRK: TRACKIOB5,SECT: SECTORIOB9,147: T/S BUFFER HCT MODULE"+aFTYP32FTYP$"A-TYPE FILE"LfFTYP64FTYP$"B-TYPE FILE"op3:1:"FILE TYPE:";LCK$;FTYP$zLGTH(ENTRY33)(ENTRY34)2564:1:" LENGTH:";LGTH;" SECTORS"TRK(ENTRY):SECT(ENTRY1)ST$"ACTIVE"TRK0ST$"UK$"LOCKED ":FTYPFTYP128'>FTYP$""ECFTYP0FTYP$"TEXT FILE"oHFTYP1FTYP$"INTEGER BASIC PROGRAM"MFTYP2FTYP$"APPLESOFT BASIC PROGRAM"RFTYP4FTYP$"BINARY FILE"WFTYP8FTYP$"S-TYPE FILE" \FTYP16FTYP$"RELOCATABLE OBJE700: NO MORE DIRECTORIES:DT(DIR1):DS(DIR2):500n23:1:"THE FILE ";NM$:"IS NOT ON THIS DISK";13:1:"PLEASE RE-ENTER THE FILE NAME"160  FOUND THE ENTRY*:1:1:"FILE NAME:"NM$;4FTYP(ENTRY2):LCK$"":FTYP127LCNAMEKbI06: SEARCH CATALOG SECTOR. EACH CATALOG SECTOR HAS 7 ENTRIES.wlENTRYDIR11I35: POINT TO NEXT ENTRYq(ENTRY3)0700vJ1(NM$):((ENTRY2J)128)(NM$,J,1)ī650J:800: FOUND NAMEI(DIR1)0(DIR2)0ī IOB9,146: DIRECTORY BUFFER HIGH BYTE ($9200)[ IOB8,0: DIRECTORY BUFFER LOW BYTEp !IOB13,0: RC=0z &RWTS '72,0: RESET P REGISTER IN REGISTER SAVE AREA 05000: CHECK RC :DIR37376: LOCATION OF DIRECTORY BUFFERX FIND FILE RWTS9 72,0: RESET P REGISTER IN REGISTER SAVE AREAO 5000: CHECK RC w VTC37120: LOCATION OF VTOC BUFFER DT(VTC1): DIRECTORY TRACK DS(VTC2): DIRECTORY SECTOR  READ DIRECTORY IOB4,DT: TRACK IOB5,DS: SECTOR2AND DCT AT $9000) 6IOB36874:RWTS368649 @ READ VTOCR JIOB1,S16: SLOT #h TIOB2,D: DRIVE~ ^IOB4,17: TRACK hIOB5,0: SECTOR rIOB9,145: VTOC BUFFER HIGH BYTE ($9100) |IOB8,0: VTOC BUFFER LOW BYTE IOB13,0: RC=0 TER THE FILE NAME "! 9585 14:4:" ";NM$H (NM$)30150Z (NM$)1ė: 16:5:"SLOT NUMBER? ";:A$:A$:S(A$):S1S7ī170 18:5:"DRIVE NUMBER? ";:A$:A$:D(A$):D1D2ī180 ,4000: LOAD RWTS JUMP INSTRUCTION, IOB, "L x8:4:" BY: JOHN MATUSHEK "| }9:4:" ": X1150 11:1:"DO YOU WANT INSTRUCTIONS? (Y/N) "; A$:A$:A$"Y"İ2000:150 A$"N"130 13:1:"PLEASE EN 36864& SECTOR LIST BY FILE= BY JOHN MATUSHEK^ MODIFIED BY PHIL FAULCONERu NOVEMBER 7, 1981ZX0:100_X1d:i5:4::" "n6:4:" TRACK/SECTOR LISTING OF A FILE " s7:4:"              D6A$"":I301:P16I:H(EP):EEHP:A$A$(H$,H1,1):::,1):::0AI:IB:270F :CC1:22:12:"PASS ";C;" COMPLETE":7:D0240 "ADDRESS DATA RAM FAULT LOCATION":216,0:EA:310:" $";A$;:ED:310:11:"$";(A$,2);:R$("CDE",(1A16384),1):20:I1031 "D2D:D255DD256:25:R$;"-";I,:54,133t 855,0:856,173:857,96:858,3:859,133:860,1:861,96:862,0:863,0::5:" 48K RAM TEST":7 768:A256(867)(866):D(865):D0280 ILB:S(I):I,255:D255(I):I,S:D0AI:IB:270 S(I):I,0:D(I):I,S:D23,208:824,2:825,230:826,1:827,201:828,192:829,208:830,214:831,240:832,8:833,141:834,97:835,3:836,173 837,94:838,3:839,145:840,0:841,165:842,0:843,141:844,98:845,3:846,165:847,1:848,141:849,99:850,3:851,173:852,95:853,3:82,94:793,3:794,169:795,255:796,145:797,0:798,81:799,0:800,208:801,31:802,145:803,0 804,81:805,0:806,208:807,25:808,173:809,94:810,3:811,145:812,0:813,230:814,0:815,208:816,2:817,230:818,1:819,165:820,1:821,201r 822,3:8 RAM TEST - SETUP ASSEMBLY ROUTINE3 768,165:769,0:770,141:771,95:772,3:773,165:774,1:775,141:776,96:777,3:778,169:779,2:780,133:781,0:782,160:783,0:784,140:785,97] 786,3:787,132:788,1:789,177:790,0:791,141:79EdAREVISION 8-2-79 <n WRITTEN BY PHILIP A. WASSONx::"THIS PROGRAM REPEATEDLY TESTS":"ALL 48K OF RAM":"FOR 'HARD' ERRORS AND DISPLAYS THE":"ROW AND COLUMN OF THE DEFECTIVE CHIP.":I15000::H$"0123456789ABCDEF":L768:B1023      ԍÍҍ̍àҩٍ̍ҫ̫٠àҩٍ̫Íčٍ̍àҩٍčīٍ̫àҩٍī٠РōҲҠ͍ɠҲ٠Ԡ͍ɠвԠ͍ɠб٠бԩٍԩٍԩٍԩٍвٍ̠бӍҲРȍŠ٠ō٠ҠРҫѠԲҍԱҠԍàҍŠԱԲҠԍ؍ӠӱРŠōРҠԍԍ٠ԫ͍ͫҠ͍ҠԍҠͫɠčҠԍРàРŠӱРǰӱР РѠӱРύӱРԍԠԠōРҠ̍ҠҍҫҍҠ͍Ҡ͍Ҡԍҍ֍ӱРàРŠӱٍĩٍٍӱԩٍÍӠӱ̠Ġ٠̍ƱٍԩٍŠƱӱÍ٠Íҍ٠ҫҠԍ̍ҠŠӱŠǹӱԩٍРРѠӱРѠӱРРѠӱРРŠǹԠ֍ӱҬ؍ԩٍ؍̠ǹӱѠӱٍԩٍàӱǷҠЍǷҠԍ֍ؠƍǸ؍ҫ؍ŠǸ٠̍ѠӱǹѠٍ̍Ҭ؍РРŧѠ̍РĠРŠӱԩٍРàРѠӱРРѠDzРŠѠǴРŠdzDz؍dzŠDZ؍ǴؠÍҠ͍ÍѠǶǵҠ̱àÍŠǵǶҠ΍ҠӍҠȍҠԍ̠Ҡ΍٠à͠ĠōҠӠ΍٠ҫԤҍÍԍ٠ԫҠҍؠ٠̍ѠǴDZ٠ԩٍРРѠDzРſѠDzРЭנЭנЭנ٭ԠǠōǠҠ̠ԠҤЍҠҠӠҤÍ٠ÍԠàҠҍ٠ԫōҠč ĠǰҠҍàŲìì ĬñƬì ĬñƬ Ƭ Ƭ Ƭ ƍӠŠҠӍ̠נǭנ̭נ̭נŠбұР؍à؍̬؍ŠÍ؍àčŠıĠҠΠĠ٠Ϡҍ̠čؠč̫ؠϠč٠ǠӍ̬؍ӍĠō̠ ŬƬ ԠؠԱʬ؍֬؍ͭ؍؍̠ԱР͍ʠРàРҍĠĠΠōàؠؠčı٠б̬؍ѠčРƍѠұРҩٍŠÍٍ؍ՠòԠՠijРՠİ͠ՠƲàԠ͠ԠՠƷĹ̠ՠčРՠô̠ՠùÍŠՠŲÍ֠ՠƵźàӠϠŠԭǠԠîĭǠ ͠΍ՠԠՠ³č͠ՠĶҠՠĶÍȠՠķ̠ՠķ͠ՠōҠՠðؠՠùԠՠųĠՠŶԠՠŶȠՠŷ̱ՠ ՠ·ӠՠƍԠΠҍ͠ՠĠՠč͠ՠԠՠԠՠҠՠҠՠΠՠԠՠ±Ԡՠ·Ҡՠ¸Ҡՠ֠ՠƵΠՠĹĠՠҠՠϠ٠ϠŠקҠŠčĠ§ҠŠŮĠՠàՠ̠ՠԠՠàՠÍĠՠčҠՠƠ̠ҍàՠƍ̠ՠà͠Šҍ̠ՠŠРŠҍ̠ՠԠǠĠӠǠΠ̠ŠΠȠźӠŠӠΠčϠΠΠŠŠҠîүҮϠΠΠӬŠŠϠĠϠΠŠŮԠ٠ϠŠ            =8m>mn?nL,ZNEF- ,00 *$,XǘP$,ȱ8# =ۥ % ,L;LL { lݥHH g hh  = ʰ ߅HH hE0hE0$0$0Hh`Lv Bq ";(34);"***,**$.00";(34):24:" BRUN PUF.OBJ";:23:1:TRING AFTER THE":3:"'&PRINT USNG>' COMMAND IS THE EDITING" 3:"STRING, AND THE SECOND SET OF VALUES":3:"ARE THE VARIABLES TO BE PRINTED.":3:"THE EDITING STRING CAN CONTAIN EITHER":3:"'0', '*', ',', OR '$' SIGNS."L3:"A LAST EXAMPLE IS:":3SPACE." :"'& PRINT USNG > ' = PRINT USING":3:"EG. 10 & PRINT USNG >";(34);"$000.00";(34);";A,B,C":3:"OR 20 A$ = ";(34);"$0000.00";(34):7:"30 X = 243.125"; 7:"40 & PRINT USNG >";(34);"TOTAL = ";(34);" + A$;X";:3:"WHERE THE FIRST ST3:"HIT ";::"SPACE BAR";::" TO CONTINUE *";(8);:A$:A$::34,0:3:"'& DEL ARRAY > ' = DELETES AN ARRAY" 3:"EG. 10 DIM A$(20),B$(600)":7:"20 & DEL ARRAY> A$":7:"30 & DEL ARRAY> B$":3:"WILL DELETE UN-NEEDED ARRAYS AND SAVE":3:"MEMORY D 'A$'";:8:"AND PRINT THEM 15 TIMES.":"'& SWAP>' = SWAP TWO VARIABLES" 3:"THE VARIABLES CAN BE INTEGER, REAL OR STRING. THEY CAN BE WITHIN AN ARRAY.":3:"EG & SWAP> R1,R2":3:"OR & SWAP I2%,I3%":3:"OR & SWAP>T$(N),T$(P)"q 34,2:2EAT PRINT COMMAND":3:"EG & RPT PRINT>";(34);;"*";(34);",38;" x8:"WILL PRINT 38 '*'S IN A ROW.":3:"OR & RPT PRINT>A$,8":8:"PRINTS THE CONTENTS OF A$ 8 TIMES";:3:"OR & RPT PRINT>";(34);"*";(34);" + A$,15"P 8:"WILL CONCATENATE THE '*' ANMd::T$"PRINT USING AND FRIENDS":21(T$)2::T$::3:"THE FOLLOWING COMMANDS ARE AVAILABLE:":5:"'& CLEAR TO EOL' = CLEAR TO END OF LINE"@ n"'& CLEAR TO EOP' = CLEAR TO END OF PAGE":"'& BELL' = RING THE BELL":"'& RPT PRINT>' = REP      ŠŠРѠРҠٍԠĠȍӠĠԍРҠŠҠ΍ԠΠȠϠԠōӍӠӠԠƍԠƠŠĠЫԠԠϠĠҍԍЫРӠԠРŠԠҠΠǠҠ٠ѠРϬӠŧӠҠŠРөӬŠōРŠӠŠӠΠȠҠӠōĠŠƠōǠΠՠĹŠՠõРՠƵӠՠİЫԠԠĠҍӠŠԍЫӫԠ  N645` l4!((!` X!!`  A 867L l6!((!` X!!`Ҡ ALUE WHEN":"THE ROUTINE WAS CALLED.":360:"WRITTEN BY :":^5)"HARRY OWEN JONES":5)"MEMBER NO 62":5)"APPLE-CAN USER'S GROUP":5)"TORONTO, ONT.":5)"JAN 1 1981":h23:"TYPE A CHARACTER TO CONTINUE . . .";:A$:A$::2:2:DUND THEN THE SCREEN IS CLEARED":"AND A 33 IS PUT IN LOC 33. IF A33 IS":"FOUND, THEN A 40 IS PUT IN LOC 33. THE":"SCREEN IS NOT CLEARED."<T" DEFAULT VALUE IS TO PUT A 40 IN LOC":"33. THIS WOULD OCCUR IF THE SCREEN":"WIDTH WERE SET TO SOME OTHER VOF LINE MARKER.":"A TEST IS DONE ON THE Y-REG. IF ZERO":"THEN THE CALL IS FOR 'POKE 33TO HANDLE."@"ELSE CONTROL IS PASSED TO THE 'OTHER'":"ROUTINE.":" 'POKE 33' WILL LOOK AT THE CONTENTS":"OF LOC 33 TO SEE IF IT'S 33 OR 40. IF A"J"40 IS FOKE 33' ROUTINE LOOKS TO","SEE IF THERE ARE ANY PARAMETERS THERE.":360:10)"HOW IT WORKS CONT'D"::" THE 'DATAN' ROUTINE IN ROM WILL":"RETURN WITH THE Y-REG CONTAINING THE"c6"NUMBER OF CHARACTERS REMAINING TILL THE":"END OF STATEMENT OR END SOFT A JUMP TO SUBROUTINE IS":"DONE TO THE AMPERSAND VECTOR WHERE A":"'JMP' SENDS IT ON IT'S WAY. BECAUSE THE"""BASIC INTERPRETER DOES NOT CHECK THE":"SYNTAX PAST THE '&' PARAMETERS MAY BE":"PASSED BY APPENDING THEM AFTER THE COM-":"MAND. THE 'PO"CONTENTS OF THE AMPERSAND VECTOR AND":"SAVES IT TO ALLOW PASSAGE OF A CALL TO":"THE 'OTHER' ROUTINE. THE VECTOR IS THEN":"OVERWRITTEN WITH THE STARTING ADDRESS":"OF THE 'POKE 33' ROUTINE.":p" WHENEVER AN AMPERSAND IS ENCOUNTERED":"BY APPLENE LAST, THEN INITIALIZING THE":"OTHER ROUTINES WILL CAUSE THE AMPER-""SAND VECTOR TO BE OVERWRITTEN (AS OPP-":"OSED TO BEING SAVED).":360:15)"HOW IT WORKS"::" THE INITIALIZATION PROCESS HAS BEEN":"DESCRIBED. IN ESSENCE, IT PICKS UP THE"D":"THEN TRY CALLING IT !. RESULTS MAY BE":"UNPREDICTABLE. THIS IS DUE TO THE WAY":"THE ROUTINE EXITS (VIA A 'JMP' TO DOS'S":"WARMSTART ROUTINE @$3D0)."G:" THE ROUTINE SHOULD BE INITIALIZED":"AFTER ANY OTHER AMPERSAND CALLED ONES.":"IF NOT DOMPERSAND VECTOR.":360:10)"HOW TO USE CONT'D":" INITIALIZATION IS DONE BY EITHER":"'BRUN'ING THE BINARY FILE OR BY USING":"THE SAME PROCEDURE AS IS DONE WHEN":"INITIALIZING A RELOCATABLE FILE LIKE""'APA'. DO NOT BLOAD THE BINARY FILE ANIDES @ $300.":" THE RELOCATABLE VERSION IS INTENDED":"TO BE 'CALL'ED BY A BOOT PROGRAM (AS IS":"EXPLAINED IN THE DOS TOOLKIT). ":" IN ALL CASES THE PROGRAM MUST BE"1"INITIALIZED BEFORE USING.":"THIS IS NECCESSARY, IN ORDER TO SET UP ":"THE AH THE APPLE":"ASSEMBLER (INCLUDED IN THE DOS TOOLKIT)""THE SECOND, IS THE RELOCATABLE VERSION":"OF THE BINARY OBJECT CODE FILE, SUITABLE":"FOR USE WITH THE RELOCATING LOADER IN":"DOS TOOLKIT. THE THIRD IS A 'BRUN'ABLE""BINARY FILE. THIS RESETERS" "(IE CALLED BY THE AMPERSAND ITSELF)":"WILL NEVER BE RUN. THIS IS NOT A":"PROBLEM WITH THE 'APA'.":360:10)"HOW TO USE":7" SEVERAL VERSIONS ARE INCLUDED ON THE":"DISKETTE. THE FIRST IS THE TEXT OBJECT":"SOURCE FILE, COMPATIBLE WITOUTINES.":"IF THE AMPERSAND DOES NOT INCLUDE ANY":"PARAMETERS, THEN THE ROUTINE ASSUMES" "THAT THE SCREEN WIDTH IS TO BE TOGGLED":"ELSE EXECUTION PASSES TO THE INTERCEPTED":"ROUTINE. A LIMITATION TO THIS IS THAT":"AMPERSAND ROUTINES WITHOUT PARAMOL-" "KIT', I DID NOT WISH TO EXCLUDE ONE":"FACILITY WHEN USING THE OTHER. IN ORDER":"TO OVERCOME THIS OBSTRUCTION I SET UP":"THE PROGRAM TO PICKUP THE CURRENT VECTOR"Z "FOR THE AMPERSAND COMMAND, SAVE IT, AND":"TEST INCOMING CALLS FOR OTHER R"-AMPER-EDIT' BY BOB GILBERT), I WROTE":"AN ASSEMBLY LANGUAGE ROUTINE CALLED BY":"THE AMPERSAND COMMAND TO TOGGLE BACK" "AND FORTH BETWEEN NORMAL AND EDIT MODE.":360:" SINCE I ALSO USE THE 'APPLESOFT PRO-":"GRAMMERS ASSOSTANT' FROM THE 'DOS TO"THE OLD MONITOR ROM). IT GETS A BIT" x"TEDIOUS, TO HAVE TO TYPE THE SAME THING":"(AND POKE33,40) OVER AND OVER AGAIN."::" A BETTER THING IS TO HAVE MY APPLE":"DO IT FOR ME. USING AN IDEA FROM VOUME"z "2, NO. 5 OF NIBBLE MAGAZINE (THE 'MINI":}d:2:15)"POKE 33":14)"---------"::" WHILE EDITING APPLESOFT PROGRAMS, I":"OFTEN FIND IT CONVENIENT TO USE THE"% n"'HOME:POKE33,33' SEQUENCE. THIS LETS ME":"ALTER A BASIC LINE WITHOUT ANY INTER-":"VENING SPACES TO CURSOR OVER. (I HAVE":           IED: JAN 09, 1982 I03 I 6 (P$)3P$"0"P$:220<  *************** * * * PADDLE TEST * * * * BY: * * PETER * * WYSPIANSKI * * * * JAN 2, 1982 * * * *************** LAST MODIFAM HALTED BY USER":8:"CONTINUE?";:G$:G$"N"Ģ10:1:958:40G ZV dP$((0))_ n220 xB1$"OFF":(16287)127B1$" ON" 5:" "P$;:14:B1$; P$((1)) 220 B1$"OFF":(16286)127B1$" ON" " "P$;:30:B1$ / KBD16384:STB16368:B116287:B216286L::14:"[PADDLE TEST]"w3:5:"PDL(0) PB(0) PDL(1) PB(1)"(10:8:"PRESS ANY KEY TO HALT"2100:READ PADDLES<190:DELAY HARDWAREFG(KBD):G12850A PSTB,0:10:8:(7)"PROGR ˨˨ ӭ˨˨˨˨ ͺ˨˨ ˨˨ ͭ˨˨˨˺Š٭˨˨˨˨ ˨˨ ӭ˨˨˨˨ ˨˨ ź  Ԡ٠Т ؠٺ ͺ˨˨ ӭ˨˨˨˨ ˨˨   &AA1:A(A$)9920-&(A$,A,1)"."9905D&A$(A$,A2):9925[&A$(A$,A3)".00"k&A$(A$,10)&(A$,4,1)" "A$(A$,2,3)","(A$,6)&A2$(A$,7): ZT21v XT2(1F)T31x T2(LF)(11X):T3T2R T2100(T2100)T3T2.01i P1((T3100))100o4!!(12C1N)(12C1N)8800"S5S1(12C1N)"8200`"M$"CAN'T DO IT !!!":2500& MASK&A$" "(A)"00":A0(A72)A72A72@:22:" ";::A7:M$;::40:" ";:FQ@ CALCJS1CR12001:S2(CN12):S3S12:S4S21TS408700S5(S4S3S1S3S4)S2((S5S3)S3)1E88200S3S58100 S6S51:S7S6 FS7l T3T:R:9900:(A$,6);, JAP1:9900:" ";A$;9 LAP1TLN N9900:" ";A$` RRR012500r \RR.25:VV1| f2110 M$"PRESS ANY KEY":5000 22:30:A7$ 90  22:2:" "A740(M$):A7S...12 = 1 YEAR":5000) n7:24:" ";T$: pT$"B"1300P vT(T$):T0T12l (T2)T2T2551900| T5101900 AT:9900:7:25:" ";A2$  9:" RATE";:11:"MTHLY PYMT";:23:"COST OF LOAN" 4RR01:V11 >8000 HV:A I$""I$"M"- I$"M"C1:I$"MONTHLY"L "I$"Q"C3:I$"QUARTERLY"o $I$"S"C6:I$"SEMI-ANNUALLY" &I$"A"C12:I$"ANNUALLY" (C01300 F6:25:X$;:40(I$):I$ N12: PYMTS/YR l7:25:"--- (RET = 12) ":M$"EG. 300 = 25 YRE(%)":5000 5:24:" ";R1$1 R1$"B"1100Q R(R1$):R0R99.991200Z R0Rw AR:9900:5:25:A$;"%" 6:25:"- (RETURN = M) ":M$"M=MTHLY..Q=QTRLY..S=SEMI-ANN..A=ANNUAL":5000 6:24:" ";I$ I$"B"1200 C0 X$I$ B (RETURN) - TO CORRECT PREVIOUS LINE ";:1 O L4:25:"---------- "y VM$"ENTER LOAN OR MORTGAGE AMT":5000 `4:24:" ";L$ tL(L$):L0L9999991100 ~AL:9900:4:25:A$ 5:25:"------ ":M$"APPROX YRLY INTEREST RAT LOAN PROGRAM6 G.JONAS/TIME PROVEN SYSTEMS>Z:dd"LOAN ADVISOR: BY G.JONAS / TPS"x4:"AMT OF LOAN":"APPROX. INTEREST":"COMPOUNDED"7:"AMORTIZATION PERIOD"21:Z140:" ";:Z22:" ";:22:40:" "+ 23:"   6ghL a8 ȱ8UN LC-KILLER.OBJ"& P"]SAVE PROGRAM"2 Z"]RUN"8 d TPPEARS INUPPER-CASE ONLY. ONE SUCH EXAMPLE IS 'ADDRESS INDEX.LC' WHICH APPEARS ON THISIAC DISK." 2:"IF YOU DO NOT HAVE A LOWER-CASE CHIP IN YOUR APPLE AND WISH TO CHANGE A PROGRAM TO UPPER-CASE, FOLLOW THESE STEPS:" <:"]LOAD PROGRAM" F"]BR: LC-KILLER.OBJ@::T$"LC-KILLER.OBJ":14::T$:::"LC-KILLER.OBJ IS A SHORT UTILITY BY ERICLAMBRECHT, PUBLISHED IN THE MARCH 1982 ISSUE OF CALL-A.P.P.L.E."c (:"IT IS DESIGNED TO CHANGE A PROGRAM WHICHBEARS LOWER-CASE TO ONE WHICH A  );:A$::49232,0:49237,0:49239,0:49234,0:A$:J 49236,0:49233,0:TPRINTER WITH A GRAPHICS ROUTINE." :"SEE ALSO THE INFORMATION ON THE GAME I/OCONNECTOR ON PAGES 23 AND 100 OF THE 'APPLE ][ REFERENCE MANUAL'."2 23:"HIT ";::"SPACE BAR";::" ONCE TO SEE THE DIAGRAM, AND THEN ONCE AGAIN TO QUIT. *";(8AN APPLEWRITER TEXT FILE ENTITLED TEXT.JOYSTICK.INFO' CONTAINS INSTRUCTIONS FOR THE ASSEMBLY OF A JOYSTICK."$ :"IN ADDITION, A HI-RES PICTURE BEARS THE NECESSARY WIRING DIAGRAM. YOU CAN COPY THIS FROM THE HI-RES SCREEN BY HAND, OR DUMP IT TO A K`d(4)"BLOAD JOYSTICK WIRING DIAGRAM":::T$"JOYSTICK INFORMATION":21(T$)2::T$:::n"THIS DISK BEARS SEVERAL FILES WHICH WILLASSIST IN THE CONSTRUCTION OF A JOYSTICKFOR THE APPLE COMPUTER."r x:"A TEXT FILE ENTITLED 'JOYSTICK.INFO',AND ͳˠٶ鍠􍠠îƮ®䮠宠ɠ련󩺍Ԡ󍠠򠴷󩠱􍠠㺍嬠򬍠塍堨󩍨󮠠ᠱ砨¨¨Ƣ΢Ƣ䠲䬠ح󩮠뮠련婠獨栫멮䠲宠󠲵ﬠ٭󩮠̨堰ﮠ󮠠Π°±󠰠䠱堢Ƣ䮠̨報ﮠɯϠ宍⩠宠堢᩠堨積Ů殠򮠠ɯϠ򮠠堍Ҳ堵󮠠䬠ɠ䩠󮠠z#حˠ̠ ˠʠ ˠʰˠŠέנέ׮Ӡ έ׮ʠέ׮Š ͠Ԡˠ ҠԠԠϠҠԠϠҮؠ ԮˮϠ ˠˠӠ Šʠ Šʰ ŠŠ Ơ ƮӠ Ʈʠ ƮŠ  íҮӠíҮʠΠ͠  РéŠԠŠŠӠ  Π ήӠ ˠ ˠǠ͠""ˮϠˮӠ íҠ ůӠ ˠҠР ٠àŠ٠Š٠àŠ٠ŮԠ٠àŠ٠ŮʠϠ ͠ӠؠӠخӠӠخà[ ȯ٠Ԡ5ԠҠůРůegister. (See DOS MANUAL page 103).f8H$38$39: Monitor input register. (See DOS MANUAL page 103).EH$45$49: Register save area. All registers are saved here by IOSAVE Routine (See 182) in the order A-X-Y-P-S.HNH$4E$4F: This locatioutput is 'NORMAL'. IF =$7F(127) output is 'FLASHING'. IF =$3F(63) output is 'INVERSE'. 3H$33:51,X: This location contains the prompt character which is shown on the screen in front of an input line (see 662). #6H$36$37: Monitor output rB ,H$2C:Temporary work area used by 'HLINE' routine. See 2023. -H$2D: Temporary work area used by 'VLINE' routine. See 2008.[2H$32: This location is the mask for character output to the screen (A logical 'AND' is performed). IF = $FF(255) oion. POKE 36,X moves the cursor to this relative position. X must be < PEEK(22). %X(37): Reads current vertical position of the cursor; 0 40 pro- duces errors. If W<33, PRINT'S third tab may PRINT outside text window. "H$22:34,T: Sets top margin of TV Display to T; 0 127, an ONER 'IOREST' routine, restores all registers. This routine loads the registers from locations $45 to $49 (69 TO 73).H$FF3A:198: 'BELL' routine. Sends a BELL (CTRL-G) to the current output device. H$C9$CD: Random number.)H$Dter. H$FF4A:182: IOSAVE routine, saves all registers. The regi- sters are saved at locations $45 to $49 (69 to 73) in order of A-X-Y-P-S. H$B8$B9: Pointer to last character obtained through the CHRGET routine.uH$FF3F:931: commands. See 1013 and 1014. QH$AC$AE: General usage flags/pointers.H$AF$B0: Pointer to end of program. Not changed by LOMEM.H$B1$C8: CHRGET routine (CHaRacter GET). APPLESOFT calls here everytime it wants another charace cursor prompt character is '*'.RH$9D$A3: Maim Floating Point Accumulator.H$A4: General use in Floating Point math routines.H$A5$AB: Secondary Floating Point Accumularoy.#H$FF58: Address of subroutine which normally handles '&' gram it is READing from.TH$81$82: Holds the last-used variable's name.H$83$84: Holds the last-used variable's value.H$85$9C: General usage.!H$FF69:151: Start of APPLE System MONITOR program. While in the Monitor, th is being READ.j}H$7D$7E: Pointer to absolute location in memory from which DATA is being READ.H$7F$80: Pointer to current source of input. Set to $201 during an INPUT statement. During a READ statement it is set to the DATA in pro-Set up by a CTRL-C, STOP or END state- ment. Gives line number at which execution was interrupted.yH$79$7A: Old text pointer. Points to memory location for state- ment to be executed next.{H$7B$7C: Current line number from which DATAThis location contains HIMEM. HIMEM = highest location available to APPLESOFT + 1. DOS sets HIMEM = 38400 ($9600) to protect it- self and its buffers. uH$75$76: Current line number of line being executed.fwH$77$78: Old line number. Pointer to end of numeric storage in use. See Page 137 of APPLESOFT BASIC PROG REF MANUAL. oH$6F$70: Pointer to start of string storage. Strings are stored from here to the end of memory.qH$71$72: General pointer.sH$73$74: for ROM APPLESOFT.iH$69$6A: Pointer to start of simple variable space. See Page 137 of APPLESOFT BASIC PROG REF MANUAL.kH$6B$6C: Pointer to beginning of array space. See page 137 of the APPLESOFT BASIC PROG REF MANUAL. bmH$6D$6E:n contains a random number, based on the time between keystrokes. PH$50$61: General purpose pointers for APPLESOFT.bH$62$66: Result of last multiply or divide.gH$67$68: Pointer to beginning of program. Normally set to $0801 Should contain a JMP, and the address of the USER program. /H$3F9$3FA: Address of routine to handle USER (CTRL-Y) commands.60H$3FB: Address executed when a non-maskable interrupt occurs. It should contain a JMP, and the address of tine which handles APPLESOFT II '&' commands. Normally $4C 58 FF. .H$3F6$3F7: Address of the subroutine which handles APPLESOFT II '&' commands. Normally $58 FF.@/H$3F8: Address executed when user (CTRL-Y) command is encountered. determine whether to do cold or warm start. If soft entry vector is changed (See 1010) this byte must be reset. CALL -1169 ($FB6F) will do reset. See Page 37 of APPLE II REFERENCE MANUAL.K.H$3F5$3F7: Holds a jump instruction to the subroutch handles machine language 'BRK' requests. Normally $FA59. ,H$3F2: Soft entry vector. Contains the address of the reentry point for language currently in use. Normally contains $E003 for AUTOSTART ROM.-H$3F4: Power-up Byte. Used toMonitor.+H$3D9: Starting address of RWTS subroutine in DOS. When entered, A + Y registers must contain address of IOB. +H$3EA:1002: Reconnects DOS after it has been disconnected.D,H$3F0$3F1: Holds the address of the subroutine whiE' or ESC-@. *H$FC42:958: Clears all characters inside the text window from the current cursor position to the bottom margin. Equivalent to ESC-F. (Same as ERASE EOF.) +H$3D0: Address of routine to return control to BASIC from affected. N)H$FC66:922: Issues a line feed. Equivalent to CTRL-J.*H$FC58:936: Clears all characters inside the text window, and moves the cursor to the top left position within the text window. Equi- valent to the command 'HOM2*(26 + 27A + 5A^2) microseconds. (dH$FC9C:868: Clears current line from cursor to right margin Equivalent to ESC-E. )H$FC70:912: Scrolls text up one line. Bottom line is now blank. Characters outside text window are notaces flashing cursor on screen at position of output cursor and jumps to input subroutine (Address at $38-$39), usually KEYIN.,(XH$FCA8:856: 'WAIT' routine, delays for a specific amount of time then returns. With A in Accumulator, wait is 1/utine reads APPLE keyboard, waits for keypress, then removes flashing cursor and returns with key code in Ac- cumulator. Updates random number (See 78).'H$FD0C:756: 'RDKEY' routine, get an input character. Stand- ard input routine. Plsues a Carriage Return before falling into GETLN.%H$FD35:715: 'RDCHAR' routine, get an input character or ESCape code. Alternate subroutine which gets characters, but also interprets the eleven escape codes.&H$FD1B:741: 'KEYIN' roith a prompt. Before CALLing GETLN, a prompt character can be POKEd to 51 ($33). DATA is returned starting at 512 ($200), and length is in register X. 1%H$FD67:665: 'GETLNZ' routine. Alternate entry point for GETLN (See 662) which isROUT (See 626).#H$FD6F:657: 'GETLN1' routine, GET an input LiNe, no prompt. GETLN1 is an alternate entry point for GETLN which does not issue a prompt before it gathers the input line. $H$FD6A:662: 'GETLN' routine, GET input LiNe w"rH$FD8E:626: 'CROUT' routine. Sends a Return character to the CuRrent OUTput device. #uH$FD8B:629: 'CROUT1' routine, return with Clear. Clears the screen from the current cursor position to the edge of the text window, then CALLs C1: 'PRHEX' routine, PRint a HEX digit. Prints the lower nybble of the Accumulator in as a single hex digit. !&H$FDDA:550: 'PRBYTE' routine, PRint a hex BYTE. Prints the contents of the Accumulator in nex on the current output device. amulator on the Display at the current cursor position and advances the output cursor. H$FDED:531: 'COUT' routine. Outputs character from the Acc- mulator. COUT CALLs subroutine at locations $36-$37, usually COUT1 (See 528)t!H$FDE3:54ks of LO-RES GRaphics) to reversed @. In LO-RES GR- aphics, this is a black screen.?H$F832:1998: 'CLRSCR' routine, CLeaRS the entire TEXT Page 1 to reverse @. In LO-RES GRaphics, this is a black screen.@H$F828:2008: 'VLINE' routi 'SETCOL' routine, SET LO-RES GRaphics COLOR. This routine sets the COLOR used for PLOTting on the LO-RES screen to the COLOR passed in the A Register.Z?H$F836:1994: 'CLRTOP' routine. This routine clears the up- per 20 lines (40 bloc- ed the same as 'PLOT' (See 2048). Returns the COLOR of the block in the Accumulator. =H$F8F5:1943: 'NEXTCOL' routine, increment COLOR by 3. This routine adds 3 to the current COLOR used for LO-RES GRaphics.>H$F864:1948:hpad byte for Slot #3.@<|H$77C: Scratchpad byte for Slot #4.j<}H$77D: Scratchpad byte for Slot #5.<~H$77E: Scratchpad byte for Slot #6.<H$77F: Scratchpad byte for Slot #7.g=H$F871:1935: 'SCRN' routine reads the LO-RES SCReeN. CALLratchpad byte for Slot #4.D;H$6FD: Scratchpad byte for Slot #5.n;H$6FE: Scratchpad byte for Slot #6.;H$6FF: Scratchpad byte for Slot #7.;yH$779: Scratchpad byte for Slot #1.;zH$77A: Scratchpad byte for Slot #2.<{H$77B: ScratcX' routine, PRINT A and X in HEX. It prints the contents of the A and X Regsiters as a four digit hex value.:H$6F9: Scratchpad byte for Slot #1.:H$6FA: Scratchpad byte for Slot #2.:H$6FB: Scratchpad byte for Slot #3.;H$6FC: ScHFD4A:1718: 'PRBL2' routine, PRints many BLank spaces. It prints 1 to 256 blanks, based on number in X Register. If X = $00, PRBL2 will output 256 blanks.9H$FD48:1720: 'PRBLNK' routine, prints 3 spaces.r:H$F941:1727: 'PRINTA*8zH$67A: Scratchpad byte for Slot #2.T8{H$67B: Scratchpad byte for Slot #3.~8|H$67C: Scratchpad byte for Slot #4.8}H$67D: Scratchpad byte for Slot #5.8~H$67E: Scratchpad byte for Slot #6.8H$67F: Scratchpad byte for Slot #7.9#2..7H$5FB: Scratchpad byte for Slot #3. X7H$5FC: Scratchpad byte for Slot #4.7H$5FD: Scratchpad byte for Slot #5.7H$5FE: Scratchpad byte for Slot #6.7H$5FF: Scratchpad byte for Slot #7.8yH$679: Scratchpad byte for Slot #1.language 'BRK' requests.6H$5F8: Holds the Slot number of the Disk Controller card from which any active DOS was booted. (Format = $CN where N is Slot Number?)6H$5F9: Scratchpad byte for Slot #1.7H$5FA: Scratchpad byte for Slot B: Scratchpad byte for Slot #3.J5|H$57C: Scratchpad byte for Slot #4.t5}H$57D: Scratchpad byte for Slot #5.5~H$57E: Scratchpad byte for Slot #6.5H$57F: Scratchpad byte for Slot #7.6H$FA59:1447: 'OLDBRK' routine, handles machine $4FC: Scratchpad byte for Slot #4.N4H$4FD: Scratchpad byte for Slot #5.x4H$4FE: Scratchpad byte for Slot #6.4H$4FF: Scratchpad byte for Slot #7.4yH$579: Scratchpad byte for Slot #1.4zH$57A: Scratchpad byte for Slot #2. 5{H$57ss PREAD the number of the Controller (0 to 3) in the X Register. It returns a number from $00 to $FF in Register Y.3H$4F9: Scratchpad byte for Slot #1.3H$4FA: Scratchpad byte for Slot #2.3H$4FB: Scratchpad byte for Slot #3.$4HSlot #3. 62|H$47C: Scratchpad byte for Slot #4. e2}H$47D: Scratchpad byte for Slot #5. 2~H$47E: Scratchpad byte for Slot #6. 2H$47F: Scratchpad byte for Slot #7. |3H$FB1E:1250: 'PREAD' routine, read a Game Controller. Pa Page 1 of LO-RES GRaphics or text.1#H$FBDD:1059: 'BELL1' routine. Beeps the APPLE's speaker for .1 second at 1KHZ. 1yH$479: Scratchpad byte for Slot #1. 1zH$47A: Scratchpad byte for Slot #2. 2{H$47B: Scratchpad byte for he routine for handling non-mask- able interrupts.0H$3FC$3FD: Address of routine for handling non-maskable inter- rupts. 0H$3FE$3FF: Holds address of the subroutine which handles inter- rupt requests (IRQ).#1H$400$7FF:resetting window. May be Page 1 or 2. Similar to TEXT, except TEXT selects Page 1, resets screen window and mover cursor to lower left.XP?H$C050:16304,0: Switches from TEXT to GRaphics without clearing the GRaphics screen. Similar to GR tch settings. N?H$C052:16302,0: Switches display from mixed GR + TEXT to full screen GRaphics, HI-RES or LO-RES, Page 1 or 2, depending on other switch settings.O?H$C051:16303,0: Switches from GRaphics to TEXT, without 6300,0: Sets text or graphics display to Page 1. Does not clear screen or move cursor.N?H$C053:16301,0: Switches display from full screen GRaphic to mixed TEXT + GRaphics. May be HI-RES or LO-RES, Page 1 or 2, depending on other swics in ON (See 16304).L?H$C056:16298,0: Sets display to LO-RES GRaphic mode. Only visible if GRaphics in ON (See 16304).L?H$C055:16299,0: Sets text or graphics display to Page 2. Does not clear screen or move cursor.]M?H$C054:1 paddle Annunciator OUTPUT #1 to OFF.eK?H$C059:16295,0: Set paddle Annunciator OUTPUT #0 to ON.K?H$C058:16296,0: Set paddle Annunciator OUTPUT #0 to OFF. L?H$C057:16297,0: Sets display to HI-RES GRaphic mode. Only visible if GRaphiddle Annunciator OUTPUT #3 to OFF.bJ?H$C05D:16291,0: Set paddle Annunciator OUTPUT #2 to ON.J?H$C05C:16292,0: Set paddle Annunciator OUTPUT #2 to OFF. J?H$C05B:16293,0: Set paddle Annunciator OUTPUT #1 to ON.%K?H$C05A:16294,0: Set. I?H$C060:X(16288): If X>127 then cassette input is a '1' else it is a '0'. BASIC programs should not try to read tape input in this fashion. I?H$C05F:16289,0: Set paddle Annunciator OUTPUT #3 to ON."J?H$C05E:16290,0: Set passed. H?H$C062:X(16286): Reads pushbutton switch on game con- trol #1. If X>127, then this button is being pressed.I?H$C061:X(16287): Reads pushbutton switch on game con- trol #0. If X>127, then this button is being pressed?H$C066: Analog input for game paddle #2.[G?H$C065: Analog input for game paddle #1.G?H$C064: Analog input for game paddle #0. H?H$C063:X(16285): Reads pushbutton switch on game con- trol #2. If X>127, then this button is being preng the APPLE firmware card. F?H$C080:16256,0: Disables the APPLE'S on-board ROMs so the APPLE firmware card can be used. F?H$C070: Resets the timing circuit for analog (game paddle) inputsF?H$C067: Analog input for game paddle #3.,GQEH$E003:8189: The reentry point of APPLESOFT Language (?) See 1010.E H$2000$3FFF: Page 1 of HI-RES GRaphics.E0H$D000:12288: See 53248. ROM block D0F?H$C081:16255,0: Enables the APPLE's on-board ROMs again after usin in the Y Register.D H$F3F2:3086: BKGND clears last-used HI-RES screen (regard- less of switch settings) to HCOLOR most recently HPLOTted.E H$F3EE:3090: HCLR clears last-used HI-RES screen (regard- less of switch settings) to BLACK.chpad byte for Slot #6.ACH$7FF: Scratchpad byte for Slot #7.DH$800$BFF: Page 2 of LO-RES GRaphics or TEXT:CALL -2048:REM PLOT routine, PLOTS a single block on the LO-RES screen. Vertical position is in the A Register, horizontal positio card currently active. EBH$7F9: Scratchpad byte for Slot #1.oBH$7FA: Scratchpad byte for Slot #2.BH$7FB: Scratchpad byte for Slot #3.BH$7FC: Scratchpad byte for Slot #4.BH$7FD: Scratchpad byte for Slot #5.CH$7FE: ScratO-RES screen. The vertical coordinate is the A Register, leftmost horiz- ontal coordinate in the Y Register, and rightmost coordinate at 44 ($2C).BH$7F8: Holds the Slot number (in the format $CN where N is the Slot number) of the peripheralne, draws a Vertical LINE of blocks on the LO-RES screen. The horizontal coordinate is the Y Register, the topmost coordinate the A Register, and the bottom is 45 ($2D).AH$F819:2023: 'HLINE' routine draws a Horizontal LINE on LOM program area for Slot #5.OZH$C600$C6FF: PROM program area for Slot #6.ZH$C700$C7FF: PROM program area for Slot #7.ZH$D000$F4FF: Contains APPLESOFT II BASIC program.ZH$F800$FCFF: Contains AUTOSTART ROM program.I/O bytes for use by Slot #7.PYH$C100$C1FF: PROM program area for Slot #1.YH$C200$C2FF: PROM program area for Slot #2.YH$C300$C3FF: PROM program area for Slot #3.YH$C400$C4FF: PROM program area for Slot #4.ZH$C500$C5FF: PR for use by Slot #2.IXH$C0B0$C0BF: 16 I/O bytes for use by Slot #3.~XH$C0C0$C0CF: 16 I/O bytes for use by Slot #4.XH$C0D0$C0DF: 16 I/O bytes for use by Slot #5.XH$C0E0$C0EF: 16 I/O bytes for use by Slot #6.YH$C0F0$C0FF: 16 e #3.NWpH$C070: Resets the timing circuit for analog (game paddle) inputs.WH$C080$C08F: 16 I/O bytes for use by Slot #0:REM See 16256.WH$C081: See 16255WH$C090$C09F: 16 I/O bytes for use by Slot #1. XH$C0A0$C0AF: 16 I/O bytes1V^H$C05D: See 162901V_H$C05E: See 16289IV`H$C05F: See 16288xVdH$C064: Analog input for game Paddle #0.VeH$C065: Analog input for game Paddle #1.VfH$C066: Analog input for game Paddle #2.WgH$C067: Analog input for game PaddlC010: See 16368(U H$C020: See 16352@U0H$C030: See 16336XU@H$C040: See 16320pUPH$C050: See 16304UXH$C058: See 16296 UYH$C059: See 16295UZH$C059: See 16294U[H$C05A: See 16293U\H$C05B: See 16292V]H$C05C: See 1629of seven unused bytes between DOS and DOS buffers. qTH$9D00:D25344: Start of DOS on a 48K system.T`H$AA60$AA61: Contains the length of a BLOADed program.TrH$AA72$AA73: Address of BLOADed program.TH$C000: See 16384 UH$stem only). SSH$9600: Start of DOS I/O Buffer #1. Length is 595 ($253) bytes.SSH$9853: Start of DOS I/O Buffer #2. Length is 595 ($253) bytes.SH$9AA6: Start of DOS I/O Buffer #3. Length is 595 ($253) bytes. 127 then key has been pressed, and X=ASCII value of key pressed with bit 7 on. (See 16368) H=$4000-$5FFF = Page 2 of HI-RES GRaphics. SAbH$9DBF:25153: Routine to reconnect DOS if page 3 is over- written. (48K Syorder output. Note: a POKE causes two clicks. Q?H$C010:16368,0: Resets keyboard strobe so that next char- acter may be read in. This should be done immediately after reading the keyboard (See 16384). R@H$C000:X(16384): R+ HGR except these commands reset other switches and clear the screen to black. P?H$C040:16320,0: Triggers utility strobe.P?H$C030:X(16336): Causes the speaker to emit a click.5Q?H$C020:X(16352): Causes a click on the tape rec....2\.......................................`\.......................................\.......................................\.......................................\.......................................\.............................................L\.......................................z\.......................................\.......................................\.......................................\.............................................8\.......................................f\.......................................\.......................................\.......................................\.......................................\.............................................R\.......................................\.......................................\.......................................\....................................... \.............................................>\.......................................l\.......................................\.......................................\.......................................\.......................................$\...\.......................................X\.......................................\.......................................\.......................................\.......................................\.............................................D\.......................................r\.......................................\.......................................\.......................................\.......................................*..0 \.......................................^ \....................................... \....................................... \....................................... \.......................................\.............................................J \.......................................x \....................................... \....................................... \....................................... \.............................................6 \.......................................d \....................................... \....................................... \....................................... \....................................... \...........) DELETE THESE TWO....012 004 1982P \.......................................~ \....................................... \....................................... \....................................... \...............................SS *# m* THAN 400!! *@ n* *] o* PROGRAM WILL *z p* SELF-DESTRUCT! * q* * r*********************** s 1002 REV. BY MARTIN F. PIERCEY...MEMBER # 322" APR (X3d***********************;e* *Xf* W A R N I N G *ug* - - - - - - - *h* *i* DO NOT MODIFY *j* ANY LINE IN THIS *k* PROGRAM WITH A * l* LINE NUMBER LE                   ..0$[\.......................................^$\\.......................................$]\.......................................$^\.......................................$ SET PRINTER SLOT $SL1$ DISK SYSTEM?? %(994............................J#V\.......................................x#W\.......................................#X\.......................................#Y\.......................................$Z\.............................................6"P\.......................................d"Q\......................................."R\......................................."S\......................................."T\.......................................#U\.............................................P!K\.......................................~!L\.......................................!M\.......................................!N\......................................."O\.............................................< E\.......................................j F\....................................... G\....................................... H\....................................... I\......................................."!J\.....\.......................................V@\.......................................A\.......................................B\.......................................C\....................................... D\.............................................B:\.......................................p;\.......................................<\.......................................=\.......................................>\.......................................(?.4\.......................................\5\.......................................6\.......................................7\.......................................8\.......................................9\.............................................H/\.......................................v0\.......................................1\.......................................2\.......................................3\.............................................4)\.......................................b*\.......................................+\.......................................,\.......................................-\........................................\.............................................N$\.......................................|%\.......................................&\.......................................'\.......................................(\.............................................:\.......................................h\....................................... \.......................................!\......................................."\....................................... #\.............................................T\.......................................\.......................................\.......................................\....................................... \.............................................@\.......................................n\.......................................\.......................................\.......................................\.......................................&\. \.......................................Z\.......................................\.......................................\.......................................\.......................................\.............................................F\.......................................t \....................................... \....................................... \....................................... \......................................., AN EXACT MATCH 4:Z:UU1>4NA$:(NA$,(K$))K$5100^4(NA$,1)(92)UUNR5070j4UUUU1{4UUNR50704:250004 FOUND A MATCH 4LN(123)(124)256:UUUU14:11:NA$:S5ı$5 13:868:"DO YOU WISH TO DELETE TH3 DELETE DATA CONTENTS (3:30003:10:"PLEASE ENTER THE NAME OF THE PARTY YOU":"WISH DELETED FROM THE DIRECTORY AND":"PRESS 'RETURN'."314:4:"MTH (?) -----------------":14:1:"-> ";K$:K$""S5ġ:250003K$""250004 FIND LINE $2T$:(T$,1)(92)4310>2LN(123)(124)256X2 CALCULATE OFFSET v2CU(START((LN201)46))20 POKE DATA LINE 2:ICU(CU39)2DI,((NN$,I1CU,1)):2b SET UPDATE FLAG 2lMFMF1:S4S5ı2v250002S542001^UD111h PAD TO 40 CHARACTERS Y1rI(NN$)(39(NP$)):NN$NN$".":q1|NN$NN$NP$:S5ı1 UPDATE DATA NUMBER 1:T:TTUD:CU(START11)1T$(T):I1(T$)1(CUI),((T$,I,1)):1S4ı2 FIND EMPTY DATATHE ";::"NAME";::" ENTRY:":10:14:NN$g012:"AND THE ";::"PHONE NUMBER";::":":14:14:NP$0,18:8:868:"ARE THEY CORRECT (Y/N) ";S$:(S$,1)"Y"418006(S$,1)"Y"S5ġ:60000@(S$,1)"N"ĺ"":41000J40000OS54200 1TTER NEW NUMBER THEN PRESS 'RETURN'.":"(USE THE FORMAT: XXX XXX YYYY)"a/13:4:"DDD MMM 19YY"/13:"-> ";A$:6100:NP$B$:NP$""S5Ĺ32,0::25000/NP$""Ĺ32,0:25000/(NP$)12ĺ"":4050/ IS ENTRY CORRECT? +0::8:"HERE IS 'RETURN'.":"(USE NO COMMAS, COLONS OR QUOTES.":"TWENTY-FIVE CHARACTERS, MAXIMUM.)"}.14:4:"MTH (?) -----------------".14:1:"-> ";A$:6100:NN$B$:NN$""S5Ĺ32,0::25000.NN$""Ĺ32,0:25000.(NN$)25ĺ"":4020F/10:958:"ENI - 1200)- IS DATA FILE EMPTY? t- ::NR0Ģ12:9::"<< NO NAMES ON FILE >>"::I12000:I::25000z- - ENTER LISTINGS -:NR150Ģ12:12:"DATA TABLE FULL!":I12000::25000U.32,3:10:958:"ENTER NEW NAME AND PRESS - 'ESC' FOR MENU ";:T$/,(T$(27)ġ:25000P,2T$(13)Ģ3:1:958:VT3:`,<(7):1300f, , LIST EVERYTHING , 3000, 1012, :Z, VT2:FO0:I1NR, NA$:(NA$,1)(92)INR2540, 1100, VT22VT2:3:958- İ1300+PFO1Ģ12:868'+QPRİ7007+VVT:1:NA$D+`PRİ750Q+tINRıw+PRİ700:" ":" ":" ":" ":750+22:868:"THAT'S ALL OF THEM! - PRESS 'RETURN' ";:"";S$:25000++ GOT A FULL PAGE ,22:958:"ENTER 'RTN' TO CONT(NA$,(S$))S$1075&*II1(NA$)R*$(NA$,II,(S$))S$FOFO1:1100:1075Z*.IIj*3I:FO1200*812:868:12::"<< NOT FOUND >>"::PRİ700:S14:" "::750*B(7):I11500:I:25000*K*L GOT ONE! +NVTVT1:VT21PR10:" ":" "m):1:"MTH (X) NAME DAY MTH YEAR";:"----------------------------------------"z)PRİ750)S22510)12:868:12::"<< SEARCHING >>"::VT2):Z)FO0:I1NR)NA$:(NA$,1)(92)1040*SK0SK1ĭ10`(:9:5:"WOULD YOU LIKE TO SEARCH BY"::10:"1 WORD (FAST)":7:"OR 2 CHARACTER (SLOW)"(14:868:20:"WHICH: ";SK$:SK(SK$):SK1SK2(SK$)1ĺ"":1007(:11:5:"PLEASE ENTER THE SEARCH KEY:":13:5:"";S$:S$""25000 )PRİ70ET";:"ON RECORD, AND PRESS 'RETURN' ";:"";S$N'HI11500:::I12000::'R:12:"THE PROGRAM AND DATA HAVE BEEN SAVED!!":22:'z::10:"BIRTH/ANNIVERSARY LIST ENDED!":11:"................THANK YOU...":' SEARCH (3000:OP110:&  END ROUTINE %&*MF0890R&/DISKĢ21:5::"SAVING MODIFICATIONS":&4DISKĺ(4)"SAVE BIRTH/ANNIVERSARY LIST"::10:"BIRTH/ANNIVERSARY LIST ENDED!":11:"................THANK YOU...":.'>:11:"INSERT A NEW TAPE INTO THE RECORDER, S)(1001)192DISK13%DISKĺ(4)"NOMON C,I,O":`% GET ADDRESS OF FIRST DATA STATEMENT %START((103)(104)256458)%& SET FAST/SLOW SEARCH %0OP0%:25000% ACTIVATE PRINTER %SL:% DE-ACTIVATE PRINTER &0SHOW":"&AUTO ,":"&MANUAL":"&XREF"::"&KEYS"::D ~A:PUT CRAE'S ADDRESS IN APA VECTOR TABLEF 8 67,82,65,69,32,32,32,32 BI07:A:ADRSI190,A::REPLACE "RENUMBER" WITH "CRAE " LADRS190I,0 VADRS: INITIALIZE APA `: j"&HOLD":"&MERGE":"&LENGTH":"&COMPRESS":"&SHOW"> t"&NOEADRS0*(4),"BLOAD RBOOT"C520: EXECUTE RBOOTWADRS(0),"APA"I02:P(I)(1013I)::GET '&' VECTOR CONTENTS$P(1)0P(2)P(2)1:P(1)256:DECREMENT '&' HI-BYTE IF UNDERFLOW ON LO-BYTE( .ADRS301,P(1)1:ADRS302,P(2)A192AA32 A32AA1922 A64AA128A A96ī180Q (A);:120m :D$;"CLOSE":"DONE": | (A); 170 :D$;"CLOSE" "DONE"  D***************? dD$(4)::::19:33,7::15:33,40:180 nD$;"MON O":"APPLE WRITER FILE NAME? TEXT.";A$:D$;"BLOAD TEXT.";A$::A$;" LOADED"::"DESTINATION NAME? ";T$:AD6401:D$;"OPEN";T$:D$;"WRITE";T$ xA(AD):ADAD1:A224AA64 n ***********************= * *[ * CONVERT APPLEWRITER *y * TO DOS TEXT FILES * * ------------------- * * FROM APPLE COMPUTER * * TECHNICAL NOTES * * * ********"WHICH: ";S$:S(S$)/;4bS1S7ĺ(7):25130Y;>bS1000,2500,4000,5000,6000,24000,800_;Hbh; ;MARTIN.PIERCEY, INC.; APPLE.CAN..TORONTOLIST THE ENTIRE FILE"I:b"3 ENTER NEW LISTINGS":"4 DELETE A LISTING"w: b"5 EDIT A LISTING":"6 PRINTER ON/OFF":b"7 EXIT THIS PROGRAM":32,0::b"(A)=ANNIVERSARY,(B)=BIRTHDAY":"(G)=GRADUATION,(X)=YOUR CHOICE": b32,0:;*b22:20:868:9a"ROOM FOR "(150NR)" ADDITIONAL LISTINGS"V9a8:"THE PRINTER IS";:PRĺ" OFF";9aPRĢ9:" ":250709a" ";::" ON ":9a9:"YOU MAY CHOOSE FROM THE FOLLOWING:":32,5::a"1 SEARCH FOR A LISTING":"2 --------------------------------";:W8aQQ$" THE PIERCEY'S BIRTH/ANNIVERSARY LIST "b8a:QQ$8a:3:"----------------------------------------"8a4:5:"<<>>"8a"PROGRAM CURRENTLY CONTAINS "NR" LISTING";:NR1ĺ"S"-$:4020:436072500087 REMOVE CONTROL CHARS. B7B$""P7(A$)ı_7I1(A$)7((A$,I,1))26B$B$(A$,I,1)7I77] PRINTER ON/OFF 7]PRPR:250507]7a MAIN MENU 7a:NR:NRNR1000$8a::1:"-------- OF THE PARTY WHOSE";:"LISTING YOU WISH TO EDIT AND PRESS":"'RETURN'.":5020613:868:"DO YOU WISH TO EDIT THIS DATA (Y/N) ";S$:S$""250006(S$,1)"Y"NN$NA$:60506(S$,1)"N"İ50706"":60206 GO EDIT THE LINE 7:8:NNIS DATA (Y/N) ";S$:(S$,1)"Y"5200A5(S$,1)"N"ĺ"":5130K55081g5P OK THEN, KILL IT! x5ZUD1:42505dCU(START((LN201)46))5nCU,((92))5x4450:250005p EDIT A DATA LINE 5z:3000N6|:10:"PLEASE ENTER THE NAME 213 293 741:SHOW 222 291 504:NOSHOW 227 289 517:AUTO 234 287 544:MANUAL 238 285 599r^XREF 245 283 2359:KEYS 259 281 472: AllTION: NAME NAME VECTOR ROUTINEJ------- ------------------------:RENUMBER 190 301 1521:HOLD 199 299 1024:MERGE 204 297 1125:LENGTH 210 295 472TCOMPRESS w for the convenience of: the users. (They are as accurate as I: could best decode them.)-@ The user is warned to avoid using the: 'AUTO' and 'LENGTH' routines as these: have strange setups and are not readily changed.:ROUTINE RELATIVE LOCA course it would be easy to append: this CRAE/APA program to LOAD.EDIT by: appropriate renumbering and merging : and make it possible to boot up both [6 programs with a single loading program.: The locations within the APA program: are listed belo" load in CRAE using the 'LOAD.EDIT' and: then run the 'CRAE/APA' program instead: of the 'LOADAPA' program on the Toolkit.: This is because CRAE is fixed in its : memory location while APA is relocated, to the available memory below CRAE.: Ofeading the '&' vector: to obtain a pointer to a program has application elsewhere. Other routines: may be patched into APA by sacrificing: one of the APA commands.: Therefore to use both of these programs: at the same time it is necessary to Both of these alterations can: be seen in the program listing of the: 'CRAE/APA' program.: The combination of these programs does< not result in loss of the 'Renumber': function for it is still present in the: CRAE program.: The principle of r First it is necessary to remove the: '&Renumber' command and replace it with: the '&CRAE' command. Secondly it is: necessary to reset the '&' Ampersand: vectors of the 'Renumber' command to  point to CRAE rather than the Renumber: command.APA's Compress function.: The conjoining of the two programs is made possible by changing the RENUMBER: command of APA and replacing it with: the '&CRAE' command.: To accomplish this task it is necessary: to make two changes to the APA program..: The editors are available by means of: the same '&' vector. 'APA' is the: 'master' program. Thus CRAE is called@ with the '&CRAE' command. Note that : '&CRA' and '&CR' will also access CRAE: but '&C' will not work at it will: interfere with ermit both 'CRAE': the Coresident Applesoft Editor from: Highlands Computer and the Applesoft: Programmers Assistant (APA) from Apple: Computer to be used at the same time.v Thus the features of both of these: line editor programs can be accessed:A$:A$:::X16:A$:A$::::P0İ200S X14:A$:A$::::(4);"PR#0": 24:8::"HIT A KEY TO CONTINUE *";(8);:A$::::: APA/CRAE COMPATIBILITY: -------- -------------: The program 'CRAE/APA' is a loading program which will p14:A$:A$:::A$:A$:A$:A$::X19:A$:A$:::X14:A$:A$:::P0İ200 X15:A$:A$:::X15:A$:A$:::X13:A$:A$:::X15:A$:A$::::P0İ200 X14:A$:A$:::X13:A$:A$::::P0İ200+ X13:A$:A$:::X111#";P:140 :"DO YOU HAVE A LOWER-CASE CHIP? N";(8);:A$:A$:A$"Y"ĺ:"YOU WILL HAVE TO RUN THIS PROGRAM AGAIN.":23:" RUN 140":22:(4)"BRUN LC-KILLER.OBJ" ::X12:8:A$:A$::::X18:A$:A$:::X17:A$:A$::::P0İ200Q X0d::X12:8:A$:A$::::P0:10:"DO YOU WANT THIS INFORMATION LISTED ON YOUR PRINTER ? N";(8);:B$::B$"Y"ī130n:"IN WHICH SLOT IS THE PRINTER ? 1";(8);:P$:P$:P(P$):P1P7P1 x:"ENSURE PRINTER IS ON-LINE":200:(4);"PR     ӠΠŠ٠ϠŠƨɩ%oP a()c1ca(ҠҠԣƠՠԠ)5q6O4/rO4/rUVW/-rqYq@o P S(ҠԠ)'`$`$5N@"2roPa()FE()FE(ϠĠӠ)E@*#rE()[9dJedKedede]͠-qqqqqq@p()]̭a@E(Πìɬ)KM6#oP a(ˠ۠Ҡ)=]Ӡ̠6+a@E(ң)a@E(Πìɬ)M6oQ ]įŠF*deded ed eM,4q.? rq.?r`%[5>Pa(Ҡ)FE()FE()F_NRq-rPŠҬĠƠ½ΠԠӠԠN]Ơ½ΠԠӠǠҬĠƠ½ΠԠӠӠ q0Oa(̮)FE(Ӡ)FE(Ŭ)FE(ԠӮ)FE(ӠΠŮ)G&`.?6@r$d6?ecMGPXUVW"b GYclo/{a()c2o qqUVW` %a()GbE()GKPUVW/Xq-rq8rq86rqa@*#rGYcYccK]Ơ½ΠԠrr%\RY]ӠӠΠҠǠŠ Y_c),`$6`.?6@r$,d6?e 6M6&a()a()G0Pa(ԠҠà)a()G:Pa()a()Da()GP/Na()oSa()q.?rq8r`%a()G9UV WXq.?r.?r`$gq-rq-r-rqY`$\ _]ʠӠĠȠŠŠӠ a()FSUVW/`88-rr8-r6e.?r`$]ƠɼΠӠӠԠ٠ŠĠӠԠa()GMde.?rde.?ra(̤)GMq.?rq.?ra(ҽ)G>bE()FGqq-rq-r-rq4qq qa@*#rE()GUVW de.?rMYc]ӠǠ?Pq.?r`%a()GPqa@*#rGA\ `$q.? rq.? rq \ qqq de.?rd]ǨɩӠΠĠŠӠө$a@*#rE(Ǡ)#UVW`-r6%\RYc1qq.?rq.?r\ MUV WX#q.?r`$`$qq.?rjqq;@rP)a@Ga()G` %a()G`c%a()G`$c_P)UVWa()GYcAca@*#rE(Š)a@*#rE(Ԡ)!a@*#rE(Ӡ)VUVW/`-r6%\RY/-rq-r-rqYq6UVW-rq-r-rqYqD]ϠӠŠӠӬĠϠӠŠM@p(ڰެ)@p(),a(РƠŠ)FG`$c_;]ˠҠЪ٠ƠΊTd\q/UVW8X6q.?rqUVWq`$n-rqqHnqYq.?rqUVWq`$x-rqqxqYZM6Uq6UVW        s: Apple-Can Member #62: Toronto Ontario 1982Xurate but users are advised to checks8 before using them. 9 Written by : Harry Owen Jones; Apple-Can Member #62< Toronto Ontario 1982X relative locations are from the: start of APA and are given in decimal: form suitable for use from Applesoft./h All locations are believed to be ac- : curate but users are advised to check: before using them. : Written by : Harry Owen Jone2,255,5,141,192,80,56,24,88,120,255:IDISKTBLT:S5(I),S7(I)::NA$(DISK)"DISK CONTROLLER":NA$(CCS488)"CCS IEEE-488 GPIB":NA$(COM)"COMMUNICATIONS"l NA$(MHCPS)"MOUNTAIN HARDWARE CPS":NA$(SERIAL)"SERIAL INTERFACE":NA$(APP488)"APPLE IEEE-488 GPIB":NAKd::T$"IAC DISK NUMBER 19"::X123:21(T$)2:T$:::X11000:n::10::"SYSTEM CONFIGURATION":11:13:"SLOT VALUES"::S5(9),S7(9):NA$(9):DISK1:COM2:SERIAL3:PTR4:CLK5:CCS4886:APP4887:MHCPS8:TBLT9 x 3,60,24,56,56,24,72,7   X % i <#L INPUT HEX PAGE NO. TO START AT o >VU X i`0iLh LT VU A VVVLOEGIN SNOOPING IN MEMORY, AND LET THE PROGRAM DO THE REST. INVERSE CHARACTERS INDICATE TOKENIZED WORDS. A GOOD PLACE TO START IS 0800, WHERE MOST APPLESOFT PROGRAMS BEGIN." <23:"]BRUN DISPLAY ASC PAGE BY PAGE.OBJ" F22: TS BY DISPLAYING ONE 'PAGE' OFMEMORY, OR 100 HEX (256 DECIMAL) BYTES, AT A TIME. IN THE APPLE ][, MEMORY IS DIVIDED INTO 256 'PAGES' EACH HAVING 256BYTES, FOR A TOTAL OF 65536 BYTES OF MEMORY." 2:"SIMPLY ENTER THE STARTING LOCATION AT WHICH TO B" * DISPLAY ASCII EXPLANATIONc::T$"DISPLAY ASCII PAGE BY PAGE INSTRUCTIONS"::T$:::"THIS MACHINE LANGUAGE PROGRAM WILL ALLOWYOU TO LOOK INTO THE CONTENTS OF MEMORY PAGE-BY-PAGE TO DETERMINE WHAT ARE THEIRCONTENTS." (:"IT DOES THI̮ϮȬ2]Ӡ͠2]٠٠f2]ӠΠƠŠˠҠР٠ͩҠŠΠҠӠ٠ŠϮؠîӮi*]ΠĠϠŠӠ͠ӠǠӠԠŠӠĠΠŠ!.]Ġ٠Ġ®\2]٠Ġ͠ŠǠΠǠƠ̭ŧàĠĠĠĠ )[N @p(ºàŠƠĸ)[2*@p(àĠĠàƹ)[7']ĠǠŠˠӠ٢ӠX']Ԡ٠ΠЮŠŠϠ٬ӠϠӮȮN@"rN@" r/\\@p()\ \@p()\*\[@B;@rrp(ΠŸ)UVW;@rde<@*rrY dHeM6[`@p( Ġ°ĠĠS(ˠԠ)&@`;@r$@q8<@rr`p$dede0$oP S(ˠŠ)&@`;@r$$<)q8<@rr`$$dede%Bqqq\ [<]Š S(Š)&@`;@r$`$M_4a@E(ң)F]ԠӮҠҮҠҮƮ a()M6#oP a(ˠ۠Ҡ)'oP a()cc.qqq\0o P :3000BLBK1:2500.BFB3:SES1:3000DBFB4:SES2:3000~ DR1ĺG$:"INSERT DOS DISK AND PRESS RETURN";I:936  **************** * BLK -> TR/SE * ****************  TR(BL8):TMP(BL8TR)8  S22(7(PT5)256&.BT(PT4)(PT3)25658TY(PT2);B[LPTPT26:NUNU1:NU01020gVTY1:m************************ READ 2 PASCAL BLKS ************************BLBK:2500BFB1:SES1:3000BFB2:SES2*******************-* FIND PASCAL FILE *G********************MBF(BUFF256):TR0:SE1141:3000:BFBF1:SENU(BUFF16):PTBUFF32:LN(N$)(PT)LN1100J1LN(PTJ)((N$,J,1))1100J $TP(PT6):A$A$" ":S:290'C0IBUFF1023."IE,BKBK2:BKBT3306PA1:DR1ĺD$"PR#0":936:G$:"INSERT PASCAL DISK AND PRESS RETURN";I$:936@2000:PA0:210J:936TD$(4)ĺD$;"CLOSE ";N$:D$;"NO MON O"^HI2100:*56):B2B11:B3B21:B4B31:BKTP2:2000\ A$"":(4);"OPEN "N$;",D1":D$(4):D$"MON O"n D$"WRITE "N$ IBUFFBUFF1023 C(I):C16A$A$(C):290 C13ĺA$:A$"":Y(0):290 C16280 II1:SP(I):SP33290S1SP32PROTECTED)":170f "INSERT DOS DESTINATION DISK IN DRIVE 1 INSERT PASCAL SOURCE DISK IN DRIVE 2" :"FILE ( FOR DIRECTORY):";N$:(N$)0İ4000:100 1000:TY3BTTP4ĺG$;G$"FILE EMPTY, NOT TEXT, OR NOT FOUND":170) 936:B1(BUFF28:d x" ":23:" "; :19:34,18:35,22:DR0150 "HOW MANY DRIVES (1/2): ";I$:936:DR(I$):DR1DR2ĺG$;G$:140 IOB2,DR:DR1ĺ"INSERT PASCAL DISK (WRITE D(BUFF)R PIOB10,0:IOB11,0:IOB12,1:IOB13,0:IOB14,0:IOB15,96:IOB16,1{ ZDCT,0:DCT1,1:DCT2,239:DCT3,21 d936:5:16:"HUFFIN":9:"PASCAL TO DOS TEXT FILE CONVERSION" n13:10:"BY DANA J. SCHWARTZ":10:"WASHINGTON APPLE PI":1RWTS5,217:RWTS6,3:RWTS7,176:RWTS8,1:RWTS9,96 <RWTS10,173:RWTS11,MOD(IOB13):RWTS12,((IOB13)256):RWTS13,141:RWTS14,MOD(ER):RWTS15,(ER256):RWTS16,96 FIOB,1:IOB1,96:IOB3,0:IOB6,MOD(DCT):IOB7,(DCT256):IOB8,MO#HI(115)(116)2562100:HI. 9000PMOD(X)(X256(X256))256RWTSHI:ERHI17:IOBHI18:DCTHI36:BUFFHI40(TKIOB4:SCIOB5:HBIOB9:G$(7):PA0:DR06 2RWTS,169:RWTS1,(IOB256):RWTS2,160:RWTS3,MOD(IOB):RWTS4,32:    $"3.3"e RSLT$:"AND WAS BOOTED FROM A ";:MS(MEM25)256254::MS$"SLAVE":(MS)54MS$"MASTER"{ MS$;" DISKETTE." 24:"HIT ";::"SPACE BAR";::" TO CATALOG DISK *";(8);:A$:::(4)"CATALOG":X1400:::T(SL1)256)5);:14:" AND ";(C100((SL1)256)7): "THE DOS IMAGE NOW IN MEMORY IS DOS ";:MEM(978):L1(MEM34)256214:L2(MEM9)256179:(L2)38RSLT$"3.1" (L2)(L1)240RSLT$"3.2" (L2)(L1)96RSLT$"3.2.1" (L2)3RSLT256:2SL:"SLOT ";SL;" HAS A";:IDISKTBLT:(S5)S5(I)(S7)S7(I)ĺ" "NA$(I);:I99r :I9ĺ"N UNKNOWN"; " CARD":190 SL(S49152)256:2SL:"SLOT ";SL;" IS EMPTY":200 210 :21:2205 12SL:"SLOT ";SL;" = ";:11:(C100($(PTR)"PARALLEL PRINTER":NA$(CLK)"THUNDERCLOCK +":NA$(TBLT)"GRAPHICS TABLET":CS(2):C10049408:C70050944 SC100C700256:K02:CS(K)0:I02558:CS(K)CS(K)(SI):::CS(0)CS(1)CS(1)CS(2)CS(2)256CS(0)256CS(1)256180Y SL(S49152)""$""0 @ "@"">, @"@ B@  @!@`<" @ "@xg6[y"@  x@@  "@ `|@8>@pp@ "@ @ ">>> @ "@8>"@ b@      !!! ! ! ! ! !!!!!!!!!""" " " " " """""BY DANA J. SCHWARTZ@ n OF WASHINGTON APPLE PI. SOME VERSIONSk o BEAR MODIFICATIONS BY VAL GOLDING OF p CALL-A.P.P.L.E.TLE PASCAL DISK. THE PROGRAMF g CAN BE USED WITH EITHER 1 OR 2 DISKT h DRIVES. i WHEN USING THIS PROGRAM FOR THE FIRST j TIME IT IS BEST TO USE BACK-ED UP DISKS k TO PREVENT A LOSS IF ANY MISTAKES ARE l MADE. m HUFFIN WAS WRITTEN  HUFFIN INSTRUCTIONS?::T$"HUFFIN"::18:T$:::zX15:A$:A$:::X14:A$:A$:::X14:A$:A$:(20:"]RUN HUFFIN":19:d HUFFIN IS A PROGRAM WHICH ENABLES ANe APPLE ][ WITH 48 K TO READ TEXT FILES f FROM AN APP   *,.'*PASCAL --> DOS TEXT*G8'* FILE CONVERSION *bB'*BY DANA J. SCHWARTZ*}L'*WASHINGTON APPLE PI*V'* JULY 81 *`'*********************H*******"#* ERROR HANDLER *5$#*****************;&#_(#D$(4)ĺD$"PR#0":D$"NOMON O"2#:G$;G$;"ERROR ";(222);" AT LINE ";(218)(219)256<#216,0:(DR2PA0)D$(4)ĺD$"CLOSE "N$F#350''********************* $'* " "::"TYPE TO CONTINUE";I$:936:cI1NF:STBUFFI266:NL(ST):NL0ī4050J1NL:L$L$((STJ)):J:" ";L$:L$"":Y(0):LNLN1LN20INFĺ:"PRESS TO CONTINUE";I$:936:V$":":LN1I:# #**********0!********************;* PASCAL DIRECTORY *U********************[:936:BF(BUFF256):TR0:SE1141:3000:BFBF1:SEV$"":NLBUFF6:I1(NL):V$V$((NLI)):I:V$;":":L$"":Y(0)3LN1:NF(BUFF16):NF0ĺTMP):S1S21 TMP0S10. TMP7S2154 : M *************` * CALL RWTS *s *************y  TK,TR:SC,SE:HB,BF:ER,0:RWTS (ER)0ı D$(4)ĺD$"PR#0":D$"NOMON O" :G$;G$;"RWTS DISK ERROR ";(ER):::9026"<""<"*"$""0""< $@ @A |"*@ @xpp ""@ @2<*>""""">@ >@  *&""">"@  &@Ns@ PP""*""<"@ >@""  @  **"""<"<*"">>0 ""@ @ @cq """>*@ @  ""@ @ *""*""""@ >"@A **"""""@ *@@ pp"*"" "@ "@ @ *@x?*""" " *""""0 ""@ @>@"Q@ """""@ |B@  "< <"@`@6"*<"@ "" <@"@cq"2<:@ |2@@ <pp"""""< <" @ @"@" @ @ ""@ " : " :6:"""0 "< <"@ @" ~g6[yx " "@ B@  @!@ "6 @ "@" @"Q""""@  "@@  x"""@ `@@" " @? @ "" @  РήԺұ宠Š۠뺍箠젨⮠װױ"""     @ @, @ @@  @!@ @@ @ @  @ 02@ }@ `@@PP <"@ @8<<"<"<,<@ """@""""<<@  @!@ @?`x " <""@ "@> @ """" < <""<">>>> <"@ `@"><6@ @@pp""< $@ @""*""""2@ "" @"6"""""$"@  "@Ns@ @pp"<6< "" @ "|@""" @ "6