8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL L"Enter file name ";NM$4(4);"BLOAD ";NM$?SU$""OA1(NM$)b SB$(NM$,A,1) (SB$)96SB$((SB$)32) SU$SU$SB$ A NM$SU$(4);"PREFIX":PR$(4);"PREFIX ";PR$((4);"OPEN";PR$;",TDIR" 2(4);"READ<Ku(4'STARTUP(/+CHANGE.FILE  e+CHG.FIL.DOC e/TYPECHANGER.TXT),TYPE.CHANGER-'UTIL2.DSKA' 'BIN2TXT=(RENUMBERM PCOMMANDSTCREATESHELL(@q*SHELL.DOCS >dMԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LLnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8R";PR$ <C$! FE$(C$,28,1)3 KF$(C$,2,16)B LA1(F$)Y M(F$,A,1)" "ĂAj NF$(F$,A1) P(E$"0"E$"1"E$"2"E$"3"E$"4"E$"5"E$"6"E$"7"E$"8"E$"9")(NM$F$)110 Z(C$,6)"BLOCKS"60 d(4)"CLOSE": n(4)"CLOSE" L,<HȱȱhL,<Hȱh ,G$ L, L$ )%$ k%$ %$ %($ %.$ %9$ %?$ &I$L&803ɤ*o< Y< :L1 LC2 ?$< E4 E4*$ [Z4 Y4$%I0(DCNT):Q$(400I)(((DLSTI)16)):X(Q$(400I))DEVIz ?I c5000: MAIN PROGRAM LOOP d GET FILE INFO nL(P$): GET LENGTH OF PATH NAME sL1P$"&BADPATH":110 xPBUF,L6 CDTE16398: CREATE DATE> $CTIME16400: CREATE TIME M %PBUF16640Z &CMMD771t 'DNUM48944: DevNum (DCNT48945: DevCnt )DLST48946: DevLst 2 SET UP PATH NAME PARMS 3PNAME,0:PNAME1,65: SET PATH NAME BUFFER TO 1664016385: PATHNAME9 ACCESS16387: ACCESS ATRIBUTE _ FTYPE16388: PRODOS FILE TYPE ~ AUXTYPE16389: AUX TYPE STYPE16391: STORAGE TYPE BUSED16392: BLOCKES USED !MDTE16394: MODIFIED DATE "MTIME16396: MOD TIME #,./0123456789:;<=>?@E CHANGER# 44096512: $4200T Q$(768): error messages and file types e (4);"PR#3" 768,32:769,0:770,191:771,196:772,0:773,64:774,133:775,255:776,96  SET UP VARIABLE NAMES PARMCOUNT16384: PARAMETER COUNT PNAME +-----------------+5 |PRODOS FILE TYPE |O |CHANGER. (C) 1986|i |PROSOFT SOFTWARE | |AUTHOR: | | JIM MENSCH | |THIS PROGRAM IS | |FREE FOR USE.... | +-----------------+ PRODOS FILE TYPonly under ProDOS. ogram very briefly to insure that it was working. Not only can this version access many of the common IIgs filetypes, it also makes it much easier to select files. I forget the version number of the previous version, but this copy is version 1.3. Works ginally-From: From: Christopher Chung Subject: new ProDOS version of TYPE.CHANGER (v1.3) To: Paul Nakada Status: R Here's a newer version of the previously posted TYPE.CHANGER. I only tested out the pr(*+(Mailer X1.25) id 7841; Wed, 20 Jul 88 08:19:32 EDT Date: Wed, 20 Jul 88 08:18:38 EST Reply-To: Apple II List Sender: Apple II List Comments: Resent-From: Christopher Chung Comments: OriX1L:PBUFX,((P$,X,1)):X: STORE THE PATH NAMEh PARMCOUNT,10: PARM COUNT FOR GET FILE INFO CMMD,196: COMMAND NUMBER FOR GFI 768: NOW GO GET THE FILE INFO! (255)012100 NOW SET THE NEW FILE TYPE...CMMD,195: SET FILE INFO COMMANDdPARMCOUNT,7: THE INFO IS ALREADY THERE SO WE JUST CALL THE STUFFm768s(255)012100, fill q$ array with data...6X0399@Q$(X)" Unknown"JXTA,A$^A1390hQ$(A)A$r21::20:"Original Value"`"Type 'YES' to save change or press RETURN to cancel:";(29);k"";A$ A$"YES"A$"yes"55005010|FTYPE,CTNA15510AUXTYPE1,(Q1256)AUXTYPE,Q1((AUXTYPE1)256)20020:4ile to the type selected. NOTE: This will not alter the contents of the file"m500: get new file type|ES1501020::(26);"Press RETURN to leave the value unchanged.":(26);"Value for AuxType: ";Q1$Q1(Q1$):NA0:Q1$""NA1:turn to root directory or D to change disks."E1200: Get Filed2:1403,68:"Select File"}4:"File:";F$;(29)100"Type:";Q$((FTYPE));(29)20::"Use Up and Down arrow keys to change selection. Press RETURN to change"O"f------------------------------------"20:"-------------------------------------------------------------------------------"20::"Use Up and Down arrow keys to change selection. Press RETURN to select file"/"to be changed. Press SPACE to re RETURN to continue";A$+12000" ProDOS File Type Changer V 1.3 20 May 87"" By Jim Mensch (c) 1986 ProSoft Software Esc: Quit"'"-------------------------------------------insert a ProDOS disk in a disk drive. Press a key.":T$:3288:2010hHER8ER3TT1:3288:2020216,0:3288:12030 MAIN PROGRAM LOOP(4);"PREFIX":OPFX$6000: PRINT STARTUP AND DISCLAIMER300: BUILD TABLE"Press08 (Q$(CT),18,3)"DIR"ĺ(4);"PREFIX";P$:4:1210>I2100WT(DCNT)xDEVDEV1:DEV0DEV(DCNT)DD1:DS(Q$(DEV400))DS7DD2:DSDS8(4);"PREFIX,S";DS;",D";DD21200034ER(222)F>T0ER8ĺ"Please " Drive: ";DD14:"Prefix: ";PFX$;(29):T$\ES0:FI1:500:FI0: Get the filenameF$"":I216:X$(Q$(CT),I,1):X$" "F$F$X$:P$PFX$F$ES1ĉ::(4);"PREFIX";OPFX$:ES2ĺ(4);"PREFIX/":4:1210ES3İ2000:4:121""1090.Q$(K)(S$,80)"84B(4);"CLOSE"dLNFK513: No. of files this directory jV Get the name of the file to be changed1000: Read the directory DS(Q$(DEV400)):DD1:DS7DSDS8:DD21::1:" Slot: ";DS:1403,01 Print the center string....G13:36,0:1403,0QCLCTZ900` Get a ProDOS catalog of this area(4);"PREFIX":PFX$(4);"OPEN ";PFX$;",T15"(4);"READ ";PFX$S$:T$:S$K513768:S$ $S$0:520 CT206CT233:520,CTCT1J19:36,0:1403,0:CLCT6S900\570 print the proper string on current line(CL255CL513)CLNF512ıNUM$(" "(CL)" ",5)CL1ĺ(NUM$,1,5(FI));Q$(CL);(29);36,0:22KEY$  move up)930ECT0CT513ĺ"";:570Q(22);iCT233CT206:520CT170CT33:520CTCT17:36,0:1403,0:CLCT6900570930CT255CTNF512ĺ"";:570(23);CT33CT1700 0CL:D930!N(X :[NFES2::D]KEY$cbKEY$(11)700: move upgKEY$(10)745: move downlKEY$(13)ĉ:pES0:KEY$(27)ES1::rKEY$" "FIES2::t(KEY$"D"KEY$"d")FIES3::v570340 $ get new file typeiCT(FTYPE):FI1CT513: CT equals current type or file p7 (NF)FIES2:5:(29);" No files this directory":I11000:::34,6:35,19CLCT6CT6"(CL(CT6))7&9"Type Changed!!!!! (Strike any key)";(11);:KEY$>5010DoLp:pz23)"ProDOS File Type Changer"28)"by Jim Mensch""This program brought to you by ProSoft Software. We write the software""that makes the grape jelly purple!" X"Type Changer will let you change the File Type of any ProDOS files.""Just select the file that you want to change by using the arrow keys and""press RETURN. It is possible to move through subdirectories by selecting"J"a dcount"/,+ 293,"Interupt vector table full"E,+ 295,"I/O error"f,+ 299,"Disk write protected",+ 320,"Invalid pathname syntax",+ 324,"Path not found",+ 325,"Volume directory not found",+ 326,"File not found" -+ 330,"Incompatible fi 252,"BAS Applesoft Program file"N+ ( 253,"VAR Applesoft Variable file"}+( 254,"REL Relocatable Code file (EDASM)"+( 255,"SYS ProDOS System file"+* errors start here+* 257,"Bad system call number",* 260,"Bad system call parameter 6,"$F6 ProDOS User Defined 6" b*( 247,"IMG ProDOS User Defined 7 (Copy II Plus Image file)"*( 248,"$F8 ProDOS User Defined 8"* ( 249,"$F9 ProDOS 16"* ( 250,"INT Integer BASIC Program file"* ( 251,"IVR Integer BASIC Variable file"%+ (disk".)( 240,"CMD ProDOS 8 Command file"U)( 241,"$F1 ProDOS User Defined 1"})( 242,"$F2 ProDOS User Defined 2" )( 243,"$F3 ProDOS User Defined 3" )( 244,"$F4 ProDOS User Defined 4")( 245,"$F5 ProDOS User Defined 5" !*( 24ESERVED - ProDOS 16 Load file"S(' 189,"$BD RESERVED - ProDOS 16 Load file" (' 190,"$BE RESERVED - ProDOS 16 Load file" (' 191,"$BF ProDOS 16 Document file" (' 200,"$C8 ProDOS 16 Font file")' 239,"PAS Pascal Area on partitioned anent)"C'' 183,"$B7 ProDOS 16 Startup Load file (Removable)" l'' 184,"NDA New Desk Accessory file"'' 185,"CDA Classic Desk Accessory file"'' 186,"$BA System Tool file" '' 187,"$BB RESERVED - ProDOS 16 Load file" (' 188,"$BC R 177,"OBJ APW Object file"?&' 178,"LIB APW Library file"s&' 179,"S16 ProDOS 16 Application Program file"&' 180,"RTL APW Run Time Library file"&' 181,"EXE ProDOS 16 Shell Application file" '' 182,"STR ProDOS 16 Startup Load file (PermSOS"*%(' 24,"$18 RESERVED - SOS" d%)' 25,"ADB Appleworks Data Base file {/// EZ pieces}"%*' 26,"AWP Appleworks Word Proc. file {/// EZ pieces}"%+' 27,"ASP Appleworks Spreadsheet file {/// EZ pieces}"%' 176,"SRC APW Source file"&'e"#$!' 17,"RPI RPS Index file"J$"' 18,"AFD AppleFile Discard file"o$#' 19,"AFM AppleFile Model file"$$' 20,"AFR AppleFile Report Format file"$%' 21,"SCL Screen Library file (SOS)"$&' 22,"$16 RESERVED - SOS" %'' 23,"$17 RESERVED - )"3#' 10,"DA3 Business Basic Data file (SOS)"W#' 11,"WPF Word Processor file"w#' 12,"SOS SOS System file"#' 13,"$0D RESERVED - SOS"#' 14,"$0E RESERVED - SOS" #' 15,"DIR Directory file (SOS and ProDOS)"$ ' 16,"RPD RPS Data fil"' 04,"TXT ASCII Text file (SOS and ProDOS)"X"' 05,"PDA Pascal Data File (SOS)""' 06,"BIN General Binary file (SOS and ProDOS)""' 07,"FNT Font file (SOS)""' 08,"FOT Graphics Screen file"#' 09,"BA3 Business Basic Program file (SOS"+!#"That address is: 225 Union #232A"V!#" Campbell, CA 95008"\!#b!#!' 00,"$00 Typeless file (SOS and ProDOS)" !' 01,"BAD Bad Block file"!' 02,"PCD Pascal Code file (SOS)""' 03,"PTX Pascal Text file (SOS)"1rectly. Always"Z "backup your disks! I charge to do data recovery if you blow them!"`  #"This program is freeware so you are not OBLIGATED to send me One Buck in"!#"small unmarked bills. However, you are NOT RESTRICTED from doing so either!irectory as the file to change. Pressing SPACE will read the top (root)""directory and pressing D will change drives. If you have any problems,""EMail me on GEnie (ADDRESS: MENSCH).": "Note: Type Changer could be hazardous when used incorle format"1-+ 331,"Unsupported storage_type"b-+ 334,"Access error: file not write enabled"-+ 339,"Invalid value in parameter list"-+ 346,"Bit map disk address is impossible"-\+ -1,"" -. error handling routine...%.. this routine reports the error then restarts program0..216,0b..54915: clear off the stack and start fresh..:(222)5İ2000:12999..20:(11):./(26);"ERROR:";(222);" in line ";(218)256(219);" Press to continue";./"";A$//12999:BX%J2\FS`- ,h 5AL' A8oYܰ+P%tUw a O`B}qe4$(k^3#I&gHSц$ :"sk)8ic')-Wb9~}jP \euJSZFH_.[xg *k "^ NjBfP`!В w_ TDe)* $aqm{{nzQYZ9@Fn ̢,=pjlS .M|X *z$"p6{{Ov.VxUqu0p_}Ž#!)Kc]9ݪ j㑑hEsԥ= @^|8|21Dsa6 c8 sy*{UNŢ #nH;Zaka"X@!%z3dEw iy٥a73JQB2U yId"6QIT4msrGKPh%nsJ pEs4*y ]Υ !mkViů$^51)Xρ8ݑV"5cX<2f hv -0Rk`L&z]\l ݌l<({3a wAI8 sSD֘իd8. -Lelbdx}X2(iO*З$_%W &s3K–,]s@ &@@ h @%I GB`)` p4rP$ uiK"'9:O$Pi H n`N)"e.y(]r#I:](&$OQ=bTD&\Fr ?P@`8AB }l\LS(ф$EBx( Lf6d#U23va I0+ &&SI3$U}1jaXVIBp7H14)JJwYLHG*vm%H fAe1XaM 4A$r j(hA z,gvBw8!HFByI@` Zu$l39iGq1,G8\ˬā$ C; G9Yn/"\]^j$NjM`{(V+MREV #ߛB- #$lNs{X.$ n%®c_;f y::˛kRE4 -KJ[Q: 7N5X) 12i1h܆dsRY0H{ ,$4ȣ; eGv4HWS^٫j6WD? ̟8UGBtv @B A9 -h'b5poP2~Hj ӣX% 9rV(#ʞ%f" '}#-,3b$\!" !Vjό0` =m<2 9hT5?Ṵ+? V$8&O4L!&/VtG=ȭ룐$#X`8jd[d!+Hb *-4t b*4+}dl/A 6$?9`#|cm3qU0lZΪ% a:h &؋0! IÃ:)Hh!JNƒ꣨#"*ፏ (/*c&X(Z\ THTɖcT7Y *F0"10c͈DXY! 躐6C P!f  l@I5e@ adh)ci耜L9i!L7ɰ 'SıFaIc' 27ŬtDI) ƼiӦ& ͛1kHX(NJ6 ܌eY MQ# &о3߸Q U*3i)8⍅5ҸY  ZKMc̢ b4g!|y7byD3H4Zݸ)#L1uD9g%B-+m) h05{Kymw~ {EaXn=T+ [t1:| R(*Y(*]{p))i2s/ő-uÖ2eP֖6[ڟg/20*p(%ް%`p)Br$Hr?/IT9* \t@;pG{Ƒ?ȩ{ʐ1 P@؁Ј l!Zb@4*PִL+3-l@Dixko,7P,PAHp&r@ K(f\ ^ #܀ۿn,1&tKb$2FqqHb=N+Va and end this one5/D/ ProDOS error handler hereF/N/20:(11):i/X/(26);"ERROR:";Q$((255)256)/b/"Press Return to continue:";A$/l/54915: and clear off stack/25010: end error handlerA}`$`;-Mj}ސei"I-wІ$d,t}cJi{>2psx)*8=1SSұ XJ9@ '0)0.$0yi: a9$)&$8Bбh!\D-0 }sxҐ@ae H'N@yS bʀ3 y4spk2n J:,@q0̎cȑMtiN7gw %ɠӠ庠Ϡɠ󺍍鍠׍źݠݠӠӍ󍍦ԠàԠĠ䠯򠦠Ϡ󩍍󍍦ĺ䍦ź䍍˺󍦠׺LNOPQRShi WQ(ɍ$,< [ B< WQɍ, X /l`Q) DQ`Ӡߍ鬠éƍxP<=V< 8Ve=<=8"==\ݩ  (L H[hL\?C , !Z X / X BQ( WQ WQH WQ1rAAD<5{CtQ80 5@PԶPO`H) 8`Dr 옯2"DPXL3Pنb6lRDUkvnV\o \9i޸ xQ(rIC cԑC̜< ޘA6 u⬎F1lq\j@ *F D4Z#3 t 59ʸ# gn:@ a *N:X͘6k0vC: 22&2D,8C:03c<PC2ް,upCDخ2@35RK6PDop#4 @84ؠ#LSTARTUPa۶# k "L")AJ)I "F9@ , $$…E)"$q :F  IEBAH@PFJQTDT4 "sPZ4-a!x`5ҦQ$C%qɉ Ah1Ō;<2*84aʰ914ٰa4 32+Y`H7p24g)=kɦȐT@vDui"8F1[*qy*3xB(L5#$#j:_P{.:hr#y褓& LC@N' @H )`*и=m!KH0"NFf</[[[ F%7vM&xA =AZiQ* deU,*,tg$!b"Za` j pa$QFsN: b+t? ,ȱ8e栠вLZZ8stƞƨşȱ堰K ZLY%LY Z Z܁ Z Z$eeѥȥ񥰷0 Z ZghG[ȱ =[G[ =[8LY Z8s姅t娅g塍Zh墍Zg[h[Z |[ X Z |[ ZLX |[ Z |[ Z |[ X Zx轀ȱCaՠIaN L`g` 9t`aaaaaa t`a (` DATE UTILITY FOR SHELL7 COPYRIGHT 1989 BYL MICHAEL PENDERRl "Current date is: ";A(49040)256(49041)A0ĺ"":90(Y(A512)2M((AY512)32)7M15MM16:55<D(49040) FD32DD32:70SAVE TEMP DATE.BAS 4)"CLOSE"FLIST UTILITY FOR SHELL5COPYRIGHT 1989 BYKMICHAEL PENDER R h (4)"OPEN FLIST"(4)"WRITE FLIST"Q$(34)("0D$=CHR$(4):?D$"Q$"OPEN LIST"Q$":?D$"Q$"WRITE LIST"Q$":LIST1,:?D$"Q$"CLOSE"Q$":END"2"RUN"<"0" F(656,(A$) P(4)"LOAD TEMP"  :A$"":A(38656):A040AI1A:A$A$((38656I)):h"CURRENT LIBRARY PREFIX:":A$:50("NO CURRENT LIBRARY PREFIX HAS BEEN SET":2:"NEW PREFIX? (RETURN TO ABORT)"<">";A$:(A$)080 FI1(A$):38656I,((A$,I,1))::38SAVE TEMP CPREFIX.BAS 1 by Michael Pender1480 Mapleton AvenueSuffield, CT, 06078XZAaAa<5AaBaBa<&Ba<`DaemonDaemon is not currently present in memoryPlease run Daemon prior to executing this program.Daemon and Daemon timer are Shareware productswritten by Michael PenderCopyright 199 PM"/"D"/"Y/ Z:"Change it? (Y/N) ";:A$N d:(A$"y")(A$"Y")160n n:"New Date? MM/DD/YY ";A$ (A$)8160 M(A$):D((A$,4,2)):Y((A$,7,2)) A512YM32D:49041,(A256):49040,A256(A256) (4);"LOAD TEMP"A=PEEK(49025):CALL (A*256+3) x轀ȱ2aՠ8aB Ly`[` -h`aa t`a (`SAVE BKP RUN TEMP 0D$=CHR$(4):?D$"OPEN LIST":?D$"WRITE LIST":LIST1,:?D$"CLOSE":END RUN 0 PR#1 PRINT CHR$(9);CHR$(73) (!`%TNEWo(!qTNEW.BASpK(!jTRECALLq(!iTSHORTr(!`/TSHORT.BINs(!@qTTIMEt(!uTTuECHOd(!qTFLISTeG(!/TGOf(!jT&ICLOCKh.(!`&TINSTALLj"(!%T+INSTALL.BASl (!X8TINSTALL.BINnA=PEEK(49025):CALL (A*256+6) A=PEEK(49025):CALL (A*256) a#$ a:%&'` 08 0 0`DaemonDaemon is not currently present in memoryPlease run Daemon prior to executing this program.Daemon and Daemon clock are Shareware productswritten by Michael PenderCopyright 1991 by Michael PendgiSAVE TEMP NEW.BAS `` L TEMP" km00 LA(A)> P:"Frequency (0-255, 0 being fastest) ";FU U(F0)(F255)200` VF(F)s ZA0AA65536 _XR24584:YR24586:AR24588 dAR,(A256):XR,A256(A256):Y,F n24577:200 "ERROR - NO COMMAND LIBRARY SET" (4);"LOAD " INSTALL UTILITY FOR SHELL 6COPYRIGHT 1989NBY MICHAEL PENDER ~(:"ARE YOU SURE YOU WANT TO INSTALL A NEW"2"TASK DRIVER? (Y/N) ";:A$:<(A$"Y")(A$"y")200F:"Address? (in decimal please) ";A K(A65535)(A65535)2SAVE TEMP INSTALL.BIN INSTALL.BAS er1480 Mapleton AvenueSuffield, CT, 06078"NEW? (Y/N) ";4A$::(A$"Y")(A$"y")ĿI(4)"LOAD TEMP" SAVE TEMP TYPE.BAS ,((A$,2))$ d:(4)"LOAD TEMP"  TIME UTILITITY FOR SHELL8 COPYRIGHT 1989 BYM MICHAEL PENDERS :"Current time is: ";:(49043)(49042)100:"Change it? (Y/N) ";:A$:(A$"y")(A$"Y")100:"Time? HH.MM ";A$((A$)5100 249043,(A$):49042+ (!qTTEMPX1XTcTIME.BASv&(!uTTYPEw(!u*TTYPE.BASx(!u'TVLISTy(!qTVLIST.BASz4(!qTVSET{(!qT(VSET.BAS}SAVE TEMP TIME.BAS ح"I= 68@]@p@v@@#@t@@I" `؆إ ' ݗ@ (` @轡@ɀ @(``@@@@@@@@@@CALL-1513D0GCATTEXT:LISTPOKE 33,33LOADSAVEPREFIX ؆إ ' Na (` XaXaɀ Ga(``lava|aaaaaaaaCALL-1513D0GCATTEXT:LISTPOKE 33,33LOADSAVEPREFIX ح2d`3e`d`ae`a CL`a'a-aBa#_`Yataa" 2a3`HHHؠg#gghȑggigȱgi> XJ hhh(`PROGRAM IRREPARABLY DAMAGED, SORRY. iiijijiiiikmjijln X ALL DONE, I'LL SEND THE BILL  TYPE UTILITY FOR SHELL6 COPYRIGHT 1989 BYK MICHAEL PENDERQj "NAME OF FILE? ";A$"FILETYPE? ";B$B$""B$"TXT"(4)"OPEN "A$",T"B$((4)"READ "A$-602C$:C$;:50<216,0:E(222) F(4)"CLOSE "A$A$(13)PR$V$(C%):210A 0(A$)(A$)CC%(A$):150j A$(8)A$(11)C%C%1:C%0C%C A$(10)A$(21)C%C%1:C%CC%1 150 :D$"PREFIX"PR$:D$"PREFIX":PR$ :"Prefix is: "PR$ D$"OPEN"PR$",TDIR" D$"READ"P1403,59:2C%::C%". "V$(C%):X 21:"B exits to Basic, Q quits to Prodos System." 20:"Use numbers/arrow keys to select, [Return] to accept, or [Esc] for new volumes ";:A$ A$"q"A$"Q"ĺD$"BYE" A$"b"A$"B"ė: A$(27)ė:20 17:A$(S,1)A$(S,2)""100< Z"Slot: "S,A$(S,1),A$(S,2)C dSU nS17:D12z xA$(S,D)""CC1:V$(C)A$(S,D) D,S C0ĺ"Sorry, no volumes recognized.": 1:1403,59:"Volumes found:":C%1 3:S1C:1403,59:S". "V$(S):S! |~1 A$"":50* D$"PREFIX,S"S",D"DA (D$"PREFIX":"";A$W 2A$(S,D)A$:216,0v <SS1:S8D1S1:D2:25 A(S8D2)25 F:"Blocked Volumes Online:" K3:"","Drive 1","Drive 2" NC0: Counter for total # of volumes online PS FC%17:SC%2FC%:TC%3FC%F D$(4):A$(7,2),V$(60):D$"PR#3"} :8:21)"Menu-based Startup routine courtesy of" 10:26)"The efforts of Michael Pender" 12:24)"A.K.A. Greyelf, User 20 of H.U.G.E"14:35)"Version 2.1" D1:SSAVE TEMP VSET.BAS ) d n(4)"PREFIX"A$2 x(4)"LOAD TEMP"  D1:S1:D$(4):A$(7,2):4D$"PREFIX":A$N"CURRENT PREFIX: "A$W(602D$"PREFIX,S"S",D"D:D$"PREFIX":B$:A$(S,D)B$<216,0:D1D2:40FD1:S7SS1:40P"SLOT/DRIVE",1,2 ZI07:(A$(I,1)A$(I,2))0ĺI,A$(I,1),A$(I,2SAVE TEMP VLIST.BAS R$:260 A$:A$""241& I09 A$:ITC%260Y A$""II1:V$(I)A$:243o D$"CLOSE":216,0 CI:J1C:V$(J)(V$(J),2,19): C0Ģ3:"Sorry, no files...":I0600:I:20 "J1C:PJ ,PFC%PPFC%:30061403,0:P2:JFC%Ĺ1403,22"@JSC%Ĺ1403,450JV$(J):JqTC%1:L%1: c% is current, l% last, this avoids refreshing ^C%L%400hPL%:1403,0:L%FC%Ĺ1403,22rL%SC%Ĺ1403,45|PFC%PPFC%:380P2:V$(L%):L%C%PC%:1403,0:C%FC%Ĺ1 (4)"OPEN COMMANDS/ECHO">(4)"WRITE COMMANDS/ECHO"J"PR#1"h("PRINT CHR$(9);CHR$(73)"y2(4)"CLOSE"" (4)"OPEN COMMANDS/CPREFIX"D(4)"WRITE COMMANDS/CPREFIX"U"SAVE TEMP"h("CPREFIX.BAS"y2(4)"CLOSE" (4)"OPEN COMMANDS/C80"<(4)"WRITE COMMANDS/C80"H"PR#3"W("CATALOG"h2(4)"CLOSE"! (4)"OPEN COMMANDS/BACKUP"B(4)"WRITE COMMANDS/BACKUP"R"LOAD BKP"c((4)"CLOSE"o(!jCREATE.STARTUP(!jCREATE.VLIST(!jCREATE.VSETq(!jCREATE.EJECT7(!qCREATE.EJECT5(!qCREATE.TIME(uCREATEuHUSTON!' 'CREATE.BACKUPe(!jCREATE.C80j(!jCREATE.CPREFIX{(!eCREATE.ECHO{(!qCREATE.GOh(!kCREATE.SHORT  TYPE UTILITY FOR SHELL6 COPYRIGHT 1989 BYK MICHAEL PENDERQj "NAME OF FILE? ";A$"FILETYPE? ";B$B$""B$"TXT"(4)"OPEN "A$",T"B$((4)"READ "A$-602C$:C$;:50<216,0:E(222) F(4)"CLOSE "A$ng/Executing...")bD$"-"(V$(C%),15) $"q"A$"Q"ĺD$"BYE"+A$(27)ė:20=A$(13)530SA$(11)C%C%1iA$(10)C%C%1A$(8)C%C%FC%A$(21)C%C%FC%C%1C%1C%CC%C350(V$(C%),3)"DIR"PR$(V$(C%),15):210X:10:30:"Loadi403,22C%SC%Ĺ1403,455PFC%PPFC%:420JP2::V$(C%):1403,0:22:"B exits to Basic, Q quits to Prodos System."1403,0:21:"Use arrow keys to select, [Return] to accept, or [Esc] to back up ";:A$A$"b"A$"B"ė:A (4)"OPEN COMMANDS/GO":(4)"WRITE COMMANDS/GO"J"SAVE BKP"U("RUN"f2(4)"CLOSE" TIME UTILITY FOR SHELL6 COPYRIGHT 1989 BYK MICHAEL PENDERQo (4)"OPEN COMMANDS/TIME"(4)"WRITE COMMANDS/TIME""SAVE TEMP"("TIME.BAS"2(4)"CLOSE"  (4)"OPEN COMMANDS/EJECT"@(4)"WRITE COMMANDS/EJECT"l"FOR I=49360 TO 49376:A=PEEK(I):NEXTI"}((4)"CLOSE"  (4)"OPEN COMMANDS/EJECT"@(4)"WRITE COMMANDS/EJECT"l"FOR I=49392 TO 49408:A=PEEK(I):NEXTI"}((4)"CLOSE" (4)"OPEN COMMANDS/VSET"=(4)"WRITECOMMANDS/VSET"N"SAVE TEMP"^("VSET.BAS"o2(4)"CLOSE"  (4)"OPEN COMMANDS/VLIST"@(4)"WRITE COMMANDS/VLIST"Q"SAVE TEMP"b("VLIST.BAS"s2(4)"CLOSE"<(4)"CLOSE"  D$(4)'D$"OPEN STARTUP.EXE"BD$"WRITE STARTUP.EXE"W("BRUN LADS.OBJ"m2"BRUN SHORT.OBJ"x<"NEW"F"FUNCTIONS KEYS HAVE BEEN DEFINED."PD$"CLOSE STARTUP.EXE"  (4)"OPEN COMMANDS/SHORT"?(4)"WRITECOMMANDS/SHORT"P"SHORT.BIN"\("IN#1"m2(4)"CLOSE"CREATE.DATE(uCREATE.TYPE(u*CREATE.FLIST(/A.K.A. SHELL *# * *# * Courtesy of the author, *# * Michael Pender *# * Copyright 1991, *# * all rights reserved. *# * *# ****** # *********************************# * *# * Michael's Shell *# * Version 1.0 *# * *% * bO=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|===8}ة 3ɖ/t<@ Nj `/) ș1m ĎRiPQSTU`l ȩ ` " <"0" F(4)"CLOSE"FLIST UTILITY FOR SHELL5COPYRIGHT 1989 BYKMICHAEL PENDER R q (4)"OPEN COMMANDS/FLIST"(4)"WRITE COMMANDS/FLIST"Q$(34)("0D$=CHR$(4):?D$"Q$"OPEN LIST"Q$":?D$"Q$"WRITE LIST"Q$":LIST1,:?D$"Q$"CLOSE"Q$":END" 2"RUN TYPE UTILITY FOR SHELL6 COPYRIGHT 1989 BYK MICHAEL PENDERQo (4)"OPEN COMMANDS/TYPE"(4)"WRITE COMMANDS/TYPE""SAVE TEMP"("TYPE.BAS"2(4)"CLOSE" DATE UTILITY FOR SHELL6 COPYRIGHT 1989 BYK MICHAEL PENDERQo (4)"OPEN COMMANDS/DATE"(4)"WRITE COMMANDS/DATE""SAVE TEMP"("DATE.BAS"2(4)"CLOSE"***************************ii ABSTRACT53 Prodos BASIC allows a user to attach external 64prodos commands to the BASIC interpreter. However, 75doing so requires an advanced knowledge of assembler :8language and the Prodos BASIC environment. Furthermore 64requiring several commands to exist memory resident 31deprives the apple of its already rather limited programming space.97 Shell programs help to make programming easier by :8allowing the user 3.2 BOOTSLOT....................................89 3.3 C80........................................109 3.4 CLOCK......................................109 3.5 CPREFIX....................................119 3.6 DATE.........TS91.0 INTRODUCTION.....................................192.0 GETTING STARTED..................................493.0 INCLUDED COMMANDS................................89 3.1 BACKUP......................................89 are not a registered 1/owner, please support my efforts by becoming a 4registered owner by sending $30 for the disks and 53documentation, as well as a free update and status reports.vviTABLE OF CONTENom this system in your programs please 64include a note in the copyrights of the software to 42indicate the source. Further, as this program is 53shareware you should feel encouraged to distribute copies.:8 If you enjoy this program and puter Co.97 Having purchased this program you are entitled to 97use and copy this disk and its programs as you see fit 53for your personal use. There are no royalties for 31programs developed with this product, but if you 86include code frDisclaimer:64 I have no association with the Laser series of 86computers (other than owning one), and no relation to :8Apple computer. Products mentioned such as DOS 3.3 and :8Prodos are the trademarks/copyrighted products of Apple Com, and I don't expect to make :8any real money at it, but you could always surprise me. :^)iv,I can also be reached to answer questions.Michael Pender 1480 Mapleton AvenueSuffield, CT, 06078(203) 668-0147always try to incorporate improvements suggested.97If you decide you don't like it, give it to a friend. 97I'm far from rich, and this particular project took me 53over two years and some investment to complete. I :8write this stuff as a hobby use. If after having this 86program for ten days you still find yourself using it 86send me the $30, maybe you'll like the newest version 75even better. If you know me at all, you know that I 42tend to upgrade programs almost constantly, and I 3y form.31 I believe in the concept of Shareware, that 86software should be cheap, and that one should be able 75to try a piece of software before shelling over your 42money. Individuals should feel free to copy this 31program for their own 97$30 you get the newest version on disk, written, bound 97documentation, source code, a free upgrade, and a list 97of other shareware products I make. Special licensing 97must be acquired for companies which wish to reproduce this work in ance of 31background tasks, invisible to the BASIC program 97executing in the foreground. Complete source code for Daemon is also included.iiiNOTICE OF RIGHTS:8 This program is shareware, it costs $30. For yourired to make 86a command execute automatically are handled invisibly by the shell program itself.,* Also included in this package is the 97multiprogramming routine known as Daemon. Daemon taps 42mouse card interrupts to allow the coexisten to customize their environment. This :8shell program allows the user to link their programs to 97the BASIC environment and execute them as if they were 1/external commands, but they need not be memory :8resident. In fact, all of the details requ..............................119 3.7 DOFF.......................................119 3.8 DON........................................129 3.9 DREM.......................................129 3.10 ECHO.......................................139 3.11 EJECT5/EJECT7..............................139 3.12 FLIST......................................139 3.13 GO.........................................139 3.14 NEW........................................149 4possibility for errors. The GO command for example 53makes a backup of your program in case you need to 5revert back. Ever accidentally delete a line in a 86program and can't figure out what it was? The recall :8command can usually repair a ically loaded on startup. I wrote a routine to 86intercept the printer output for slot #1 and drive my 75electronic typewriter (and the manufacturer said its not Apple-compatible :^).97 Second, this program helps to relieve some of the 6. For my :8computer (a Laser 128ex) I wrote a custom clock routine ;9(too cheap/poor to buy one) that taps mouse interrupts. :8Non-ROM devices are not only possible under Prodos, but 42may now be made convenient, custom drivers may be 97automatThe program serves three main functions::8 First, the extensible shell allows for a person to 42create their own commands to simplify tasks under 75BASIC. The shell also allows a means of support for 20custom drivers for different computersm is effectively a new programming 75environment. The nature of the command structure is 97extensible, making the setup very easy to customize to 75one's tastes. My younger sister found it amusing to )create commands to respond to swearing.*command, or 42someone goofed typing. SHELL goes to its default 8directory, looks for a command of the name typed, and 31if a file of that name is found it is loaded and 5executed using the Prodos smart run (dash) command.53 This progracussed later you will see why it is not :8advisable to load other external commands before SHELL, 42as SHELL may interfere with their operation. The 97theory is simple, if the command makes it to SHELL, it 53is either a command for SHELL, a BASIC :8command for Prodos BASIC. It intercepts commands after :8Prodos is done with them, but before BASIC gets a crack 75at them. It intercepts the external command vector, :8and saves the pointer to the next external command, but 97for reasons disit seems to work, and it makes programming under Prodos 97BASIC a little easier to handle. At any rate it makes :8one slightly less likely to tear their hair out because of a dumb mistake.75 Shell actually configures itself as an external ELL but decided to put it 75to rest). I had a lot of ideas that didn't work out 64(What do you mean I can't call DOSCMD with a VERIFY 42request?), and found a few errors in the Prodos 8 97Technical Reference Guide the hard way, but all in all :8 - -CHAPTER 1 - INTRODUCTION31 I started this program in 1988 ago. It was 31originally named Disk Commander, when I tried to 86implement it under DOS 3.3. Now I just call it SHELL 86(I was going to call it C.SH...........199 4.2 ASSEMBLY LANGUAGE..........................219 4.3 HYPER C PRODOS.............................219 4.4 SCRIPTING FILES............................2195.0 CONCLUSIONS.....................................23.............................189 3.20 VLIST......................................189 3.21 VSET.......................................1894.0 PROGRAMMER'S NOTES..............................199 4.1 BASIC...........................3.15 RECALL.....................................149 3.16 SHORT......................................159 3.17 TIME.......................................159 3.18 TIMER......................................179 3.19 TYPE..........program accidentally NEWed 86out of existance. The NEW command itself was altered :8to allow one to back out. And even the BYE command can 53be recovered from using BOOTSLOT's zero function. :8These commands are not an absolute defense, nothing is, 97but they can prevent some minor catastrophes that I've encountered before.:8 Third, this allows one to create a customized user :8interface. The shell allows for nearly English command :8recognition. In future versions this shall and DOGPAW in memory simultaneously: ]-shell ]-daemon ]-dogpaw75 Every command you type after SHELL is installed 1/that is not a normal or extended command under 86BASIC.SYSTEM will be looked for on disk in the volume 75specifie absolute address requirement of SHELL 86means that SHELL must be loaded before other external 97commands. To then load other external commands, treat 86them normally, as if SHELL was not present. That is, 53if one wanted to have SHELL, DAEMON, er is an 75exact replica, and the buffer at $9900 is the string 5length, prefix followed by the routine name. This 75allows commands to have parameters that BASIC.SYSTEM 6would not recognize and would generate an error for.:8 However, thmand library prefix in a buffer at 86$9700, the command as it appeared in the input buffer 75at $9800, and the prefix followed by the name of the 53routine at $9900. The library prefix is stored as :8length, prefix (high bit clear), the input buff97programmers who wish to write routines compatible with 97SHELL, not only because you know where it is, but when 97your routine is invoked SHELL made a copy of the input :8buffer, telling Prodos not to parse the parameters, but 42storing the comor a file called DOGPAW. On 75finding the file, shell would load it. DOGPAW would 64see that it was already present in memory and would 9return to BASIC. Hence, DOGPAW wouldn't work properly.53 Also the absolute address is a convenience to f you had the very popular utility DOGPAW on disk, and 75you loaded it before SHELL, depending on your use of :8directories you might end up just reloading the program 97every time you issued the DOGPAW command. SHELL would 42go to disk, looking fhis was necessary both 97to save me work, because I couldn't figure out how the 75bitmap worked, and because the nature of the program 31requires it. SHELL must be invoked before other 97external commands you may choose to use. For example, :8iET THE PREFIX BEFORE INVOKING SHELL!!!!75 Once SHELL is invoked it loads in at $4000, and 86checks if it is already present. If not it relocates 7to the absolute address $9600. Yes, I said ABSOLUTE :8ADDRESS. Programmers beware!! TEFIX shell command. This 97is done because in ordinary programming you may change 20your current prefix several times. Some of the 64commands do this themselves. If the prefix is set, #SHELL always knows where to look.42Remember, YOU MUST Sand -/SHELL/SHELL (assuming its still on the WOS disk) 42to invoke the shell. SHELL will read the current 53prefix and store this as the directory in which to 86ALWAYS find its commands. You can change the command :8directory prefix using the CPRnother disk (/ram is a good 20choice). This has its benefits and drawbacks. 75Selecting a different disk as home for your commands 86has been made rather easy to do. Just set the prefix 75to the directory you want, using the PREFIX command, 97If you bought the disk you're all set, the program 97will boot up, and install itself. This is fine if all :8you want to do is copy the program disk and store BASIC :8programs on the same disk. However many people will be 42transferring this to abe improved 64upon. The control-key replacements make some tasks :8easier. Also various editor functions have been added, 31giving a purpose to the TAB and DEL keys on your apple's keyboard. CHAPTER 2 - GETTING STARTED:8 ed. This includes basic commands like NEW or 42LIST. So for speed, it is advisable to make your 86default prefix on a ramdisk, also because you'll know :8exactly what commands are there: copy only the ones you use.86 Any command you create and place in the COMMANDS 0.directory then becomes part of your available :8disk-based command set, you need not turn the power off 64or reboot or any such thing. BE WARNED!!! Fooling :8with some of the BASIC commands can have side effects. 9se short with 86simple, this routine was a pain in the foot to write) 86places a little clock in the upper left corner of the 97screen. Being interrupt driven, the routine is easily 64forced off by an SEI instruction, or if one presses 53RESET. ghly 13 blocks on disk or bigger). 3.3 C8020 This is a very simple command provided for 64demonstration purposes that effects a PR#3 command, "followed by the CATALOG command.3.4 CLOCK42 This short routine (don't confud be fine.75*** One warning, if your program is so long that it 97extends into the the Hi-res page one area, part of the ;program may be destroyed when BOOTSLOT itself loads in. 75This only applies to programs longer than 6144 bytes ((rou2000, possible disturbing other :8system programs. In general, don't expect the 0 option 97to allow you to return to your favorite word processor 75or modem program, but it will allow you to return to 8BASIC quite nicely, where your program shoulst without hope. But the 0 option allows a person to 86exit back to the last system program that was running :8(sort of). Unfortunately to have this feature work the :8program itself had to be set up as a system program, so 64it must load in at $ the appropriate slot they wish to boot from, in this case, the '6' key.86 BOOTSLOT has another important feature however. 97If you're working in BASIC and you use the BYE command 75to leave by accident, normally your program would be :8loh comes up 64automatically when they turn on the power, and they 97want to boot from a device in slot 6 (say a 5 1/4 inch :8disk with a game in DOS 3.3 on it), all they need do is 97select the BOOTSLOT program, and then press the number :8key fors, including the BASIC.SYSTEM quit code. 75BOOTSLOT was originally written to allow people with 64selector programs to chose a slot with a non-Prodos 53volume to boot. That is, if a person has a Prodos 53formatted 3.5 inch drive in slot 7, whiclast version saved.See also GO, NEW, and RECALL.3.2 BOOTSLOT86 This is actually a program I wrote independently 53before SHELL was yet completed. BOOTSLOT is a SYS 0.file, making it easy to run from many program 4selectore of the BACKUP command. :8Whenever you make a major step forward in a program use :8the GO command to run it instead. Then should you make 75a major error and accidentally wipe out part of your 86program, merely typing BACKUP will revert to the rogram is saved on disk as a file called BKP. This is 53because some of the commands are written partly in :8BASIC, and it just wouldn't do to accidentally wipe out 97hours of work by typing a command you weren't familiar 31with. Hence the purposnds are invoked by just typing their 42name after the SHELL program has been loaded into memory and executed.3.1 BACKUP75 Certain commands, such as the GO command make a 86copy of the program in memory before continuing. The :8pd with NEW, or you could use LIST 64which will be interpreted as a BASIC command, not a 20disk command. The second method is by far more -dangerous, since you only need forget once.! CHAPTER 3 - INCLUDED COMMANDS75 These commaIf you make a BASIC program called LIST and then go to 53list a different program you just lost it when the 86BASIC program named LIST was loaded into memory. You 86could either make an EXEC file called LIST that calls :8the BASIC code as I di To reconnect at any time, just use the DON 31command to reconnect DAEMON. As it is currently 97configured, this command shows the current time stored 64in the prodos standard locations. This routine was 31designed to remind people (myself included) when :8they've been spending too much time at the box and they 97could use a good stiff cup of tea or some sleep. This 0.routine calls DAEMON to perform the interrupt 86processing, so DAEMON must be loaded prior to calling CLOCK."See.See also the BACKUP command. 3.14 NEW:8 The NEW command is activated like the others, when 97you type the word NEW in immediate mode. Many was the 86time I accidentally wiped a program out of this world 97with the NEW commandm in memory, and saves it on disk as :8a file named BKP. This is useful because it is no more 20inconvenient than typing RUN (hell its even one 75character shorter), but you have a current backup of 0your file in case all hell were to break losin memory, open a file named LIST, and then type the 0listing of the program to the file named LIST. 3.13 GO31 The GO command is much like issuing the run :8command from BASIC, except that it also makes a copy of 9the current prograse commands are no 97longer provided with the system, since some drives may 64be scrambled by this command. I don't want someone #accidentally damaging their disk.3.12 FLIST:8 This routine will take the BASIC program currently 757simultaneously. This command too is provided for as a demonstration.3.11 EJECT5/EJECT720 These commands allow apple users without a :8convenient means of ejecting a disk in a 3.5 inch apple 97drive to eject the disk easily. Thet handler. 3.10 ECHO97 This command issues a PR#1 command to the system, 86turning on the printer for most Apples with printers, 86then it issues the Ctrl-I I SSC command, enabling the +)output of text to the screen and printer 9e transferring control to another system program. 3.9 DREM31 Daemon MUST be disconnected before entering 31another system program. Use the DREM command to 75permanently disconnect DAEMON, from memory, and from Prodos's interrupling DON when DAEMON is not present, or after 7DAEMON has been removed may have unpredicted results.97*** Warning, disconnect DAEMON before entering another 75system program. Use the DREM command to permanently 86remove DAEMON from memory beforstalled it does not activate interrupts. This 86was done to prevent confusing programs while a system 86might not be fully configured. This routine may also 86be called to reconnect DAEMON after reset is pressed, or it is stunned. 75*** Calefore entering another 7system program. Use the DREM command to permanently 86remove DAEMON from memory before transferring control to another system program. 3.8 DON64 This routine activates DAEMON. When DAEMON is 97first intible form for stamping filesSee also TIME. 3.7 DOFF86 This routine TEMPORARILY deactivates DAEMON. It 64does not remove the interrupt handler, and does not "free the memory DAEMON occupies.97*** Warning, disconnect DAEMON bL, 8this allows one to change the prefix to something new.:8The new volume/directory selected need not be online at the time CPREFIX is used. 3.6 DATE64 This routine prompts the user for the date and 8places it in Prodos-compa installed, but CPREFIX allows 64one to change it on the fly. If you copied all the 64commands to a ramdisk say, and wanted to change the 64prefix so SHELL would look there instead, or if you :8goofed, and hadn't set the prefix before running SHELe also TIMER, DON, DOFF, DREM. 3.5 CPREFIX53 This command allows one to change the command :8library prefix after the SHELL program has already been :8installed. Normally SHELL selects the prefix directory 86active when it is first under Applesoft. This command is :8very similar, it just prompts you to make sure you know 53what you're doing before it continues to wipe your program out of existance."See also GO, BACKUP, and RECALL.3.15 RECALL64 This is a very short machine language program I 64wrote a few years ago to bring an Applesoft program 64back from the dead under DOS 3.3. It works just as :8well under Prodos. Supposing you've neglected to avail 86yourself of the GO command recently, and ed a 64routine other than DATE or TIME to set the time, it will still work. 97*** Press reset to deactivate the TIMER routine before "entering another system program..See also CLOCK, DON, DOFF, DREM, TIME, DATE.3.19 TYPE97 ected, but an easy test exists. 53Press control-g (with SHORT deactivated), or PRINT 75CHR$(7). If it sounds like a warble, the routine is 75active. Press RESET to deactivate. TIMER reads the 97current time and date from Prodos, so if you've usProdos. 64Like CLOCK however it is easily removed, and easily 86re-activated by using the TIMER command. Both clocks 42will not run at the same time, only the first one 75installed will. This clock is slightly less obvious 53when it is disconnhe way it processes interrupts. 53Unlike the CLOCK command however, TIMER stands for 86Invisible CLOCK. Unlike its friend CLOCK, TIMER does 86not place a clock in the corner of the screen, rather ;9it is used for time and date-stamping files for esses, and the routine is driven by the interrupts 97of a mouse card. If you have a mouse card in any slot :8(no mouse necessary), you can install the visible clock :8by typing the CLOCK command. This routine is much like 97the CLOCK command in tno return)/F8 Ctrl-G Types SAVE (no return)1F9 Ctrl-L Types PREFIX (no return)3.18 TIMER75It is quite accurate, provided the user does minimal 75disk access. Interrupts are deactivated during disk 86acc monitor by typing 3D0G (return).F3 Ctrl-B2 Types CAT (return) for a 40 column catalog.1F5 Ctrl-D Types TEXT:LIST (return)2F6 Ctrl-E Types POKE 33,33 (return)/F7 Ctrl-F Types LOAD (ey five times. Makes editing much quicker.DEL ASCII 12742 Backspaces once, types space, and backspaces again.F1 Ctrl-@2 Enters monitor by typing CALL-151 (return).F2 Ctrl-A. Leavesways available after :being loaded. The loader itself checks to make sure it 86is not already present in memory before loading it in again.$Laser Key Apple Key FunctionTAB Ctrl-I86 Like pressing the forward arrow kld not be a problem. To then access the :8driver a person need only type IN#1 to connect to it at :8any time, or IN#0 to disconnect it. The program itself 64relocates the necessary data and protects itself by :8lowering HIMEM. Therefore it is ale selection of keys should be obvious, as for the :8most part they correspond to the function keys atop the keyboard.75 This program reroutes the input vector from slot 97#1. Since most people have their printer card in this 86slot, it shou(Just for safety learn how this works on an unimportant file first, huh?)See also GO, BACKUP, and NEW.3.16 SHORT86 This command redefines the output of a few of the 97control keys, the TAB key and the DEL key. On a Laser 64the, because RECALL will rebuild the last 75Applesoft program in memory, which just might be the :8BASIC part of the NEW command itself. But if you're in 64a bind, or you didn't happen to use my modified NEW #command, you're probably in luck.:8the back-out 97now option of NEW, and went ahead and wiped your basic 97program out anyway. RECALL will rebuild the Applesoft 9pointers, allowing you to bring that program back from 1/the dead. Using the GO and BACKUP commands is 31preferabl By default, this command will type a text file to 75the screen or printer. The user is prompted for the 64filename to print. Typing from other file types is also supported.3.20 VLIST97 This command notes the current online volumes and 64displays them to the screen. The command itself is 86quite simple, but this command is not included merely 53for demonstration purposes. The current prefix is 64maintained, so you needn't worry about accidentally 86saving something wishes to execute an ORIGINAL BASIC command 64that has been replaced by a new command of the same (name, prefix the command with a colon: eg., :PRINT53 Tokenized statements that are part of a BASIC 3program are NOT replaced by their nersion, script files are normal exec files, of 75type txt. Wildcard and parameter replacement is not 97supported, but the original buffer is preserved by the 97SHELL program, where the individual routines may parse the parameters.:8 If oneer DAEMON would be useful from the 9C environment, and I am currently attempting this port.4.4 SCRIPTING FILES97 Many routines are actually exec script files that 8execute BASIC or 6502 assembly language programs. As :8of this vying the user if they already typed it? But %as I said, that's the next version.4.3 HYPER C PRODOS:8 It wouldn't make much sense to port SHELL to Hyper 97C, as disk based commands are already supported by the :8default shell. HowevTYPE filename", the TYPE command itself will 86begin by checking SHELL's buffer to see if a filename was already given.86 A command like CPREFIX could be altered to check 86to see if a prefix was supplied with the command, why :8bother querLANGUAGE:8 As mentioned earlier SHELL loads in at an ABSOLUTE :8address to allow easier access to its buffers. This is 75not a serious drawback as it provides for subsequent 75versions to install smart commands. That is, if one 64types ". The timer is accurate to 1/60 7second (under 17 milliseconds), which should be fine :8for timing things under BASIC. It is just inconvenient 75with the current program. As I said, perhaps in the next release of SHELL.4.2 ASSEMBLY for calendar 64programs you may write, maintaining a record of how 31long a modem connection has been established, or 86whatever. If there is a next version of SHELL I will 53set up a pointer to a buffer that will contain the 42clock informationvice, stick to 97the non-exec commands from inside your programs, or if 86you really neeed that function, look at its exec file to see how it was done.75 The TIMER routine will prove useful from inside 31BASIC programs for timing sorts, or ome of these may be corrected by rewriting 31them in assembler, but the tools available to an 86assembly language programmer are also more limited in 97some ways. There are many Prodos commands that cannot 86be executed from assembly level. My aded external command from 53BASIC, just call it as if it were any other Prodos external command: PRINT CHR$(4)"C80"86 However one may find that commands set up as EXEC 20files don't respond well to activation within a 75program, sram can 97normally be run using the dash command. That is, some :8system programs would overlay on BASIC, so they are not allowed to load via the dash." CHAPTER 4 - PROGRAMMER'S NOTES4.1 BASIC53 To execute a SHELL-basy. Its another one of the many program :8selectors available. This one however is accessible at 75the stroke of the letters VSET. It uses a smart run 42command (-) so it can run BASIC, Binary, Exec, or 3System files, assuming of course the progon the wrong volume. However, if no 75prefix had been set before calling this command, the 86prefix after will be set to the prefix of the current drive.3.21 VSET86 This command is actually a BASIC program I wrote 64independentlamesakes. eg., 10 PRINTCHAPTER 5 - CONCLUSIONS42 SHELL is very extensible, one could even say :8ultimately extensible, and it works with most (well ALL :8the ones I've tried) Prodos external commands, and will :8probably work with any future command, so long as it is "relocatable, or self-relocating.86 Feel free to create your own commands for SHELL, 75that's why I made it. If you come up with something 97really good, let me know, maybe I'll include it in thto feel guilty, send the". "check to:":G 5)"Michael Pender"f 5)"1480 Mapleton Avenue" 5)"Suffield, CT, 06078" ided courtesy of the Author,": F13)"Michael Pender."j P11:"This program is Shareware, cost $30," Z"Thirty bucks is far less than you would" d"expect to pay for a program that does" n"half the stuff this one does" x:"When you start #SHELL PROGRAM COPYRIGHT 1989:BY MICHAEL PENDERB:X(4)"PREFIX":A$v (4)"PREFIX"A$"COMMANDS"(4);"-"A$"SHELL"(4)"PREFIX"A$(::9)"M'SHELL -- COPYRIGHT 1991"2:7)"Michael's Shell, Version 1.0" <:5)"Prove 75next version (it will of course be listed under your name).