LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)SOS DRVR"CUSTOM.3 )((8*,;((*,((+)((9/(p((>3  =9 :9 .(~|L|LNqooGoDDDcc0ccpc]]c"QM"|@@pAATT**| Gݸ%w *MENU.MAKER F |-*SOS.INTERP N4keݸ%! +NVASCI.TEXT<ݸ*+NVASCI.DOCS'ݸ+ݸ5-READ.ME.FIRST"ݸ8O:*SOS.KERNEL %,Vþ6!aIII.BLM.1641u' *SOS.DRIVER 4.Z*HELLO.TEXT<ݸ$O:HELLO >ݸ$/ %SEG.T @Qݸ$+DISKNAME.DATCݸ%ݸ1FLASHNAME.DATD >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LGA7  3  5  >>< (&20 *, **>> "2*&" " >>  ">> "8""> """"""<   !ґȥӑ,10 h0  `,g0L  ҅ӥĥŰ+,0p 4 Ls  Ls i )"|tȌs|st HH` MjH,: <J h̰ <rh,oL`%CYgu9 Ln90$0%,7 ҥ L$0T,8OK50P;ҥ,8 L%\   8҅¥Ӆé҅L,5,6  & @jIH,5 p  He҅Ґhe…å逅h,23Lhʩd8,h)ec efeede`,5 H  h 4  `5!    4(P 4 4  `,g0L,10kH0 ԥ f0)ĭ9)9҅xh(ĥŐL i,1HȊ©L,52,9-P" a{) b) )ab)a a,h0& &+%a0 +hcefd(c,@cfabdf`cnx  (,4h`dd,9P"<:J H) +̰ H) +ʭcP h̰BTVSPLH   5"ʘ HH` (# (=  0`)aI88  >!SHOLES 1!1!2@23#3#4$4$5%5%6^67&7&8*8*9(9(0)0)-_-=+=+\|QWERTYUI OP[{]}`~`~ASDFGHJ K L ;:;:'"'"ZXCVBNM ,<,<.>.>/?/?d0hp00000>0# #0~$ <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""""**6"""""< >>>>> ""*:<"">""""""""""""">>><2"<""">""" ""  ">"6**"""""&*2""""""""""""*,"" "" ">""""""""""""""**6"""""""> >>>xr #1:CY` 9C<m><=m@=>@?AL8 >m<>@m=@<=L8 <m>?=m@AL8 C9L8 ; ;k`;);k`,@`<,m p<L<`<p<`,ms<L=q=L: ,lXL ==L: ,lCL <=L: <,n)LL8 L8 u:L8 ;)ߍ;j`; ;j`uBL8 uCL8 u)u;) u;L8    x) `(,  LuL-upp<`uqq=L: vuL L Lwww """"""""33333333DDDDDDDDUUUUUUUUffffffffwwwwwwww(C) 1980 Apple Computer (+@EIR[ty} NQ9Copyright (C) 1983 Apple Computer, Inc. Graphics Driver..GRAFIX b """"""""33333333DDDDDDDDUUUUUUUUffffffffwwwww     ! ( 0 7 I N S _  . G R Y f {    ! $ 4 9 F I P S V \ a h m p s x |     ' + < ? D G N U f k p x ?BEJMRUX]`h  2;AGMS[fot|              . 3 6 9 < ? B E H N S V \ _ b w  KORY\aelpu !$(+.147<?BFILORUX]`finsw| !%*/369<+;CNU\eh "*-036<BLORX_fj &+38;?DGLTot <?BGLQgjox',/25:BG̑ʈ0 Ցʭr̈A萠L: ֦ڱΑ0Б֤ h L  p,:0 JfiΥiώJe΅Хiю@ B $p̑бʑΈ0 Б̱ΑʈeمΐeمАA萿 :  `ʝ"`t  !#%')L: 8p,:Jf׮@$PA B $P@/A'ʤ˅΄ϥ̤ͅЄ B $̑бʑΈ0Ƞ h L: $)טɀIim>ٮ@8pذ `$0"8,:Jک@ׅפ؈۩MjL,:08*Ȅ B ,:J}΅н(I I $0;P̑бʑΈ,:JՐrx 0, )ߍ:) J)*PR,T,V( : `,k<,: JI`I`<,:J̰`=m@>,:J}ʅ̽(I I `<Mj,:0pJՐ̑ʈ`pJհ0`ՑʭrpȐ`=m@< B h A$g " x) (,`% (gL,}0, `gé ĩ `:) j:;jN;~j;O,:0'???>>8?>p<<AAA@@8A@q==C)CB)B C}0 x) `(`hh% ( ΍ ύ逅Ñ}`` " ( ĩ~Íĩϭ & &υΠÑΈ~ F ~ҰةeÅÐн},,P,`,g$ ( efh) `xÙ+(`xÙ&(`)4`)5`)6`)7`)8`)9`,i0!M:0p ȱq L `" (~)y ~JJ* I `x|x|,,}P-X~ F }~L } `,,i0L È`,g HH`LL! l      5  Hdcefh&+si  M0   h) `(" (  (È& 8  `)2ȱÍ3`)1`Ɂ" (cefd`Hc <Le Le ,g0L HH`! ( 9EKQWbmz`(" ((è%È`2ȭ3`1`d`c`+È`&È` & IMk`4`5`6`7`8`9`<ȭ=` & @jI`:ȭpȭqé/((((PPPP @``` @@@@`xp<@ @ :H9H` (# ( -l..PcJt`,t$ ( t`tL4`,t0L4 HH`! (`ɖ" (èÈ``,t0L4 HH`L  d!  `ɖ" ( dÈ  ``,t0L4 d0Cս30. , V  @„ȄL5p Q%Q̑`pPIE1pΦ#$01ʐ1`JJJJ)`%υߥ`1(ȦJJJ`&&*`JJ` **&*&ߥ`J` ***`` ` Jjjߊ` ߊ`JfJfFߪ߆` `JfJfJfF`ߩ`$011̰JJJ LP \LD$7߭$PH8 nߩ nh ߍϭ - k, ϥ- kϱϮEϑʩ`P z  HH` k(h`$0#$E$0p Q%Qʑ`pPIE1p$E$0(L%τ`ϩE҅0Ȅ(fL% ('Άѽн`8Hٰ hIiHمh8Iif٤Φݰ>Jj8ۅe݅eޅ $  m`!J8݅ eۅ$  m` , V $צ!ϤҐ мφi`Jf`<,&ʰ,i8i#Hiihifʦʆi) v`i,ʐi,iPIIʥ)ifʦʆ̐pLj/Fϐ&Ȅ`'@τ`Fϐ@ E҅F8ئȢΆѽϽ`/epɀjff&ݥeepɀjffݠ %)  %)`%  0.)      0  ` ` @ ``8٨JJJ ) u˘ vͽʅ̆`8Hi #i,$0F y բӅLx  mӥmԐL] h `  )`%)8`)    H   ʥ)Ģ    H Ģ L E% %) L 8`ۅ&ۥe륅eٍeڍ808٥8٥ 8مڅ H , V Εm٭mڭ))njnjnjfjfjfj+mӥmԐ8L( Ӣ й` m j`Hآ Hӭԭ h h`8٭028ٍڍ0Z$eٍeڍm٥m8٥08ٍڍ`8٥058ٍڍ0ԭ V 8fxL@ ] I)!) g 80 J8}L y L 0yʽz0 y L7  Lh `*f*&*)` ϭPh0 йPL)`)L` L``  `L` H , 8 V ТΕLϦI ] +)J* g I`LL) @L) L8``Lթ`~L8L)  =H 'HH N M))Mhh0 }LO}~~Șݻ~`}}~L< L }ީ~` ɠɀ)ӮԮmwӥmxԐ mi` HHGH`  &xix 0ޤՐڢ,P<0 )ߍL- J,P,QJ,R,SJ,T,U,W`,t0L40 ( dȅɥŐ ĐL `ʝ`))ժuvЭ H ʊJyjhz|ֆ׆ح)JfJf$PIJfש ʈ8 @ש wx LVخ ʊJJJ莟mwwJ) ܭL FܪJJJJ)`'+9;=?ACEGINR\aejns~  #&).369<ADGJMP^g $*-06=HLORWcfloruz/47=G\x{~'+.149?CGIKMOQSUWY[]_acegikmoqsuwy{}%#%"$w"$#%"`荚ٍ荺 荚`荺``` D ( )  * ) 4* * h* ))` L% q ȥ q Hi hi  i" i# #% $ȱ %ȱ &ȱ '`<!((g %(r(z(q( %y(i(0z %"#$ %&' $"#$%&'   `%$%ɠ%* " ~#C #p $ %*0"#)#)i $"% * %*  L! {" j% %ƌ(X#"$% "$ #%%& '   ` {" & ɠ% %)  !( (" %(r(z(q( %y(a(0: %   "$%&e$'e% R % <$&'()*+,-./0123456789:%e,ȥ,*,- y,,,-,,,ȱ,,- yL+,ȑ,` 2"p-,-L(Ġ %>,i-i8, ȱ,%,W,pp ڠ %p`l  " ) i SOS KRNLb.D1/SOS.INTERPŠ̠Š.D1/SOS.DRIVERР頞 0 ) (lH'&3&'&#e'#%e'%'&"$"$#%'#%h`$eost useful if you have a large file to process, or many data names to edit out or many files to process. Side One: NVASCI.DOCS: Tutorial on how to use NVASCI NVASCI.TXT : Source code to the program Side Two : NVASCI program. e PFS cannot generally produce a "one line per field" ASCII file (It ignores blank entries), but it can produce a "one line per field" NAME:VALUE file. NVASCI automatically converts that NAME:VALUE file to the proper ASCII format for importing. NVASCI is m#    ) . 6 = J P S X [    $ 3 : = F d  > B H M s `e|&+.QVYcjuy~':{%(-47=FMUX\_jmz  .169DWfy   % * > A H K Z v z }      % , 1 5 : = B K R Z _ b g n s x ~   q ȥ q Hi hi 1  % H H ȱ h h % $$ 0 e e H i hi âz %` 1 8`    # &ȱ ' # i" i# # #`8 ȥ H h `8 6$P`8"#(1 6$P8"ȥ#L1$8"ȥ#(ϸ`"##L]$"qȥ#q0,$p)@"q"ȩq"8`*$% $% 8% $L$* $8%8 $`8 &'$% 8&$'% 8$%%`H` ռ``ߤeI`IiţO`Ȯʆ/ )󘑡`()0zq 滅ѺY Ueۅ5Ѻ Ѻ  Qܐ'`i ҩ *C8/y.i/ ȑ  © $ E7<3W`ȽLֽȄ @8`R ) [)_[AͰ")[)_[A:0/.ЩȑΘ8e * ȩ`Loü 7)?۽۩ W٠Յ<ōōř ռV7 uM78 V榠=ü#)@5 ɐ /ݐE ) .) @L `lqhٯ޿=ϓTXIֲ̛̐~ؠIJK,-NOPQ0vt `` LLɠ8`ΛLL渠`0 `8`HiHiH ihhȱh`86)IH)heuQɸ` ` W` ] %饚0` W` ߰4`)|E8LLLRLLLLL*LLLLLhh`LLL`SOS 1.3 01-NOV-82(C) 1980, 1982 BY APPLE COMPUTER INC. ) `G`î** }*`o^`on 8 JJAj@` *?($`ΠņɠŠ堠РѠ͠஠әƆH v?c,,,,h߈ߢ~))`3PLLP*%(i&`Ѕ񩏍E H pph`XǠĠӠ!((ͽϠРРSOS NTRPSOS DRVR(.D1(YYYYMMDDWHHMMSSMMM̱忠ΠͽŠ堠Р͠Ю̠Ɔx߭J ʈc(()o/ e/''ʈ((''()(1i / e/''ʈ((''((''((''' ('`ŠDAY, DD-MON-YY HH:MMSUNMONTUEWEDTHUFRISATJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECԠŠР@L&I/O ERRORINTERPRETER FILE NOT FOUNDINVALID INTERPRETER FILEINCOMPATIBLE INTERPRETERDRIVER FILE NOT FOUNDINVALID DRIVER FILEDRIVER FILE TOO LARGEROM ERROR: PLEASE NOTIFY YOUR DEALERTOO MANY DEVICESTOO MANY BLOCK DEVICESEMPTY DRIVER FILE '(i%%%h}%%`8 ȥ!8 !)"qȥ#q#e$ȱe%L)%`@(((( % %`((((࠰$(ɠH(@(h((((@(`%z %% %~(A{(L%`.8(.Je.&ʈ.s`X8``éۅĩ >` T֩xxMH]@ Kۅ5H ɐE$ eİ Ȱ h`h`8`W h8`hR`hLҿ i x +ۅ5ۅ6 ǰ `E8<W`­ `0XLۅ5 ɩE` eĐL Ȑ 15WL QL5WW{5 ې'`,55 ې'` ݠ B1 ȩȑ Lɦ8`5  @ R㥶i ` İG8`FХ+jѲ84ƳJJ 2ΐ3泑ƳLTΩ潑ƽ`ƱƳ ΰ( {Π۵*+)e`8`)` J J + ΰ" 0 ΰ 🱼ѼL8`ǩ Ϡ` ϰ ƑȥǑ` Ѻе*`)ȥ+8ۍې  ,ѺLTΠ"LΠ5 խ ɐ /ݐE`C8`)@ ϰa)ۥ,8ېu+J,\ ȱLJΠ) ϰ'#,J(] { ΰ ƑȥǑ.8` { ΰ,JѲ ƳL΅ƱƳ ΰҥ,J0`#$"0#`!qȱi 5H5Ƶ ǽ jh5`L2̩ƍv̥Ǎw̩ÎL%ϠƄǥLj̩۬L~̠HHh` ̐`*ѺG0?M`)J"u-- M8`۬` # ː`  = O̰)= I`JJJJѶQi Lˢ  0 ̐ `"L˦ `H8`8$$"$= O̰=`$0`#$"0`$` H hQ)fʅ F jF jF jF &!  eװ*  ̰F湥 ƹ`Z8`@  ʰ泭ۑƳ ʐ` ʐ` ˰ ƹ Wː`ۘ . . .۪8*JۦȱѶ"` ɰ Ȑ`E`Ɔ X̐8`>>5Ѷ Qܩ<`>`\ʊJJJJ ۍ۩  ˰Fȱ X̰6 0 Lɠ 0ۑۑ8ȱ`H8` ɹ $  8JJJJ8 ` ۠ǽi `< Ȱ+<#5 ې'` ɐ /ݐE`W8`R` 5&i ` Ȱ 0i `<8> ȐT eİF cȰB)Hh5 ˭)*ȑƑȥǑ'(ȑ`L)ɭ)Ѷ*e`M) `ۅH)Ѱ%}ʈh Qܐ'``hi ` p6۽ʹZ5 HȐ/i i `гW8`0( ɐ Ȱ ʮ6E`5 խ ɐ ޢ ȰLȍ۱Ǎ X̰% & !J8` *LĢ `8 iۥƍۥǍ`ۅ %  6 )Ѱ Ѱ` 𝭧e ǐ bǰL*ۈ5ȱ۠ƍȱǍ X̐ H h1  /ݐE`ۈۅ ۅ 8ƭ X̐`LLŠǠ  ݭv̅w̅ ðzv̍ŭw̍ŭƭ ­ōō T̰]ŅƮņ X̠8iȱiiȱi ṰŅǭŅ XLōۭ۩ۅ ȱ8D`F`8eYƍťǍŠ)͠ Wٍۭۅ5ۅƭۅ X̰ ìۈۑ T̰ۅƭۅ X̰ۙ%ۍ" T`K8`)` İ ۱ۈ` ưW/ۈęۈЍ۩@` 8 MƐ  5 Q8`LŅ ۅ ۩ۍۅ Lɰ ʰۅۄÍÍۙ'Ù ۍ*ۨ  Ѝ۹ۙ8v- ðJ ¥ ð, ðLO ʰƥLT`'  mې浰``8 8 nʰ0 ̰+泱Ƴ m° x̰ ̐8` m° x̰8 ۢ8 ˰y ` ¥ nʰ泱Ƴ T̰#泪 Ѳ *Ƴ ` L:Ϡ`泑Ƴ` LaĥH8`JȘ I8`  S`ۈۥۥ۩Íۭۍۭۍ հL¢H8`Jj Ȅ ۍۆeۅiۅ Lɰ ʰWۅۄ ¦J>  *ǵ յý5Ņ4gȩυɩč5 iψ }.8` iϙLIѠ ˢ L΢ ΰ LϠ ˢ ΰ1` Đ@ АP8`B8`ۑJJJJ -ѥ N8`) ))УJ8` ۑȭۑǠۑۑȭۑ($S8`O8` "` / 򑺠+* ͐H h8` ΰi `() MENU.MAKER TEXT MODULE890&*X=11000: TEXT SLOW-DOWN LOOP ,X.1,180,22:2,280,21:2,2380,23:z:A$="LISTING "+B$(I),16,B)$=01:=0::"80C";A$;::12)>=23:=0::"79C";"PRESS ANY KEY TO HAHER SUBROUTINEnSLOW=110xFLASH/2=FLASH/2):۴ =11:=07 FLASH$ SLOW FLASH:".d1/Menu.Maker"5 WAP /// SIG HELLO PROGRAM. UPDATED 4/12/89 DGO :#1,".D1/hello.text" ž#170 (#1;ERIN$ 2ERIN$<40F#1/P=23:=25:"PRESS ANY KEY TO CONTINUE.":G$U-Z#2,".D1/FLASHNAME.DAT":#2;FLASH$:#2%dFLASH=110: FLASrally produce a "one line per field" ASCII file (It ignores blank entries), but it can produce a "one line per field" NAME:VALUE file. NVASCI automatically converts that NAME:VALUE file to the proper ASCII format for importing. Another grea NAME:VALUE format text file into an ASCII text file with one line per record field. Many data base and spread sheet programs can "import" an ASCII file -- but only if the file contains one line per record field. A program like PFS cannot gene;=0 WELCOME! WAP /// SIG Public Domain Library Disk Category/Number :Bloom Disks/3BLM-16 Disk Format: Self-booting (Both Sides) NVASCI converts /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// SIG, Washington Apple Pi 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-030L  ΐ` Wհ> H۪ȱHۑhƳh sϰq ` ʰiȱi `)5©éՅĩ5 }JJ+`.`8`ɂ )`@ ש ְO ֤FHۑۑh8`P) հ Wհҥ,J+j泭۪ƳۑȊ ) ~ fPL ͊.>.ʱ+,EP!.E.Lw+,,ӄ*- P*e (` հB հ5 Wհ0,J۪泭ۑƳ sϰ(` L Ͱ2 ~ P kҐ#L8 T 2ΠHHȑhhȑ`Ld )N8` xհ*eȱ+eȱ,i۠Ѻ۹ۑ񥤅- ť.Lcԥ.La Ͱ$)rJ Lɰ )# Ԑ) ͰU..++,,IJ/ ӥ-.?Цե,J+jѲ4Ƴǥ4聠 H hH kh8`8-ȥ.L 8*Ʊ )8 0*-`.G.ʱ*+,EP'.E.LұE0+,,ӄ*p-e  )LBѠٳ )8`i (` )N8`*eȱ+eȱ,i۠Ѻ*ȱ+L - ť.Lkҥ. ՅL ͐Ld ~ pа.J/)@߅4LT LISTING"::202 1020#2,B$(I),16,B)ž#242:::1160Z=1#2;A$:"78A";A$Z=Z+1:Z>1842:::Z=1980*:=23:=0::"79C";"CONTINUE...?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1030C$="N"C$="n"11?AB(J)=A$(I),1,31)!J/2<>J/2)=4:=+1:ۙ=44B$(J);:J=J+1I:1,180,22:2,280,21:2,2380,23:8A$(1000),B$(1000),C%(511),C$(20),name$(20):=10:=0UCA=128:LCA=UCA+32CT=15 IF PREFIX$= PREFIX$+MID$(B$(I),EGHIJKLVOLUME NAME (/DISKNAME) OR DEVICE NAME (.Dx)"P12);::"80C";a$;:Zb$="CHANGING DISKS"$d=23:=0::"80C";b$;::12).n=12:=20:"MAKE A NEW MENU FOR DISK: ";N$xN$)<2110=N$ :210 I=1L(A$(I),A$))200B$0 WAP /// SIG MENU.MAKER PROGRAM (v. 6.2) =".D1"210: Coldstart (320: Warmstart &*X=11000: TEXT SLOW-DOWN LOOP ,X.1 CHANGE DISK SUBROUTINE23œ202:2200<RFa$=" YOU MAY SELECT YOUR DISK BY THE WAP OFFICE LIBRARY HAS A NUMBER OF APPLE /// BOOKS AND MAGAZINES. NVASCI BY BLOOM 4=10:"78C";"ANY KEY RETURNS TO THE MENU."!>G$:::".D1/MENU.MAKER",320;""; 2D=1:F=1 <#4;a$ FD=D+1 P#5;a$ZD=60#5;12)dD=60D=1nF=F+1::d$;::Y=1100:Y x13402  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T READ PASCAL TEXT FILES."0 d$="" A$="PRINTING "+B$(I),16,B)=01:=0::"80C";A$;:#3,B$(I),16,B)Z=1#3;b$:"78A";b$Z=Z+1:Z=18:1290 1260 #4,B$(I),16,B)#5,".PRINTER"+ž#4#5;12):::".D1/MENU.MAKER",220(204::"79A"60;:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": $1020.202 8::Z=1B::=23:=0::"79C";"WOULD YOU LIKE A PRINTED COPY?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1170*C$="N"C$="n"".D1/MENU.MAKER",22016,B) THEN 240 #1, d$="":=10:"80C";d$ ž#1300I=0"I=I+1:#1;A$(I):290,#1 6L=I-1@j=1:same=0 J:SEG=0 Tœ2030^CT<1CT=1cCT>13000Zha$="{,|,~,}; selects; to new disk; >&dsjs|T}|s[MOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŭ᭭򭭪𭭠򠭠頭퀠Šӳ頠𠠀𠠠堠젭ӠΠSOS NTRPRHeLZĠР쁭堠堠ՠP򠭠έ魭 1600 &:WW=1:0 :SEG=1;".D1/SEG.F" SEG=1".D1/SEG.G"diskname$=3802  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T READ PASCAL TEXT FILES."04=10:"7M$="NOVEMBER":1750M$="DECEMBER":1750826);"-";M$;" ";Ѡ,2));", ";"19";Р,2);" ";/П,2))=>13П,2))-12;џ,6);:1780$П,2))=0"12";џ,6);:ٟ;$П,2))=>12" PM-":" AM-" 1830WW=1530 =26:=211660,1670,1680,1690,1700,1710,1720,1730,1740^M$="JANUARY":1750hM$="FEBRUARY":1750rM$="MARCH":1750|M$="APRIL":1750M$="MAY":1750M$="JUNE":1750M$="JULY":1750M$="AUGUST":1750M$="SEPTEMBER":1750M$="OCTOBER":1750T 0")2070H540R\A$="RUNNING "+B$(I),16,B)f"79C";A$;:=0pB$(I),16,B) z::SEG=1".D1/SEG.T"t=+B$(I),16,B) yCT=CT+1~240:=24:=0:"@ ..... "DATE.TIME.LINE" ....JM=Ҡ,4,2))BTM1630,1640,1650,0=+IBOTM/2-.5):I=IBOTM:I/2=I/2)I=I-1 œ2120B=B$(I),16)," ")-1 B$(I),"BASIC 0")850B$(I),"TEXT 0")890 B$(I),"CAT 0")1140*B$(I),"FONT 0")18504B$(I),"FOTO 0")1930>B$(I),"PASTXB$(I);v:520: 500THPOS=4:I/2=I/2)I=I-1I=IBOTM THPOS=44:I/2<>I/2)I=I+1I2=-1:I=I-2:IBOTM<30THPOS=44I=IBOTM/2)*2:=+IBOTM/2)-1:CA)"PRINT.ALL": OA+P 3HA=(81+UCA)A=(81+LCA):::: OA+Q Quits 3IA=(83+LCA)A=(83+UCA)"PRINT.SHOW": OA+S 2JA=(68+LCA)A=(68+UCA)/Screen.Savers/HELLON=THPOS:B$(I);XA<8A>11540bA-7640,660,690,720l:=THPOS:ٺ1600 =Q:WW=0A=:A=21A=9&oldprefix$=40A=31410: Control C "aborts" program to Basic(:A=13770: Return Selects a file *DA=27:50: Escape to change disks/FA=324000: back out one directory level 3GA=(80+UCA)A=(80+L"BASIC 0":150A$="TEXT 0":150A$="CAT 0":150A$="FONT 0":150A$="FOTO 0":150A$(L),"BLOCKS")510*=27:=19:"FREE MEMORY AVAILABLE: ";=7:=20:"80C";A$(L);$:=5:THPOS=4:I=1:IBOTM=J-1:620Q=:=26:=21:ssssssssss\3!z~IssssssssssssIG%ӓ,ssևwn7}|tttUUZ{fzxxˆU膅[L<^ENFONEXINPUOUTPUDIREAWRITOPECLOSATEXABYAAAAAWINDOINVOKPERFORAAFRHPOVPOERRLIERKBEOTIMEDATEPREFIXEXFNEXFN%OUTREINDENAAAAAAAPOHOMA SUB$OFTRACNOTRACNORMAINVERSSCALERESUMALEGOTIRESTORSWAGOSURETURRESTOOALOASAVDELETRURENAMLOCUNLOCCREATEXECHAIAAACATALOAADATIMAGCADEAPRIL<^gHhHhH , - b j$% @ag5h6h6hhhhh8g5h6h 悅`6 "]La ud `L  d.CONSOLE[[ TdSdddddd0 ddddd`dd A 6 s e 9c()' 9cKHLI jLdj89弅:彬: 悅`H hɝɞɜ)`dd  6芅 e ()'` e'()HKIL 9cL>hL<^) i!Ls j @aLK$L% :: 悅 lc!)` +b` +b` sL :b#`L,H s h ऊL(,L8f` A KL jLdjOPPKLL h AKL` Ѽ   (`H shLs Aji!S)Lt`SSS`L` z :0.`9::hhgg.%g& $gegަhH逪hhʰ` ҥ [ aLT ҥIJJABB=>>;<<?@@T ě hhhHH  `89$ 0~!L`!sm?iٰcL`S )!a{)Qi ڐ߽S) -ai) -aɢ ɣɍж$HS -ahʥ0SSȩ5%"/װ&hԐɈf0ɔĐ 8,f 8f L_ʅSS=ȄL`ȱi8eiidHddhd) _ ƢLh _L>h jhP _S @a-Qggeg5hih 6i6 "]S" ]$%SSSg a aL^ S S`La8 SiUjjS):,$f 0$ p fHhH_HcH uhch_hhhfhi0hhhB B A` ֥'( )&񦕤LNKM$Lb ě $m wl "m6X6+5 56ɀ56H $mhɀ(Z)& mL k~ wlL ͝dL Nsd# wl^_ ꂅ__hg^`8 悕`gHhHhH5?6@6@*5g5666gҦhhhhhhhhg:e:;e; ;m;`@c@c?be^@e@ _m__^ \Lx] i6g55``BY BSAMHH H] LPL(\)&P ěj9ȑ9ȑ99i=:i: >i>`Ɂ7XWWXjnXWi` ]?@@bgchch )^ ]b ]b^b^L\b8g+H__^8_ABB 9::)ѭ [ I[ aυ婶ZeLLL^$%Lae LGidFddddddd.ddddddddd ɕdˏd`Ls  Apple Business BASIC v1.23 - Copyright Apple Computer, 1980-83 CTERESOURCE UNAVAILABLDIRECTORY FULDUPLICATE VOLUM ERROR Please Press SPACE BAR IN PROGRAM INTERRUPTED%&'(%+.@C$DE FG!H"I'MN#PQRTW(X潭`: 808`:dd@՚H Z#IJJCSTRING TOO LONFORMULA TOO COMPLECAN'T CONTINUUNDEF'D FUNCTIOVARIABLSOS CALFILES BUSNOT SOI/FILE TOO LARGWRITE PROTECDISK SWITCHEBAD PATFILE NOT FOUNPATH NOT FOUNVOLUME NOT FOUNDUPLICATE FILDISK FULFILE LOCKEFILE NOT OPEDEVICE DISCONNECONV&CONV$CONV%LEFT$RIGHT$MID$INSTR>=<^/*-+NEXT WITHOUT FOSYNTARETURN WITHOUT GOSUOUT OF DATILLEGAL QUANTITOVERFLOOUT OF MEMORUNDEF'D STATEMENBAD SUBSCRIPRANGINVOKSTACK OVERFLOREDIM'D ARRADIVISION BY ZERILLEGAL DIRECTYPE MISMATNDEELSCONLISCLEAGENETABTSPCUSINTHEAMOSTEANOEXTENSIODIAFNOAAAAAAAAAAAAAASGNINTABSATYPRECAAAAAAAAAAPDLBUTTONSQRRNDLOGEXPCOSSINTANATNAAAAAAAAAAAASTR$HEX$CHR$LENVALASCTENAACONV,@dd )e dʙdH &eh(dL ddک,ddLd:e``eLeHELLO ue 5eLse6e:7ee8ee:e`EAd j @a(% -, bLs j {ghhh$PLh wlȱȱ%$LWH mh x~  m#W", mȱ28eLeji`Lwl mȱ"Ɂɂ ȱ :, iTjj ȱiVjj8逪XW0 Vf0WHW$ 0X: h `LćHƽ Ƽh`$ lȱlLL{ɝɍLɎСL s HI s shmHmHlHHɦ# shmHmHlHH , hHLt  ,, shTTLui ui,L3$0 |Lu xijk6kxyy xxy6i L[ s r$PLsi,L3-hLs L*tɘcɭ_ TTLdd`jk8L|L3L3TL3,L3i LL r$PLLBLsș Ȅ ( qƚƚ` s s),;,=,#,(,,ѼLL<^L<^ llmm$P$?TUJ)TU  ' Lsi imLqLsh E0`H ty ))ELyq  8 $0!PizEn{dUeUi hLqLs `wLr !L2 {}$ 0`QɀX zLs.+"2mXm tL qXXW zzEn{i x }H$ ]kh8 )KLe9e:: }Lgi , p s$8$0p`PL<^Յ H s r ɀ ȱX Hih0 & ?<I?iE W Lq s )L<^ȱQȱȅR dj sLHoUVV$ LhU Lp$ LL<^opL^```?EXTRA IGNORED?REENTER $0pL,`LgXW ׫ k*iXX 4X \\L<^Xii7 { n k$ |WlXVVE$ P% eT{||Hd ̐h p IkLo00$0 L>o "m nV dj$D$ P 膼Lo$0",i [ kLoHSHhp< {}$ p0H 07h ]k ,LmUVV `p F sLn 2 ukLoF вLm jȪЖ LL<^~p l nhhLgOPP` Add# 6d s S SS@Ln A " r ,; s lLn#f  ;П ⭩,SLn "mʆ,S _S% nLh "mL_T ST#L(, U VV ׫$ 0  QpU= d hkddhe##5ddˏdd?Ll ,?#$04dHHd = d hkddˡddhhd`LsL#&F  ; s b 0` L+l$ Nsd#Lzm566ȱ5Ll H# wl m#͉LchL$m QRKLLsh$0LU$^`=8WW>X> 悅XXXL:^ g`L<^ l Jj bx bp,_;Ll  ~q$0P oՅ5R66R l ~ L%l $m0 =k $m#`$L#i)8#Ll  s s( L7bʊ# L-l m hxd5d$0H h`L^bLb$%/%5$ &5 &5e$$5e%%$&%$e$% Lk ׫ sHH ~qLPkHHh$0'ph | ZlWȥmW`L$|hXWXL-hm lmmLkl VYZZ{|| w ᐥlmmYZZ LxWXX ox ExYW# kXX 4=^W^0A, 9:: Ga.ghh 悅` A` \\ɾ,L<^hhZkKhLhhhe9e:: mLg jei `Ls j:,"hhhhLgɜEɝDɞLb Hɾɺдmhɾ Qp aj pi `p j` jLi j,d wlOZL^L^-L(dPL<^OPMNKLhhLg` Ls ҥ?ieCiLa,  aFL s a iLg ]hhh5h689H: H:HLHKHH6H5HHH` ui` pi` Qp j pi `p i` j jK$L%8eȢЅ iLOPP$pX0S&ȱhȱKȱLe潥ɂ逅$L# $mKL x~ m khLgLsLc h5逢)&a TH THLgL6k8:9: STT`)ɀLK$Lb8gLOPPKLMNhhm Vf0 mLf) mWA 0 -a mL8fW;8<< 悕` 6kLU*i kXX 4XLy \\'_ch_chbi^g \ihh ] Qp aj ih `p b iq bqn %jjg56Ly { b bq | XHWHHHֺyH8iinn0 xj*% $\hxy56y6( Cx( >x\L|F )XHABB8 __^hHI8e^ @1 @+?%GHHHIJJih BABGHh`$  ě u Дs IJJ^__Lveȱeȱe XE )s LvɁ >H>H= Vt~w/z*|cYX ~uƀ1rP aziP | |iɈ { T}i8Huiiu x BU 瀩{h z` |] az 뀩]Laz | i8fe.șR0șRmymlylkykjyj00ڊIi i/ȄȪ)Re.șRI)ЪR0.ȩ+f.8f-RER/8 i:RRRRRR`y`'d |Ģ { &{f o0`LB ` H$ge &{h 80 '~L}H |h |zEn{iLxf d$h0Ly ef q80fL}COt#t$JZ mLKjk8 | ~Lm ^|-$nșRnȩ0iL f~ azea~ } \~ } &{e B{e yx %}ei0nihoi8傐IL|`7 z!L|iD8$n yiLyn)FjjjLyiɠ %}nnI*imLyjklm` s e-o+ smo..IE)2s S -+fh r$h8fL}fg s$gPf8ef B{f65m5l5k5n j5i`d,]WXX566 |m5 ^|l5k5n %j5i5` |m l)m |m`znth` |ht`i  y my`i n*` |jkjI*mlinLyFn`nEz0ʢiH xv5ui`uei0,iiL0y{n`nI0hhL,yLy |i{ xi` |={{ {LZ{ zL{ |8ii zivjwk xlym* 蕁24(y&x&w&v0⨥ymyxlxwkwvjvL{@jjj)(L{L<^~jklmL y56y^Vy dv88; 54541r |LiHi z xz U{y xy рz xh '~z zLz z~ zm zl zk zj zL{LyJ eyexew~ev~f~ffffJ`5665y5x5w5zEn{z lkj |yjJkjlkmlmi in`emeymlexlkewkjevjLkyi&m&l&k&j8iIiii9fjfkflfmf`nIngjIjgIm lkj`L<^}i0vvvvvj`L656 wh H5Gh`lmm566 Lx5Hȱ5ȱ5 F665 w56h(` x("LH)&h`( '&'`lmm566LxĠLx znInEz{iLx y? zL||uu`8i$iznIii0ĨV y${Wiuu8Iem_B_B`)&N> ȱI8gJJ hhge ghh f feLe8 hx57 xLCx8I77JJ8 88` H dhjL YYHH dYZZ oxhhe5566ɂ逅66 wZZY L YIL=m ) s  ʊHYImm shhhhYhZhZHHE` 3YZZ xLCxl5Ym6Z78ߠȘH yxy hL3 j kqHHHH s H , ,H s s ~qhh 1 lhhXhXhWWȱW7ȱW8 eLNLXZWX ` GGH HlHmHmH khmhmhlh hk8j7k8Lޒ e7788IjJkJk )lmm'&`UR{R||L̐: / cRRȹRRȥ Rл s `Lsh sh5lh6mh6mhxhyhy x x Qȱx7ȱx88 Ƃ 7e7888ł75 楽HHȱȱ6H6H5H s =к bqhhh Lshhhh` ~R/mZlmYZ PujHkki^^`H"h{||kjkȱ{ "ie{||  V{|56|6 w&5L<^i8e` ě u8A?pB@B@ )onL܇jkL| Nsdȩ8 NsdL2Lа,L<^ A s ׫ g iq s= sXHXHWHHHH ajL? b rLiq HHH s iqhhh5ȱ6ȱLI65 g5H6 2|Hgȑgʆ5a g5ȑgȥg <^^^__ɂ逅____<;إy6 hlhm^Ȋ^LL:^ȥ5^H^h ͎el5emȆ6п  ͎e^e__ iLZe *& eegggegȱgehh Ľ ,L<^  8` ^LQ ŠhhL6 $P 訽5 ͎56ۥ 8ee L:^?be^@ce@c __^_ \__^;<<6  $Phihi^Ȋ^6h656H |mHlHkHjHiHl5 8eeghh^__` HHH H bqh hhhn0iɐ1 }L yxL%}\i FHHHHH 6hhhHHlm ,҄ shh)>=>hgh<<;[a{p ;<<ccb? @c@ube.a{bb,\(eb cc`ebcA[8饰 a{8`8\e@@He? ]@@?hbbb0 ea ȑbc8L@ @@h5H ?5^6_6_hhXhXhWLk ? % ?Џ`5566` xe5566ɂ66` s p `  zLseff z.!'$ iߪ$ 0 H8eAi\h$ P8 (Lt$ 0}5}} ,kk} , kklm Lٓ[ 80@ 6 2`  dkH) ojhJJJJ ojL 0:i`L<^ jHHHHHH s jhLyqhhh6h6h555_ȱ5VHHHH %L/5H6H6Ht $mlmkljkij8ihn`L,$0DpA q enHi80 @Lyu \ % @u ćh `&m&l&k&j`2L0 և yxLT}$0pLI oբRLi `u LLi u Lui0 ܆ چ,,% п 擩lm0u 1eL5665`iɀ*iH i  @8 ei $ tutt tj ȡhn` t` 0RN0R 0R$n-RRR`i` p`5665i`$0BP?iH i hL?e8V je?e>e8U>e5V?e665e=e@eeehi?e ueL5e qrL,op ɩ`et?ek;e`hZ L<^hZL<^L=ee>e ?e`opqrst !e5ehe?eLje LjeR=89R>:>:iR:RiRRiRL`8(RR(`EeFe  s bq Vml0L dMeL` bՍe :RRRiRȐȰRe9Re: J 2IHJh*=>> 95:6:6R L1 1Lԫ`L:^  aFL^R, ue 5eLڭR7>e?e5e?eJeKeLje֩ u>e?eՍ "] a a$% iLg֢   sLj$%`8f  a e ; ` s ɩ` YLILcopL7 z0xH ׫$0_ ;h8fH`aai shH2 h zJJJJf Ik ɩ` ̬ t os YLA ևLLק jWXX` ׫$`pd8isŠt`dyoopd8ip`J uv`&&&8孪孪宐橈`! @ uA?B@B 悅@=g>h>h ]=i>j>k a=g8i>hj>h 悅ki=5j>6k6k;el)@7Me0u(> ƬƫHH ,hohp` ɩCe0R`ȹR`ee?e@e ue 5e T L=e;e`Lso`n}pm aa`dyo ɃɄ b`" lJJJJYe s ˰L8Ls LԫN l@u=ekPe tMe )llNesOet NeOetMeCOeNeȌ=e>e;eed?e 0) do begin 9delete (strg, double, 1); 9double := pos (' ', strg); 3end; {while} 3if (length(strg) > 0) then if (strg [1] =' ') 7then delete (strg, 1, 1); 3if (length(strg) > 0) then if (strg [length(strg)] array [1..251] of string [40]; *rec_fc: array [1..251] of integer; *rec_max: integer; * procedure BLANK1 (var strg: str255); 3{Strip double/lead/trail blanks from string }  var double: integer; 8 *begin dou*infile: filetp; *inblock: fileblock; *inpath: string; *scrn_title: string; *err_str1: string; *err_str2: string; *err_str3: string; *err_str4: string; *err_char: char; *rec_no: integer; *rec_name: string; *wk_str2: string; *wk_255: str255; *wk_char: char; *yyyymmdd: string; *wk_curpos: integer; *fcfile: text; *fcpath: string; *fcdate: string; *outfile: text; *outpath: string; 1..1025] of char; fileblock = record :BUF: buftype; :LEN: integer; :PTR: integer; :EF: boolean; :REC: str255; :end; *filetp = file; *filetype = file;  var *i,j,k,l: integer; *ok: boolean; *wk_str: 2{Maintenance 07/25/87 Handle odd blanks in input } 2{ } {$list-}  uses applestuff, genutil, dirstuff;  {$list+} type str255 = string [255]; buftype = packed array [{$list+}  program NVASCI; {Convert "Name:Value" file to ASCII -- AMB 01/30/87} 2{ } 2{Maintenance 04/22/87 Allow 255-char field names } 2{ Output field counts } O^6h`L)i   HH `TH..TH..TH..THATS ALL, FOLKS!R`RT RT`#RT =' ') 7then delete (strg, length(strg), 1); end; {BLANK1} procedure READ_ASC (var fl: filetp; var f: fileblock); var i,j,k: integer; line_end: boolean; rec_pos: 0..255; *rec_lf: string [1]; *ok: boolean; begin rec_lf := ' '; *rec_lf [1] := chr (10); *line_end := false; *with F do begin *rec := ''; *repeat if ((ptr < 1) or (ptr > len)) then begin i := blockread (fl, buf, 2); 0if i = 0 t 2. If pathname starts with "**" } 3{ open without user interface. } 3{ } 4 var error_num: integer; *i: integer; *user: boolean; ABORT causes an EXIT(PROGRAM) to be issued. } 3{ QUIT exits the program with a null pathname. } 3{ } 3{ Modified 11/13/83 AMB 1. Don't scroll on error. } 3{ 3{ Under normal conditions this proc will try to } 3{ get a valid pathname forever. If none exists, } 3{ the user may exit abnormally: } 3{ } 3{ } 3{ OPEN (fname,dspname,'RESET/REWRITE',pathname) } 3{ END; } 3{ } o use OPEN: } 3{ } 3{ PROCEDURE open_rec; } 3{ TYPE FILETYPE = FILE OF whatever; } 3{ BEGIN r both TEXT files and UNTYPED files. This } 3{ should be the default for a program generally. } 3{ } 3{ A file of records must generally have its own } 3{ sub-procedure tN{ Null String if QUIT from proc } 3{Open a supplied filename } & 3{Notes: The calling program/procedure must have a TYPE } 3{ variable called FILETYPE. If "TEXT," OPEN will } 3{ work fo } 4DISPLAY_NAME: string; {English title of for display } 4IO_METHOD: string; {Either RESET or REWRITE. } 4var PATHNAME: string); {In: Default PATHNAME or null} N{Out: Actual PATHNAME if OK. } := pos (rec_lf, rec); -if i > 0 then delete (rec, i, 1); -end; *{endif} *end; {with F} end; {READ_ASC} procedure XOPEN (var FILENAME: FILETYPE; {FILENAME: Internal name of file} N{FILETYPE:User-defined data TYPE} N{ for the file. [length (rec) + 1], j); 0rec [0] := chr (length (rec) + j); 0{$rangecheck+} 0ptr := ptr + j; 0if ptr <= len then line_end := true; 0ptr := ptr + 1; -until ((line_end) or (ptr > len)); until (line_end); *if length (rec) > 0 then begin -i end; {check for actual read} {endif} -if ptr > 0 then repeat 0j := scan (len + 1 - ptr, =chr(13), buf [ptr]); 0if (j + length (rec)) > 255 3then j := 255 - length (rec); 0{endif} 0{$rangecheck-} 0moveleft (buf [ptr], rec; 6if k > 1 then if buf[k-1] <> chr(13) then begin 9buf[k] := chr (13); 9if k < len then k := k + 1; 9end; 6{endif} 6len := k; 6end; 3{endif} 3ptr := 1; end; {block read} {endif} rue; 9end 6else if buf [j] = chr (00) then begin 9ok := true 9end 6else if buf [j] = chr (26) then begin 9buf [j] := chr (00); 9ok := true; 9end; 6{endif} 3until (ok); if eof (fl) then begin 6k := scan (len, =chr(00), buf [1])hen begin ef := true; 3line_end := true; ptr := 0; end else begin len := i * 512; 3ok := false; 3j := 0; 3repeat 6j := j + 1; 6if j > len then begin 9ok := t*wk_str1: string; *wk_str2: string; *wk_str3: string; *wk_str4: string; *wk_char: char; *ok: boolean; *x,y: integer; *curs_at_eol: boolean; * procedure BLANK0 (var strg: string); var i: integer; begin repeat -if length (strg) = 0 then begin 0i := 0; 0end -else begin 0i := pos (' ', strg); 0if i > 0 then delete (strg, i, 1); 0end; -{endif} *until (i = 0); end; {BLANK0} procedure UPPERSTR (var str: string);:= ''; 0err_str4 := ''; 0write_error (err_str1, err_str2, err_str3, err_str4, 3[chr(13)], err_char); 0end; -{endif} *until success; *write (chr (30)); *unitclear (1); *YN_23 := wk_char; end; {YN_23} procedure write_fc; procedure anykey; *begin hen wk_char:= chr (ord (wk_char) - 32); 0success := true; 0end -else if default in ['Y','N'] then begin 0wk_char := default; 0success := true; 0end -else begin 0err_str1 := 'Please answer "Y" or "N."'; 0err_str2 := ' Press RETURN'; 0err_str3 -write (chr(30), s); -gotoxy (66, 23); -write ('(Y | N) --> '); -if default in ['Y','N'] then begin 0write (default); 0gotoxy (78,23); 0end; -{endif} -read (keyboard, wk_char); -if wk_char in ['Y','y','N','n'] then begin 0if wk_char > 'Y' t } var wk_char: char; *success: boolean; begin *if default > 'Y' then default:= chr (ord (default) - 32); *repeat -unitclear (1); -success := false; -gotoxy (0, 23); -if length (s) > 66 then s := copy (s, 1, 66); gram); 3end; 0{endif} 0end; *until error_num = 0; *{$iocheck+} end; {XOPEN} function YN_23 (s:string; default: char): char; *{Prompt for "Y" or "N" response at screen bottom } *{Allow a default response or require a "Y" or "N" k_str1, wk_str2, wk_str3, wk_str4, 3[chr(13),'q','Q','a','A'], wk_char); 0if wk_char in ['Q', 'q'] then begin 3PATHNAME := ''; 3error_num := 0; 3close (FILENAME); 3end; 0{endif} 0if wk_char in ['A', 'a'] then begin 3close (FILENAME); 3exit (pro0get_pas_error (error_num, wk_str1); 0wk_str1 := concat (PATHNAME, ' is invalid. ', wk_str1); 0wk_str2 := 'Press RETURN to retry'; 0wk_str3 := ' or Q to quit with no file'; 0wk_str4 := ' or A to abort this program'; 0write_error (wEXT', PATHNAME) = 0) then begin 4wk_str1 := concat (PATHNAME, '.TEXT'); 4reset (filename, wk_str1); 4error_num := ioresult; 4if error_num = 0 then PATHNAME := wk_str1; 4end; 0{endif} 0end; -{endcase} -if error_num <> 0 then begin 0user := true; ; 0writeln; 0writeln ('No file'); 0end -else if IO_METHOD = 'REWRITE' then begin 0rewrite (FILENAME, PATHNAME); 0error_num := ioresult; 0end -else begin 0reset (FILENAME, PATHNAME); 0error_num := ioresult; 0if (error_num > 0) 0and (pos ('.Tstr1, x, y, 6PATHNAME, curs_at_eol); 0if not ok then PATHNAME := ''; 0i := length (PATHNAME); 0if length (PATHNAME) > 0 then 3if PATHNAME [i] = '.' then delete (PATHNAME, i, 1); 0{endif} 0end; -{endif} -if PATHNAME = '' then begin 0error_num := 0-delete (PATHNAME, 1, 2); -user := false; -end; *{endif} *x := -1; *curs_at_eol := false; *dot_text_code := false; *repeat -if user then begin 0wk_str1 := concat 0 ('Enter pathname of the ', DISPLAY_NAME, ': '); 0ok := prompt_for_filename (wk_ng program, please.'; -wk_str4 := 'Press RETURN to exit program.'; -write_error (wk_str1, wk_str2, wk_str3, wk_str4, 9[chr(13)], wk_char); -exit (program) -end; *{endif} *{$iocheck-} *user := true; *if copy (PATHNAME, 1, 2) = '**' then begin ETHOD); *blank0 (PATHNAME ); *if (IO_METHOD = 'REWRITE') or (IO_METHOD = 'RESET') -then *else begin -wk_str1 := 'Procedure OPEN error: Invalid IO_METHOD parm'; -wk_str2 := concat ('I/O method passed = "',IO_METHOD,'".'); -wk_str3 := 'Fix the calli var i: integer;  begin for i := 1 to length (str) do .if ord(str[i]) in [97..122] 1then str[i]:= chr(ord(str[i]) - 32); .{endif} *{end for i} end; {UPPERSTR} begin upperstr (IO_METHOD); *upperstr (PATHNAME ); *blank0 (IO_M-gotoxy (0,23); -write ('Press any key'); -read (keyboard, wk_char); -gotoxy (0,23); -write (chr(30)); *end; begin *if fcpath = '.CONSOLE' then begin -anykey; -gotoxy (0,0); -write (chr(28)); -end; *{endif} *datedelim := '/'; *fmtdate (today, fcdate, []); *datedelim := dash; *writeln (fc_file, scrn_title, ': ', fcdate); *writeln (fcfile); *writeln (fcfile, 'Input NAME:VALUE file = ', inpath); *writeln (fcfile, 'Output ASCII file = ', outpath); *writeln (fcfile); *wrr1 := 'ERROR -- ERROR -- ERROR -- ERROR'; 0err_str2 := ''; 0err_str3 := ' Incomplete Records Written'; 0err_str4 := ' Press RETURN'; 0write_error (err_str1, err_str2, err_str3, err_str4, 3[chr(13)], err_char); 0end; -{endif} -if fcpath > 4writeln(outfile, inblock.rec); 4end; 0{endif} 0readasc (infile, inblock); -end; -close (infile); -close (outfile, lock); -gotoxy (0,18); -write ('Number of fields per record = ', rec_max:4); -if (rec_no mod rec_max) <> 0 then begin 0err_st7ok := true; 7if length (inblock.rec) > 0 then begin 7 if inblock.rec [1] = ' ' then begin =delete (inblock.rec, 1, 1); =ok := false; =end :else begin =ok := true; =end; :{endif} :end 7else begin :ok := true; :end; 7{endif} 4until (ok); 4j := 0; 4repeat 7j := j + 1; 4until (wk_str = rec_name [j]); 4if j > rec_max then begin 7if rec_max < 251 then begin :rec_max := j; :end; 7{endif} 7end; 4{endif} 4rec_fc [j] := rec_fc [j] + 1; 4delete (inblock.rec, 1, i); 4repeat ); 7while (i > 41) do begin :delete (inblock.rec, 1, 1); :i := pos (':', inblock.rec); 7end; 7end; 4{endif} 4wk_255 := copy (inblock.rec, 1, i-1); 4blank1 (wk_255); 4wk_str := wk_255; 4rec_name [rec_max+1] := wk_str; 4rec_fc [rec_max+1] := 0; 1if length (inblock.rec) > 0 then begin 4i := pos (':', inblock.rec); 4if i > 41 then begin 7wk_255 := copy (inblock.rec, 1, i); 7blank1 (wk_255); 7delete (inblock.rec, 1, i); 7inblock.rec := concat (wk_255, inblock.rec); 7i := pos (':', inblock.rec-inblock.ef := false; -inblock.ptr := 0; -readasc (infile, inblock); -gotoxy (0, 16); -write ('Processing record number'); -rec_no := 0; -rec_max := 0; -while not inblock.ef do begin 1rec_no := rec_no + 1; 1gotoxy (24,16); 1write (rec_no:6); ', wk_str2, i); 0end; -{endif} -outpath := concat (outpath, wk_str2); -xopen (outfile, 'output ASCII file', 'REWRITE', outpath); -gotoxy (0, 11); -fcpath := '.CONSOLE'; -xopen (fcfile, 'processing counts file', 'REWRITE', fcpath); pos ('.',wk_str); -if i > 0 0then wk_str2 := copy (wk_str, 1, (i-1)) 0else wk_str2 := wk_str; -{endif} -if length (wk_str2) > 9 then wk_str2 := copy (wk_str2,1,9); -wk_str2 := concat (wk_str2, '.ASCI'); -if wk_str = wk_str2 then begin 0insert ('X0exit (program); 0end; -{endif} -gotoxy (0, 7); -outpath := ''; -wk_str := inpath; -i := pos ('/', wk_str); -while i > 0 do begin 0outpath := concat (outpath, copy (wk_str, 1, i)); 0delete (wk_str, 1, i); 0i := pos ('/', wk_str); -end; -i :=-('NVASCI: Convert "Name:Value" file to ASCII (AMB.07/87)'); -stdscreen (scrn_title); -gotoxy (0, 3); -inpath := ''; -xopen (infile, 'input NAME:VALUE file', 'RESET', inpath); -if inpath = '' then begin 0gotoxy (0, 9); 0write ('Program Aborts'); = '.CONSOLE' then begin -anykey; -stdscreen (scrn_title); -end; *{endif} end; {write_fc} begin *repeat -date (yyyymmdd); -today := concat (copy (yyyymmdd, 5, 4), copy (yyyymmdd, 3, 2)); -scrn_title := name [i]:41, rec_fc [i]:5); .j := j + 1; .if (j mod 22) = 0 then 1if fcpath = '.CONSOLE' then 1 if i < rec_max then begin 7anykey; 7gotoxy (0,0); 7write (chr(28)); 7end; 4{endif} 1{endif} .{endif} *end; *close (fcfile, lock); *if fcpath iteln (fcfile, 'Fields processed = ', rec_no); *writeln (fcfile, 'Records processed = ', rec_no div rec_max); *writeln (fc_file); *j := 8; *rec_name [251] := 'OVERFLOW'; *for i := 1 to rec_max do begin .writeln (fcfile,'(', i:3,') ', 1rec_'' then write_fc; -wk_char := yn_23 ('Convert another file?', 'N'); *until wk_char = 'N'; *gotoxy (0, 0); write (chr (28)); end. {NVASCI} NVASCI: Convert a Name:Value File to ASCII Format ALLAN M. BLOOM, PhD CDP Institutional Research, Virginia Tech, Blacksburg, VA 24061 2303 San Marcumn 1 above. Each field name is printed, separated by a colon (:) from its field value. Even if a field is blank, the output "name:value" file has an entry (expressed as "name:"). NVASCI strips the "name:" part and leaves an ASCII text file as in column 3 ---------- State-2 ZIP: Zip Code-2 Zip Code-2 --------------- --------------- The mess is not necessary. PFS (and other programs) can also create a "name:value" file as in colrown Street-2 Tom Brown FIRM: City-2 STREET: Street-2 State-2 Street-2 CITY: City-2 Zip Code-2 City-2 STATE: State-2 -----ee Company Three STREET: City-1 CITY: City-1 State-1 City-1 STATE: State-1 Zip Code-1 State-1 ZIP: Zip Code-1 Tom Brown Zip Code-1 NAME: Tom Bomes a major mess. Source File PFS ASCII File Expected File --------------- --------------- --------------- NAME: Joe Smith Joe Smith Joe Smith FIRM: Company Three Company Thr it looks like the middle column. The "target" system expects one line per record field (the "Expected File" in the below example). What happens? The target file gets "Tom Brown" as Joe Smith's Zip Code. Tom Brown's name becomes City-2. The whole thing bec The left hand column shows the contents of two records in a hypothetical "source" file. Note that STREET is missing from the first record, and FIRM is missing from the second. When PFS (or KeyStroke or Mail List Manager or whatever) creates an ASCII file,le always expects one line of data for each record field. The term "out of phase" takes on new and sinister meaning. If one field of one PFS file record is missing, the importing program will be messed up. The below example shows a "worst case" scenario.ge file to process, or many data names to edit out or many files to process. Let's look at an example. When PFS creates an ASCII text file, it does not create an output-file line when it encounters a blank record field. A system importing an ASCII text fice a "one line per field" ASCII file (It ignores blank entries), but it can produce a "one line per field" NAME:VALUE file. NVASCI automatically converts that NAME:VALUE file to the proper ASCII format for importing. NVASCI is most useful if you have a lar a NAME:VALUE format text file into an ASCII text file with one line per record field. Many data base and spread sheet programs can "import" an ASCII file -- but only if the file contains one line per record field. A program like PFS cannot generally produos Street, Blacksburg, Virginia 24060 Office: (703) 231-7921 Home: (703) 951-2025 CIS: 76656,1514 BitNet: IRBLOOM @ VTVM1 NVASCI convertsabove. | | | NVASCI: Convert "Name:Value" file to ASCII (v.04/87) 05/01/87 | | | | | A: | Enter the path of the input NAME:VALUE file: | | | | Input NAME:VALUE file = /PRO/COPY/NVTEST.ASCI | | Output ASCII file = /PRO/COPY/NVTESTX.ASCI | | | | Fieldmes. | | | NVASCI:Name:Value file to ASCII (AMB.04/87): 04/22/87 | | d be 142, and the number of unique fields would be one less than there really were. The error would be spurious, and you would really be fine. Sorry 'bout that, but memory limits prevent keeping track of very many of the maximum 255-character-long field naer of unique fields found and will trigger the "record count" error. The long field name in the below example is truncated at "stat," which could be "state" or "status." If both were present in the source file, the occurrences of the "... stat" field woul of a field name. If you have humongously long field names in your source file, truncation can make two or more field names look alike. NVASCI can track up to 250 unique field names. More than that are flagged as OVERFLOW. Either condition affects the numb of unique field names found. You then see a list of the unique field names found, and the number of occurrennces of each in the input file. The summary can help explain a spurious "record count" error message. NVASCI only looks at the first 40 characterss the run date, the input and output file names, and the number of input fields procesed -- just as in the main user screen. It also shows the number of "records" that an importing program will create -- the number of fields processed divided by the numberrds that have been processed. Then the program shows how many unique field names it found. If records processed is not a multiple of fields, an error is displayed. PROCESSING COUNTS FILE The processing summary file showRN to accept the default, else edit the pathname as in A. C: Press RETURN to have the processing summary displayed on the console, else edit the pathname as in A. If blank, no summary is written. D: An odometer shows the number of NAME:VALUE file reco RET: Accept the contents. L/R Arrows: Move cursor. Openapple-I : Toggle insert. Openapple-L-Arrow: Delete left. Openapple-R-Arrow: Del right. Openapple-ESCAPE: Default reappears. UP-Arrow: File menu. B: Press RETU | E: | Convert another file? (Y N) --> {N} | | | A: Enter the input file's pathname. Edit the pathname as follows: ESC: No file. Pgm ends. | | Number of fields per record = mm | | | | | C: | Enter the path of the processing counts file: .CONSOLE | | | D: | Processing record number nnnn | B: | Enter the path of the output ASCII file: DEFAULT-NAME | NVASCI April 23, 1987 Page 1 Bloom Name:Value to ASCII | s processed = 568 | | Records processed = 71 | | | | Field Field Name Occurs | | ----- ---------------------------------------- ------ | | ( 1) Name 71 | | ( 2) Address-1 71 | NVASCI April 23i ڥ(8` ְ( ȱ5 HȦ)`Lxץ: ש ְ⥺i ꥻ(8`Lx Lxש u )۠0)p խ.8`)@ ϰ) ϰۈۅƭۅǭۅ5 X̰ *ƭ۬͵̶a$,1)="/"5060:s=s-1 5030=a$240 MENU.MAKER 6.2 * Thanks to C.M.Davidson for his help!l; G$:::320H: Error Routine 202:U=11:"79C";"BAD PATH ERROR (NO DISK IN DISK DRIVE OR DESIRED FILE NOT FOUND.)"X=11000:X:::210Z a$="{,|,~,}; selects; back 1 leve Both Sides NVASCI converts a NAME:VALUE format text file into an ASCII text file with one line per record field. Many data base and spread sheet programs can "import" an ASCII file -- but only if the file contains one line per record field. A program lik WAP /// SIG PUBLIC DOMAIN LIBRARY 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-0300 PDS NAME: NVASCI by Bloom DISK ID#: 3BLM-16 BOOTABLE?: YES - Press RETURN Keyboard: Press RETURN Prefix: Press RETURN Max Files Allowed Open: 3 Program Path: Interpreter Pathname: CATALYST/PASCAL (A) Extra Drivers: Press RETURN Character Set Pathname: Press RETURN Screen: ect "Catalyst Edit" from the main menu. 3. Enter "1" to "Edit Catalyst Menu." 4. Arrow to highlight the menu entry you want the program to precede. 5. Press "A" to add a program entry. 6. Display Name: NV-to-ASCII r or to a disk file. CATALYST INSTALLATION 1. Create a NVASCI sub-directory and then copy the boot disk files .D1/SYSTEM.STARTUP --> .PROFILE/NVASCI/NVASCI.CODE .D1/SYSTEM.LIBRARY --> .PROFILE/NVASCI/NVASCI.LIB 3. Sel Misc-2 71 | | | If you display the processing summary on the console, the display will pause at the end of each screen full of data. You may direct the summary to your printe | | ( 5) First-forty-characters-of-very-long-stat 71 | | ( 6) Zip Code 71 | | ( 7) Misc-1 71 | | ( 8) , 1987 Page 2 Bloom Name:Value to ASCII | ( 3) Address-2 71 | | ( 4) City 71 Ƅ X Ġȱ۠ ȍ۱۠ ۭ) ۍ ð*)#  O̰``)(`N8` ) xհۈ ̰آ*գ  Ͱ ݢգ LvL{ؠ; ˦,+* ʈJj =ؠ yiȩ`y4泱ƳHhz ʠiȱizLA`L;ؠ"  `1` Đ7@8V۩ Lɠ۪8ۊ۠X)JJJp8**-p hhJJJJ 00) 0`ǀЀOHH p0%Px0pNp(PhhQL(p8**-phh SU  U.ST  UOSQ R 窭 JJҘ)e}ҭ e8ЅЩѩӠEӅ ЭHH p0Hppxpppp( ̍pJJ ̍phh`HH p0Ex0pp(0 (   `x )HH8(=&(+ʈ&ਹ''&&hh(` * @ HH` 2``ӠР    0) ȑȱȱȱ008 8hhh H(`x )HH'Ƚ!88x , ,,(`," , *)` `߭lߩ * xLx @h hhh ,0)ߨ)Ah&'0HHHH xhhhh ,0)ߍLLhhh@)&&&(&('+*H)H(h)H@x )HH30.0\-JM-, J3,e$,d,,  * *l߅߅H ߅ \xi ߅LHHH *ح)0 D) HHHH,, ߩ0  xLߍ󠠩à٠΀ƉŠŠӠҠȠHHH *ح)0 D) HHHH,, ߘ)@ *)X  xI)}h)L, L )ڠ) w߭)Ů􅮈 ߠ'x)) J,QJ,SJ,U,P,W(`)(()  8)j`J j߅`0X ٠͠堘ӠȠŠ=`Insert volume: Τ in device: 蠠ɠ then press the ALPHA LOCK key twicex)_ @,P,R,T,V) )) `)8( ߠ',@ ߠ0  '葺 ݰL`5`i 祻(8`2ޝ51©ޅéąŅƍ >ϩ 1ޠ== f ɰ`ޭ`5=(5= i Х(`=H hDC5 L3ܵ ɐ /ݐ 8`5 ˥JJJJ8 H h ` ܠ825H h5 ɐ /ݐ 8`Hh ܥ5 `ɥܥܥܥܥ5`܅܅܅܅܅5`( ݰ)Ѻ ݰL ݰ泱Ƴ ʰȭۮ ʰͩΪΩۦ eװqȭqLJ  ˰Aۅƭۅ X̰2%&N  ʰƭ X̐`Ӏ堁ӠҠՈ՘̠ƠŠӠ̠ɤӮȪŅ͠Ϊ ܆5 HȰۈ)ۅƭۅ X̰ 3ڰLÍLT̥L㼠  ʰ` İK ХP8` LɐH80)N  հ)@LO ˰)0 ̐` M ­۠泭ۑƳѲƱƳ X̰ RڰäJۑĥ` İo!)N8`WپX0 ĥLä X0 ĥLà !"#$ Đ2@H AڰCŰrP` 3ڰ(` AڰѶ? İG8`Fە1 ռ İ ЩP߭)@N8`1@8` Aڰ񈱴`HJJJJh)y` (2`]PU]]UPPX0 0 PPXPP  į󠠩ҙ̙ɠΠɊՐӠӢ̢ՠҠŠԠҚРĠ鱃ԠȠࠠLQ  * WHHH>%H H @`)h8`  HШБˆeЅА SYSTEM FAILURE = $hh8`hhhxآY_Z@tPRVT,p S JJJJ ) ʍL@ i0i6`îӉ͠堧ǥӥ``HhHy)(h`H` 0L?i `h` `` `x)( 8 `jjJJԥ)եӬɂ )Ӆ҅`  `H0Xh`Π'à̠ȈL` 8`څ  Lk%  Lk8Lu텚8嚅 L L Ld V ``  h` ک V `ۅץ  VLFx) ( :` H ) L  .P'pб0 &L:L5'8+8`0Fܢ` ř,Ř 0 8f)J ӭƅХDžѥL1LUȑ  i ߩLL )  札)  ҩLL` **éL0;` H ) 4 )ߍ) hjjjjۥ0CF = -$(L !LLL&L L-LJ٥eƦ ,L  # ` (L.L…ҥÅγ`%!^0 ^)@`a R =` *^)ـooL]^)?i |TU QTU]qUoqTITsUsprRprqs]ToUXa` RL=Xa` R` *R`abRcdTefVghXijSdfhj RR`^0U ` 0 ʠ0 8 `ůàՠԠàࠝӢӠ ȠDž̖͌͊頀ϐωŠŠӠҠȠat program by Dr. Al Bloom. NVASCI April 23, 1987 Page 3 Page 3 .PROFILE/NVASCI/NVASCI.CODE 6. Enter "Y" to the final question. ESCAPE twice to the edit menu. 7. Enter "5" to update INTERPS. Do not recalculate the minimum load address. 8. Exit to the Catalyst main menu via entering option "7" 7. Enter "5" to update INTERPS. Do not recalculate the minimum load address. 8. Exit to the Catalyst main menu via entering option "7" NVASCI April 23, 1987 Page 3 Max Files Allowed Open: 3 Program Path: .PROFILE/NVASCI/NVASCI.CODE 6. Enter "Y" to the final question. ESCAPE twice to the edit menu.  )* i LiHh`PQPQ>P Q,PQ"PɀQ@PAQ`8`nɀ<)nopoLpp` 0h8蘠fȊf` ab 1abo)abaݰb L9c`` a N0Ioa0H ha`pLopna n`  3ɠ/8 L %iLɠ8逨J Hh $`b >_-%^%p_^^_ab"08^c_L8^c_L8^c_L8^c_ȑcc\] ab^_ ``aV R0M bba dda `Q8STRQ ST`c\ȱc]a  b 5DU e\^e]_ ^_ ^_LH8\^]_?Je\^e]_,78\^]_ ^ݰ_ ^_LH^_ $bL@A^_aoQ*@A RQL@A `T8`RLSJTKQHIQiHiIKNJ)M8逅OPOPHMIN'a MHNILHOIPaOHPI8JHFKIGFGaHMINNMʆSTL8HSITQQSTde0f`   cCȱcD C Ea  UV 1 ELUFVG FUUCVDեYCWZDXWXCUDV[ v`b0WXYZiUcȥVcWX eeYZ ggE` @SATRDžŠƠŚ̮ÎȠ Ӡ̠Ӡ` LL#L/LL'Lgab `abBcd cdBrcadbho:ab.cݰdDcݰd8abҊ v+abc