LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)TABLE INFORMATIONCI4Current date is Hd*Bƣed on U.  P ? Apple //X @{BB@6bBB@ijpbZb ԳԳ@dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@L$< $ \ &PASCALSYUSERPROGINITIALIGETCMD UCSDFILE EXTFILEMEXTFILEMš]6W.TEXTת .CODEתš!!Ȅ!!P!x!P ( >ˡ 뚹  צ`&Ꟛ צ.CODE$.BACKׯצ.ASCIaF*:˄/˄&ڲ#áצ:áD6>,ת(.Ä !á צ[š!!!(4צ4848@צ/44צ:.Í4šצ/44š>444ȓ4.484854צ/46444ȩ4å.ˍo˩4ń\88P.TEXTׯ74צ:4*å#Í%Í4ōM4á@4Pá/á *á?@%áΪ@:ץ44ȡAá+#Ó4צ/ˍ4@תP4á7\5P6ת@ת,š[ץ44š7]ץ114á7g14š^743355 5073331é731é14Ä3*á74147Í4!ץ44á4" ,Í ˫T \$ á (ȡ*龫 ȡazȄaA3>,ء4ت /6: á :@4 @ A P @6d2& |" "%: ˡ J#鿥  &'azȄaAB%Type to continue% " ġ2 2fj <32 &ˡ 2 26!ˡ 2Rˡ 2=˄+&ȡ   ,á- .ت/S# /أ d-, P# /أd-, I# /أ -.@0! áצ IO error # / d-צ Exec err # /d-.  !"#$%&'()*+,-./0123456789:>?@O^^PROTOTYPE RUNTIME SYSTEM.PASCALš#ńW   0  𓍡ńȄ (˫/ ˡ   Í wˡ ˡ ! ˡ(  ,  & "ë 넡6 & Í< š˄ u 8 ÍáN áEF > 섡/ F >"ˡFFFFF>N >=" "ˡ v  á ń# Ȅ ꚹ~á^"Ä<7=+ > ˍ >  BFF >"ˡFFTFPd= šš > "ˡ "Lá"  që   N "ˡ  )á á áˡ  šá áK<"á83 ɻ  X\Hب&̂(ʂ( ʂ(ʂ(ʂ($ʂ(̂)ʂ)!&ʂ)ʂ)ʂ($ʂ($ĻD<ꓡ"á삫ûš > "ˡ˫   ɡĻ2꓄ > >"ˡ ꄓr<Lá > "á=ˡ땏ˡ 3ء #צ ۂ #ء >  >݂"ˡ ޕ݂ނɡ  <Ąɡ낫š ꓡ š땫@ >'@ ;> )#%0ë>>@@@| V  )šá4?š?VP>:+>P:X;髁@@@˄@#@ˡ @@#>@@ O@ ˡ? @ ?>@ > ? @ ?>쓡 @ ?>@ > á@ > :@ >:@ >:![L&á'횩)ˡ8 >#> \ˡآآآ*:UU šC+P VVPVU _aaO@á ( ˄ ë 9:ץaššë 铄˄dS79P7 a(7 آآ-? :آ&آ#> ?  ڢڢצڢ ڢ  آأأآآآ 9Pš8P8>뫀 8a a:a aa>ʁ@ צ" ˄ Ʉ8>ʁ@"ؚ"álʁ@&ʁ@ > "áVʁ@ ʁ@"Ä:ʁ@铡-@ ʁ@ >ʁ@ @>ʁ@ @>ʁ@{ 7( آڢآآ"٢ڢ٣ PSYSTEMPW\PIj 8́@́AƁAa@ƁAǐƁAP:ץaá:/Pa8ʁ@ >"á"ʁ@ˡ ʁ@ʁ@ʁ@ צʁ@ ʁ@á áÄڡɡá ɡ 럚肚`諁6"  >  >b) á إaaġ00000תȡ  ڕ0ق ꫀ𩀄򩀄"7ũ  @š& "ˡ鿩/ȡšš  > ; ɡ'áצ-32768 ` 逫-ġ@00ń0ˡ ɡc ȡꫀZš "1諀멀ȡ!E ʃE ʃE  ʃEʃD̃EʃEʃEʃEʃEʃEʃEʃEʃE  ʃE 4$Ƃ+̂dʂdȡ+٤ ̂eʂeתʂeʂeܣʃDܢʃD%ܢ% ʃD>ʃDʃD+ >&?̃DʃDʃDʃDʃD%̃E ʃEʃEʃEʃEʃE ʃEʃE ʃ٢ š٢ ٢٢ 4$  ؗ(/  ؗ(Ƃ+ ƃ*SYSTEM.MISCINFOתPƃ"á̃DܢʃDʃDܢʃD(7SYSPASCAL/RUNSYS.TEXT*:>tZt^+ZJtZt^+Z |LPRt^DEVO/SYSPASCALtJJ|r;t^JJ;t^; ~UUxS ^!SECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,*No user programתP4text? [C Compiling... ~UUkUSYSPASCAL/RUNSYS.CODE:JJzׯ{ y@צ>>  OQSUWY[] ''A>zˡ@*B;̀̀آA'ʀˡBʀáʀá>??>D;TPVvP jLV~ &"#n####&XHv4  R: thd z  `"B$>"z>@t!-ǀ@? ? צPEz>ׯ{ y@צ>>  OQSUWY[] ''A>zˡ@*B;̀̀آA'ʀˡBʀáʀá>??>D;T ,+z>>"ȡ{ˡo!צError # . closing FILE or DEVICE opened by last program$>"z>@t!-ǀ@? ? צPE š:X fˡ ؞!؟?!? ?ˡMx?š3ġ  ?w?v?ádt J~*!ˡ !蟚dt*ńȄ4šáRתPńȄ ,ń.áš蕿@šQȡ2é000+-Í-ë0^ 000á'3á 000 {]\ ȡ3"#쾿 > 9dá. 6áá:00áQP 0á0 뾿 9šš > | á1á3  ] |Nš  Ȅ٤ ̂d ʂdʂd >ʂd׷ړ ؞&"ڡؿʂdá ʂd ʂd.áʂdʂdʂd ˻عcʂdצCONSOLEjʂdSYSTERMתYʂdצGRAPHICHʂdPRINTERת7ʂdצREMIN(ʂdREMOUTתk\M B3&ʂddʂdضáSʂdšJ?ʂd1Ƃ;צ*SYSTEM.STARTUP.P1 Ƃ;P צPGתPˡǀ?P:ײP)@$$1v*ƁP!1Execution aborted. Put in system disk and reboot.Td ءPšP T6ˡ!PPƂ/ƂPƂ̂iƂiƂPƂiƁǠƂiP?̂e?>ʂe?>"ˡ$Unable to open ̂iv̂jʂjʂj1ʂj ʂj 1> 1Ɓ1ƀƀƀ ired library files are not present 3L?Required intrinsic(s) not available (possible bad library file)X PުPvƁnPvƁΪPƂ;PƂ;ƂƁƂgƂf̂dƂPʂd צP:Ƃá:+3w w+w+b43  n 4ńV54̂.5ʂ.ȡ;5575) ʂ 5554 Ƃצ*SYSTEM.LIBRARYPxƂ ʂx+3:-Error: RequȡIP  ٲ7)؞7)ؿ؂پ$áڸ444Z ȡ+ؾaġ +ز+ؾ $ 2تPww"á\w++L+IÄ)++LIBRARY FILES:ׯ w  " تP"á 3 Gצ&Warning: Cannot open the library file + <+צ Warning: צ is not usedR پ$ò$ÄZ11خu تP"á T n$2$ $š$$צ.CODE $$ š$$ צ:š/:n@A$P.LIBTPZ ȡ6ݤˡ&ޢ`ݤۼޢݤ> Xأأ أ > ,11ȡd1d1ٲ ٲ  ٗ 1!&ءdt >? ? ޢ ȡڤ ˡpݢڤ?Xܢ0ۤ ݢ`ڤáޣ!ݢ`ڤˡ  ޣ ר d't!צPΦתP22>  pq%sy!{P{ %צSystem re-initialized& j28h4rP  צCONSOLE:(#צSYSTERM:(>z ë0???JanFebMarAprMayJunJulAugSepOctNovDec?????????ר d't!צPΦתP22>  pq%sy!{P{ %צSystem re-initialized& j28h4 צCONSOLE:(#צSYSTERM:(>z ë0???JanFebMarAprMayJunJulAugSepOctNovDec?????????$  wx55ȡ"5555vu *?    H2צ*צ:צ??"?[צ0Bצ0tצ0,Vb& |"̂iƂiƂPƂiƁǠƂiP?̂e?>ʂe?>"ˡ$Unable to open ̂iv̂jʂjʂj1ʂj ʂj 1> 1Ɓ1ƀƀƀ ( ́ ́ ʁ ʁ צ ʁ ʁ ˄ʁ @˄ʁ ˄3 ʁ ! ʁ Þ"Ä  = &)ʁ á ʁ   "ń,ʁ !  ʁ ޾ٳ ا?ǀǓ ا?ǀ:1!&ÍXÍc(ÍEÍ QáG'á@=+á3@á)Fá Gá Há >z? ؚ21!$4YP>3$M l 0 nL T "&"ˡ.&"ˡ$  " áP$ނ š: -Ʉ  $ $ $šš$%&$۞$$ۂۂەߓf%%&"ˡ|ɡ& & "ˡN$ߡá4 á,á"$࣡ $ $šš&$۞$$ۂۂە R%%&"ˡ.&"ˡ$  " áP$ނ š: - ݓۤ ۤ Äݓ š ۤ  ɍX ޚ "ˡ8ˡޚ   dܓڢڢ   "ġ$ނ#˄ɡۤ  dáߢ  dá ߢ &ޣ˄ ߢ  ߢ ۤ ߢޣ"ߢ ޣ#ޢ ޢۤ ޢ á٢á( ת$&(0!    š ڪ 0ޢߢšáޢޣߢ  dޣ"ޢ#ޣ$)ޣߢ  dÍÍޢ  ܓۤ ۤ Äܓۤ  dÄÍߢۢڤ   ڪP44444444"ߚ44 4 4!4"d4$4% 4#44#4á74-4& 4&44&4T ڢڢ& ڢ&ڣڣڢ$ڢڣ"ڢÄڢá     á ۢڤ š sá ŶÄ)ڤ ܢɡ ڶá  á ġMáš6 ܂ۻݪ d ( ڣ"ڣ١ڢڣڢ#ڣ$ڣáڣ$ڣ#š ڢ#ڣ$ڣ%fڢ%ڢ١ڢ&ڣ$ڣ$ ڢ&ڣڣڢÄڣ% ܣġ ۤ ٤ ڨ ܢܣ*@ٕ۶š ڸ۸۶ š۸ ڸ:   ȡQ  ȡ   ȡ? ȡ  ġܡ=" áܡ ܓצ $  ޓ(ݤ ߢܯߢ  d˯7 H ۣȡڤ  ۣ צۣۢ0H dō (ܓ(*(ܡ )*) *)* ܓ)ת) (!($IKPz(  Íܡ  , Ąܓ"á    (( )(á (((ܡ( **(( *Ä(*Ä**Ȅ*Ą*MȄ*)v*ȡO(ۤ +++ō++ɍ+ ō+ ȍ+ 5٪P,6YتPš  ȡ޾ *:Í#Í*á ޾:ˍ צ:P?P#áL۾ ݏ۾0 4ޕ P5:Ä:P.áš: צ/˄5ȡ0ƀƀP̀ʀȡ0ܾaġ 00ܾ 87CONSOLE1:7SYSTERM2:7GRAPHIC3:7PRINTER6:5REMIN7:6REMOUT8ת802Ȅ&0á݂0 4 6ȡ4 0.  á{@H?hhhhhhjWȑ jȑ(!Hh0?H&h*0HH`?  hh *h < L+*(" B?  hh * <` hhL&ȑ`W CL& hʈL&fi` hhHj*H*HHL&SOS-PARAM-TABLE߻5޻5ݻ5ܻ56; ; ;  <  3 5=(=2hx? ?"? ? ?  . /202hh%hh%HH`%ʎ%HHXWɡ?#X?#XW?"XWš?#X?#XW?"X?"W?"?#VVVU2 R2 ػ%2تP3+&+2T'á  ܚ2"  P ٨ ب5 5#0á-=?#?"?#?"?"?"002 ,٪PتPZ,PƀPZ3ƀ3ZƀU$UáVV?"ɡYV?"YB?#V,á?#VZ,,ZYYV?#VVY,W?"Wǐš ?"VUiV, ;?  ō> ? 0*2 )2ܪP/ۻ0/ٻ1 23/3"32\ 6۪Pá? ?"11ǐȡs. .ٻ..3P33? 223.20;> > ;>c> 0Ʉ  廹> ō> 0 0,?? 19 c? ??á>0 ;? ?,2-2ȡ ނ0ō>- >>+2ȡ09ō>0 ˡ c> >>0Ʉ廹> ٪P3-, ,á55תآ1آ 0 5 6633 ȡ 6363 dȡ 6 3 65 4/ á5  5 -5 ---525 ˡ 5. 5.2,2h  ػ!2 jڝ?"ɡ6?#?#ھá?#٧?#ڝ?"ٕ?"ڕ?"?J=á=2áˡL2" ۝?"ܓ?#۾á ?#ܡ$?#RšR?#ئתPVdá;<:PP#PC/š:7צ:P; ./Ad ?3 1ˡI á+ݢˡڦתRáצ!צ2ڧ? š ǀڧ?ǀǀ Ǔš@:צ!á צ!P$;ئ00000תP  0ڂȡ۾0Ʉ< R<87  áG:/ |77áBš2@/áf9šoá+ھ.á ھ/á 2á9&á9á  áán8ڧ? á 6ȡ/ݾ!á ݾ /P޾ /P 5RR3ۂɄݓVá(۾'ۂ@n ȑL54)&#!  L?  hhhh * <Ű 깷LCB1.-,*)&# ^?  hhL  ?  hhhh * <hhʰ 쭷ȑLED<:520.-+*)$ f?  hh * <hhL'&$"<?  hhhhHH * <İ ȑjȑ*ȑLedbROLJI |?  hh왺procedure Pascal_Seg ( Desir_Addr: p_addr; Len: real; Id: m_byte; :var Seg_Name: handle ); procedure Video_Seg ( Domain_Size: integer; var Seg_Name: handle );   {-------Locking Memory Segments-----------------}  procedure Lock_Seg ( Segure Alloc_Seg ( Desir_Len: real; Id: m_byte; var Return_Len: real; :var Seg_Name: handle ); :'')PBBINTEGER xxtREAL  S  {-------Initialization and Termination----------}  procedure Open_Memory ( NewOpen: boolean; Domain_Size, Segments: integer; :var Ret_Size, Ret_Segs: integer );  procedure Close_Memory;  {-------Memory Allocation-----------------------} proced Record :Address: x_addr; :Len: real; :Id: m_byte; :Relocation: m_byte 8end; ( (error_rec= packed Record :Unit_Number: m_byte; :Proc_Number: m_byte; :Err_Number: m_byte; :Severity: Warn..Fatal; 8end; 8 ( const Null_handle= 0; (Warn= 1; (Fatal= 127;   type handle= integer; (m_byte= 0..255; (p_addr= integer; ( (x_addr= Record 8 TwoByte: integer; :Extend: m_byte; 8end; ( (seg_rec= ;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~/&'gg&)bf` Vim sHMEMORYMARASTERCORASTERCORASTERFORASTERFOAPPLESTULONGINTIPASCALIO lrǰȑHH`0&# L? zD<F`"tL>nRJRl: * ( 2  R     6&>@). Calls the SOS routine GET_MARK.}  :?  hhҰ L0? hhhh Ӱ HHL#6?e ?hhhhhhưȑHH`# D?hhhhhhhh   * <L*?   d *hhhhL#"!6?   * <L*?   * <b L%$:?   * <c L%$j** * <LedbVRQPONMLKJIHFDCA>963?  hhhhhhꍴ0 ȩhh * <Ȱ ȩLa`XMJ0-*('& ~? * <LGF=:43-,+*%" f?   d *hhhhL#"!6?  hhhhϰ j쭳j*쭲L=<40.-,% V?  hhhh왺_Name: handle ); procedure Unlock_Seg ( Seg_Name: handle );   {-------Releasing Memory------------------------}  procedure Release_Seg ( Seg_Name: handle ); {-------Inquiries-------------------------------} procedure Seg_Info ( Seg_Name: handle; var Info: seg_rec );  procedure Handle_x_addr ( Seg_Name: handle; var Address: x_addr );  function RootHandle: handle;  function NextHandle: handle;  function Get_p_addr ( var Name ): p_addr;  procedure Get_x_addr ( var Name; w%L w%L   L8戭 138 L ; ;L     w%L w%L  w%L 8 ( )L&  8∭ 8  *p      %    ('ˡ ˡ*(ܟá!C#B[2" h,h-hhhhhhhhhhȑ% J& w%L w%L *L  w%~ *u  ~1GG [|) %      )>* G š % '۟˄á   ܢܢ ܢ áظ٢ ؚe $ š(ġ$#&%ˡ  &&' &(ۨڨ@GGG H ?! š( á   6 J#   ˄!G G  C| /!/ !@ !GGG F G X/? @ @ GG6ڳAڳBسLA :/ۨڨ?Pá ɡPá ɡG VG----------------}  function Error_Flag: boolean; function Fatal_Error: boolean; procedure Set_Error ( Error: error_rec ); procedure Get_Error ( var Error: error_rec );  procedure Clear_Error;  {-------Version Control-------------------------} function Mem_Version: real;  implementation E ure Seg_FillByte ( Seg: handle; Offset, LenBytes: real; Value: m_byte );   {-------Consolidating Free Space----------------}   procedure Crunch;   {-------Error Handling--------------------------}  function Error_Flag: boolean; function Fatal_Error: boolean; procedure Set_Error ( Error: error_rec ); procedure Get_Error ( var Error: error_rec );  procedure Clear_Error;  {-------Version Control---------------------:Destin_Seg: handle; Destin_Offset, :LenBytes: real );  procedure Seg_FillByte ( Seg: handle; Offset, LenBytes: real; Value: m_byte );   {-------Consolidating Free Space----------------}   procedure Crunch;   {-------Error Handling---------- var Address: x_addr );  {-------Copying and Filling Memory--------------} procedure Gen_Copy ( Source, Destination: x_addr; LenBytes: real ); procedure Seg_Copy ( Source_Seg: handle; Source_Offset: real;  ȩȩȩ  e 8mm 8逅Llmm 8逅LL$&&  w%%) %-H,H`A`C`B%`M  MLJLL`<:86428逍vwLwwumguvmhv8逍vwLwwJ K 8v  wpH tI 8 sqpL(w&L%v%L%u$nqL2j2i2kkmiklmjl8逍lmLommkmiklmjl ; !: LL; `h%"NL?.+*%jgbSh,h-h@"hA" J& %L  w%L^ "LQ  / B"LQ  /L^nopqrghtwrmgusmhvhh U hh J&%L  w%L) LL LȥL w%L w%ȑ-H,H`< = !  = +< *('L `: ; ! &+%#$]cd  w%L=  w%L=efLEefeȭf-H,H`\ZG&  tqnmjifb${Hh,h-hhhhhhh,h-hhhYhZ J&%L  w%L=< = ! < *= + w% = $%ߥ&ɀ٩cYdndnc(d'c w%L=$[8'c'(d($mc$%md% 8逅%&L&&$mc$%md% 8逅%&L&&  /  w%L=[\jb]OGB4/,)|ngf=:41#lhZ80P9LA98~}ytLI=:7\W 4t`$0`$`&&&`ffffff` @ & * 8f '8醅 8&&& &F fff   `  ` F fff 0 && & f j f`RPC@=%7 22 ȥ!L`5 6 9  !  )I102ȱ022031" #! 8` ! 1 e02 e10$ "!#0213` "!#0213* +! ! 1 e02 e10$('*+'( 8 `> ? ! > ? 8c ( b '*+'( 8b c  `5 6 9 Lj e 1 e2 eEFL< = ! *< += L 8 w%   IJ !ȥȥȥ  LCd e LS KLȥL< w%L w%d e LS ȑ-H,H`> ? ! > ?  8;*+ 1 e2 eGȱHH G𶐴(L'LL$8'E'(F(   Lee 8逅Lee 8逅L68EF iLW8EF iLxyvsP h,h-hhhhhJhKhhhhhh U LL NHMH-H,H`FD JH;85/nh,h-hhhhhChDhhhh E Fd % J&L  w%L7 < = ! EF 8< *= +{xwtnod@?:*)ZY& CB;32)h,h-L % J&j d q  ~ ѭ21 2 7   w%-H,H`E`@`vutonmldME=-(~{xuspmjg^[ZYXWVSPK?9876543210/.-,+*)('&%$#"!   }gdaZYXWROHGFEDC?:,$  |8逍lmLmmmtLlsLkrono LYL^poLqnL= < < = ! nL &wL%vL$uL'e(fo /Lz'e(e z / LYzPee 8逅Lee 8逅Lxy LYL^+L*LLQoL^z< = !  &m$e'k%e(l8逍lmLmmke'kle(l8逍lmL<mmmtLClsLCkrLCge''he(( z'(n'me' Uses {$u *memory/memory.man.code } Memory_Manager; const S_Black= 0; S_Magenta= 1; S_DarkBlue= 2; S_Lavender= 3; S_DarkGreen= 4; S_Grey1= 5; S_MediumBlue= 6; S_LightBlue= ( $020 (  ; ; Zero the head nodes first ; (ldy #1f ;Be sure to leave node 0 alone (lda #0  $005 sta @Xaddr0,y (dey (cpy #7 (bne $005 ( (ldy #0e ;Allocated segs (lda A"?<Ph,h-hh%)%-H,H`2%)%`  !!!!!""b$"%%xBL&#&B4#BP T#P$T%ztF :4>&f /*;No $010 lda GrafSeg,y (sta @Xaddr0,y (dey (bpl $010-H,H`64)%9Th,h-hhhhH%H-H,H`*h,h-hh) NN-H,H`NMOP Q`C?.-,)lh,h- J&% )<=8 ȑ) ȑ-H,H`% " w%L^  B"LY) e) L^ w%L^ w%-H,H`WD90)#pnhed_[VRQ@:4 h,h-h@"hA"=$ J&%L#2h,h-hhhh J&-H,H` h,h-hhh@hA J&@ȭA)ȥȩ64-H,H`9632Ph,h-hhhh> ? !  # d3  # d" (H'H #m# ##m##L]HH-H,H`? + > *``XI'wtqpoe^XMLKJIH94h,h-h@"hA"e J&%L  w%L^,H`> ? !  ('> *? +L``: ; !  &&%$: *; +L``   l%743.#}v]Xxh,h-hhhh> ? !  (H'H53 %L  w%LO " w%LO$ȥ%ȥ&-H,H`(PNMJ@;72rh,h-hhhh J& %L  w%L  w%L$ȥ%ȥ&ȩ)ȩ  L'(  ȥȥȥ )ȩL w%-H^hhhhhhhh U hh J&%L  w%LɁ)Lk欫L̫HH`zZROJ41.* h,h-hhh@"hA" J&Ɂ)LxeeɁ)L.Ү `meG/,){xG-*)$   w%L  w%LɁ)LɁ)L HH`ɀ Ɇ0L` LG&ڬLLeemjif^]\[ZYXUTSPONKID=60+&{+(.   W0-*)}|{%&&hhhhhh hhhh J&%L  w%L U >;:983-*)(&%$#"!~}|yxwtsronk_^]ZWVSP<930-*'$!{srqpo(mf( z'(  / LYzL^ee 8逅Lee 8逅Lxy zL^ee 8逅Lee 8逅L= L^+L*L w%L^ w%-H,H`]WK 7; S_Brown= 8; S_Orange= 9; S_Grey2= 10; S_Pink= 11; S_Green= 12; S_Yellow= 13; S_Aqua= 14; S_White= 15; Type screencolor = integer; gmode = ( BW280, CP280, BW560, COL140, BitMap, NibbleMap ); linearMap = BitMap..NibbleMap; gpage = integer; { 1..3 for Screen modes } pmode = ( Store, Overlay, Invert, Erase, :NegStore, NegOverlay, N {-------Text Primitives-----------------} procedure R_Char ( Ch: char ); procedure R_String ( TextString: string ); procedure R_LF ( Rows: real );  {-------Solid Fill Primitives-----------} procedure Fill_Vport; procedure Fill_Re-----Line Drawing Attributes---------} procedure Pen_Color ( Color: screencolor ); procedure Pen_Mode ( Mode: pmode );  {-------Pen Inquiries-------------------} function G_Pen_X: real; function G_Pen_Y: real; ( X,Y: real ); procedure R_Move_To ( dX,dY: real ); procedure R_Line_To ( dX,dY: real ); procedure R_Dot_At ( dX,dY: real ); procedure FrameRect ( Bounds: rect ); procedure P_Gon ( Nvertices: integer; var Vertices );  {--  {-------Setting the Viewport------------} procedure Max_Vport; procedure Vport ( Bounds: rect );  {-------Line Drawing Primitives---------} procedure Move_To ( X,Y: real ); procedure Line_To ( X,Y: real ); procedure Dot_At procedure Current_Map ( Map: pixelmap ); procedure Grafix_Mode ( Mode: gmode ); procedure Grafix_Page ( Page: gpage );  {-------Screen Video Control------------} procedure Grafix_On; procedure Text_On; procedure Screen_Off; procedure Screen_On; pixelmap; Cur_RState: rcore_state;  {-------Initialization and Termination--} procedure Open_RCore ( Mode: gmode; Pages: gpage ); procedure Close_RCore;  {-------Directing Graphical Output------} ment } C_Grafix_On: boolean; { Current Video on/off } C_CharSize: point; { Current Character Size } end; var ScreenMap: pixelmap; Null_Map: lor; { Current Fill Color } C_Mask_Select: screencolor; { Current Mask Selector } C_Fixed_Pattern: boolean; { Current Fixed Pattern } C_Align: point; { Current Pattern align C_PixelMap: pixelmap; { Current PixelMap } C_Pen_Mode: pmode; { Current Pen Mode } C_Pen_Color: screencolor; { Current Pen Color } C_Fill_Color: screenco{ rectangular bounds of PixelMap } MapMode: gmode; { graphics mode } MapPage: gpage; { graphics page } end; rcore_state = record lmap = record MapPntr: handle; { pixelmap identifier (integer) } MaxSize: point; { MaxSize.h is the width } { MaxSize.v is the height } Bounds: rect; } y: real; { y pen position } end; rect = record BotLeft: point; TopRight: point end; pixe h: integer; { horizontal pixel position } v: integer { vertical pixel position } end; rpoint = record x: real; { x pen position egInvert, NegErase ); point = record :'')PBBINTEGER x mREAL moCct ( Bounds: rect ); procedure Fill_Row ( X,Y: real; Npixels: integer ); procedure Fill_Column ( X,Y: real; Npixels: integer );  {-------Solid Fill Attributes-----------} procedure Fill_Color ( Color: screencolor ); {-------Inverting-----------------------}  procedure Invert_Rect ( Bounds: rect );   {-------Pattern Fill--------------------} procedure Solid_Mask ( Mask: pixelmap ); procedure Pattern_Rect ( Pixel_Pattern: pixelmap ); procedure Tile_Rect ( Pixel_Pattern: pixel1Mȡ2M*>.ɡۚښښۚNڨ٨/ N N N Nɍ)N+ۨ ڨ (DHH@,6(FG&O4%/ۚݢٚݢښݢؚ  )*G&*L/ȡ1Lȡ2Lݢݢٕݢؕ B*/ەܕ-0,/قۢ؂ۢقۢ؂,-.G&.M/.ب "D H>"ب #D '  H' ' ?' 8#$G&$Kڨ $Dȡ1Kȡ2K'  H' )' ?' N$ ٨ ب %D HH ?,تP/.,+0+0ȡ+'$++., +^T/ȡM'&á#'&'//'$'%0'//JI'&"/FáGG^/'%ب/يڊ ۊڊۊ܊ي܊يڊ/F  /JG/ /ۚܚ&H/á @š//CA''' '3 FG'3TA'/ e Load_RState ( State: rcore_state );   {-------Version Control-----------------} function RCore_Version: real;  implementation E eam ); procedure Get_Column ( X,Y: real; Npixels: integer; var scan_column: bytestream );  {-------Saving and Loading the Screen---} procedure Save_Screen ( FileName: string ); procedure Load_Screen ( FileName: string );  {-------State Records-------------------} procedure Initial_RState; procedure Save_RState ( var State: rcore_state ); procedurw ( X,Y: real; Npixels: integer; var scan_row: bytestream );  procedure Set_Column ( X,Y: real; Npixels: integer; var scan_column: bytestream ); procedure Get_Column ( X,Y: real; Npixels: integer; var scan_column: bytestream );  {-------Savi {-------Pixel Primitives----------------} procedure Set_Pixel ( X,Y: real; Color: screencolor ); function Get_Pixel ( X,Y: real): screencolor;  procedure Set_Row ( X,Y: real; Npixels: integer; var scan_row: bytestream ); procedure Get_RoxelMap; Width, Height: integer; MapKind: linearMap ); procedure Pascal_Map ( var NewMap: pixelMap; Address: p_addr; :Width, Height: integer; MapKind: linearMap ); procedure Release_Map ( var Map: pixelMap ); r R: rect; HCenter, VCenter: integer); procedure Offset_Rect ( var R: rect; dH, dV: integer ); procedure Size_Rect ( var R: rect; Width, Height: integer );  {-------PixelMap Memory Allocation------} procedure Alloc_XMap ( var NewMap: pit,Right,Bottom,Top: integer ); procedure Set_Center_Rect ( var R: rect; HCenter, VCenter, Width, Height: integer); procedure Sect_Rect ( SrcRectA,SrcRectB: rect; var DstRect: rect ); procedure Center_Rect ( va {-------Mask building-------------------} procedure Build_Mask ( Map, Mask: pixelMap; NumValues: integer; var Values: bytestream );  {-------Rectangle manipulation----------} procedure Set_Bounds_Rect ( var R: rect; Lefmap; Width,Height: integer); procedure Pattern_Mask ( Pixel_Pattern, Mask: pixelmap );  {-------Pattern Fill Attributes---------} procedure Mask_Select ( Selector: screenColor ); procedure Align_Pattern ( Fixed: boolean; dH, dV: integer ); ب /ٝ'ˡ( HB/O/O'ˡ'ˡ ' ^/''''ǿ)'' '' ''''' '!'"'#'$'%'<f:ب/'3<G&<' I' 'ˡ'ˡ'ˡ 'ˡ&'&r</'3;G&;ا' ;/G&/P/ȡ1Pȡ2Pع    ?ُ? //) ޚښٚX xAhhhhhh A _B9Y:Y;YYBY @Y0Y?Y/Y>Y.Y=Y-Y& (58?Y/Y(@Y0Y)8=Y-Y,>Y.Y-?Y/Y.@Y0A =mXLUXX UXLUX`yxidYXUPG>5 ' uX xAhhhhhh A _B1Y2Y3Y4Yhhhh A _B-Y.Y/Y0YHHgXLOA`ihWVSPMJ=<9630+&'uNMLKBA@?>'uX xAhhhhHHgXLOA =tXLOA LU` (J >"#'Y(Y%Y&Y C%Y&Y C`[wrda\ZEB?<;0-,'!uX xAhhhhHHgXLOA WtXLO`ZYJ/}lPC@='uX xAgXLOA RmXLRXX RXLRXXXX'YX(YX%YX&Y CX%YX&Y C`w`_\SRQPO\X aX q` [Xȑ`kjiheb^\YXUTSRQPONMLIDA' uX xAhhhhHHgXLOAk XXtX (J /LOAtXLOAks X ` mmX 䭾 IDCBA< 'uX xAhhhhHH0LOA\XL\X) }XXMjX^X)`X bX O` \Xȑ`cbIHGF>=;:63.+' uX xAhhhhHH0LOA[XL[X)]X:]X)_X}X ~XX) }XX[X[X\X(`$' uXx  (`$' uX xA XX `.'uX xAhhhhHH0LOAwoiXjX = iX) WPXWQX _` wȑ`VT"g_LKJ~:~'uXgXLOAx) @eX)J,P,QJ,R,SfX,TLJ,U,W @(  `#ihcT9|'uXx) @)J,P,QJ,R,SJ,T,U,V( `Q\' uXx)ߍ) t LlXTlXNXnXXXXXΠX J XmXXXmXXXήXέXXXXX  t 8fX eX\yX\zX\{X\|X`zyrkjeb_\[ZYXWVUTSMFEDC>;:7521.$N'uX xAhhhhHHgXLOAmXLOA hX LOAfXfXlX~lXX.X XXLmXXXX .X  XXL8XXXX8XXXX T` XmX` eXȩȭfXȩmX ``$V>spaDA)&hhhHHnXLOAhXLv\ j\ LOAhXgXeXmX fXʊ eX.\X"\XF\X:\X . XX ^\X ~eX CXYXDXZX+XSX,XTX7XVX8XWX WWLLOAX LOAXeXmXgXXXXXX1/?==/ צY-/Y?Y.0Y@Y/DY4YCY3YBY2YAY1Y& (58CY3Y*DY4Y+8AY1Y0BY2Y1CY3Y2DY4Y3L83YCY*4YDY+81YAY02YBY13YCY24YDY3)+.(*((.)/*2+3.Y2Y-Y1Y-1,0&  (Ly( ) *+,-./0123-Y.Y ) II ) 1Y2YL81Y2Y&L* + ()0123,-./1Y2Y ) II ) -Y.YL8-Y.Y& L LKba)'%uX xAhhhXhXhXhXhhh Yh Yh Yh YhhHHgXLOAXX" MXtXLOA" MYtXLOA X0L"-LOA @ (J L   X0 YYY Y $ p L | =` C $ 0 L L{ Y%Y&Y'Y(Y C tR  OXX   LCY YYY8XXYY'Y(Y'YL`S +*$"  |ysnifeJ;6+ `''uX xAhhhqXhrXhoXhpXhsXhHHgXLOA sXȩSX`MLFDB@>832/% l'"uX xAhhhXhXhXhXhhHHgXLOAX" Y*X,LOAtXLOA L' (J L" '( +YYYEC@?:410-'hhhhHH`'uX xAhhhXhXhXhXhhHHgXLOAX Y*X,LOAtXLOA`UTNLJH=83-,'$!x'&uX xAhhhhHHgXLOA0LOAkX ȩ`K````^XTI?4+  :'hhhhHH9uX xALOAeX.LOA  L  1 8fX eX    L + L`ed[ZSRONMLJutca^]ZYVUREC@?<;874/'hhhhHH8uX xALOAeX.LOA ; 68fX eX  -@"'%F H OA` @@@ @@@@ @``` ``Ye9Y2Ye:Y3Ye;Y4Ye'uX xAhhhhhhHHtXgXLOA LOA` A _B-Y.Y/Y0Y-YEY.YFY/YGY0YHY A _B1YyxutpolkhgdcBA>=tqhc\UNJ;`_JIHGFEDCBA@?>=<;:9876543210'uX xAhhhhhh A _B1Y2Y3Y4Yhhhh A _B-Y.Y/Y0YHHgXLOA()*+F'f&f%f$&(e$()e%)*e&*+e'+֥($)%*&+'`FNkjfea]TLKsml[ZWTQNA@=:74/*)!   0  K)Y+Y?Y%Y@Y&YCY'YDY(Y5Y-Y6Y.Y7Y/Y8Y0Y9Y1Y:Y2Y;Y3Y ~ { x g e @ = : 7 1 , ' $ #           ~}|l;}|{zyxwvurolhgdc_^[Z87430+ Yjչ\r]\\Y` Y Y0Y1Y2Y3F3f2 e0e10&1m Ym Y,Y0eLy `$  ?% jvsO _\RJ|Z e0e10&1mXmX,X0eL,`YBdYYmY0LsY8Y8mYLYYY*fffFL YY*ff&L YYi#Y\r]\\Y`YjL."+LX0LXXXXX^X~XXX8XXXX0W8XXXX0@0LX05X0(X03ݶXXݵX*X0)ݸXXݷX X`$%"#& '()tX`XXX*fffFXX0X1X2X3F3f28LXeYXeYXeYYeYY!YY"Y#Y$Y`"XX XX`XUL*LXiL"+L"\X.\X:\XF\XX^\XR\XXL.X0LXXXXX^X~XXXXXL$  e(!e)()(L+()$ p"e&#e'LO&'LLmoXmpXmqXmrXsXLee8()ee8&'eeL8LeeLL%Y&Y$ p 'Y(Y`'Y(Y` !"#Xe(XXe)XXe&XXe'X$ Xe XXe!XXXX$ pXe"XXe#XXXX`8YXXYXXXX8YXXYYXXXXXXXX8YYYYLL`X0 tR RMjX^X)`X bX LOX`/Y%Y0Y&Y3Y'Y4Y(Y%Y&Y'Y(Y8XXXX8XXXXeeee` eXY0fXY(XX YY @ `$ 0 %Y&YOA?Y@YCYDY DOY>L8XX8   XXee m?Y m@Y8?Y?Y@Y@Y DOY8?YX@YX8    %Y&Y'Y(Y C`XbX^X  H )MjX^X)`X bX+Y)Y OX)Y)YͦX)Y+YL;`XbX^X`mj[WSO?:4! UTPL{hdMGEA@<;:6521  5Z%Y+Y&Y,YN,Yn+Yn)YeXN)Y)Y+YHmXMlX'Y\r] yX zXh`(Yj'Yjܹ\r] {X |Xh`XX0X1'Y2(Y3F3f2 e0e10&1mXmXm,Yh`OY@Y0ͨX ?YͧXOY@YͬXfjf` $,0()*+!++**))(('8(&)&*&+&,&-&.&//. -,,,--..//8& &!&"&# в.$/%` `/Y%Y0Y&Y3Y'Y4Y(YmX+&Y*Y%Y8X*Y*Y8mX)Y+YL8醅:&&&0 (Ffff8`eɀ`8逅ɀ   `*&8 Ffff0 &&&H@H?H`DB)%!Z'hhhhHH)nXgX)`HAAAȭuXh ȑ`AAA)`hhhhhhHHHH`hhhhhhHHH`&*&8f) )L)i 'hh A _B-Y.Y/Y0YgX,/Y?Y0Y@Y3YCY4YDY DHOY C XXLLOAhHHHH`~qpmjgdc`_^]\[ZYXTQPJ'hhhuXhvXHH xA` "'h?h@hhhhH) AȱAȱC&Y'Y(Y C`XbX)MjX)`X bX dX+Y OX`XbX`}qmie[WV:6|yxwso>'3uX xAhhhhhhhhhh A _B1Y2Y3Y4Yhh'uX xA-Y.Y/Y0Y BLA#"!:'uX xA1Y2Y3Y4Y BLA#"!:'2uX xAhhhhhhhh A _Bhhhh A _BHHgXLOA?Y@YCYDY DOYQ%YCY8CYDY9DY DOY*8CYXDYX8   XCYXDY4%Y5&YCY'YDY(Y C   RX`^Za`IH10!   *32.-,('$#3H'uX xAhhh h hhhh A _B67hhhh A _B45HHgXLOA4?Y5@Y6CY7DY DOY1L38X6X78   X6X7 m6CY m7DY8 %Y&Y'Y(Y C`XbX^X  : )MjX^X)`X bX+Y)Y OX'Y(Y 2DL;`XbX^X`wt_\MIEA1,&UTPL~smZV?97hhhhh h hhhh A _Bhhhh A _BHHgXLOA?Y@YCYDY DOY>L8XX8   XXee mCY mDY8CYCYDYDY DOY8CYXDYX8   HgXLOA?Y@YCYDY DOYLXX %Y&Y'Y(Y C  $+Y XX 'Y(Y 2DL`yuqhd`\(  qpebaF'6uX xA%Y&Y C RX`~fbKGON76 )'7uX xAhhhhh h hhhh A _Bhhhh A _BH'uX xAhhh h hhhh A _B hhhh A _BHHgXLOA?Y@YCY DY DOY1L8XX8   XX m?Y m@Y8?Y!?Y@Y"@Y DOY X?YX@Y'Y (Y?Y%Y@Y&Y C ?YͫXOYDY0ͪX CYͩX OY OY`DYͮX CYͭX OY OY` /Y?Y0Y@Y3YCY4YDY OYMY5Y=Y6Y>Y7Y?Y8Y@Y9YAY:YBY;YCYY.Y?Y/Y@Y0YAY1YBY2YCY3YDY4YNY^OY5Y6Y7Y8Y9Y:Y;YY7Y?Y8Y@Y9YAY:YBY;YCY 0!ͮX$ͭX  Ь Х=Y>Y?Y@YAYBYCYDYL 3e e!e"e#e$e%e&e'` 38 !"8$$%%&&''#0'SL'0LLR0@ͨX;ͧX2 0#ͪXͩX  м еLW0!ͬXAͫX6 0#ͪXͩX  д ЭLW0HͨXCͧX: 0!ͮX$=  =  Δ Γ 2DЩХ`& "Q QLII = Q = Q Δ Γ 2DШФ` H ,6Hj hȰ ȭ ޢHj h Δ Γ  h ` 2DL H 0:Hj \hȰIIȱIIڢHj \h Δ Γ  h ` 2DLz D& 16 1 Δ Γ 2Dн` =.  Δ (  Uses {$u *memory/mem.unit.code } Memory_Manager, ({$u *rcore/rcore.unit.code } Raster_Core;  type #FontRec= packed Record 1FontKind: MByte; { raster (0) or vector (1) } 2Spacing: MByte; { monospaced (0) or proportional (1) } 1MaxWidth:  !"""""""##$$$$$$%%%%%%%%%<96'Z[]]"^^_aab!`!@@.1.>Z[[v\*AAP(&-L+!"JZnZ,[^v^^]^<_~]?V@h__ `H` ORt$)OdP`,a`$F$vSR`E`\CDD,GHN^Q2TfTTTUU"WL]aaY&R r'hhhhHHaȱaȱaaaaɁ)LJaaa`OKGFC@! x'hhhghHH `g`&&&mlmmijk   Ȅ ` jdbID l a ^ Z W @ 6 3 2 ( # "  m S N K J 7 .       XZ  . y z 9 ] ifc`]WTPMIDA=::::::::10/.-,$!   z 3    W J 0 + ( '  } | o b _ ; 4 / , +         ~wtsmga^YSOLGA>9+*)('&   ~}|tqn((((((((((((((((((((((((((                  ]DLU]"f*n3w;"*3;DLU]fnw000((((((((( @@@ @@@ @@@@@@ @``` @@@@ @@@ @```@``` @@@@@PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP(((((( /?O_o~|xp`@??~|xp`@~|xp`@~|xp`@????~|xp`@~|xp`@??"3DUfw"3DUfw*;L]n"Df*Ln3Uw;(,048<@@@@@@@@ (08@HPX`hpxpqrstuvwxyz{|}~/?O_o/?O_o~~~~~~~~acegikmoqsuwy{}?_?_?_?_||||}}}}~~~~CGKOSW[_cgkosw{????????xxyyzz{{||}}~~'/7?GOW_gow @߿ 0@P`p  @~}{wo_? @ @~}{wo_?~}{wo_?  0@P`p 0@P`p  @` @` @` @`  $"//HPXlrD\(8HGmz YcvLLLLXx  2Dн` QLI=. Q Δ Γ 2D` > L =s S & > L =r R L Δ Γ 2DШФ`I I ILH I Δ Γ 2Dок`MByte; { maximum character printing width } 2FHeight: MByte; { height of all characters in font } 1BaseLine: MByte; 2Version: MByte; 1FontName: string[19]; 0MinOffset: integer; { minimum offset for pen } 3Ascent: MByte; 2Descent: MByte; 2Leading: integer; { number of lines to leave blank between Flines of text } .BitMapWidth: integer; { total bitmap width of font map } 0DLocation: integer; { location of dummy character in bitmap } 1DBBWidth: MByte; { bounding box width of dummy character }%Please hit carriage return to exit...R\&=/Aצצ9RasterFont version not compatible with RasterCore versionhhhhšM"$&"/+ \  á  b/&(ڪP/-.-.ȡ---ا(VD/? تP&&  /)/ /[-ˡ[/ &1/ / ١ZL// ˡ[ ا .تP/.&,&+0+0ȡ+š &++.,& 3^^/4// >/ 2>33ˡ3 K@/>@1// 14// >/ @>1/.<-8B[L&// hB -_.`a8c<@>1/Li0B:/ 2:033ˡ3 `ȡǘLȡVNצYYYLšP[LɡQ[\ɡR^]ɡSL^ɡT]ö^ÄU٪P,-.2B L1/D4,// ,/,6/ 6233ˡ3 C2ˡ23ö3˄ 3 ,ˡ,/ ˡ:ˡ/ .ˡ./ -ˡ-/ BˡB&1 |C4// // 233ˡ 3 J3KˡWKɲKōZL/ ڳڳp(@ڳ@@ڳ ڳڳ@ **ٻ+ػ+*/* / /L/dle: handle ); procedure Raster_String ( TextString: string ); procedure Raster_Char ( Ch: char );  procedure Raster_LF ( Rows: real ); procedure R_TextExtent ( TextString: string; var Width, Height: integer); function R_Font_Version: real;  implementation E nd; { of Record }   var CurFontHandle: Handle; (CurFont: FontRec; %  procedure Open_Font ( FileName: string; var FontHandle: handle ); procedure Close_Font ( FontHandle: handle ); procedure Select_Font ( FontHandle: handle ); procedure Raster_String ( TextString: string ); procedure Raster_Char ( Ch: char );  procedure Raster_LF ( Rows: real ); procedure R_TextExtent ( TextString: string; var Width, Height: integer); function R_Font_Version: real; ecord of font bitmap } +end; { of Record }   var CurFontHandle: Handle; (CurFont: FontRec; %  procedure Open_Font ( FileName: string; var FontHandle: handle ); procedure Close_Font ( FontHandle: handle ); procedure Select_Font ( FontHan { Current character location in bitmap } .CharBBWidth: MByte; { Current character bounding box width } /CharOffset: MByte; { Current character offset } 0CharWidth: MByte; { Current character printing width } 2FontMap: PixelMap;{ map descriptor r1OWHandle: handle; { points to address of offset/width table } 0LocHandle: handle; { points to address of location table } 4OWTab: XAddr; { address of offset/width table } 1Location: XAddr; { address of location table } + CharLoc: integer; 2DOffset: MByte; { offset of dummy character } 3DWidth: MByte; { printing width of dummy character } :'')PBBINTEGER xnCREAL hhhhhhHHȱȱVW PȑXȑ`U`\,+*!thhhhhhHH+ %ȑ`*` :hhhhhhhhhhHHȱȱZ[\]^ Tȑ`Y`.+*'$#xhhhhHHV W ,X ȱY ȱZ X Y Z Ɂ)LTX Y Z 0[ ȱ\ ȱ] [ \ ] Ɂ)L[ \ ] "^ ȱ_ $` a &b %c `e*)eLL`pMK hh hhHH`'6hh  ;C hhȥ ߥHH`  87M9\hhhh᭙0:0D0  !"#$%&'()*+0123456789:;@ABCDEFGHIJKPQRSTUVWXYZ[`abcdefghijkp@=97)('%#  zhh ?hh)HH`*c<`&&&e?L' hhh)?hȼhhhhHH`hhhhWV) ) 02@*P"`pL&&&LFfFfFfFfHH`P.AUDIO,d`hXȑhhWȑhhHH`_`O?/!hhhhhh9.:.;.<0(0(099JH;HHH`Z310/$ Thh   MyMz { | y z {U|HH`A<62,('&% `hh hhhhhhh)h' 1H)/HHH`,d+`,+#Lhhhhhhh)h) YH)U)HHH` !<hhi )n YhhV)ȑhhU)ȑhUE hxNIL :pMAXINT |RRKBYTESTREWORDSTRE .WOR 0BN DY  P  V  STA READ!PROCEDURE SOUND(PITCH,DURATION,VOLUME: INTEGER); !PROCEDURE DATE(VAR D: DSTR8); !PROCEDURE TIMEOFDAY(VAR T: TSTR6); !PROCEDURE CLOCKINFO(VAR YR,MON,DAY,DAYOFWK,HR,MIN,SEC,THOU: INTEGER); !PROCEDURE SETTIME(T: SSTR18); !  IMPLEMENATION E TRUE hxNIL :pMAXINT |RRKBYTESTREWORDSTRE .WOR 0BN DY  P  V  STA READPRbRINTEGER R CREAL $X CHAR 6b BOOLEAN fhe STRING P TEXT $vMEINTERACTL|ouINPUT xvSTOUTPUT bv KEYBOARDv0FALSE hTRYPRESS: BOOLEAN; !FUNCTION RANDOM: INTEGER; !PROCEDURE RANDOMIZE; !PROCEDURE NOTE(PITCH,DURATION: INTEGER); !Copyright (C) 1980 Apple Computer] ;Clear the Buffer 0LDA #16. 'b'b)Rb  !TYPE "DSTR8=STRING [8]; "TSTR6=STRING [6]; "SSTR18=STRING [18]; " !FUNCTION PADDLE(SELECT: INTEGER): INTEGER; !FUNCTION BUTTON(SELECT: INTEGER): BOOLEAN; !PROCEDURE JOYSTICK(SELECT: INTEGER; VAR X,Y: INTEGER; VAR B0,B1: BOOLEAN); !FUNCTION KE$(B-( MBYTE -+6(#iPADDR *)GeXADDR (ntTWOBYTE z(z(EXTEND 6(d(SEGREC L+,)wiADDRESS (((LEN (((ID 6((RELOCATI6((ERRORRECL**)$!)1 ȱ"ȱ#8" "#!#`8 "!#`("  ~}|{xwvuts+> V v: 4  jd E~_\XSOJGB=hhh)hHH ` p$(%#4ȭ687`4 ȭ!6"8$7%`) %  qr80bHH`' <<EBi[ZXGFD@2  FdhFd  P  V  STA READ $ "TYPE DECMAX = INTEGER[36]; STUNT = RECORD CASE INTEGER OF 12:(W2:INTEGER[4]); 13:(W3:INTEGER[8]); 14:(W4:INTEGER[12]); 15:(W5:INTEGER[16]); 16:(W6:INTEGER[20]); 17:(W7:INTEGER[24]); 18:(W8:INTEGER[28]); 19:(W9:INTEGER[32]); 110:(W10:IɄɡ& 8ݍ á ބݍݍܓ܄>ۢۢۢۢۢNۢۢۢܕ( trToNum(VAR decstr: string; poweroften: integer ): real;  procedure NumToStr( r: real; fixed: boolean; placecount: integer; 4var s: string; var expon: integer );  IMPLEMENTATION E and: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,) PROCEDURE FSEEK(VAR F: FIB; RECNUM: INTEGER); PROCEDURE FREADREAL(VAR F: FIB; VAR X: REAL); PROCEDURE FWRITEREAL(VAR F: FIB; xx: REAL; e1, e2: INTEGER); FUNCTION SUPER_MOD(A,B : INTEGER) : INTEGER; FUNCTION SUPER_DIV(A,B : INTEGER) : INTEGER;  function Shhƀ 0ȑƀ0hJJJJ 0ȑ) 0ȑƀĆLOL,3-'~{vvvvvvvvvvvZTNlb3 `\[TOG@;:3(  T[Fc= YP12 &%& FTYP13 &%& FT ei|ʽ 8襁i}ƅ|L,hƀhhh8hohlhXhhhFffff80)ƅܥ#FfII懥HHL,LGhhhhhƀhh-Ȅʈƅ})H揥>ʈƅ ~擥  抦|ɥ8包~ƅLII懩&&u`hh HHHHHL,}ʈƅFyʈƅ}ʈƍƎƋƊЌإL2d|e~28ʈƅyʈƅƉ` _LWŁ|}ƅLwE||怦}ʚH恺8倅偪ƅ  ILL, _LwLL,E0LL _Lw ILL,ELL _LwEe8刅刪ʈʈݒ&~ƀLV~HHL,~HH~HHHHHHL,~ʈƅFHHHH恥HL,0~}ʈƅ0I愊iʈؚH恥LŁ|} ƅLw ~~8ʭ==` 5l 5 l 5lhzh{hƁhhhƁ}eʆƀƀ|ʊe~8偅z{lzhhhhhh8冐 0 h HHHL,LGIL,h hBCʈ _.ł( Ł|} ŀ}|z Z   :    ( tV8$@hvhwhhxylxh:vwlv8<<+-Í-۲0ݡߑ ع       &  * عteVG8  )   uh[NA4'á NTEGER[36]) /END; ' " "PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER); "PROCEDURE FWRITEDEC(VAR F: FIB; D: DECMAX; RLENG: INTEGER); "  IMPLEMENTATION L E ^JECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, šڢۑڢ.!ɡܢڕܢښ $"ڢܢۢڢ`` ڢ 2#آڢ٢آ*$آڢ٢آ(%آڢ٢آ(&آڢ٢آ&'ڢڢá ޡ?šڢڢ'ޡڢڢڢ~ڢ n( ȡ ۞$(@ $( $( ۡ#š #ȡ š)  ȡ0ˡ š  *ݡ W~ ٦***תP(š_ۡɡڑ ɡá0PÄ,ߡצ-QP<ˡ;,ɡ#??P?0Q?P>>.P>8??P?8U?P/ؑ>,>Nš N>>š3=>?=?ȡ#@@P@צ0Q@P==ȡ5=?=?ȡ#ˡ/14 ڡؼáڡؼZš0áۀ š ۀ*ByO7>zS8ȡ ȄPšPMšM/(<<<0Eá4+á4-á4.1.Ǹ ɡ ۏ01ۑ+-4.L0Ná=;á/Ä ڡؼ1A3N3'Ä!4' Ä1./-+á -á0Ná1. 2 .á0Eáa4.12,ɡ1.0آ  "10ˍ8,ɡ 1ɡؿ 0ÄL2٢10ˡ103آ1 41á?˄??&@ۂ"ˡu??š???#?$???$?#ń ?#?$?ۚ?$ܚ?AAA?AˡA  5~ 09Ȅ.!~Ȅ/azōaA??@ɡ??"@?Ä?á?????,? >"Má? > >? >á @@@ Ą @ ?ˡ\?%,?%???&@?"% ,    ݂܂F  -    ޏݏ@܏ޏ@ݏ܏ޏݏ܏܏ ݏ ܏- +$&!&%š#$ە##š##$"$##ɡ#"ɡ2ݓ&&Í&&&á&"&!)&%&&Í&&"&!)$%&&!!$$#ȡ!ˡ ء##ȡ''0'Q'Pˡǀġg/  ( ǀ > *ڨ ɡ(MMMM܏M܏T+ܨ ء '$' \)  ɡ-Í á ܑ ) '!Í ) % ɡ    ~ɡ  ~"h hhhhhhhhHHHHHH`(0 2) l` 0 2) l` 0 2) l` 0 2) l` hhhhhh404)@ 4) HHHH`:hhhhhhH50HHH`*hhhh LHH`4hhhhhhhhhhhhhhhhȑ**ȩȑ&HHHH`&/RRعZ7tile12תP^7צtile18PO7tile24תP@7צcent12P17cent18תP"7צcent24P aTG:- x/&dde///7צUnable to open Memory ManagerUprogram to exit.צ:After making sure that the diskette volume /RCORE.DISK2 isצ#mounted , press to continue...٪P/8Unable to open 4This demo program cycles through the fonts available8in the Raster Graphics ToolKit and shows them in variousgraphics modes and colors.7Pressing the Escape key will cause the pffnccgTFONT v :2D"\.< z 048VID K6ANU8HVIDS ZA\A!8H@DIRRANGEA~AA8MTID CAAN8HFULLID VJAA8H HH`7hhhhhhhh訪 H & *HHH`6hhhhhhhhHHHH`&hhhhhheȑȦ0+L4-I8i  L6i0i0HH`.`4j rXJF8IȱjE Ȅ橀إHH`zhhhhhhhhhh[ȱ)uD*&**u&L&*** ʈHH5qjȑHHHH`\hhhhhhhh  0<Ȱ& u E   ؠ ) JJJJ 0ȑ ) 0ȑᘠHH`hhhhhhR0H*v  u&&v&E& &詀&L&&ť&&ʈHH`o'hhhhhhhhhhhh bL)5Ffeyumꩀ5JA1SKQL51QF55(5ȱ0 fLfJJJi䨩ȩ50,8 &5&  6 F5L L5HH`~u$hhhhhhhhhh訪 横 Ji&&0 fL]fJJJi&&⠊hhhhhhhhhhhh&FffHHHHHH`Phhhhhh⨥HH`,hhhhhhhhhh訪 横v E 詀 vE 詀  Lj Ret_Dynamic= d  Ret_Segs= e &/4צUnable to open RasterCore/cfcfȡJcgg /rcore.disk2/ g7]g.fontbg1ccc0& 0010``&"&&& ` ---a-éaÄaa&-áab-bbaˡb& & &&& ' '& ?07@cfcfȡHcaPbPcP V$H#@~‚ /0B@" h@ ! 4q(Q( E R& p$LH:(HA}s  (0D@A  @ ! " ywn]u~ *LΜ) p'HVP (0H B A@  ʼ A)0o"1($E@DA!Br 0P@H B"! A 4q(P)beL!( A/H I!H!@~" (pH@CD B$Q! a P(bD(RED dΔp0!I"H!;$ (E@#A" !/PX(b0D(HDHb 1 0<   @   "!y@p=9 x/ A H@Ay'>bu  >|                                    SY^gpx|")2;<?BGLOTV]dgmsz!)2:CLR[ckv$+49@FIJMS  tile12rps a./.&cc' '& @ABCDEFGHIJKLMNOPQRSTUVWXYZ?abcdefghijklmnopqrstuvwxyz?0123456789!@#$%^&*()_+=-|\@Third Wave Graphics?presents?the Raster Graphics Toolkitc@fcfȡcc ,,ácfcfȡ1ccc&/&'//'&R&O,@@cfcfȡHcaPbPcP a./.&cc' '& @ABCDEFGHIJKLMNOPQRSTUVWXYZ?abcdefghijklmnopqrstuvwxyz?0123456789!@#$%^&*()_+=-|\@Third Wave Graphics?presents?the Raster Graphics TC}y`x>P@ "  @  #>v    tile18rps0 p̌<`< `700` À1c  `< <0fa6 0  ~> 8G`` 0 000`č6`< `g00``6 ``< 0f 0f`30c6`0 >?,Ix`la< ` `<`< ` 0` 0` À1ƀ  `< f0f0ac 0  >?0 9È` 11f` ` `p ```0 `lx6 `f00x`0fl``  `x`> 06g`3c``?F 3`8?a`< `  ```8g<`< `0`0` fl  `<~??10f`p``0000 0l3 ```0p0 0<800 =00? 0f`g`0 `>? c|na0< 0  0`?0 p?01?`00  p0pp 0`?0x                         00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ))))))))))))))))))))+2AOdtv} %3ADJT_iv ,@O`n%,5INZgu%/9EQfq~ 660 < 8I?3` <`0`m00sp 1`0 <0``< `x`~ 0806` c`0 9 8Gxc` c 6``  3`< `0c00`c@6f ` <0?` `xxc`a x 0` Y 0 ` 1`fx 6`< `030`cc0 0 >?<~~x a??~y      !      .@Nfw)<<<<<<<<<<<<<<<<<<<<?I^l.>Rbt "3H[k{'9Obv'-;Y`p (8JZjx .. tile24rps?10??~000`<<66  <0 ?x``0`l6ƀ l 0`0Rs`?11c10c` `a` xl3 ``p`0  0`<<fc  F0 `026ƌ0 ` 0`60f0 6`< `0`lf` 0< 0`ax ` ``0310```30fx6 ` ?@<q<x<89?~p88|?pw?x8pw8s;8p8888p8p8x9???9?~ppp88p~>p|ppq8pp{?8x8p88p??x88p8xx><}x??>}y<8w88xpx0?p~p8pppp8xx?<;?888p<}88p89?888px<88ppppqp?x=?88w8>|;89?888pp?>?x8?8988p88p;8x>pqp?<8Á8pxppqcp~8pp|88??88?8p8888qqp?888pp<pppy88ppxpp|awpq~8ރppxp?8<??888p<88pqxppp?x8p <888<pqp<8wp8ppppp?cp@9wppp<?px?8x<8p888pxxp;88p=<x<<x<|xqp=?8xwwpxpxp0pw8x9xpw;8p08p>p~<|?|989p8|<~x><}pp?>}y<w>8<p8pp8px8p8pp0?p?<<q?8xx?p?>>pp8ppp88p0w?p<q?8<8p??ppp8p<xp8pÁ7p<8xx<8p;8<8===<8sx<p8p8?m?~pÁqpx8>>|98x88s<<xp88p8?8Á0p???2; @<'H"~'EI (AD!1 %23C!$EW*z7„)  1O$E) (!A " x.egڽ7vəSU2.%R2`C P  $$(pDADAA   T$?@RX`B@A A $!"( A1 EB)F "T(;d(? B '"7A A) ( A(P A  -PP0!D B˓ ?t P!B.@H>$) ADP!  PP !$B, x@ @ po`p<#x?:~s {pxn?1G:<ƍ@                      gns|')-18=?DFKRW^elsz#,4>GNW`iv !',4;FMTZ]^ag  century12rps ???~;|0p??8??{x<?;q<Á0py?<???9pH17=x:~  0 LJ?xp2" century18rps <<p8pp8888p83xG33~8c;  {080x8<p 8  @rpp88xÀp`xp8p8p8Á988pqN318`3`8s 888 8; `ppp8x<pp8q<Á8q<<38@s8 0c؃ `spp8810pppp pp8Á988.38#p?g ??| 1<<3x8sp8`8 8pps8xp18` 88h@p@0 p 8p?                       $0======================LTTT^drr| !!!!!!!!!!!!!!!!!!!!$-;GVhks{+.29BIUbv ,>N[k|$05BP[iu !)8G^l|d84 ?`~887?`8 g3?88رx<{pppwp px<8888!8 3MID |0܏8ID3 f~8C8n31p p88ء<<x0  `8x0p??                     (39Yj{{{{{{{{{{{{{{{{{{{{{{ ++++++++++++++++++++.8KYm&4DSapuz .DZcr+>Th1>O]jy -:EXj% century24rps?8`F~080~|?O>???ag||>|8sxx?` xx@`pށ ppsp0?3~a080l p?31 p1  <s8pp88`x `9`88xp07ppcp 7;33rǃ?8C \`88܀vr@p88q!<0pp`1ppp8>30a080p`; ?03a vc ǀ8C|s`p880x 11lq<g8880 cp;3L$ID3$9ID# O39;8C0ps|>!pp88 w8p pw=q><?>??0>3><ȏ???8sq (Oqp#C0 >!΀ 88800=9pppp?`8x0p|3pcxp<q pp0p`<<x8` 8p8p8px0 78x oq<p p8sq38I'>`c0 >`g 88`pa#8<q{0 >0<08<΃s  98c@p?<q0pppa<<x?8 x <8ppp>q88@` 8cs78G?`s0 >`01>n8`8p<X p/`? > ~8 pc`<?p<p<c<<8 <8pp pq88`  ~>8I'`ppsp8p08 p,ĈpxϏ#{0 > 8 8<<898c =q0pp~p8g<< 8108pppppsp8p 80pp8ppppsp8Cpcpxfx p1s0>pA888`xp`30?q pppxo<<8=`p8ppp|888`xxppppsq8cp8sppc0>xƁ9#88`~0 ?q pppp~<<888 0{pppppxxx8 <ppp|pps s8 'N 8sppC0;80?~` ;pppp`p8 8=  spppxpppp0x8 08pp<<pp`s8 7np8spp080`p8x9` ><>p188<0 p8pp0pp<8pp <ppxpps<<88spp~; q0?0 8sp ~;q~8 88`` x<1p8s8~  ?|p???`~  0|8x|?8p>> to continue...٪P/8Unable to open 4This demo program cycles through the fonts available8in the Raster Graphics ToolKit and shows them in variousgraphics modes and colors.7Pressing the Escape key will cause the pffnccgTFONT |`000~?~??? x~03~~>>?`? 0 ? a88 `8xx>8 x<`8>88<8x8ssqΟ aa./.&cc' '& @ABCDEFGHIJKLMNOPQRSTUVWXYZ?abcdefghijklmnopqrstuvwxyz?0123456789!@#$%^&*()_+=-|\@Third Wave Graphics?presents?the Raster Graphics TLIBRARY FILES: *lib/rastercore.lib $$ t18'; *6: fontName:='cent24'; &end; "end; { of GetFontName } "  Begin (Intro; ( ({Initialize} (Randomize; (OpenMemory ( true, 256, 100, Ret_Dynamic, Ret_Segs ); (if ErrorFlag then +begin .if FatalError then 2begin 6writeln('Unable to open Meit(program); +end; { if } %end; { of DoOpen } +  procedure GetFontName ( index: integer ); "begin { GetFontName } &case index of *1: fontName:='tile12'; *2: fontName:='tile18'; *3: fontName:='tile24'; *4: fontName:='cent12'; *5: fontName:='cen write ( chr(28) );  end; "procedure DoOpen(filename: string; var font_tag: handle); %begin { DoOpen } (Open_Font ( filename, font_tag ); % if ErrorFlag then +begin + writeln('Unable to open ', filename); .CloseRCore; .CloseMemory; .exphics modes and colors.'); $writeln; $writeln('Pressing the Escape key will cause the program to exit.'); $writeln; $writeln('After making sure that the diskette volume /RCORE.DISK2 is'); $writeln('mounted , press to continue...'); $readln; r; (Ret_Segs: integer; ( " procedure Intro; begin $write ( chr(28) ); { Clear screen first } $writeln('This demo program cycles through the fonts available'); $writeln('in the Raster Graphics ToolKit and shows them in various'); $writeln('graze: point; (fontIndex: integer; (FontInfo: Array [ 1..maxFonts ] of Handle; (fontName: string; (GrfMode: integer; (itemp: integer; (jtemp: integer; (i: Integer; (Ret_Dynamic: intege Program TFont; Uses AppleStuff, ({$u *lib/rastercore.lib} (MemoryManager, (RasterCore, (RasterFont;  Const Escape= 27; (maxFonts= 6;   Var aChar: string; (ch: char; (Colors: integer; (cSi O^bhmory Manager'); 6Exit ( Program ); 2end .else 2begin 6writeln('Ret_Dynamic= ',Ret_Dynamic ); 6writeln('Ret_Segs= ',Ret_Segs ); 2end; +end; { if } # (OpenRCore ( Bw560, 2 ); (if ErrorFlag then +begin .writeln('Unable to open RasterCore'); .CloseMemory; .Exit ( Program ); ( end; { if } ( ({Open the fonts} (for i:= 1 to maxFonts do begin ( GetFontName ( i ); ,DoOpen( concat ('/rcore.disk2/',fontName,'.font'), FontInfo [i] ); (end; ( ( (fontIndex:=0; (Repeat * *{Turn off thugh, you should close a font when you're )done with it.} ( (CloseRCore; (CloseMemory;   End. f KeyPress then read ( ch ); * (Until ch=chr(Escape); ({Terminate when the escape key is pressed} ( (for i:= 1 to maxFonts do +CloseFont(FontInfo[i]); ({This is not really necessary here, since we're closing RasterCore )immediately. In general, tho*Raster_String ('Third Wave Graphics'); *Raster_LF ( 1.0 ); *Raster_String ('presents'); *Raster_LF ( 1.0 ); *Raster_String ('the Raster Graphics Toolkit'); * *{Delay long enough to see the display} *if not KeyPress then for i:= 1 to 8000 do; ( iRight.v ); *Raster_LF ( 4.0 ); *Raster_String ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'); *Raster_LF ( 1.0 ); *Raster_String ('abcdefghijklmnopqrstuvwxyz'); *Raster_LF ( 1.0 ); ( Raster_String ('0123456789!@#$%^&*()_+=-|\'); *Raster_LF ( 2.0 ); 2: aChar:='b'; 23: aChar:='c'; * end; * Raster_Char ( aChar[1] ); .R_TextExtent ('a',cSize.h,cSize.v); .R_MoveTo( cSize.h+1, 0); *end; * *{Move back to the starting point} *with Cur_RState.C_PixelMap.Bounds do -moveto ( BotLeft.h + 10 , TopotLeft.h + 10 , TopRight.v ); *Raster_LF ( 1.0 ); * *{ Display the font name } *GetFontName ( fontIndex ); *Raster_String ( fontName ); *Raster_LF ( 2.0 ); * *{Display a few characters.} *for i:= 1 to 3 do begin * case i of 21: aChar:='a'; 2-Until jtemp <> itemp; *FillColor ( jtemp ); * *{Clear the entire graphics screen and turn it on} *Max_VPort; *Fill_VPort; *Grafix_On; *Screen_On; * *{Move to the top left corner of the screen } *with Cur_RState.C_PixelMap.Bounds do -moveto ( BPenColor ( itemp ); * *if ( Colors=2) then -{Set the fill color to the inverse of the pen color} -jtemp:= S_White - itemp *else -{Select a random fill color, different from the pen color} -Repeat /jtemp:= random mod Colors; GrafixMode ( cp280 ); ,3: GrafixMode ( bw560 ); ,4: GrafixMode ( Col140 ); *end; * *{Select a random pen color} *if GrfMode in [1,3] then Colors:=2 *else Colors:=16; *itemp:= random mod Colors; *if (Colors=2) and (itemp=1 ) then itemp:=S_White; *e screen} *Screen_Off; * *{Select one of the fonts} *fontIndex:= 1 + fontIndex mod maxFonts; *Select_Font ( FontInfo [ fontIndex ] ); * *{Select a random graphics mode} *GrfMode:= Random mod 4 + 1; *Case GrfMode of ,1: GrafixMode ( bw280 ); ,2: