`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$J ōҫ 占Ҡ 獠ؠ ٠ бàҠ ŠР 덠àҫ 卪Рؠ ōҫ٠вҩٍРѠōҠĠ ӍàҍŠвàҫŠв󍍪 卪 獪ԠŠð àҠ͠ 㮍ҠҩٍԠàҍŠЍàҫŠРŠӍ 卪Ԡ ҍŠBLANK DOS_3.3_FILESvgBILINGUAL.TEXTgBILINGUAL.CODEg BACKUP.TEXTvg BACKUP.CODEvgLETTER.TEXTvgLETTER.TEXTvgbbvbh~ ~ ~ .bv0b(&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&пӠ͠ 占 àҠ͠ĠƠ㮍ӠҠàР 䍠ѠōРƠ 占Ӡ͠ lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`Eon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\ eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noLõĵL LLЦ  #-µµ( zegehtpjigh q Ql` z8L`MaEK@>ˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlVҍҩ٠ ɠб ԠӠ ÍԠƍ^ ҩ٠ РҠ 忍ѠԠ ؠǠ 忍Ԡб РŠ 忍Šб ؠ ԠǠİԠՠč٠ҠǬٍѠԍԍԍҠčٍРҍԠӍǠà ԮˍԠƍ Ԡ Ԣ ̢  uW ԧ H h@ [_ /QSIRb_L`LLLL`ª`LQLYLeLXLeLee ўQH\(h0L& Ꝥ$`( R \ZLl8 ўR HH\`\Z[YS6`LxQɿu^Ӝu`".Q`pNФbptťܥm2<(-Py0\|66e<g< JJJJj귍hI  aUL@ kU8  L  Q^R(jQ0l^l\  wUY?AyC@B@B|ACLT$VXZdflpx|~**7777(*3]67V<<8:=???@#topmnU^_R ij^_lk 󅔆nmLY^^ȱ^ȱ^eȱ^e(ӊ0Цe^LA@@&E&&A@@&AA)߅CBBH&E&&A@B& ChLQhBAȌy8zx8v{v I7H7@)*AL@m{@AAA,+i(ˢ3Z@[A@ /@v wm{@8/e@@eAA3]ͥ@\Ɗi5 Ѝ`h3h434h*h+h L 12.20.82"" APPLE PUGETSOUND PROGRAM LIBRARY EXCHANGE 304 MAIN AV. SOUTH RENTON, WA. 98055 ACCESS THE PASCAL FILES." *r +"OTHERS NEED ADDITIONAL SUPPORT. CONSULT APPROPRIATE CALL -APPLE FOR INFO.":y + *+::"HIT ANY KEY"::32,0: .756:4:958: 2"Call -Apple Anthol- ogy, Vol 8, Jul-Dec 1982 Version 1 Release date ETTE APPEAR IN THE MENU, THOSE WITH A [.S] SUFFIXARE BIG MAC SOURCE FILES." *:"THE SECOND DISK (ANTHOLOGY 8B) IS A SPECIAL DOS/PASCAL DISK AND SHOULD NOT BE BOOTED - INSTEAD BOOT ON ANOTHER DOS DISK AND THEN CATALOG '8B' OR BOOT ON PASCAL TO E S E N T S ":10:" "M \:34,23:I11200::::10000 X(222)1ĺ"LANGUAGE NOT AVAILABLE":216,0:110 b(222)255Ħ l:: '2::4:"CALL -APPLE ANTHOLOGY, VOL 8 ":::11000:M *8:"NOT ALL PROGRAMS ON THIS DISKB C":4:"L E G R H" 45:"E T R A A":14:"S A R N" >15:"O M Y G":16:"U";:40:"E"; H17:"N":18:"D") R:::10:" ":10:" P R :" ";:33:" "H " ";:5:" ";:7:" ";:9:" ";:15:" ";:17:" "; 23:" ";:25:" ";:31:" ";:33:" ";:39:" " : "A P P L E":2:"P U R I X"2 *3:"P G O  ::M1:2:" ";:9:" ";:17:" ";:25:" ";:33:" "" ";:5:" ";:9:" ";:13:" ";:17:" ";:21:" ";:25:" ";:33:" "" ";:9:" ";:17:" ";:25:" ";:33:" " " ";:5:" ";:9:" ";:17:" ";:25ðĠРƠ 퍠ԠƍðҠİ 㮍ð ͍Ӎ̠īīàīŠ̱àī̱ҫҫðҠҠƠ 䍠 ԠǠð İ  MԠ ЮЮ̮Ů     169,96,141,77,254,173,130,192,96,173Y  131,192,173,131,192,169,189,141,77,254,141,232r  192,173,130,192,96 I768830:A:I,A:::ECOND.4  PREFERABLY THE ROUTINE SHOULD BE TESTEDY  WITH A SCRATCH DISKETTE FIRST.  173,131,192,173,131,192,173,104,234,133,255  173,130,192,96,173,131,192,173,131,192,165,255  141,104,234,173,130,192,96,173,131,192,173$  131,192,a:"END OF DEMO" c@ d PRINT CURRENT DRIVE # AND CATALOGk n768:A(255):"DRIVE ";A;" IS ACTIVE" x(4);"CATALOG"  ***** WARNING *****  B E SURE YOU COPY THE VALUES BELOW EXACTLY, FOR  ONE ERROR MAY DESTORY A DISK IN A S0: DISABLE DOS INSTRUCTION TO PUT MOTOR OFF[ A:"MOTOR WILL STAY ON AFTER NEXT CATALOG"k BI11000:t F100 K:"MOTOR STAYS ON FOR A WHILE" PI14000:: WAIT SOME TIME Z100 _76845: TURN MOTOR OFF (AND RESTORE DOS INSTRUCTION) ON*  ***** CALL 768+45 TURNS MOTOR OFFI 1000:POKE ML PGM AT $300k 100: PRINT CURRENT DRIVE NO :"ENTER DRIVE # ";B: NOW ASK FOR NEW DRIVE # 255,B: STORE DRIVE # IN LOC $FF (76815: STORE DRIVE # IN DOS 2BOSUB100, <7683I ***** SOME ROUTINES THAT CAN BE USED WITH DOS MOVER AND AMPERSOFT ***** CALL 768:PRINT PEEK(255) RETURNS CURRENT DRIVE # ***** POKE 255,2:CALL 768+15 SETS CURRENT DRIVE # TO 2  ***** CALL 768+30 LET MOTOR STAY ON AFTER DISK OPERATI    `K,, ;`_L `,`, ;`L'`@`EK@>ˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff µLЦ գ ze)rs zrsLq ] Qlr L̦ գ8gh ࣥhgL գ8LʨM ࣥˤLµH hLħõµ µõLõĵL LLЦ  #-µµ( zegehtpjigh q Ql` z8L`Ma d@` Lꢩ  c ȢL LqLգcl mllm ꢥELȦAD@ C N cLuɠ% d: L @ NL   L` -e L գsr ࣭ml ࣭srL -H eeh) tt L [ _HH`]ɍ]ɬ` ɠ``DE ɤ<(LΡ DE`80!  eDeE eDDeEE8`D&E`( 80 0 DDLDLDL^ t^`,tP ȟpMt-^^`DH hWLԧz (_9 ˭ɠuɠK_9 ?Le}d?ed@e`M`.?r$]]ƠŬĠ]2o a(ǠԠϠŠĩ)a(Ġìİ)]ŠԠŠq.?6~?r]ðd ed!ed"ed#eUnd$ed%ed&ed'e d(ed)ed*ed+ed,eUsd-ed.ed/ed0ed1ed2ed3ed4ed5eUxd6ed7ehd8ed9ed:ededededehU_d eHd ed ed ed ede#dededeUddededededededededeUidededededeJ ]Ӡ]Kc (M6*2a(ӠΠ)1<ca(ŠɠĠ͠)F] P]ŠŠĠUZdededededeH俍ŠŠ 占Ҡ ŠԠŠ 占ӍԠƍ Ӎ 庍àà̠ Šòà̫òԠĠ 俍̠à ̩٠ Ġ Р ̭ Šð 􍍍  Ҡ à ̠ 荠Í̫ 荠Ҡà ԠǠ ̠ ̠ ̠Š ҠƠ àĠð ı ̭  Ԡ ̭ Ӯ ЮЮ̮Ů      $`$0LȱL 6/79 LAST MOD 9-27-82: PRINT DAYS OF WEEK :. DA1L(M)F DD1:36,(DC73)W DA10ĺ"0";` DA;z D7D0:: NEW LINE DA : M (12): NEW PAGE D$;"PR#0" 160  CALENDAR PROGRAM BY THE APPLE WIZARD COPYRIGHT 12/2(365.25A7))71.25)& @D1DD7j JA4(A4)A100(A100)A400(A400)L(2)29: LEAP YEAR? T36,(C27):"****";A;"****": PRINT YEAR ^ hM112 r36,(C2(S$(M))2):S$(M): PRINT MONTH | T17:36,(TC73):Z$(T);: "YEAR?";AO "COLS ON PRINTER 40";(8);(8);(8);:C$:C(C$):C0C40h 6147: DUMP PICTURE D$;"PR#1": THE PRINTER BETTER BE IN SLOT 1! "(9);C1;"N": THIS SETS UP A PARALLEL ARD FOR C+1 COLUMNS OF TEXT ,:: 6D((365.25A7CATALOG FOR CATALOG , FOR PICTURE IN MEMORY)?";A$Y A$""230: PICTURE IN MEMORYp A$"CATALOG"220 D$;"CATALOG" 160 D$;"BLOAD";A$;",A$2000" :16297,0: SET GRAPHICS MODE, AND SHOW PICTURE C40: DEFAULT PRINTER WIDTHARY,31,FEBRUARY,28,MARCH,31,APRIL,30,MAY,31,JUNE,30,JULY,31,AUGUST,31,SEPTEMBER,30,OCTOBER,31,NOVEMBER,30,DECEMBER,31 T17:Z$(T): SUN,MON,TUE,WED,THU,FRI,SAT :936:::"CALENDAR PROGRAM":"(C) 1982 BY PHILIP CHIEN"6 "WHAT PICTURE (Y HI-RES CALENDAR PRINTER BY PHILIP CHIEN CALL -A.P.P.L.E. : DEC. 1982 {ZD$(4): CTRL-D (WHAT ELSE?)dE$;"BLOAD DRIVER.OBJ": CHANGE GRAPHICS.OBJ TO NAME OF PRINTDRIVERnS$(12),L(12),Z$(7)xM112:S$(M),L(M):u JANU   ԩ٠ 占ؠ 獠٠ ԩ٠ 占٠ 獠 ㍠РƠ ÍԠƍ͠ƹǠҠԠ 占ԠР ㍠̠͠ ㍠Ӡ ͠ԠǠ ɠԠ Р͠ ÍԠ٠ Ԡ ЮЮ̮Ů ԠРǠԠԠųƠŲƲ  ! ""ˬ##ЕTHISISIT THISISIT m]|\ l\m]x RPRRSQRR RȭR)[ [Zg lqnps⽭!  LSp% < Ni iSHHHH "1#"! zɍ߰ )`  `` ɠ0` ȹ ɺ o X Y Y<Ɏ@ɀ@ɇ! ȥ$e<<=%`hhȹ ɺ H XhLiҠԠӠΠغàŻΠנԻѠ` ҍŠ ōҫ٠ 獪Рҩ٠ ̠à 占РҠ ïݬ 占ѠԍРƠ Ǡ Ǡ Š ҠčŠҠŰ Ű  卪Š oԠ ЮЮ̮Ů Ԡ     .756:4:958:r2"Call -Apple Anthol- ogy, Vol 8, Jul-Dec 1982 Version 1 Release date 12.20.82"" APPLE PUGETSOUND PROGRAM LIBRARY EXCHANGE 304 MAIN AV. SOUTH RENTON, WA. 98055 S-LESS AND CONTAINS BOTH DOS AND PASCAL FILES. BOOT PASCAL WITH THIS DISK IN ONE OF THE DRIVESTO ACCESS THE PASCAL FILES.":+"OTHERS NEED ADDITIONAL SUPPORT. CONSULT APPROPRIATE CALL -APPLE FOR INFO.": + *+::"HIT ANY KEY FOR MENU"::32,0:AVAILABLE":216,0:110)b(222)255Ħ3l::t'2::4:"CALL -APPLE ANTHOLOGY, VOL 8 ":::34,5:11000:*8:"NOT ALL PROGRAMS ON THIS DISKETTE APPEAR IN THE MENU, THOSE WITH A [.S] SUFFIXARE BIG MAC SOURCE FILES."}*:"THIS DISK IS DO A R N"M>15:"O M Y G":16:"U";:40:"E";cH17:"N":18:"D"R:::10:" ":10:" P R E S E N T S ":10:" "\:34,23:I11200::::10000X(222)1ĺ"LANGUAGE NOT ";:33:" ";:39:" "":s "A P P L E":2:"P U R I X"*3:"P G O B C":4:"L E G R H"45:"E T R A A":14:"S 13:" ";:17:" ";:21:" ";:25:" ";:33:" "k " ";:9:" ";:17:" ";:25:" ";:33:" " " ";:5:" ";:9:" ";:17:" ";:25:" ";:33:" " " ";:5:" ";:7:" ";:9:" ";:15:" ";:17:" "; 23:" ";:25:" ";:31:" CALL -APPLE ANTHOLOGY VOL 8 JUL - DEC 1982 ":: I16:(I64)" "MENU$(I);:20:(I70)" "MENU$(I6):  :: 1:2:" ";:9:" ";:17:" ";:25:" ";:33:" "/ " ";:5:" ";:9:" ";:"CHARSET GEN":MENU$(07)"KEYCODE DEMO":MENU$(08)"WINDOW DEMO":MENU$(09)"SCREEN DEMO":MENU$(10)"HIRES SCREEN READ" :MENU$(11)"PIE CHARTER":MENU$(12)"GRAPH DEMO": 0USE SUFFIX .L FOR BLOAD PROGRAMS; USE .R FOR BRUN PROGRAMS :T 2::" OADING "FILE$:BL260' D$"RUN"FILE$C BL0:I11000:::110 A$" CTRL-C_EXITS SELECT_BY_LETTER":MENU$(24) :MENU$(01)"APPLE DIARY":MENU$(02)"CRYPTOGRAM":MENU$(03)"TALK DEMO":MENU$(04)"SO WHAT":MENU$(05)"HUFFIN"u :MENU$(06)L(A$)120 190:1502 X(16384):X127ı^ :16368,0:KEYX192:KEY24KEY1180s FILE$MENU$(KEY) (FILE$,(FILE$)1,1)"."(FILE$,1)"L"ĺD$"BLOAD"FILE$:BL1:240 (FILE$,(FILE$)1,1)"."ĺD$"BRUN"FILE$:240 :10:10:"L =d " M E N U " BY VAL J GOLDING - 2.80 Pi2000:::500on1000:D$(13)(4):7000xL1:A$(A$,2,(A$)1)(A$,1):22(A$,1)" "Ğ(A$,1);LL1:(A$,L)" "ĝ:170(A$,L,1)" "Ğ (A$,L,1);::      ENGTH ?";LL$:LL(LL$)10:(LL$)LL229 "ASCII VALUE FOR END OF FILE CHR [DEFAULT = 224] ";EOF$:EOF(EOF$):(EOF$)EOF224 NDCHR,EOF LNG,LL:LIMIT:3002" SELECT ";::" ";j @SAVFILE$:SAVFILE$::SAVFILE$"B"ĺD$"BSAVE"FILE$".S,A"BUFRADR",L"EA::"DONE": JSAVFILE$"L"500 TSAVFILE$"T"ĺD$"OPENT."FILE$:D$"WRITET."FILE$ ^SAVFILE$"Q"Ā hOUT |:D$"CLOSE"::"DONE":: ) "LINE LUFRADR)131ĺ"FILE NOT IN APPLEWRITER FORMAT":300S EA(43616)(43617)256: h BFILEADR:XLATE ,:" ...CONVERSION COMPLETED":4:" [B] SAVE AS BINARY FILE":" [T] SAVE AS TEXT FILE" 6" [L] LIMIT LINE LENGTH":" [Q] QUIT"::8::ADRG kHBYTEBUFRADR256:BFILEADR5,HBYTE:OUT5,HBYTE:LIMIT1,HBYTEk n"APPLEWRITER FILE NAME ";FILE$ xFILE$""ĺD$"CATALOG":110 (FILE$,5)"TEXT."FILE$"TEXT."FILE$ D$"BLOAD"FILE$;",A";BUFRADR FILE$(FILE$,(FILE$)5)3 (Bk APPLEWRITER FILE CONVERTER BY TOM WILLIAMS AND VAL J GOLDING CALL -A.P.P.L.E. :: DEC. 1982 dD$(4):BUFRADR256((110)5):BFILEADRBUFRADR256:OUTBFILEADR55::LIMITBFILEADR82:LNG2:NDCHRLIMIT20:: iD$"BLOAD TRANSLATOR,A"BFILE D ܸx D - ܸx8`-0ݩ?ʥD EEE`   LDcpq` [` ~  L kNx`* x$50x*$50xLJJJJ`HHjf5 h $50x`HA>VDP (ED Z $0x8x D- ܸDD# H8`?E Vk *f???0xE Hh D#-EEE8` GHHH(jf5(  H Z(G FG HZXj 0x D$xxH` ( Zh ZL.xxH hh@(LH9LHH/Hh/ H-З( ܸ(& ¸$8 H` *Hm0M='+l> /+l   dL ŵ8ŵH ~(`  d ֠z#` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յ ` ŵBѵ-` ѵB-` ܫ XI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L  Ϡ跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls 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- ( ` ЍPRTWL ݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 <#+#*# *!# (!/ */ !$,$249249)7 $9&7 $8"*; $2(#' /!/!((#>) 04,3$3,$) !*!+' 7$3)7$1"*;80^ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?!*/!(!((! & ! & 1 424;<148) 7!!(! & ! & 1 424;) )2#&;#;<'ɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪ 緍i 8 `巬 췌`x (`(8`I`B` ` `>J>J>VU)?`8'x0|&HhHh ]@ŵLҦ]]LF L}BBL] X  `6 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`Eon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\ eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noLõĵL LLЦ  #-µµ( zegehtpjigh q Ql` z8L`MaEK@>ˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV @ NL   L` -e L գsr ࣭ml ࣭srL -µLЦ գ ze)rs zrsLq ] Qlr L̦ գ8gh ࣥhgL գ8LʨM ࣥˤLµH hLħõµ µõ͍Ҡİ ٍð ͍ð 占ð ððРİ Í Ԡ İ ͬ ԠǠð uW ԧ H h@ [_ /QSIRb_L`LLLL`ª`LQLYLeLXLeLee ўQH\(h0L& Ꝥ$`( R \ZLl8 ўR HH\`\Z[YS6`LxQɿu^Ӝu`".Q`pNФbptťܥm2<(-Py0\|66e<g< JJJJj귍hI  aUL@ kU8  L  Q^R(jQ0l^l\  wUY?AyC@B@B|ACLT$VXZdflpx|~**7777(*3]67V<<8:=???@#topmnU^_R ij^_lk 󅔆nmLY^^ȱ^ȱ^eȱ^e(ӊ0Цe^LA@@&E&&A@@&AA)߅CBBH&E&&A@B& ChLQhBAȌy8zx8v{v I7H7@)*AL@m{@AAA,+i(ˢ3Z@[A@ /@v wm{@8/e@@eAA3]ͥ@\Ɗi% @@` &&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]LF L}BBL] X  ` ̠͠ Ҡ٬̤ԠŠӠ` àŠŽԠԠŠŽ&ԠŠĠǠ`ЍӍԠƍ٠DZ٠DzDZDzРDZ٠Ң 獠Dz٠ 占DZ٠ ﬍àDZ 占àDzŠЍàDZàDzDZР ð İ ð ԠǠİDZՠÍDzՠō٠  Ԡ     u*`' +JJJJ ?\>m0M='+l> /+l   dL ŵ8ŵH ~(`  d ֠z#` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յ ` ŵBѵ-` ѵB-` ܫ XI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L  Ϡ跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls 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- ( &HHH L`ӠӠԮ z#?   ЮҠ àҠ ҠҠ ҮӠ  Ҡ Ҡ ̭àҮӠ ̭àҠ Ԡà̠ԠŮӠԠŠٮӠ٠ ٠ҮӠ ٠Ҡ  ՠǮƠҮӠҠàŠЮӠàŠРԠà̮Ӡ  -       8  - 1982  LjN^o the dir } $fillchar(dos_dir,sizeof(dos_dir),chr(0)); " { Set up VTOC } $dos_dir[0][ 1]:= 17; { Directory track } $dos_dir[0][ 2]:= 15; { Directory sector } $dos_dir[0][ 3]:= 3; { DOS version number } $dos_dir[0]s: array [0..15] of integer; " i: integer; " "begin { write_dos_dir } " gotoxy(8,0); $write(chr(eraseos),'Writing DOS directory...'); ${ Set up sector translation table } $trans[0]:=0; $for i:=1 to 14 do &trans[i]:=15-i; $trans[15]:=15; ${ Zer { }  {***********************************************************************}   procedure write_dos_dir;  "var $dos_dir: array [0..15] of packed array [0..255] of byte; $tran }  { WRITE_DOS_DIR }  { }  { Create a DOS directory and put it on the disk } cmd } $repeat &read(keyboard,cmd); &if cmd in ['a'..'z'] then cmd:=chr(ord(cmd)-32); $until cmd in ok; "end; { getcmd }   {***********************************************************************}  { to CMD }  { }  {***********************************************************************}   procedure getcmd(ok: set_of_char);  "begin { get { }  { GETCMD }  { }  { Get a character in OK in***************}   const "eraseol=29; { Ctrl-] } "eraseos=11; { Ctrl-K }   type "byte=0..255;  set_of_char=set of char;   var "cmd: char;   {***********************************************************************} Pascal directory would overwrite the DOS }  { system tracks on a DOS-formatted disk. }  { }  {******************************************************** }  { This program will create a bilingual disk that can be used by both }  { Pascal and DOS 3.3 without conflict. Must be used only on Pascal }  { formatted disks, since the  program bilingual;   {***********************************************************************}  { }  { BILINGUAL by Mat Davis, 17-Jan-82 }  {[ 6]:= 1; { Disk volume number } $dos_dir[0][39]:=122; { Track/Sector pairs } $dos_dir[0][48]:= 17; { Last allocation } $dos_dir[0][49]:=255; { Allocation direction } $dos_dir[0][52]:= 35; { Tracks/Disk } $dos_dir[0][53]:= 16; { Sectors/Track } $dos_dir[0][55]:= 1; { Bytes/Sector (High byte) } ${ Make free space map } $dos_dir[0][56]:=128; { Track 0, Sector 15 } $dos_iteln; $writeln(chr(7),'*** WARNING ***',chr(7)); $writeln('This will lose ALL Pascal files that'); $writeln(' are on the disk.'); $write('Continue? (Yes/No) '); $readln(answer); $ ${ Convert ANSWER to upper case } $ $if length(answer)>0 then &f }  {***********************************************************************}   procedure create;  "var $answer: string; " i: integer; " "begin { create } " page(output); $writeln('Create:'); $wr { CREATE }  { }  { Create the disk }  { and write it } $ $unitwrite(5,dir_buffer,2048,2); "end; { zero_pascal_dir }   {***********************************************************************}  { } acked array [0..2047] of byte; " "begin { zero_pascal_dir } $gotoxy(8,0); $write(chr(eraseos),'Zeroing directory...');  ${ Load it... } $ $unitread(5,dir_buffer,2048,2); $ ${ zero it... } $ $fillchar(dir_buffer[16],2048-16,chr(0)); $ ${ ry }  { }  {***********************************************************************}   procedure zero_pascal_dir; $ "var $dir_buffer: p { }  { ZERO_PASCAL_DIR }  { }  { Clear the Pascal directo$end; { if } $ ${ Set type of DOS_3.3_FILES to bad } $ $dir_buffer[30]:=1; $ ${ Write directory } $ $unitwrite(5,dir_buffer,512,2); "end; { create_dos_file }   {***********************************************************************} system won't crunch } ${ it when it is closed } $ $junk:=blockwrite(f,dir_buffer,1,137); $close(f,lock); " ${ Read Pascal directory } $ $unitread(5,dir_buffer,512,2); $if dir_buffer[30]<>5 then begin &writeln('ERROR - BYTE 30 <> 5'); &halt; unk: integer; " "begin { create_dos_file } $gotoxy(8,0); $write(chr(eraseos),'Creating DOS file...'); $ ${ Create DOS_3.3_FILES from block 6 through 143 } $ $rewrite(f,'#5:DOS_3.3_FILES[138]'); $ ${ Write to the last block so the operating  { }  {***********************************************************************}   procedure create_dos_file;  "var $dir_buffer: packed array [0..511] of byte; " f: file; " j }  { }  { Create the "bad" file for the DOS VTOC, directory, and files } itwrite(5,dos_dir,4096,136); "end; { write_dos_dir }   {***********************************************************************}  { }  { CREATE_DOS_FILE dir[0][57]:= 14; { Track 0, Sectors 1..3 } $for i:=60 to 123 do &dos_dir[0][i]:=255; " { Link directory sectors } $for i:=15 downto 2 do begin &dos_dir[trans[i]][1]:=17; &dos_dir[trans[i]][2]:=i-1; " end; { for } ${ Write it to disk } $unor i:=1 to length(answer) do (if answer[i] in ['a'..'z'] then answer[i]:=chr(ord(answer[i])-32); $if answer<>'YES' then exit(create); " gotoxy(0,1); $writeln(chr(eraseos)); $writeln('Put Pascal disk in unit #5'); $write('Press to create'); $getcmd([' ']); $zero_pascal_dir; " create_dos_file; $write_dos_dir; " gotoxy(8,0); $writeln(chr(eraseos)); $writeln; $writeln('Bilingual disk created'); "end; { create }   begin { bilingual }  repeat N^L**צYES צPut Pascal disk in unit #5צPress to create Bilingual disk createdVצBilingual: C(reate, Q(uit [1.0]CáQá\ fl"  are on the disk.Continue? (Yes/No) PšB*+*+ȡ2*** **צYES צPut Pascal disk in unit #5צPress to create Bilingual disk createdVצ*** WARNING ***$This will lose ALL Pascal files that are on the disk.Continue? (Yes/No) PšB*+*+ȡ2*** ˡ*ERROR - BYTE 30 <> 5'ƁR צZeroing directory... ^ Create:̈ʈʈġPƈʈƈʈʈʈ̈Lji$ <ƁƂ- Creating DOS file...Ɓ#5:DOS_3.3_FILES[138]Ɓlj́)Ɓ'z014#578ǀ9<̈{̈ʈʈȡ$ʈʈ̈̈ 2 : צWriting DOS directory...ƈ̈̈ʈʈȡƈʈʈʈ̈ƈ BdBILINGUA $gotoxy(0,0); $write(chr(eraseol),'Bilingual: C(reate, Q(uit [1.0]');  getcmd(['C','Q']); " if cmd='C' then create; "until cmd='Q';  end. { bilingual }  צPut צ : in drive 4צPress E ; E  ȡReading F  -F E FF #EFF #צWriting F  -F E FF #EFF #  E ׶ Backup: From unit #5 to #4EצInsert disk in drive 4צPress E  ȡReading FBBACKUP t quit unit boot disk is restored } " "repeat $readln(keyboard); " unitread(4,buffer,256,2); $moveleft(buffer[3],vol,8); "until vol=bootvol; "page(output);  end. { backup }  "{ Restore destination volume name } " "unitread(4,buffer,256,2); "moveleft(vol,buffer[3],8); "unitwrite(4,buffer,256,2); "gotoxy(0,1); "writeln(' '); "writeln('Put ',bootvol,': in drive 4'); "write('Press '); " "{ Don'do it in two 17.5k blocks } $ $unitread(5,buffer,17920,70*i); $unitread(5,buffer[8960],17920,70*i+35); $gotoxy(0,1); $write('Writing ',70*i:3,'-',70*i+69:3); $unitwrite(4,buffer,17920,70*i); $unitwrite(4,buffer[8960],17920,70*i+35); "end; { for } "unitread(4,buffer,256,2); " "{ Save it in VOL } " "moveleft(buffer[3],vol,8); " "{ Copy disks 70 blocks at a time } " "for i:=0 to 3 do begin $gotoxy(0,1); $write('Reading ',70*i:3,'-',70*i+69:3); $ ${ Cannot read more than 32k at a time, so volume name } " "unitread(4,buffer,256,2); " "{ Save it in BOOTVOL } " "moveleft(buffer[3],bootvol,8); "writeln; "writeln('Insert disk in drive 4'); "write('Press '); "readln(keyboard); "writeln; " "{ Get destination volume name } " ****************************************}   var "{ 35k copy buffer } "buffer: packed array [0..17919] of integer;  bootvol,vol: string[7]; "i: integer;   begin { backup } "page(output); "writeln('Backup: From unit #5 to #4'); " "{ Get boot }  { Backup disk from unit 5 to unit 4 }  { }  {*******************************  program backup;   {***********************************************************************}  { }  { BACKUP by Mat Davis, 05-Jan-82 }  {  -F E FF #EFF #צWriting F  -F E FF #EFF #  E  { CREATE }  { }  { Create the disk }  { צ*** WARNING ***$This will lose ALL Pascal files that are on the disk.Continue? (Yes/No) PšB*+*+ȡ2*** ˡ*ERROR - BYTE 30 <> 5'ƁR צZeroing directory... ^ Create:̈ʈʈġPƈʈƈʈʈʈ̈Lji$ <ƁƂ- Creating DOS file...Ɓ#5:DOS_3.3_FILES[138]Ɓlj́)Ɓ'z014#578ǀ9<̈{̈ʈʈȡ$ʈʈ̈̈ 2 : צWriting DOS directory...ƈ̈̈ʈʈȡƈʈʈʈ̈ƈ BdBILINGUA $gotoxy(0,0); $write(chr(eraseol),'Bilingual: C(reate, Q(uit [1.0]');  getcmd(['C','Q']); " if cmd='C' then create; "until cmd='Q';  end. { bilingual }  $write('Press to create'); $getcmd([' ']); $zero_pascal_dir; " create_dos_file; $write_dos_dir; " gotoxy(8,0); $writeln(chr(eraseos)); $writeln; $writeln('Bilingual disk created'); "end; { create }   begin { bilingual }  repeat or i:=1 to length(answer) do (if answer[i] in ['a'..'z'] then answer[i]:=chr(ord(answer[i])-32); $if answer<>'YES' then exit(create); " gotoxy(0,1); $writeln(chr(eraseos)); $writeln('Put Pascal disk in unit #5'); iteln; $writeln(chr(7),'*** WARNING ***',chr(7)); $writeln('This will lose ALL Pascal files that'); $writeln(' are on the disk.'); $write('Continue? (Yes/No) '); $readln(answer); $ ${ Convert ANSWER to upper case } $ $if length(answer)>0 then &f }  {***********************************************************************}   procedure create;  "var $answer: string; " i: integer; " "begin { create } " page(output); $writeln('Create:'); $wr**צYES צPut Pascal disk in unit #5צPress to create Bilingual disk createdVצBilingual: C(reate, Q(uit [1.0]CáQá\ fl"  are on the disk.Continue? (Yes/No) PšB*+*+ȡ2*** BACKUP t quit unit boot disk is restored } " "repeat $readln(keyboard); " unitread(4,buffer,256,2); $moveleft(buffer[3],vol,8); "until vol=bootvol; "page(output);  end. { backup }  "{ Restore destination volume name } " "unitread(4,buffer,256,2); "moveleft(vol,buffer[3],8); "unitwrite(4,buffer,256,2); "gotoxy(0,1); "writeln(' '); "writeln('Put ',bootvol,': in drive 4'); "write('Press '); " "{ Don'do it in two 17.5k blocks } $ $unitread(5,buffer,17920,70*i); $unitread(5,buffer[8960],17920,70*i+35); $gotoxy(0,1); $write('Writing ',70*i:3,'-',70*i+69:3); $unitwrite(4,buffer,17920,70*i); $unitwrite(4,buffer[8960],17920,70*i+35); "end; { for } "unitread(4,buffer,256,2); " "{ Save it in VOL } " "moveleft(buffer[3],vol,8); " "{ Copy disks 70 blocks at a time } " "for i:=0 to 3 do begin $gotoxy(0,1); $write('Reading ',70*i:3,'-',70*i+69:3); $ ${ Cannot read more than 32k at a time, so volume name } " "unitread(4,buffer,256,2); " "{ Save it in BOOTVOL } " "moveleft(buffer[3],bootvol,8); "writeln; "writeln('Insert disk in drive 4'); "write('Press '); "readln(keyboard); "writeln; " "{ Get destination volume name } " ****************************************}   var "{ 35k copy buffer } "buffer: packed array [0..17919] of integer;  bootvol,vol: string[7]; "i: integer;   begin { backup } "page(output); "writeln('Backup: From unit #5 to #4'); " "{ Get boot }  { Backup disk from unit 5 to unit 4 }  { }  {*******************************  program backup;   {***********************************************************************}  { }  { BACKUP by Mat Davis, 05-Jan-82 }  { N^L**צYES צPut Pascal disk in unit #5צPress to create Bilingual disk createdVB׶ Backup: From unit #5 to #4EצInsert disk in drive 4צPress E  ȡReading Frmation the magazine always has, as well as the many ,ads for Apple products. , ,Sincerely, , , , , ,Mat Davis tored. If you are interested in that program, please ,let me know and I will be glad to write a short article on ,it. ,Thanks again for the interest, and keep up the great work ,with CALL-A.P.P.L.E. I enjoy the kind of in-depth ,info,initially and will not exit until that volume is restored. ,Since the system requires the volume to remain mounted at ,the Command level, it is a good idea for any program that ,might result in that volume being removed to insure that it ,is resa 35k buffer, it can copy an entire diskette in four ,transfers, making it five to ten seconds faster than the ,Filer's T(ransfer command. It has one feature that I have ,not seen in other programs: it gets the boot volume ID files of ,patterns that filled up the respective areas and then ,reading the files to verify that there was no interference. , ,Also on the disk is a program called BACKUP, which I have ,written for my own use in backing up disks. Since it uses ,lighted that you are ,interested in it, and will be happy to do whatever I can to ,assist you with the article. Please feel free to suggest ,any improvements to it. The program was thoroughly checked ,out from both the Pascal and DOS sides by writing, ,P.O. Box 46 ,University, AL 35486 ,July 26, 1982 , ,Val J. Golding ,Editorial Office ,5606 California Ave. SW ,Seattle, WA 98136 ,Sir: , ,Here is the new copy of my program BILINGUAL and the ,artical describing it. I am de H ^  -F E FF #EFF #צWriting F  -F E FF #EFF #  E צPut צ : in drive 4צPress E ; E  ȡReading F  -F E FF #EFF #צWriting F  -F E FF #EFF #  E