ė<IBM 5.0p ł )ų.CNO NAME FAT12 ś3ĄŽŠ¼|»x6Å7VSæ>|¹ üó¤ĘEž‹|ˆMł‰GĒ>|ūĶry3Ą9|t‹|‰ | |÷&||||ƒŅ£P|‰R|£I|‰K|ø ÷&|‹ |ĆH÷óI|ƒK|»‹R|”P|č’r°č¬r‹ū¹ ¾ę}ó¦u  ¹ ó¦t¾ž}č_3ĄĶ^DĶXXXėč‹GHHŠ |2’÷ćI|K|»¹PRQč:rŲ°čTYZXr»ƒŅ |āāŠ.|Š$|‹I|”K|źp¬ Ąt)“»Ķėņ;|s÷6|žĀˆO|3Ņ÷6|ˆ%|£M|ųƳƓ‹M|±Ņę 6O|‹Ź†éŠ$|Š6%|ĶĆ Non-System disk or disk error Replace and press any key when ready IBMBIO COMIBMDOS COMUŖł’’’Oš’’’’ š’’Ļ ą @`’’’’’’Ąą! #@%`'€) +Ą-ą/1 3@5`7€9 ;Ą=ą?A Cš’’’’G€Iš’’’’’ļ’’’’/S@’’’’’’’’’’Ļ]ą_’’’’’’e`g€’’’’Ļ’’’’q s@u`w€y {Ą’’’’’’’’’’O…š’’’’’’’’’’š’ ‘ “š’’’’’ ™  ›Ą ą Ÿ ” £@ „` §€ ©  «Ą ­ą Æ ± ³@ ’’’’’’¹š’»Ą ½ą æš’Į Ć@ ’o Ē€ ’’’ĖĄ Ķš’Ļ Ń Ó@ Õ` ׀ Ł  ŪĄ Żą ß’’’ć@å`ēš’éš’ń’’’’’’’’/’’’’’’’’’ł ūĄżą’š’’’’’’’’o’’’’Æ ń’’’’’’’ń’’’’ań’’’’’’’’’’’’’’/#A%a'’Æ’’’’ļ’’’1ń’’O5a79”;Į=į?ń’’’’’’’Eń’’’’’’’KĮ’ļOń’Q!’’’’’’’’’’’Ļ]į_’’O’’’giń’’’’mį’’’qń’’Ouaw’Æ{Į}į!ƒA…a‡‰”‹Į’’’’’’’’’•a—ń’’’’’Ļń’Ÿń’’/’’’„q’©”«Į­įÆ’’’³Aµa’¹”»Į½įæĮ!Ćń’’’’’’’É”ĖĮĶį’’’’/’OÕń’ׁŻ”ŪĮ’ļßń’’’’ćAåń’’’’’ÆėĮ’ļļńń’ōń’õń’÷ń’’’’ūĮż! ’ ņ’B b ‚ ¢ Ā ņ’ņ’’’’ņ’’o!ņ’¢!Ā!ņ’’"!""#B"%b"'‚")¢"+Ā"-ā"/ņ’1"#’O#5ņ’’#9¢#;Ā#=ā#’$A"$CB$Eb$G‚$I¢$KĀ$Mā$’%Q"%SB%Ub%W‚%Y¢%[ņ’’’’’’’aņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Æ'{ņ’}ņ’ņ’"(’’’’’’‡‚(‰¢(‹Ā(ā()‘")“B)•ņ’—‚)™ņ’›Ā)’’’’*”"*£B*„b*’*’Æ*«ņ’’ł’’’Oš’’’’ š’’Ļ ą @`’’’’’’Ąą! #@%`'€) +Ą-ą/1 3@5`7€9 ;Ą=ą?A Cš’’’’G€Iš’’’’’ļ’’’’/S@’’’’’’’’’’Ļ]ą_’’’’’’e`g€’’’’Ļ’’’’q s@u`w€y {Ą’’’’’’’’’’O…š’’’’’’’’’’š’ ‘ “š’’’’’ ™  ›Ą ą Ÿ ” £@ „` §€ ©  «Ą ­ą Æ ± ³@ ’’’’’’¹š’»Ą ½ą æš’Į Ć@ ’o Ē€ ’’’ĖĄ Ķš’Ļ Ń Ó@ Õ` ׀ Ł  ŪĄ Żą ß’’’ć@å`ēš’éš’ń’’’’’’’’/’’’’’’’’’ł ūĄżą’š’’’’’’’’o’’’’Æ ń’’’’’’’ń’’’’ań’’’’’’’’’’’’’’/#A%a'’Æ’’’’ļ’’’1ń’’O5a79”;Į=į?ń’’’’’’’Eń’’’’’’’KĮ’ļOń’Q!’’’’’’’’’’’Ļ]į_’’O’’’giń’’’’mį’’’qń’’Ouaw’Æ{Į}į!ƒA…a‡‰”‹Į’’’’’’’’’•a—ń’’’’’Ļń’Ÿń’’/’’’„q’©”«Į­įÆ’’’³Aµa’¹”»Į½įæĮ!Ćń’’’’’’’É”ĖĮĶį’’’’/’OÕń’ׁŻ”ŪĮ’ļßń’’’’ćAåń’’’’’ÆėĮ’ļļńń’ōń’õń’÷ń’’’’ūĮż! ’ ņ’B b ‚ ¢ Ā ņ’ņ’’’’ņ’’o!ņ’¢!Ā!ņ’’"!""#B"%b"'‚")¢"+Ā"-ā"/ņ’1"#’O#5ņ’’#9¢#;Ā#=ā#’$A"$CB$Eb$G‚$I¢$KĀ$Mā$’%Q"%SB%Ub%W‚%Y¢%[ņ’’’’’’’aņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Æ'{ņ’}ņ’ņ’"(’’’’’’‡‚(‰¢(‹Ā(ā()‘")“B)•ņ’—‚)™ņ’›Ā)’’’’*”"*£B*„b*’*’Æ*«ņ’’AESPATH B•ĖAUTO G•ĖCPX J•Ė EXAMPLES M•ĖEXTRAS ›•Ė¶FSEL ¬•ĖįH 4vjźHEADERS lvjaRAMDISK ’–ĖSOUNDS ›–Ė6SRC ¦–Ė\CLOCK ACC „ŒĖŸ6LC5DISK3560o’i. C•Ė.. AESPATH TXT bY^CAESPATH PRG /\_ą The HiSoft AES path patch program ================================= There is a bug in Rainbow TOS (1.4) and STe TOS (1.6) (but not TT TOS 3.01) involving the way the AES handles its environment. What happens is that it can fail to notice that a hard disk is connected and subsequently tries to access drive A whenever a resource file is requested. This doesn't always happen and depends on which programs you have in your auto folder. You may never see this bug, if you use this program in your auto folder you never will. This product is supplied as a service to HiSoft customers. It is *not* public domain, but is supplied with most of our products. Installation ============ The file AESPATH.PRG should be copied into an AUTO folder on your hard disk. In use it wastes less than 300 bytes. Technical ========= If you are interested in the technical details of what, and why, this program does what it does read on: The bug happens when a program in the auto folder stays resident, but doesn't keep the whole of itself resident. When GEMDOS creates the AES basepage it doesn't zero the area used by the environment strings, but when the AES starts it checks for the sequence 'PATH=\0A:\\0\0\0', this will, however, fail if the final byte is not zero. Subsequently the AES doesn't change the A:\ to a C:\. What this patch does is it pretends to be the AES during the startup sequence so that the boot sequence transfers control back to it *after* creating the AES environment. This allows it to make the correct environment test, and patch the final byte if neccessary so that the AES will see the string it expects. Finally it starts the AES using the normal ROM startup code. Compatibility ============= This patch should be compatible with all programs, and is completely dormant after its initial action. If you encounter any problems please write to us, stating the serial number of the HiSoft product you obtained this from. HiSoft, 30 October 1990 The Old School Greenfield Bedford MK45 5DE ENGLAND. Phone: +44 525 718181 Fax: +44 525 713716 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö`¾`X!ś’śžNuHz’ö?<&NN\O o"h, ™PATHf ™=A:f Y\f fBQ!z’ĄB§/B§?<?<KNABgNAJüHz,?< NAB§?< NA#ųž!ü žBgHxZ?<1NAAES path patch Version 1.1 Copyright ½ 1990 HiSoft pöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. G•Ė.. BELL PRG Īti«`4@0NV’üHē ,Ił\*o "-’€@/AAśXNŗŚ - Š­Š­€"/²€o Š.@//BgpJ?NAOļ Ma–AśpNŗœp?pL?NAXOLß4N^Nu p Sample Allocator v1.07 q Copyright ½ 1991, HiSoft. Not installed / :|‰0<’ĄUfų*_Nu0|‰p0€0NuNV’ģHē *H-@’ųH®’ž$ gxaŚ0|‰ /@ B@H@0€00|‰ / "ą‰020|‰" 020|‰Š®’ų/@/@ B@H@0€00|‰ /ąˆ0€00|‰ / 0€00|‰ 0.’ž0€00|‰p0€0` y4NLß N^NuJ9øg 9Ę29ŹAł\a’D` pr‘Ča’8Nu0<¬HĄ @#Š4Cś’Ä ‰pNu0<FHĄ @2HĮ NuNV’ōHē! -H’ō~ <_SNDAī’ųNŗ$J@gę.’ūgÜ ®’śHlIp=?NAOļ LßN^Nu/.pß¾@f"lH” iDp?NTO`JGj"lH” iDp?NTO.NuHē'$*HAķpaˆ.JGk†HlJ\Hx€?p??NAOļ +lJvB-#AķpCģJ`Nŗ"ŲJ-#gAķ$pCģJˆNŗ"Ä|*<’’’Ź¬Jr` HĄŠ€rAģ 20²…e @€;@ SFJ@fŚ?p>?NAXOB-8` a’.Lß$äNuNV’®Hē4&lJP`*K&U fų•Ź`v lJP&P`f kŠüCėNŗ"J@kP KCī’ŗp"Ų"ŲQČ’ś2Aė"kPI/ICź r:’€/A"o`ŁSdś kPH /Cī’Ā`ŁS€dś&S f–*m f†)JJT*lJP`.J-f J¬JTf )MJT`AķCģGš°f Jföf)MJT`*U fĪ fB,GšLß,N^NuNV’ĢHē0*H-I’ĢAģtCģ„NŗAģ„CģHņ"Ų"ŲWlHņWlHō\lHö\lHų MCģHņNŗ8?,Hų?,Hö?,Hō?,HņprAģtNŗČp)@J)@JB,JB¬J,Aģ×CģJ2Ųfü9@¾9@Hģ9@HźAģJ)HJP9@HīAī’ŠCģGpNŗöPOJ@fL›Ķp:NŗP&@ f"lH” iDp?NTO`,AėCī’īŁfü lJP!K'M&¬JP)KJPAī’ŠNŗōJ@g¶*lJP`RlHīJ-g Mażv*U fźaž0,Hī"]A9AHšlr9AHš"lH” ir?Bgt??v??HldN lJP)HJXaüpAģd"n’ĢNŗ~AģHņ"n’ĢNŗŽLī( ’¼N^NuNV’öHē4*H.&I,=@’ųJGgü®SFRKJg SGJ@fņ.SG`EķJg M*J›` M*J¼_SGfäJgEķJ+f M*J“` M*J¼ÆBLß,ĄN^NuNV’šHē4*H.,&I HĄrNŗ$MÕĄ*j >- KJfüSˆ‘Ė *REŗGedŌü pŠF(JDj|x` ŠG°Ec|(˜G € " U"Ka’pAģdCī’šNŗvJFg?.’ö?.’ō?.’ņ?.’šprAģdNŗžPOLß,šN^NuNV’ÄHē' Ił$ø0,Hź°lHšnŅlHģ.9lHźHģ›ĶpAģdCī’īNŗAī’īCī’ę"Ų"ŲAģH˜Cī’ęNŗšpAī’ęCī’ī²VČ’śg|`|JGoŽ*` lJX)PJXSEJEfņJFfžp¾@lö0.’ī=@’Ž=@’ÖŠn’ņS@=@’ā=@’Ś0.’š=@’ą0,‚ĮĒ2.’ą?@ŠA=@’ŲŅn’ōSA=A’Ü0/’@=A’äKī’Öp GAģdCī’ęNŗ`0.’ģĮĒ=@’ģ`ŠJGj„*` lJX)hJXREJEfšJFfjpś¾@od0.’ī=@’Ī=@’ĘŠn’ņS@=@’Ņ=@’Ź0.’š=@’Č0, ĮĒ2.’Č$”@=B’ŠŅn’ōSA=A’ŌŅ@=A’ĢKī’ĘpAģdCī’ęNŗŲ D@2.’ģĆĄ=A’ģJGgd lJXał60<‘ČNŗˆ g& lH”0r‘ČNŗśAģI/"lH”0r"MĆHNŗ,XO?.’ģ?.’ź?.’č?.’ęprAģdNŗ¶PO0<‘ČNŗ6Lß0äN^NuNV’ŌHē#$p @Cč˜, /@p‘ČNŗp?HlHp=?NAPO. oKč`†, AśųōCģI–"Ų"ŲBHzųšAģICģHaųźHlGHn’ŲAģICģI–NŗņOļ J@g4Jn’Ųg.p‘ČNŗØHlI–AģHCģIaų°XOp?HlHp=?NAPO.` lGhŠü˜CģHŲfüp`xpß¾@g’vpŅ¾@g’npŽ¾@g’fJGjDGp2¾@lG Nŗ\p`FHn’ŚHx?p??NAOļ p??/.’ÜpB?NAOļ HlGl/?p@?NAOļ ?p>?NAXOpLß$ÄN^NuNV’ü lH„/H"lJT )2) l"oN‘pN^Nu lHˆNpNuHē J¬g/,pI?NA\Op)@LßNuNV’öHē! -@’ö-H’śpa÷ę.JGkDBg?Hx€pB?NAOļ J¬g l` lGhŠü(//.’ö?p??NAOļ ?p>?NAXO` a’| a÷ČLß„N^NuNV’ņHē4*H~$I-I’ņ`&Eķp. n’ņ°f "M*J¼ $H` "M*J$K-J’ņGźJg SGJ@fŹp.°f ĄJfų`BLß,€N^NuNV’öHē*I&H~-H’ö` r °gĄRM SGJ@fģp °gü.ĄJfų`BLß(€N^NuNV’śHē -H’üCčp IaöČHlJ\Hx€?r???@NAOļ Bg?/ B§pB?NAOļ n’üŠüpCģJ`ĆHNŗ n’üŠü$pCģJˆĆHNŗųp n’üĄh"HĮŅpAģ00)@JrHlJ\Hx€?/p@?NAOļ ?/p>?NAXOLßN^NuNV’ŠHē/4-H’Ų.|z9ltĀ9lvÄ]G*lJX=@’Ö`*U g SGJ@fņJ-g0 lNGķ/H "K o PŁfü līEķ P"Jaž>~€Žm HĄå€ lCģ ± n’Ų?(?(?(?prAģ²Nŗ ¢PO"lH” i4Hn’Üp?Hl²NOļ (p’ø@g g„ø@f0.’Ü@g @f x z`zx ĮüAģ²° Y@gĘY@g U@gø`$ lī/H AģI–"o "QażäAģI–"J°fJfög@/ AģICģGpaōžAģI–"JŲfü.ŠAģI–CģGpaō†XO/ HlI–HlIBgpV?NAOļ $_ lN"K/H o P°fJfö H€,F€J@f0-°Fg lN"P KŁfü;F Maż’aõ||`lpAģ²CģHņNŗ $"lH” i/.’ŲHlHņp??r?HlNOļ(p’ø@g. HĄå€ lCģ ±?,Hų?,Hö?,Hō?,HņprAģ²Nŗ POJFgžjJEg2 lJXaó,0,Ā9@t2,Ä9Av?,z?,x??prAģdNŗ ŌPOLß,ōN^Nu/.,GžAģGl"lGhp$"Ų"ŲQČ’ś ,HŒ¾€o.J,Gšgaūp AģGšaūˆ.NuNV’īHē#4.,p¼@m"p ¼@n Įür@AģdĀpJAg.`ś0,t2.’ī²@mģŠlš²@lā|pAģdCģHņNŗ ģ0.’š°lvl>0,HźJ@o‚SlHź"lH” i$Cś÷~/ Bg?,Hš?,Hźp?r?HldNOļ~|`L0,vŠlņ2.’š²@o<0,Hš2,Hź²@l0RlHź"lH” i$Cś÷./ Bg??,Hźr?t?HldNOļ~ |JFg8pAģdCģHśNŗ FAģHśCģHņNŗ V?,Hų?,Hö?,Hō?,HņprAģdNŗ fPO,]F*lJX`*U g SFJ@fņ»ģJTg|`L ĮürAģdĀp JAg6 AģdCģHņNŗ Öp?r??,Hų?,Hö?,Hō?,Hņ AģdNŗ ØOļ `RFp ¼@o® AģdCģHņNŗ ˜p???,Hų?,Hö?,Hō?,Hņ rAģdNŗ jOļ )MJTHn’ōHn’ņAī’īCī’šNŗņ>®’š?.’īprAģdNŗ ŚOļ ,¾Ff.’ófĘ.’ófżš)MJTGķ KCģGšŲfü9mH)mGž"lH” iVHlH p?N\Op‘ČNŗÄJ-gNJ¬gBg/-pD?NAPO @`/-pH?NA\O @)H J€n"lH” iDp?NTO`2 - KaųŚ`p)@Aśųz/p&?NN\OAśų”/p&?NN\Oaų"lH” iVHlH BgNLī,Ä’ÖN^NuNV’ĪHē;?NAXOAģGl"lGhp$"Ų"ŲQČ’ś` lGhB(„p`BNŗH lH”Jhf. hPB§/<_FRBNHĄ)@ lH”1| <@AģhNŗ‚POAģ* LßN^NuJlKf < Nŗš`0,KNupaNV’ü/.)HJč9GK <4Nŗp.N^NuNVHē4*H&I$n)MJč <6Nŗ@6¬KB4¬KD n 0¬KF n0¬KH0,K@Lß,N^NupaNVHē.,:.8. 6. 9GK 9FK"9EK$9DK&9CK(9nK*9nK,9nK.9nK0 <3 NŗÄLßųN^Nu/.9GK <5NŗØ.NuNV’üHē14*H&I$n l0Kd"JlŚf‚pAģŖNŗVpAģŖNŗLpAģÜNŗBpAģōNŗ8Aī’ü///CģŖĆHNŗžčHlJąHn’üHlJŽAģÜCģJÜNŗžŠOļ0,Ą2,JŽ’@YA9A¼4, &VC²CnXB9B¼9|Ś0,Ą?2,¾?4,¼?6,ŗ????p"NŗžŹ)n Ž0,ŗW@2,¼WA4,¾\B6,Ą\C>ƒ???prAģŖNŗH.Š M"KNŗb.0,ŗW@2,¼WA4,¾\B6,Ą\C>ƒ??????rĆ@Nŗž^Oļ `)MJč)KJģ)n Jš <[NŗP.4¬KB Lß,ŒN^NuHē4*H&I$o)MJč)KJģ *@Aķ Lß €Nupapr am zn am zn fJfŌNu2H@/QÉQČ`ŁWÉ’üWČ’ųg` QŲQÉ’üQČ’ų NuNu0åaɃr0åaɃ++!+,+7vSample Directory PathC:\SOUNDS\*.SND___________________________________SCANNING SAMPLES...File name12345678123 ________.___FSample rateSample name0123456789012345678901234567 ____________________________X% %"%$’’%&%@%Z’’%\%p%r%t%~%€’’ %‚%Ž%œ’’ %ž%Ŗ%¬’’ %®%°%²€’’%“%Ą%Ā’’ %Ä%ā&’’SaveOKCancel’’@@°’’’’@’ī@‘ķ<’’’’@’’’’@’īN  šķ`’’’’@&žķ’’’’@'ķ ’’’’@' ķ ’’’’@'0ķ ’’’’@'@ķ’’’’@'Pķ ’’’’&a’Įr’’’’@’’’’@&Ź ’’’’@é’ŽV"’’’’' @’XŽØ"’’’’' @’’’’%'[ @’’Ø’’’’ &:ØSaveCancel’’ A:*°’’’’&V’’’’&rHp’’’’&Ž-’’’’@ &ŖTCX’’’’&Ę^’’’’&āuš ’Ž"’’’’)\ @ ’Ž" ’’’’')b @Select Sample Directory PathStandard bell[1][You must run the Sample|Allocator program before|you can configure it|with this CPX.][ OK ]Please locate BELL.PRG 6258Hz 12517Hz 25033Hz 50066Hz +D+D€’’’’(’’’’ +F’’’’’’ (’’’’’’Po¬oøoŲoųo oœpp s r s0 –X""ĪHH00>00ä8>ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. N•Ė.. BELL O•ĖHC k•ĖZCPX |•Ė}CLOCK ‚•Ė€WTEST Š•Ė‰GSTLIB ’•Ė•PROG2 C …{²µr. O•Ė.. M•ĖCPX P•ĖTSR b•ĖPH h•ĖW. P•Ė.. O•ĖBELL C •tiŒ„BELL HDR XˆĖDMAKEFILE AˆĖE[RBELL C ea‰F RBELL H ea‰JaRBELL HRD Ą„K{RBELL ICN ea‰LƒRBELL RSC «m MŽBELLCPX PRJ —vfOū/* * $Header: e:/lc/examples/bell/cpx\bell.c,v 1.6 1993/11/09 14:35:34 AGK Exp $ * * bell.c - CPX portion of HiSoft Bell Sample CPX * * $Author: AGK $ * * This example CPX/TSR combination form part of Lattice C/TT and * demonstrate the construction of CPXs under Lattice C. This example * aims to show many of the salient features of constructing a CPX, but * cannot provide as much detail as Atari's own documentation which you * should also refer to. * * This programs implements a CPX which controls a TSR which in turn allows * the system bell to be replaced by a sampled sound in place of the normal * bell. * * Compile this program simply by running make, note that phase 2 * generates a lot of warnings about standard arguments for indirect * functions. This is a side effect of using the -rr option. * * $Log: bell.c,v $ * Revision 1.6 1993/11/09 14:35:34 AGK * Path, struct names & pointer changes * * Revision 1.5 1992/06/11 16:47:48 AGK * Change so that we can work with pre-TOS 2.00's Malloc() * * Revision 1.4 1992/04/09 12:06:38 AGK * Changes to the way we generate self-redraws. Ideally we'd post a message * to ourself so that it could be merged by the AES, but since we don't know * our application ID, we can't, hence we try to optimise redraw as much as * possible but cop out in the impossible situations. * * Revision 1.3 1991/07/05 13:32:12 AGK * Stopped the user from double-clicking on the 'Standard Bell' entry. * * Revision 1.2 1991/05/23 13:11:58 AGK * Changes to use AVR format samples, fix a problem with a file opened for * write when we meant read/write * * Revision 1.1 1991/04/21 12:21:32 AGK * Initial revision * * Copyright (c) 1991, 1992 HiSoft */ #include #include #include #include #include #include #include #include #include #include #include "avr.h" #include "tsr.h" #include "rbell.h" #define BELL_NLINES 6 // number of visible lines in 'window' /* * This CPX saves its configuration information in the TSR file, so we * never need to use xcpb->CPX_Save, although if you needed to this is * how you do it. Rather than having to alter the startup code, because * of the way an executable file is laid out by the linker, using a far * variable as the *very first* initialised item in the first file * linked ensures that it occurs at the start of the data section hence * we can create a config block: * * struct * { * char name[FMSIZE]; * int def1,def2; * } far config={""}; // to force initialisation. * * This may then be saved by: * * xcpb->CPX_Save(&config,sizeof(config)); * */ struct config *cookie; // pointer to public version of config struct config config; // private version of cookie which we use /* * This points to a sound buffer which we have allocated via Mxalloc, we * have to be very careful that we always release this buffer before we * do anything which may cause an AES context switch. */ void *sound_buf=NULL; XCPB *xcpb; // XControl Parameter Block GRECT desk; // rectangle of desktop MFORM Mbuffer; // Mouse form save buffer short cur_item; // item at top of sample window short last_cur_item; // previous item at top of sample window int samples; // real number of samples int max_samples; // number of samples - BELL_NLINES GRECT clip,clip2; // general use clipping rectangles MFDB mfdb; // a screen MFDB for scroling char fselpath[FMSIZE]; // paths used for storing filenames char fselname[FMSIZE]; /* * This is the sample list definition. It consists of a doubly linked * list of entries containing the samples which are available in the * current sample directory. */ struct samp_list { struct samp_list *next; // next samp_list entry (or NULL) struct samp_list *prev; // previous samp_list entry (or NULL) char name[FNSIZE]; // filename of sample in sample directory struct { long length; // length of sample short rate; // sample replay 'rate' char name[28]; // 28 character name - 0 padded } h; // extracted from file header char zero; // a zero since h.name is not guaranteed // null terminated. }; struct samp_list simple_beep; // dummy entry for standard bell struct samp_list *root; // root of list struct samp_list *current_sound; // the current sound struct samp_list *first; // pointer to element at top of window avr_t avr_h; // global AVR header for sample loading/saving long mxalloc = 0; // does this GEMDOS know about Mxalloc? /* * set_bell_box_text - scan through list of samples, starting at p, * moving pointers such that the 'window' has the p'th sample at the top. * We also set the TOUCHEXIT flag on those which are active and track the * current (selected) sample here. */ void set_bell_box_text(struct samp_list *p) { int i; for (i=bell_text1; i<=bell_text6; i++) { if (p) // if samples left to process { bell_box[i].ob_flags|=TOUCHEXIT; if (p==current_sound) bell_box[i].ob_state|=SELECTED; // the current one else bell_box[i].ob_state&=~SELECTED; // not current (!) bell_box[i].ob_spec=p->h.name; p=p->next; } else { static char null_string[]=""; bell_box[i].ob_flags&=~TOUCHEXIT; // deactivate entry bell_box[i].ob_spec=null_string; bell_box[i].ob_state&=~SELECTED; } } } /* * construct_path - build a GEMDOS path name out of a stem, which * optionally has junk on the end which we must delete, and a filename * which we are interested in. */ void construct_path(char *dest,const char *path,const char *name) { char *s=NULL; // used to track the position after final \ or : if (path[0] && path[1]==':') s=&dest[2]; while (*dest++=*path) if (*path++=='\\') s=dest; if (!s) s=dest; strcpy(s,name); } /* * open_file - open a file along the current configuration path, in the * mode specified. */ int open_file(const char *s,int mode) { construct_path(fselpath,config.snd_path,s); return (int)Fopen(fselpath,mode); } /* * process_err - process error return from GEMDOS function */ void process_err(int fd) { if (fd==-EFILNF) xcpb->XGen_Alert(FILE_NOT_FOUND); else if (fd<0) xcpb->XGen_Alert(FILE_ERR); } /* * do_file - process a sample file, extracting the length and sample * rate information into p. * * This routine is woefully short on error checking and should be extended. */ void do_file(struct samp_list *p) { int fd=open_file(p->name,FO_READ); if (fd>=0) { static unsigned short freqs[]={0,12517,25033,50066}; int i; Fread(fd,sizeof(avr_h),&avr_h); p->h.length=avr_h.avr_length; p->h.name[sizeof(avr_h.avr_name)-1]='\0'; // place sentinel in buffer strncpy(p->h.name,avr_h.avr_name,sizeof(avr_h.avr_name)); if (p->h.name[sizeof(avr_h.avr_name)-1]!='\0') // did they hit the sentinel ? strncpy(p->h.name+sizeof(avr_h.avr_name),avr_h.avr_xname, sizeof(avr_h.avr_xname)); /* * Here we approximate the frequency stored in the header */ for (i=sizeof(freqs)/sizeof(freqs[0]); i--; ) if (freqs[i]>=(avr_h.avr_frequency&0xffffff)) p->h.rate=0x80|i; Fclose(fd); p->zero=0; } else process_err(fd); } /* * sort_list - sort the list of samples alphabetically. This is a simple * bubble sort (for the reasons below). This routine is used to ensure * that the display looks 'right'. */ void sort_list(void) { struct samp_list *p,*q; for (p=root; p; p=p->next) q=p; // track last element for bubble sort; /* * Sort the doubly linked list using a bubble sort. We bubble sort * because its so simple, and we never expect there to be many * samples (due to disk space constraints). Insertion or selection * would be better and are left as an exercise. */ for (; q; q=q->prev) for (p=root->next; p; p=p->next) if (stricmp(p->prev->h.name,p->h.name)>=0) { struct samp_list s; /* * Exchange the two items. We use a little witchcraft * here to ensure that we only exchange the data entries * of the samp_list entry and *not* the previous and * next pointers. */ s=*p; memcpy(&p->name,&p->prev->name, sizeof(s)-offsetof(struct samp_list,name)); memcpy(&p->prev->name,&s.name, sizeof(s)-offsetof(struct samp_list,name)); } /* * Locate current sample */ current_sound=NULL; for (p=root; p; p=p->next) { if (!p->name[0]) // indicates the "Standard Bell" { if (!current_sound) current_sound=p; } else if (!strcmp(p->name,config.snd_cur)) { current_sound=p; break; } } /* * Did we reach the end of the list without locating the current sample? * i.e. someone has changed dirs etc. to somewhere where the sample no * longer exists. */ if (!p) config.snd_cur[0]='\0'; } /* * get_flist - retrieve list of files from the sample directory. This is * the main routine for building the sample list. We first build the sample * chain and then go through filling it all in. */ void get_flist(GRECT *rect, GRECT *rrect) { struct FILEINFO info; struct samp_list *p; /* * Put up a marquee saying that we're scanning the sound directory, * as this may take some time. */ rc_center((GRECT *)&bell_box[ROOT].ob_x,(GRECT *)&snd_scanning[ROOT].ob_x); clip=*(GRECT *)&snd_scanning[ROOT].ob_x; clip.g_x-=3; // Allow for the outline on the box clip.g_y-=3; clip.g_w+=6; clip.g_h+=6; rc_intersect(rect,&clip); // find intersection of the boxs - redundant ? objc_draw(snd_scanning, ROOT, MAX_DEPTH, ELTS(clip)); /* * We must initialise the simple_beep manually as we manipulate the * elements of the structure during sort_list hence this may change * on consecutive calls to get_flist(); */ simple_beep.next=simple_beep.prev=NULL; simple_beep.name[0]='\0'; simple_beep.h.length=0; strcpy(simple_beep.h.name,snd_standard); /* * reset the slider position */ bell_box[bell_slider].ob_y=0; cur_item=last_cur_item=0; root=&simple_beep; // seed the sample list samples=0; /* * Scan through the sample directory locating matching entries and * putting them on our list. */ if (!dfind(&info,config.snd_path,0)) do { if (!(p=malloc(sizeof(struct samp_list)))) { xcpb->XGen_Alert(MEM_ERR); break; } strcpy(p->name,info.name); // fill in entry root->prev=p; // and link into list p->prev=NULL; p->next=root; root=p; } while (!dnext(&info)); /* * Scan through the list we just built obtaining the sample rates, * lengths etc. */ for (p=root; p; p=p->next) { samples++; if (p->name[0]) // the "Standard bell" do_file(p); } sort_list(); // sort the sucker /* * Set maximum number of samples. If there are fewer than fit in the * window then we set this to zero. */ max_samples=samples-BELL_NLINES; if (max_samples<0) max_samples=0; xcpb->Sl_size(bell_box, bell_bar, bell_slider, samples, BELL_NLINES, VERTICAL, 2); // size up the slider /* * Initialise the window to show the top of the list, ideally this * would put the current sample somewhere in the window, but this is * potentially tricky (i.e. I can't be bothered right now !) */ first=root; set_bell_box_text(root); /* * Compute a redraw rectangle for the window, and then pass it back to * our caller to handle. */ objc_xywh(bell_box,bell_scroll,rrect); rc_union(&clip, rrect); } /* * fill_ted - fill in a TEDINFO te_ptext field with << and >> characters * if the string is too long to fit and/or is scrolled off the start position. */ void fill_ted(char *t,int maxlen,int cur_pos,const char *s) { if (cur_pos!=0) { *t++='\xae'; // the << character maxlen--; while (*++s && cur_pos--) ; } maxlen--; // in case we have need a space on the end while (--maxlen) { if (*s) *t++=*s++; else *t++='_'; } if (*s) // didn't see terminator if (!s[1]) *t++=*s; else *t++='\xaf'; // the >> character *t='\0'; } /* * ted_window - manage the events generated by scrolling the tedinfo * 'window'. This is a bit kludgey as we don't bother to scroll the * region, but instead redraw it resulting in flicker. */ void ted_window(OBJECT *tree,int object,int change,const char *s) { GRECT rdrw; int cur_pos; unsigned slen,maxlen; TEDINFO *ted; ted=(TEDINFO *)tree[object].ob_spec; // find tedinfo we're using maxlen=ted->te_txtlen; slen=(unsigned)strlen(s)+1; if (slenslen) { change=0; cur_pos=slen-maxlen; } *(unsigned char *)&tree[object].ob_state=cur_pos; // save new position fill_ted(ted->te_ptext,maxlen,cur_pos,s); /* * Decide whether a redraw is really necessary and perform it on the * TEDINFO only. */ objc_xywh(bell_box,bell_sndpath,&rdrw); if (change) objc_draw(bell_box,ROOT,MAX_DEPTH,ELTS(rdrw)); } /* * draw_bell - redraw the window based on slider movements. This is the * heart of the window code. It checks the amount of movement which * occurred, scrolls the box as necessary and then redraws the remaining * (if any) portion. */ void __saveds draw_bell(void) { GRECT scroll_box,rdrw; short up[8],down[8],*scroll; int change; int i; int noscroll; /* * XControl 1.0 has a bug which allows Sl_drag to return a value one * greater than the maximum allowed when you have a large number of * elements (as we often will have). This check ensures that at * least we won't crash although the display will be partially * corrupted. */ if (cur_item>max_samples) return; change=cur_item-last_cur_item; // compute change which has occurred last_cur_item=cur_item; scroll=NULL; // assume we can't scroll initially /* * Compute default redraw rectangle (whole box) */ objc_xywh(bell_box,bell_scroll,&scroll_box); rdrw=scroll_box; /* * If the scrolling region is partially off screen then we give up * trying to build a scroll region (since we can't see all of it) * and just redraw. There is a potential optimisation which blits * the visible parts, but is it really worth the effort, for the * sake of a user who's hell bent on trying to break you? */ rc_intersect(&desk,&rdrw); if (!rc_equal(&rdrw,&scroll_box)) // intersection was not the whole noscroll=1; // note that rdrw is now the on-screen redraw rectangle else noscroll=0; if (change>0) // +ve change, i.e. move down { /* * Scan forward through the window elements to find the new first * element (i.e. the one at the top of the window). */ for (i=change; i; i--) first=first->next; /* * If change is less than a full screen then we can usefully * blit part of the window up (since we are moving down). */ if (!noscroll && changeprev; /* * If change is less than a full screen then we can usefully * blit part of the window down (since we are moving up). */ if (!noscroll && change>-BELL_NLINES) { /* * Compute the scroll rectangle. This is hairy, and you * really have to trace through it to convince yourself its * right. Watch the -1s which are the width/height to xy/xy * fudge factors. */ down[0]=down[4]=scroll_box.g_x; down[2]=down[6]=scroll_box.g_x+scroll_box.g_w-1; down[1]=scroll_box.g_y; down[5]=scroll_box.g_y-bell_box[bell_text1].ob_height*change; down[7]=scroll_box.g_y+scroll_box.g_h-1; down[3]=down[7]+bell_box[bell_text1].ob_height*change; scroll=down; /* * Compute new redraw area based on the height of a single * window element. */ objc_xywh(bell_box,bell_text1,&rdrw); rdrw.g_h*=-change; } } if (change) // is there anything to do ? { set_bell_box_text(first); // reset the text in the window graf_mouse(M_OFF,NULL); // hide the mouse /* * If we have a scroll region then blit it now, we draw on the * AES handle which is a bit naughty really, but we know we're * only blitting... */ if (scroll) { vs_clip(xcpb->handle,0,NULL); vro_cpyfm(xcpb->handle,S_ONLY,scroll,&mfdb,&mfdb); } /* * Redraw the remaining region. This has already been computed * for us, so we just get on and draw. */ objc_draw(bell_box,ROOT,MAX_DEPTH,ELTS(rdrw)); graf_mouse(M_ON,NULL); } } /* * save_defaults - save the current settings. This routine saves out the * settings to the TSR which is our companion. We have to save them * there because it must know the location of the sample directory at boot * time when the CPX is not available. We could save the current sample * name using CPX_Save, but it seems silly to call two routines when one * will do. */ int save_defaults(void) { int fd; struct gemohdr hdr; long ssize; /* * Find offset of the first element we *don't* want to save in the * configuration information. If you don't understand the offsetof * macro check out the STDDEF.H header file in a book on ANSI C. */ ssize=offsetof(struct config,snd_tsr); graf_mouse(BUSY_BEE, NULL); fd=(int)Fopen(config.snd_tsr,FO_RW); /* * If we didn't manage to open the TSR file using the path it had * saved in the cookie jar then ask the user to find it for us. * This can happen if a user has a strange AUTO program * configuration utility. */ while (fd == -EFILNF || fd == -EDRIVE || fd == -EPTHNF) { short button; /* * If we didn't manage to find the TSR by ourselves then we save * its location in itself so we don't have to ask every time. */ ssize=offsetof(struct config,snd_play); /* * Build a suitable path for the file selector */ strcpy(fselname,"BELL.PRG"); construct_path(fselpath,config.snd_tsr,"*.PRG"); if (fsel_exinput(fselpath,fselname,&button,snd_locatetsr) && button) { /* * Got an OK selection */ graf_mouse(BUSY_BEE, NULL); // hide it again /* * Construct a pathname for the file the user selected and * have another go. We keep trying until either they find us * a file or they cancel. */ construct_path(config.snd_tsr,fselpath,fselname); fd=(int)Fopen(config.snd_tsr,FO_RW); } else { strcpy(config.snd_tsr,cookie->snd_tsr); // implement cancel return 0; } } if (fd<0) { /* * Some sort of error which wasn't file not found, so process it via * form_error. */ fd=-fd; if (fd<50) fd-=31; form_error(fd); return 0; } /* * Read in the executable header and rewrite the configuration info * which is located at the start of the data segment. Again this * code could do with considerably more error checks. */ Fread(fd,sizeof(hdr),&hdr); Fseek(hdr.g_ssize[GO_TEXT],fd,FSEEK_CUR); // seek to data section Fwrite(fd,ssize,&config); // write out config info Fclose(fd); return 1; } /* * play_sound - play the current sample. This routine exists solely as * a target for a Supexec() call. */ long play_sound(void) { config.snd_play(sound_buf,current_sound->h.length,current_sound->h.rate); return 0; // to stop warnings appearing } /* * wait_sample - wait for a sample to stop playing. We only really want * this to happen when clicking between items to we don't try and overlap * them. Again this must be called in Supervisor mode. */ long wait_sample(void) { config.snd_wait(); return 0; // to stop warnings appearing } /* * release_buffer - check if a buffer is allocated and free it. */ void release_buffer(void) { if (sound_buf) { Mfree(sound_buf); sound_buf=NULL; } } /* * load_sample - load a sample into memory. If sound_buf is not set up * we load it into the cookie's buffer. */ void load_sample(const char *s,long length) { int fd=open_file(s,FO_READ); if (fd>=0) { Fseek(sizeof(avr_t),fd,FSEEK_SET); Fread(fd,length,sound_buf?sound_buf:(cookie+1)); Fclose(fd); } else { /* * process_err can let the AES run, so we must release the memory * first just in case a context switch occurs. */ release_buffer(); process_err(fd); } } /* * insert_filename - extract an AES style filename ("xxxx yyy") from * a GEMDOS ("xxxx.yyy") one. */ void insert_filename(char *s,const char *t) { int i; for (i=8; *t && i--; ) // scan 'til we see the dot if (*t=='.') // and then pad with spaces *s++=' '; else *s++=*t++; if (*t++=='.') // if there was an extension while (*s++=*t++) // add it now ; else *s='\0'; // else terminate the string } /* * extract_filename - extract a GEMDOS filename ("xxxx.yyy") from an AES * style ("xxxx yyy") one. */ void extract_filename(char *s,const char *t) { int i; for (i=8; i--; t++) // copy until we get a space char if (*t!=' ') *s++=*t; if (*t!=' ') // if the next character is not a space { *s++='.'; // then it must be an extension while (*s++=*t++) ; } else *s='\0'; // else terminate the string } /* * rewrite_avr - write changes made to the sample name/rate etc. back to * the sample stored on the disk. */ void rewrite_avr(struct samp_list *p) { int fd; static unsigned short freqs[]={6258,12517,25033,50066}; fd=open_file(p->name,FO_RW); Fread(fd,sizeof(avr_t),&avr_h); // load existing header Fseek(0,fd,FSEEK_SET); // seek back to start /* * Fill in all of the name */ strncpy(avr_h.avr_name,p->h.name,sizeof(avr_h.avr_name)); strncpy(avr_h.avr_xname,p->h.name+sizeof(avr_h.avr_name),sizeof(avr_h.avr_xname)); avr_h.avr_frequency=freqs[p->h.rate&3]; Fwrite(fd,sizeof(avr_t),&avr_h); // write back to disk Fclose(fd); } /* * reconfigure - reconfigure a sample entry. The user has double clicked * on an entry in the sample window hence we allow them to edit the entry. */ void reconfigure(short button,GRECT *rect) { int quit=0; int obj; struct samp_list *p; static char *items[]= // array for Popup() handler { poptext_1, poptext_2, poptext_3, poptext_4, }; short curitem; int redraw_parent=1; // flag to redraw our parent object /* * Fill in the current window coordinates based on the parent box. */ snd_reconfigure[ROOT].ob_x = bell_box[ROOT].ob_x; snd_reconfigure[ROOT].ob_y = bell_box[ROOT].ob_y; /* * Find out which string the user actually clicked on */ obj=button-bell_text1; p=first; while (p && obj--) p=p->next; if (p->name[0]) // p->name[0] == 0 indicates the "Standard Bell" { /* * Fill in the reconfiguration dialogue. This looks complicated, but * isn't, we're only filling in the elements, but its confused by * the TEDINFO references. */ strcpy(((TEDINFO *)snd_reconfigure[reconf_sampname].ob_spec)->te_ptext, p->h.name); insert_filename(((TEDINFO *)snd_reconfigure[reconf_filename].ob_spec)->te_ptext,p->name); curitem=p->h.rate-0x80; ((TEDINFO *)snd_reconfigure[reconf_samprate].ob_spec)->te_ptext=items[curitem]; objc_draw(snd_reconfigure,ROOT,MAX_DEPTH,PTRS(rect)); do { short msg[8]; /* * Sit and wait for a suitable message from Xform_do() */ button = xcpb->Xform_do(snd_reconfigure, reconf_sampname, msg); if ((button != -1) && (button & 0x8000)) button &= 0x7FFF; // mask off double clicks if (button == -1) { switch (msg[0]) { case AC_CLOSE: // ac_close means cancel button=reconf_btcancel; redraw_parent=0; break; case WM_CLOSED: // wm_close means ok redraw_parent=0; button=reconf_btok; break; } } snd_reconfigure[button].ob_state&=~SELECTED; switch (button) { case reconf_btok: /* * OK means that we must go through copying the updated * information back into the samp_list entry. We watch * to see if anything has actually changed, if it has * then we must modify the file on disk. */ extract_filename(fselname, ((TEDINFO *)snd_reconfigure[reconf_filename].ob_spec)->te_ptext); if (strcmp(fselname,p->name)) { /* * The name has changed, we build both new and old * filenames and then rename it. */ construct_path(fselpath,config.snd_path,p->name); strcpy(p->name,fselname); construct_path(fselname,config.snd_path,p->name); Frename(0,fselpath,fselname); } if (strcmp(p->h.name, ((TEDINFO *)snd_reconfigure[reconf_sampname].ob_spec)->te_ptext) || p->h.rate!=curitem+0x80) { /* * Something has changed such that we must modify * the file. Hence we open it up and rewrite the * relevant info at the start of it. */ strcpy(p->h.name, ((TEDINFO *)snd_reconfigure[reconf_sampname].ob_spec)->te_ptext); p->h.rate=curitem+0x80; rewrite_avr(p); /* * The name may have changed hence we must sort the * list again. */ sort_list(); } /* falls thru' */ case reconf_btcancel: /* * Easy Huh! */ quit = 1; break; case reconf_samprate: /* * Obtain rectangle of sample rate popup activation * button and call the popup draw/handle routine. */ objc_xywh(snd_reconfigure,reconf_samprate,&clip); obj=xcpb->Popup(items,sizeof(items)/sizeof(items[0]), curitem, IBM, &clip, rect); /* * If an object was actually selected, then update our * settings. */ if (obj!=NIL) { curitem=obj; ((TEDINFO *)snd_reconfigure[reconf_samprate].ob_spec)->te_ptext=items[curitem]; } /* * Redraw the popup button. */ objc_draw(snd_reconfigure,ROOT,MAX_DEPTH,ELTS(clip)); break; } } while (!quit); /* * Sometimes we don't need to redraw the parent 'cos we're going * away anyway. */ if (redraw_parent) { /* * Reset the window contents (since we may have sorted the list) */ set_bell_box_text(first); /* * And ensure that any movements are reflected in the parent object. */ bell_box[ROOT].ob_x=snd_reconfigure[ROOT].ob_x; bell_box[ROOT].ob_y=snd_reconfigure[ROOT].ob_y; objc_draw(bell_box,ROOT,MAX_DEPTH,PTRS((GRECT *)&bell_box[ROOT].ob_x)); } } } /* * update_current - update the cookie's copy of the configuration * settings. If necessary we reload the contents of the public sound * buffer from the disk file. * We should really issue an error to the user if the buffer is too * small, again an area for further devlopment. */ void update_current(void) { long cplen=config.snd_length; *cookie=config; if (cplen>config.snd_maxlen) // ensure we can never write off the end cplen=config.snd_maxlen; if (config.snd_cur[0]) // not the standard bell { release_buffer(); // belt and braces, me thinks... load_sample(config.snd_cur,cplen); } } /* * select_sample - the user has clicked on a sample entry. We wait for * them to release the button before playing the sample and if they drag * whilst doing this we track their actions, scrolling as necessary. */ void select_sample(int button) { short obj; MRETS mk; struct samp_list *p; int i; obj=button; do { /* * If we have a valid selection (always true first time) */ if (obj>=bell_text1 && obj<=bell_text6) { if (bell_box[obj].ob_flags&TOUCHEXIT) button=obj; } else if (mk.x>=bell_box[ROOT].ob_x && mk.x0) // if we're not at the top { cur_item--; // move up an item xcpb->Sl_y(bell_box, bell_bar, bell_slider, cur_item, max_samples, 0, draw_bell); /* * Pretend its a click on the top object */ button=bell_text1; obj=1; // and set redraw flag } } else if (mk.y>bell_box[ROOT].ob_y+bell_box[bell_scroll].ob_height) { /* else if mouse is below box */ if (cur_itemSl_y(bell_box, bell_bar, bell_slider, cur_item, max_samples, 0, draw_bell); /* * Pretend its a click on the bottom object */ button=bell_text6; obj=1; // and set redraw flag } } /* * If the redraw flag is set then redraw the box. We assume * that this is almost always overlapping and rather than * undrawing the old slider and redrawing the new one, we * optimise into a single redraw region formed from the * union of the old and new positions. */ if (obj) { objc_xywh(bell_box,bell_slider,&clip2); rc_union(&clip2,&clip); objc_draw(bell_box,ROOT,MAX_DEPTH,ELTS(clip)); } } /* * Decide which text string the click is actually on */ obj=button-bell_text1; p=first; while (p && obj--) p=p->next; /* * If we're clicking on something which isn't the current item * we must change the highlighting. */ if (p!=current_sound) { /* * Scan through the items to locate the currently selected * one (if any - it may be 'off screen') */ for (i=bell_text1; i<=bell_text6; i++) { if (bell_box[i].ob_state&SELECTED) { objc_xywh(bell_box,i,&clip); objc_change(bell_box,i,0,ELTS(clip),0,1); break; } } /* * Change the selected status of the new current item. */ objc_xywh(bell_box,button,&clip); objc_change(bell_box,button,0,ELTS(clip),SELECTED,1); current_sound=p; } /* * A loop to hover over the currently selected item, we wait * until either a move has occurred to another item, or the user * has released the button. */ do { graf_mkstate(&mk.x, &mk.y, &mk.buttons, &mk.kstate); obj=objc_find(bell_box,ROOT,MAX_DEPTH,mk.x,mk.y); } while (button==obj && (mk.buttons&1)); } while (mk.buttons&1); current_sound=p; // update the current sound - Belt & Braces ? /* * Copy the information from the sample list entry to the current * configuration block. */ strcpy(config.snd_cur,p->name); config.snd_rate=p->h.rate; config.snd_length=p->h.length; /* * We're going to play the sample now, as this may take some time we * switch to a busy rodent for the duration. */ xcpb->MFsave(MFSAVE, &Mbuffer); graf_mouse(BUSY_BEE, NULL); /* * If the name is empty then we're looking at the standard bell and * don't need to load anything up. */ if (p->name[0]) { /* * CPXs should not allocate memory, sadly we need it here so we * can preserve the contents of the existing buffer for the * purpose of cancelling. Since we free it immediately * afterwards with no intervening AES calls we should be safe. */ sound_buf = mxalloc ? Mxalloc(p->h.length,0) : Malloc(p->h.length); if ((long)sound_buf <= 0) { xcpb->XGen_Alert(MEM_ERR); goto nomem; // was that a goto !!! } else load_sample(p->name,p->h.length); } else sound_buf=NULL; /* * Play the sample, then wait for it to finish. The routines which * do this must be called at the Supervisor level as they play with * the hardware. */ Supexec(play_sound); Supexec(wait_sample); /* * We must release the memory as quickly as possible so that there * is no danger of it becoming lost as a result of a resolution * change etc. */ release_buffer(); nomem: xcpb->MFsave(MFRESTORE, &Mbuffer); } /* * cpx_call - the main CPX driver entry point. We spend most of our time * in here dispatching the events from Xform_do which it doesn't want to * handle itself. */ int __stdargs __saveds cpx_call(GRECT *rect) { short button; int quit=0; GRECT rrect; /* * Try to find the cookie describing the configuration and sample * buffer. If its not around then get out'a here quick! */ if (!xcpb->getcookie(HSBL_COOKIE,(long *)&cookie)) { form_alert(1,snd_tsrmissing); return 0; } /* * Find the desktop area, we need this when blitting to ensure that * everything is on screen. */ wind_get(DESK, WF_WORKXYWH, &desk.g_x, &desk.g_y, &desk.g_w, &desk.g_h); /* * We copy the cookie to a private buffer. This ensures that we can * always implement proper cancels. */ config=*cookie; /* * Initialise location of form within CPX window */ bell_box[ROOT].ob_x = rect->g_x; bell_box[ROOT].ob_y = rect->g_y; /* * Fill in contents of scrolling TEDINFO holding sample path */ fill_ted(((TEDINFO *)bell_box[bell_sndpath].ob_spec)->te_ptext, ((TEDINFO *)bell_box[bell_sndpath].ob_spec)->te_txtlen, 0,config.snd_path); xcpb->MFsave(MFSAVE, &Mbuffer); graf_mouse(BUSY_BEE, NULL); get_flist(rect, &rrect); // read the file list from disk rc_union(rect, &rrect); // merge get_flist()s redraw with ours objc_draw(bell_box, ROOT, MAX_DEPTH, ELTS(rrect)); xcpb->MFsave(MFRESTORE, &Mbuffer); do { MRETS mk; short ox, oy; int double_click; short msg[8]; /* * Sit around waiting for a message */ button = xcpb->Xform_do(bell_box, 0, msg); /* Check if we have a double click item */ if ((button != -1) && (button & 0x8000)) { double_click = 1; button &= 0x7FFF; } else double_click=0; /* * If it wasn't a button then try to turn it into one. */ if (button == -1) { switch (msg[0]) { case AC_CLOSE: // ac_close means cancel button=bell_btcancel; break; case WM_CLOSED: // wm_close means ok button=bell_btok; break; } } switch (button) { case bell_btok: update_current(); // update the current settings /* falls thru' */ case bell_btcancel: quit = 1; // give up at last bell_box[button].ob_state&=~SELECTED; break; case bell_btsave: /* * Save the defaults; we give them one last chance as * we're about to start writing to disk files. */ if (xcpb->XGen_Alert(SAVE_DEFAULTS)) { xcpb->MFsave(MFSAVE, &Mbuffer); if (save_defaults()) update_current(); // didn't cancel at last moment xcpb->MFsave(MFRESTORE, &Mbuffer); } /* * Redraw the save button which is still selected. */ objc_xywh(bell_box,bell_btsave,&clip); objc_change(bell_box,bell_btsave,0,ELTS(clip),0,1); break; case bell_uparrow: case bell_dnarrow: /* * User is manipulating one of the arrow keys, so call * the XControl arrow handling code. */ xcpb->Sl_arrow(bell_box, bell_bar, bell_slider, button, button==bell_uparrow?-1:1, max_samples, 0, &cur_item, VERTICAL, draw_bell); break; case bell_bar: /* * This is a click on the bar behind the slider, i.e. a * page up or page down request. */ graf_mkstate(&mk.x, &mk.y, &mk.buttons, &mk.kstate); objc_offset(bell_box, bell_slider, &ox, &oy); /* * Decide whether it was up or down and move by the * number of lines in a window less 1, this ensures that * you can always see what was at the limit of the * window before the action. */ ox = (mk.y < oy) ? -(BELL_NLINES-1) : (BELL_NLINES-1); xcpb->Sl_arrow(bell_box, bell_bar, bell_slider, -1, ox, max_samples, 0, &cur_item, VERTICAL, draw_bell); break; case bell_slider: /* * Slider is being dragged, again just call the XControl * routine to do most of the work. */ xcpb->MFsave(MFSAVE, &Mbuffer); graf_mouse(FLAT_HAND, NULL); xcpb->Sl_dragy(bell_box, bell_bar, bell_slider, max_samples, 0, &cur_item, draw_bell); xcpb->MFsave(MFRESTORE, &Mbuffer); break; case bell_sndpath: /* * This is a click on the TEDINFO which shows the sample * directory. This means that they want to change it, * hence we build a file selector with the current path * and let them change it as they wish. */ strcpy(fselpath,config.snd_path); fselname[0]='\0'; xcpb->MFsave(MFSAVE, &Mbuffer); if (fsel_exinput(fselpath,fselname,&button,snd_fsel) && button) { struct samp_list *p,*q; graf_mouse(BUSY_BEE, NULL); /* * We got here, so we should have a new pathname in * fselpath which we copy to our config area. */ strcpy(config.snd_path,fselpath); /* * We must release the memory which we malloc'ed * before, since we have it in strictly limited * quantities. */ for (p=root; p; p=q) { q=p->next; free(p); } /* * Read the new file list */ get_flist(rect, &rrect); fill_ted(((TEDINFO *)bell_box[bell_sndpath].ob_spec)->te_ptext, ((TEDINFO *)bell_box[bell_sndpath].ob_spec)->te_txtlen, 0,config.snd_path); objc_draw(bell_box, ROOT, MAX_DEPTH, ELTS(rrect)); } xcpb->MFsave(MFRESTORE, &Mbuffer); break; case bell_sndlfarrow: case bell_sndrtarrow: /* * Scroll the TEDINFO window so that more/less is revealed. */ ted_window(bell_box,bell_sndpath,button==bell_sndlfarrow?-1:1, config.snd_path); break; case bell_text1: case bell_text2: case bell_text3: case bell_text4: case bell_text5: case bell_text6: /* * If the user has double clicked then we let them * reconfigure the entry they are manipulating, * otherwise we just go off and play the thing. */ if (double_click) reconfigure(button,rect); else select_sample(button); break; } } while (!quit); if (sound_buf) Mfree(sound_buf); return 0; } /* * cpx_init - main entry to the CPX, we arrive here when called either * during boot up or at the users request. */ CPXINFO * __stdargs __saveds cpx_init(XCPB * Xcpb) { xcpb = Xcpb; /* * If we are booting then we must try and load the sample which the * user has nominated as the default one. We are explicitly silent * about errors as we know nothing of the current status of the machine. */ if (xcpb->booting) { /* * Try to find our cookie */ if (xcpb->getcookie(HSBL_COOKIE,(long *)&cookie)) { if (cookie->snd_cur[0]) // not standard bell { int fd; config=*cookie; // copy cookie to config /* * Open the file, this uses config.snd_path, hence why * we bothered to copy it at all. */ fd=open_file(config.snd_cur,FO_READ); if (fd>=0) { /* * No error opening, so read in the sample to the buffer. */ Fseek(sizeof(avr_t),fd,FSEEK_SET); Fread(fd,config.snd_length,cookie+1); Fclose(fd); *cookie=config; } else cookie->snd_cur[0]=0; // error so reset to standard bell } } return (CPXINFO *) 1; // indicate we want to keep going } else { static CPXINFO cpxinfo={cpx_call}; appl_init(); // initialise private tables /* * We don't have a RCS2 style resource file which needs fixing * since DERCS has already done the work. However we do need to * insert the heap we allocated into the malloc'able areas, * hence the call to addheap(). We must explicitly set the * SkipRshFix flag as no-one else is going to do it for us. */ if(!xcpb->SkipRshFix) { static long heap[16384/sizeof(long)]; // heap space for malloc() mxalloc = xcpb->getcookie('_FRB', NULL); xcpb->SkipRshFix=1; _addheap(heap,sizeof(heap)); // must only do this once } return &cpxinfo; } } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööödBELLBELL€@ "HB"H‚D?$  $  $  $  $?$‚DB"H"H  @€HiSoft Bell€öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö# # Makefile for bell.cpx # HDR = ..\h OBJ = bell.o rbell.o CFL = -i${HDR}\ -w -v -rr -cim -d2 -Oloop CFLAGS = ${CFL} -cs ASFLAGS = -w DFLAGS = -xICON LDFLAGS = -tx -lg bell.cpx: ${OBJ} bell.hdr ${CC} ${CFLAGS} ${LDFLAGS} ${OBJ} # cp bell.cpx c:\cpx bell.o: bell.c rbell.c ${HDR}\tsr.h rbell.o: rbell.c ${CC} -c ${CFL} -o$@ rbell.c # we must disable string merging bell.hdr: rbell.c cpxbuild -b -irbell.icn -nBELL '-tHiSoft Bell' "-d'BELL'" -v1.05 $@ all: bell.cpx clean: -rcsclean *.c rm -f *.o *~* *.lnk rbell.icn rbell.c rbell.h bell.hdr bell.icn bell.cpx ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö#include TEDINFO rs_tedinfo[] = { /*0*/ {"Sample Directory Path", "", "", IBM,0,TE_CNTR,0x1181,0,-1,22,1}, /*1*/ {"C:\\SOUNDS\\*.SND__________", "_________________________", "", IBM,0,TE_CNTR,0x1181,0,-1,26,26}, /*2*/ {"SCANNING SAMPLES...", "", "", IBM,0,TE_CNTR,0x1181,0,0,20,1}, /*3*/ {"File name", "", "", IBM,0,TE_CNTR,0x1181,0,-1,10,1}, /*4*/ {"12345678123", " ________.___", "F", IBM,0,TE_LEFT,0x1181,0,-1,12,14}, /*5*/ {"Sample rate", "", "", IBM,0,TE_CNTR,0x1181,0,-1,12,1}, /*6*/ {"", "", "", IBM,6,TE_CNTR,0x1180,0,-1,1,1}, /*7*/ {"Sample name", "", "", IBM,0,TE_CNTR,0x1181,0,-1,12,1}, /*8*/ {"0123456789012345678901234567", " ____________________________", "X", IBM,0,TE_LEFT,0x1181,0,-1,29,30}, }; OBJECT bell_box[] = { /*0*/ {-1,1,19,G_BOX,0x0,0x0,(void *)0x1100,64,64,256,176}, /*1*/ {2,-1,-1,G_BOXCHAR,0x40,0x0,(void *)0x1ff1181,238,0,18,18}, /*2*/ {4,3,3,G_BOX,0x40,0x0,(void *)0x11191,237,18,20,60}, /*3*/ {2,-1,-1,G_BOX,0x40,0x0,(void *)0x11190,0,0,20,16}, /*4*/ {5,-1,-1,G_BOXCHAR,0x40,0x0,(void *)0x2ff1181,238,78,18,18}, /*5*/ {12,6,11,G_BOX,0x0,0x0,(void *)0x11f0,0,0,237,96}, /*6*/ {7,-1,-1,G_STRING,0x40,0x0,"", 0,0,237,16}, /*7*/ {8,-1,-1,G_STRING,0x40,0x0,"", 0,16,237,16}, /*8*/ {9,-1,-1,G_STRING,0x40,0x0,"", 0,32,237,16}, /*9*/ {10,-1,-1,G_STRING,0x40,0x0,"", 0,48,237,16}, /*10*/ {11,-1,-1,G_STRING,0x40,0x0,"", 0,64,237,16}, /*11*/ {5,-1,-1,G_STRING,0x40,0x0,"", 0,80,237,16}, /*12*/ {13,-1,-1,G_BOXTEXT,0x0,0x0,&rs_tedinfo[0],0,97,256,16}, /*13*/ {17,14,16,G_BOX,0x0,0x0,(void *)0xff11c1,0,114,256,27}, /*14*/ {15,-1,-1,G_BOXCHAR,0x40,0x0,(void *)0x4011181,4,4,19,19}, /*15*/ {16,-1,-1,G_FBOXTEXT,0x40,0x0,&rs_tedinfo[1],27,5,202,17}, /*16*/ {13,-1,-1,G_BOXCHAR,0x40,0x0,(void *)0x3011181,233,4,19,19}, /*17*/ {19,18,18,G_BOX,0x0,0x0,(void *)0xff1181,0,142,86,34}, /*18*/ {17,-1,-1,G_BUTTON,0x5,0x0,"Save", 10,9,64,16}, /*19*/ {0,20,21,G_BOX,0x0,0x0,(void *)0xff1181,88,142,168,34}, /*20*/ {21,-1,-1,G_BUTTON,0x7,0x0,"OK", 12,9,64,16}, /*21*/ {19,-1,-1,G_BUTTON,0x25,0x0,"Cancel", 91,9,64,16}, }; OBJECT snd_scanning[] = { /*0*/ {-1,1,1,G_BOX,0x0,0x10,(void *)0x21181,15,5,168,28}, /*1*/ {0,-1,-1,G_TEXT,0x20,0x0,&rs_tedinfo[2],0,0,168,28}, }; OBJECT snd_reconfigure[] = { /*0*/ {-1,1,9,G_BOX,0x0,0x0,(void *)0x1141,58,42,256,176}, /*1*/ {2,-1,-1,G_BOXTEXT,0x0,0x0,&rs_tedinfo[3],0,0,256,16}, /*2*/ {3,-1,-1,G_FBOXTEXT,0x8,0x0,&rs_tedinfo[4],72,21,112,17}, /*3*/ {4,-1,-1,G_BOXTEXT,0x0,0x0,&rs_tedinfo[5],0,45,256,16}, /*4*/ {5,-1,-1,G_BOXTEXT,0x40,0x20,&rs_tedinfo[6],84,67,88,19}, /*5*/ {6,-1,-1,G_BOXTEXT,0x0,0x0,&rs_tedinfo[7],0,94,256,16}, /*6*/ {7,-1,-1,G_FBOXTEXT,0x8,0x0,&rs_tedinfo[8],8,117,240,17}, /*7*/ {9,8,8,G_BOX,0x0,0x0,(void *)0xff1181,0,142,127,34}, /*8*/ {7,-1,-1,G_BUTTON,0x5,0x0,"Save", 31,9,64,16}, /*9*/ {0,10,10,G_BOX,0x0,0x0,(void *)0xff1181,129,142,127,34}, /*10*/ {9,-1,-1,G_BUTTON,0x27,0x0,"Cancel", 31,9,64,16}, }; char snd_fsel[] = "Select Sample Directory Path"; char snd_standard[] = "Standard bell"; char snd_tsrmissing[] = "[1][You must run the Sample|Allocator program before|you can configure it|with this CPX.][ OK ]"; char snd_locatetsr[] = "Please locate BELL.PRG"; char poptext_1[] = " 6258Hz "; char poptext_2[] = " 12517Hz "; char poptext_3[] = " 25033Hz "; char poptext_4[] = " 50066Hz "; ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööextern OBJECT bell_box[]; #define bell_uparrow 1 #define bell_bar 2 #define bell_slider 3 #define bell_dnarrow 4 #define bell_scroll 5 #define bell_text1 6 #define bell_text2 7 #define bell_text3 8 #define bell_text4 9 #define bell_text5 10 #define bell_text6 11 #define bell_sndlfarrow 14 #define bell_sndpath 15 #define bell_sndrtarrow 16 #define bell_btsave 18 #define bell_btok 20 #define bell_btcancel 21 extern OBJECT snd_scanning[]; extern OBJECT snd_reconfigure[]; #define reconf_filename 2 #define reconf_samprate 4 #define reconf_sampname 6 #define reconf_btok 8 #define reconf_btcancel 10 extern char snd_fsel[]; extern char snd_standard[]; extern char snd_tsrmissing[]; extern char snd_locatetsr[]; extern char poptext_1[]; extern char poptext_2[]; extern char poptext_3[]; extern char poptext_4[]; extern BITBLK ICON; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööļ®bell_boxbell_uparrowbell_barbell_sliderbell_dnarrowbell_scrollbell_text1bell_text2bell_text3 bell_text4 bell_text5 bell_text6bell_sndlfarrowbell_sndpathbell_sndrtarrowbell_btsavebell_btokbell_btcancelsnd_scanningsnd_reconfigurereconf_filenamereconf_sampratereconf_sampnamereconf_btok reconf_btcancel snd_fsel snd_standard snd_tsrmissing snd_locatetsr poptext_1 poptext_2 poptext_3 poptext_4 ICONyöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööshort BBDATA0[] = { 0x0000,0x0000,0x0000,0x0080, 0x0002,0x0040,0x0006,0x0220, 0x000A,0x0110,0x0012,0x0890, 0x0022,0x0448,0x0042,0x2248, 0x0082,0x1244,0x3F02,0x1224, 0x2002,0x0924,0x2002,0x0924, 0x2002,0x0924,0x2002,0x0924, 0x3F02,0x1224,0x0082,0x1244, 0x0042,0x2248,0x0022,0x0448, 0x0012,0x0890,0x000A,0x0110, 0x0006,0x0220,0x0002,0x0040, 0x0000,0x0080,0x0000,0x0000, }; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööŠ|xx\$ü†Ņ# ŽSample Directory PathC:\SOUNDS\*.SND___________________________________SaveOKCancelSCANNING SAMPLES...File name12345678123 ________.___FSample rateSample name0123456789012345678901234567 ____________________________XSaveCancelSelect Sample Directory PathStandard bell[1][You must run the Sample|Allocator program before|you can configure it|with this CPX.][ OK ]Please locate BELL.PRG 6258Hz 12517Hz 25033Hz 50066Hz €@ "HB"H‚D?$  $  $  $  $?$‚DB"H"H  @€,IW¹ŠŪęń*@A’’B\v’’†š›œ¦§’’ Ø“Ā’’ Ċс’’ ŅÓŌ€’’Õįā’’ 恒’üx’’ ’’’’@’@‘ ’’’’@’’’’@’  š’’’’@$’’’’@% ’’’’@& ’’’’@' ’’’’@(’’’’@) ’’’’| ’Į ’’’’@’’’’@˜ ’’’’@’ ’’’’w ’ ’’’’| ’’’’% ’’ ’’’’ “ ’’ A  ’’’’Š ’’’’ģ ’’’’  ’’’’@ $  ’’’’@ ’’’’\ ’’’’’   ’ ’’’’'% ŠšŹööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööBELL.CPX .C [-v -w -ci -cs -cu -cm -d2 -m0 -rr -fm -i..\H\ -Oloop] .S [-m0] .L [TTMALLOC TTLOAD PREFIX BELL.HDR] = CSRCPX.O BELL.C (RBELL.H,..\H\AVR.H,..\H\TSR.H) RBELL.C [-v -w -ci -cu -cm -d2 -m0 -rr -fm -i..\H\ -Oloop] LCGSR.LIB LCSR.LIB ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. c•ĖP.. O•ĖBELL C ŪtiQS BELLTSR PRJ ½ŒdUmMAKEFILE §‰ĖV/** * $Header: e:/lc/examples/bell/tsr\bell.c,v 1.7 1993/11/09 14:38:32 AGK Exp $ * * TSR portion of HiSoft Bell Sample CPX * * $Author: AGK $ * $Revision: 1.7 $ * * (c) Copyright 1991, 1992, 1993 HiSoft **/ #include #include #include #include "tsr.h" #define SAMPLEVERSION "\r\n\033p Sample Allocator v1.07 \033q\r\n" #define COPYRIGHT " Copyright ½ 1991, HiSoft. \r\n" void main(BASEPAGE *bp); #define LEAVE 16384; __saveds __stdargs void start(BASEPAGE *bp) { long shrinklen = (long)bp->p_hitpa - (long)bp->p_lowtpa - LEAVE; cputs(SAMPLEVERSION COPYRIGHT); if (shrinklen > bp->p_tlen + bp->p_dlen + bp->p_blen + 0x100) { putreg(REG_A7, (long)bp->p_lowtpa + shrinklen); Mshrink(bp->p_lowtpa, shrinklen); main(bp); } cputs("Not installed\r\n"); Pterm(1); } #define sndbase ((volatile short *)0xffff8900) #define sndbasehi ((volatile short *)0xffff8902) #define sndbasemid ((volatile short *)0xffff8904) #define sndbaselo ((volatile short *)0xffff8906) #define sndendhi ((volatile short *)0xffff890e) #define sndendmid ((volatile short *)0xffff8910) #define sndendlo ((volatile short *)0xffff8912) #define sndmode ((volatile short *)0xffff8920) #define bell_hook ((void (**)(void))0x5ac) extern struct config __far config; /* forward references needed */ void snd_wait(void) { while ((*sndbase) & 0xff) ; } void snd_kill(void) { *sndbase = 0; } void snd_play(void *buf, long length, short rate) { if (buf) { snd_kill(); *sndbasehi = (short)((unsigned long)buf >> 16); *sndbasemid = (short)((unsigned long)buf >> 8); *sndbaselo = (short)buf; buf = (short *)((unsigned long)buf + length); *sndendhi = (short)((unsigned long)buf >> 16); *sndendmid = (short)((unsigned long)buf >> 8); *sndendlo = (short)buf; *sndmode = rate; *sndbase = 1; /* start single play mode */ } else config.old_bell(); } struct config __far config = { NULL, "#:\\SOUNDS\\*.AVR", "", 0, 0, "#:\\AUTO\\BELL.PRG", snd_play, snd_wait, 0, snd_kill, }; void bell(void) { if (config.snd_cur[0]) snd_play((short *)(&config + 1), config.snd_length, config.snd_rate); else snd_play(NULL, 0, 0); } long change_bell(void) { config.old_bell = *bell_hook; *bell_hook = bell; return 0; } long get_bootdev(void) { return (long)*(short *)0x446; } void main(BASEPAGE * bp) { static struct FILEINFO info; long size = 0; long value; if (getcookie(_SND, &value) && /* must have an _SND cookie */ (value & 2) && /* DMA sound must be available */ !getcookie(HSBL_COOKIE, NULL)) { /* and not already installed */ Fsetdta(&info); if (config.snd_path[0] == '#') { /* never saved before */ config.snd_path[0] = Supexec(get_bootdev) + 'A'; } if (config.snd_tsr[0] == '#') { /* never saved before */ config.snd_tsr[0] = config.snd_path[0]; } if (!Fsfirst(config.snd_path, 0)) { do if (info.size > size) size = info.size; while (!Fsnext()) ; } if (size < getreg(REG_A7) - (long)(&config + 1)) { /* size of sample buffer */ config.snd_maxlen = size; if (putcookie(HSBL_COOKIE, (long)&config)) { Supexec(change_bell); Ptermres(size + (long)(&config + 1) - (long)bp->p_lowtpa, 0); } } } } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööBELL.PRG .C [-v -w -ci -cs -cm -d2 -m0 -rr -fm -i..\H\ -Oloop] .S [-m0] = BELL.C (..\H\TSR.H) LCSR.LIB ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö# # Makefile for bell.prg # HDR = ..\h SRC = bell.c CFLAGS = -i$(HDR) -w -v -rr -cism -d2 -Oloop bell.prg: $(SRC) $(HDR)\tsr.h $(CC) $(CFLAGS) -o$@ -t= $(SRC) @prgflags 7 1 $@ all: bell.prg clean: -rm -f *.o *~* *.lnk realclean: clean rm *.prg öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. h•ĖW.. O•ĖAVR H 5\·XiTSR H [aåYŖtypedef struct { #define AVR_MAGIC 0x32424954 long avr_magic; // '2BIT' char avr_name[8]; // sample name #define AVR_MONO 0 #define AVR_STEREO -1 short avr_mode; // mono/stereo #define AVR_UNSIGNED 0 #define AVR_SIGNED -1 short avr_resolution; // sample resolution short avr_signed; // signed/unsigned sample #define AVR_NON_LOOPING 0 #define AVR_LOOPING -1 short avr_looping; // looping sample control #define AVR_NOTE_NONE -1 short avr_midinote; // assigned midi note unsigned long avr_frequency; // sample frequency unsigned long avr_length; // sample length unsigned long avr_loop_first; // offset of first loop unsigned long avr_loop_end; // offset of end loop char avr_reserved[6]; // reserved char avr_xname[20]; // sample name extension area char avr_user[64]; // user commitable area } avr_t; ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * tsr.h - interface between TSR and CPX * * Started 4/4/91 Alex G. Kiernan * * Copyright (c) 1991 HiSoft */ struct config { void (*old_bell)(void); char snd_path[FMSIZE]; char snd_cur[FNSIZE]; long snd_length; short snd_rate; char snd_tsr[FMSIZE]; void (*snd_play)(short *,long,short); void (*snd_wait)(void); long snd_maxlen; void (*snd_kill)(void); }; #define HSBL_COOKIE 'HSBL' öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. k•ĖZ.. M•ĖDUMPFILEC •že[{DUMPFILEH »œeaDUMPFILEHRD Ģž>bqDUMPFILEPRJ ź…fcŹDUMPFILERSC Ğ>dPLIB s•Ėi#include "dumpfile.h" #include #include #define NO_BYTES 64 /* number of bytes to display */ char directory[60] = "A:\\*.*"; char selection[12] = " "; char file_name[80]; /* name of the file */ FILE *fp; /* file pointer */ long file_length; /* lenght of file */ OBJECT *dial_adr; /* address of dialog box */ void ic_main() { OBJECT *edit_adr; int object_no; int finished = 0; long address = 0; /* load resource file */ if (!rsrc_load("dumpfile.rsc")) { /* test if error */ fatal("Resource file not loaded"); } disp_info(); graf_mouse(M_ON, 0); /* open file */ open_file(); /* address of dialog box FORM1 */ dial_adr = rs_addrdial(FORM1); /* clear the editable text field */ strcpy(edit_adr = rs_addredit(dial_adr, ADDRESS), "000000"); /* draw the form */ rs_drawdial(dial_adr); display_file(0); do { /* give the user control */ object_no = form_do(dial_adr, ADDRESS); /* process depending on exit button */ switch (object_no) { case EXIT_BUTTON: /* deselect the button that caused the exit */ rs_objunselect(dial_adr, object_no); rs_drawobject(dial_adr, object_no); finished = 1; break; case ADDRESS: sscanf(edit_adr, "%x", &address); display_file(address); /* deselect the button that caused the exit */ rs_objunselect(dial_adr, object_no); rs_drawobject(dial_adr, object_no); break; default: rs_objselect(dial_adr, object_no); rs_drawobject(dial_adr, object_no); write_byte(address + object_no - FIRSTELEMENT, object_no); rs_objunselect(dial_adr, object_no); rs_drawobject(dial_adr, object_no); } } while (!finished); /* delete the dialog box and retore the screen */ rs_erasedial(); graf_mouse(M_OFF, 0); /* free the memory used by the resource file */ rsrc_free(); /* close the file */ close_file(); } /*----------------------*/ /* fatal */ /*----------------------*/ void fatal(error) char *error; { printf("Fatal Error : %s\n", error); exit(0); } /*----------------------*/ /* open_file */ /*----------------------*/ void open_file() { char *p; short state; if (fsel_input(directory, selection, &state) && state) { strcpy(file_name, directory); if (p = strrchr(file_name, '\\')) *(++p) = '\0'; strcat(file_name, selection); if (fp = fopen(file_name, "rb+")) { fseek(fp, 0, 2); file_length = ftell(fp); return; } } fatal("file not found"); } /*----------------------*/ /* close_file */ /*----------------------*/ void close_file() { fclose(fp); } /*----------------------*/ /* display_file */ /*----------------------*/ void display_file(address) long address; { int i, line_no = -1; int ch; char *str_adr; if (address > file_length) address = max(file_length - NO_BYTES, 0); fseek(fp, address, 0); for (i = 0; i < NO_BYTES; i++) { if ((i & 7) == 0) { line_no++; sprintf(rs_addredit(dial_adr, FIRSTADDRESS + line_no), "%06x", address + i); rs_drawobject(dial_adr, FIRSTADDRESS + line_no); str_adr = rs_addredit(dial_adr, FIRSTCHARACTER + line_no); } if (feof(fp)) ch = 255; else ch = fgetc(fp); str_adr[(i & 7) + 1] = ch; drawch(ch, i); } for (i = 0; i < 8; i++) rs_drawobject(dial_adr, FIRSTCHARACTER + i); } /*----------------------*/ /* drawch */ /*----------------------*/ void drawch(character, index) int character, index; { sprintf(rs_addredit(dial_adr, FIRSTELEMENT + index), "%02x", character); rs_drawobject(dial_adr, FIRSTELEMENT + index); } /*----------------------*/ /* read_ch */ /*----------------------*/ int read_ch() { int ch; do ch = evnt_keybd() % 256; while (ch != 10 && !isxdigit(ch)); return (ch); } /*----------------------*/ /* write_byte */ /*----------------------*/ void write_byte(address, object_no) long address; int object_no; { int ch1, ch2; char *edit_adr; int value; edit_adr = rs_addredit(dial_adr, object_no); if (address > file_length) return; /* read a byte from the keyboard */ if (!isxdigit(ch1 = read_ch())) return; sprintf(edit_adr, "0%c", ch1); rs_drawobject(dial_adr, object_no); if (isxdigit(ch2 = read_ch())) { sprintf(edit_adr, "%c%c", ch1, ch2); rs_drawobject(dial_adr, object_no); } /* write the byte to the file */ sscanf(edit_adr, "%x", &value); fseek(fp, address, 0); fputc(value, fp); } /*----------------------*/ /* display_info */ /*----------------------*/ void disp_info() { int dial_no; dial_no = init_box(70, 17, 10); button_box(dial_no, 30, 15, " Cont... ", 7); text_box(dial_no, 14, 2, "File Display and modification."); text_box(dial_no, 6, 4, "This program lets you display a file whose"); text_box(dial_no, 6, 5, "name is selected with the file selector."); text_box(dial_no, 6, 6, "The file selected is displayed in hex and ASCII."); text_box(dial_no, 6, 7, "You can move within the displayed file by modifying the"); text_box(dial_no, 6, 8, "address."); text_box(dial_no, 6, 9, "To change a byte, click on it with the mouse"); text_box(dial_no, 6, 10, "and then enter the new hexadecimal value with the keyboard"); text_box(dial_no, 6, 11, "The modification is then made in the file."); draw_box(dial_no); } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö #define FORM1 0 #define EXIT_BUTTON 1 #define ADDRESS 3 #define FIRSTELEMENT 5 #define FIRSTADDRESS 70 #define FIRSTCHARACTER 79 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö¼gĘFORM1¼EXIT¼Address¼FirstElement¼FFirstAddress¼OFirstCharacterė² šöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööDUMPFILE.PRG .C [-cu -d0 -m0 -rs -fd] .S [-m0] = C.O DUMPFILE.C (DUMPFILE.H) LIB\HCLIB.PRJ (LIB\COMPIL.C,LIB\LIBDIAL.C,LIB\LIBMENU.C,LIB\LIBRESOU.C,LIB\LIBWIND.C,LIB\DEFINE.SYM) LCG.LIB LC.LIB öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö $H $ $H$H $LWQPEXITDisplay of a file______Address:______XXXXXX00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" "" "" "" "" "" "" "" ";BQ€’’X[\€’’]`a€’’bef€’’gjk€’’lop€’’qtu€’’vyz€’’{~€’’€ƒ„€’’…ˆ‰€’’ŠŽ€’’’“€’’”—˜€’’™œ€’’ž”¢€’’£¦§€’’Ø«¬€’’­°±€’’²µ¶€’’·ŗ»€’’¼æĄ€’’ĮÄÅ€’’ĘÉŹ€’’ĖĪĻ€’’ŠÓŌ€’’ÕŲŁ€’’ŚŻŽ€’’ßā怒’äē耒’éģķ€’’īńņ€’’óö÷€’’ųūü€’’ż€’’€’’  €’’ €’’€’’€’’€’’ #$€’’%()€’’*-.€’’/23€’’478€’’9<=€’’>AB€’’CFG€’’HKL€’’MPQ€’’RUV€’’WZ[€’’\_`€’’ade€’’fij€’’kno€’’pst€’’uxy€’’z}~€’’‚ƒ€’’„‡ˆ€’’‰Œ€’’Ž‘’€’’“–—€’’˜Ÿ €’’”Ø©€’’Ŗ±²€’’³ŗ»€’’¼ĆÄ€’’ÅĢĶ€’’ĪÕÖ€’’׎߀’’ąėģ€’’ ķųł€’’ ś€’’ €’’  €’’ !,-€’’ .9:€’’ ;FG€’’ ’’N4’’’’$# ’’’’)’’’’H ED’ ’’’’@d’’’’@€’’’’@œ ’’’’@ø  ’’’’@Ō  ’’’’@š ’’’’@  ’’’’@(’’’’@D’’’’@`’’’’@|’’’’@˜ ’’’’@“ ’’’’@Š’’’’@ģ’’’’@’’’’@$’’’’@@’’’’@\’’’’@x ’’’’@” ’’’’@°’’’’@Ģ’’’’@č’’’’@’’’’@  ’’’’@<!’’’’@X "’’’’@t #’’’’@$’’’’@¬%’’’’@Č&’’’’@ä'’’’’@(’’’’@)’’’’@8 *’’’’@T +’’’’@p,’’’’@Œ-’’’’@Ø.’’’’@Ä/’’’’@ą0’’’’@ü1’’’’@ 2’’’’@4 3’’’’@P4’’’’@l5’’’’@ˆ6’’’’@¤7’’’’@Ą8’’’’@Ü9’’’’@ų :’’’’@ ;’’’’@0<’’’’@L=’’’’@h>’’’’@„?’’’’@ @’’’’@¼A’’’’@Ų B’’’’@ō C’’’’@ D’’’’@ ,’’’’@ HNFM’G’’’’ dH’’’’ €I’’’’ œJ’’’’ øK’’’’ ŌL’’’’ šM’’’’ E’’’’ (OV’$ P’’’’ D Q’’’’ ` R’’’’ | S’’’’ ˜ T’’’’ “ U’’’’ Š V’’’’ ģ N’’’’   $öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. s•Ėi.. k•ĖZDEFINE H ²\jyHC H g…ŒkæHC LNK 0jémńHCLIB PRJ jLfnŹHC LIB re†oÜ7#include #include #include #include #include #include "hc.h" ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* Prototypes for functions defined in compil.c */ void CO_exec(void); void CO_term(short); short CO_init(void); /* Prototypes for functions defined in libdial.c */ OBJECT *allocate(long); OBJECT *adr_box(long); long init_box(long,long,long); void copy_screen(long,long,long,long,MFDB *,MFDB *); long text_box(long,long,long,BYTE *); long button_box(long,long,long,BYTE *,long); long gtext_box(long,long,long,BYTE *,long,int,long); int color_box(long,long,long,long,long); BYTE *readstr_box(long,long); long readbut_box(long,long); long edit_box(long,long,long,BYTE *,BYTE *,BYTE *,long); long draw_box(long); /* Prototypes for functions defined in libmenu.c */ void copy_object(long *,long *); int init_menu(long,long,long,long); int draw_menu(void); int delete_menu(void); long title_menu(long); long item_menu(long); int check_menu(long); int enable_menu(long); int select_menu(long); /* Prototypes for functions defined in libresou.c */ int rs_objstate(long,short); void rs_objselect(long,short); void rs_objunselect(long,short); void rs_objxywh(long,short,GRECT *); void rs_drawobject(long,long); void set_clip(int,int,int,int); char *strtime(char *); char *strdate(char *); int rect_point(short *,int,int); void rect_union(short *,short *); void rect_init(short *,int,int,int,int); long rs_addralert(short); long rs_addrdial(short); long rs_addredit(long,short); long rs_addrbutton(long,short); int rs_drawalert(int); void rs_drawdial(long); void rs_erasedial(void); /* Prototypes for functions defined in libwind.c */ void clip(short); long open_window(long,long,long,long,long,BYTE *,BYTE *); long close_window(long); long clear_window(long); long print_window(short,BYTE *); long pos_window(short,short,short); long size_window(long,long *,long *,long *,long *); void close_all(void); void draw(short,short,short,short); long mouse(long *,long *,int); long event(long *,long *,short *,long *,long *,long *); ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö; ; hc.lnk - an example 'WITH' file for linking HiSoft C programs ; from c.o ; fetch main startup code - assumes default options ; from mine1.o ; your object files - remove the leading ';' to enable lines ; from mine2.o ; from mine3.o ; from mine4.o lib hc.lib ; link with HiSoft C GEM toolbox lib lcg.lib ; and normal GEM library lib lc.lib ; with standard C library verbose ; noisy link flag xaddsym ; HiSoft extended symbols in the executable to .prg ; force a GEM output type öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööHC.LIB .C [-v -cu -d2 -m0 -rs -fd -HDEFINE.SYM -Oloop] .S [-m0] .A [-x -s] = COMPIL.C (DEFINE.SYM) LIBDIAL.C (DEFINE.SYM) LIBMENU.C (DEFINE.SYM) LIBRESOU.C (DEFINE.SYM) LIBWIND.C (DEFINE.SYM) ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööś ķémB§B§NŗB—HxNŗNŗB—HxNŗOļNuNVHē 0. J@gS@g` 0,8HĄ/NŗXO/,pI?NA\Op$NŗLßN^NuNV’üHē! pNŗR€fp`p?NNTOJ@f/,ļƒ_graf_mouseƒ_ic_mainƒ_v_clsvwkFƒ@_AESifpZƒ_form_alert’ƒ_graf_handleŌƒ_v_opnvwkčƒ_vq_extnd*ƒ__CXM33XPƒ_wind_get†ņź[3][This program doesn't | work in Low res ][ Cancel ]ģ<ņė6ņéĄNVHē /.pH?NA\OLßN^Nu/./¾¬op` å€Aģ@ 0.NuNV’ų ,r(°mp`¤ ,å€Aģ¤B°".Aģ!R¬R/@pNŗ/a‚ oCģD"#€r’ @01A1A1|1| 1| !| r1A1A2,HĮ/@ .Nŗ o1@0,HĄ". Nŗ o1@ ,N^NuNV’š .=@’š=@’ų". =A’ņ=A’śŠ®=@’ō=@’üŅ®=A’ö=A’ž0,HĄ/./.Hn’šHx/NŗN^NuNV’ģHē .S€/@å€.Aģ¤ 0xAģ¤R°x, /r(°lJ€k Aģ¼°xmp`Ä rNŗAģD px"HÓĄi R€r/@ NŗAģD pxŃĄp’0€1@1@1|1| Bh !n 0,HĄ". /HNŗ o1@0,HĄ".Nŗ o1@ nJfüSˆ‘ī0,HĄ"Nŗ o1@1l// B§AģD/0xNŗ /LīĄ’äN^NuNV’šHē.. S€/@å€.Aģ¤ 0xAģ¤R°x, /r(°lJ€k Aģ¼°xmp`Ź rNŗAģD px"HÓĄi R€r/@ NŗAģD pxŃĄp’0€1@1@1| .@ 1@Bh !n 0,HĄ". /HNŗ o1@0,HĄ".Nŗ o1@ nJfüSˆ‘ī0,HĄ"Nŗ o1@1l// B§AģD/0xNŗ /LīĄ’čN^NuNV’čHē4..,.*. S€/@å€.Aģ¤ 0xAģ¤R°x( /r(°lJ€k Aģø°xmp`NAģDŃĒ$H R r/HNŗ op .R‡ rNŗ oŃĄ*HHxaüXO&@p’:€;@;@J†gp`p M1@1| Bh !K 0,HĄ". /H Nŗ o 1@0,HĄ".Nŗ o 1@*n MJfüSˆ‘Ķ0,HĄ"TNŗ o 1@1l&Aģ'HAģ'HJ®VĄDH€HĄŠ€V€7@ 7|7|J…kpŗ€oz 退7@BkJ†kp¼€o| D€7@ MJfüSˆ‘Ķ R€7@7|/B§/Nŗ Lī,š’ĢN^NuNV’üHē3..,. S‡p(¾€lJ‡k å‡Aģ¼°xop`^ rNŗAģD pxŃĄ*H0-r°Agr°Agr°Ag r°Agp`* m .į€é€".į4(HĀvpăŌ®ŌŌ€1BpLß ĢN^NuHē./,/S‡p(¾€lJ‡k å‡Aģ¼°xop`. rNŗAģD pxŃĄ*H0-r°Ag r°Agp` m Lß ĄNuHē./,/S‡p(¾€lJ‡k å‡Aģ¼°xop`* rNŗAģD pxŃĄ*Hp°mgp` p0- rĄLß ĄNuNV’čHē4..*n,. S€/@å€.Aģ¤ 0xAģ¤R°x* /r(°lJ€k Aģŗ°xmp`ŒAģDŃĒ"P r/H/INŗ op .R‡ rNŗ oŃĄ&HHxałXO$@p’6€7@7@J†gp`p K1@1|(Bh !J 0,HĄ". /H Nŗ o 1@0,HĄ".Nŗ o 1@ MJfüSˆ‘Ķ&n"KJfüS‰“Ė °‰n nJfüSˆ‘ī°ˆn *0,HĄ"TNŗ o 1@1lgR…/aųTXO$€ M"@Ųfü%K%n5| 5|5|5|€BjJ†kp¼€o| D€5@ MJfüSˆ‘Ķ"nJfüS‰“ī °‰n R€5@ KJfüSˆ‘Ė R€5@/B§ o /Nŗ Lī,ą’ŠN^NuNV’ĢHē?4..S‡m¾¬mp`– å€AģD*pHn’äHn’ęHn’čHn’ź/ /@8Nŗ0.’źHĄ2.’čHĮ4.’ęHĀ6.’äHĆHlHl////aųD0,HĄJ€jR€ā€2,HĮJjRā4.’źHĀ6.’čHĆ8.’ęHÄ/Dd8.’äHÄ.„//d//x////B§NŗOļL0,HĄJ€jR€ā€2,HĮJjRā4.’źHĀ6.’čHĆ8.’ęHÄ/D88.’äHÄ///$ꥃ__CXM33 ōD.ŽČ8ÜNV@šŚ$ŹŖ ō¶–äĪ†_gl_hchar œ:†LR8Ś†_handle ę,ƒ_vro_cpyfmDƒ_objc_add8fLƒ_form_center††_mem_mfdb *¢†_scr_mfdb &¦†_wwork Ž : ¶†_hwork œ H ă_form_dial Ž Š \ ƒ_objc_draw ˆƒ_graf_mouse  Žƒ_form_do ęƒ_vs_clip ņņźņėyņé“Hē*o&o~`*Ū S‡J€föLß(€NuNV’üHē# ..,.J¬fJ¬f , J€kJ†jp` )G p)@"tŅ‚)A Ņ‡Ņ†)ARpNŗ/NŗXO|)@` lŃĘCģzÓĘ/ /a’lPOp܀p`¼€mą,, X† rNŗ.`. lŃĒ ¬ r/HNŗAģzŃĄ///a’(POR†pŽ€¼¬ mĢ n"l#HT$HJfüSŠ•Č 3@\)@ , rNŗ l"œ!® p", X///)@$Nŗ , "XZ€.€//,Nŗ , "Z\€.€//,Nŗ , \€LīÄ’ģN^NuHē74J¬fp`–J¬f , l1@D~|`ģ l"HÓĘ*I ­’ f|z;|0-r’°AgjĮüŃĄ&H0+HĄ"²€n"*0Įü lŃĄ&H «’ fŲR… ;@0-Įü lŃĄ&H$|’ 7@0Įü lŃĄ&H k ±Źfä0,2-ĆĄ;A0,2-ĆĄ;A0-HĄą€2,4<’ÄmÅĮŌ€;B0-HĄą€2,4<’ÄmÅĮŌ€;BR‡p܀¾¬ m’p)@Hx/,NŗPO,., \‡z Ś¬ rNŗ lŃĄ*H`p’:€;@;@R‡Śü¾…mź , rNŗ", $Z‚ l&ƒ1‚8\1z1|"Ž1¬ Lß,ģNuJ¬gJ¬fp` B§/,NŗPONuNV’ųHē8J¬g , °¬n ,$"²¬ nJ¬gp` ,$rNŗr’ l1`1b1d1¼ fr1j1h n"l#ˆl$,3‚p3r"HJfüS‰“Č" l1tHĮÓ¬1¼v ,$X€R¬$/Hx//BNŗOļ , r/@ Nŗ lpń"/ t’1‚1‚1‚t1‚v1ƒ 1¼ !¼’ (/T„1„1ƒ1‚1¼ , X€R¬ ///)ANŗB¬ ,$V€Lī’ģN^NuNV/J¬gJ¬f ,S€", $“€op`œ , rNŗ lpńr’1111¼r1 1¼  n"l#ˆ 3",3R¬"HJfüS‰“Č" l11¼ , R¬ //,/Nŗ ,rNŗ", l1 , S€$.’üN^NuHē./ AśśŌ g¾¬ mp`, rNŗ lŃĄ*Hp°mgp`m p0- rĄLß €NuHē./ Aśśˆ g¾¬ mp`4 rNŗ lŃĄ*H0-r°Ag r °Agp`m p0- rĄLß €NuHē./Aśś4 g¾¬ mp`J rNŗ, l"HÓĘ*Ip °mgp`*- VĄDH€HĄ///NŗOļ p l00h rĄLß ĄNuųĢŠY<ō² fT6.*  žīꌬ¢’Œ†€jf^TNņŚŌŹĄØ |pd^XRNH4("ņźąĄ“¬ ˜Ž$ 褔ˆ|h`RJ<4( ī侶¤„~h`VP>82ļƒ__CXM22pƒ_allocatevƒ__CXM33 ®b&Øüvę¼Č®ƒ_objc_addbźdN8†_gl_wcharB4†_gl_hchartXƒ_menu_bar8¤ƒ_menu_tnormal2ņźs-------------------- Acc 1 Acc 2 Acc 3 Acc 4 Acc 5 Acc 6 ".:FR’’PP’’’’ ’’’’’’P’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ģvrnjfb^ņė ņéeNV0.HĄrNŗ".Ņ€p Ņ€ A(gp`pN^NuNV0.HĄrNŗ".Ņ€p Ņ€0. APN^NuNV0.HĄrNŗ".Ņ€p Ņ€0.F@ AĮPN^NuNV0.HĄHx//.aœN^NuNV0.HĄHx//.aØN^NuNVHē n0.HĄ"n$ITJ/ / //Nŗ0.HĄrNŗ".Ņ€ tŠ‚ n"@1QpŅ€"A1QLī’ųN^NuNV’ųHē0 . HĄHn’ų//.aŠ n0.’ųHĄ2.’śHĮ4.’üHĀ6.’žHĆ.ƒ///B§/. /NŗLī ’šN^NuNV’ų .=@’ų". =A’śŠ®S€=@’üŅ®S=A’ž0,HĄHn’ųHx/NŗN^NuNVHē8 p,?NATOr2 ą€ę€tĄ‚&źƒx?ʄĀ‚Ņ///Hl/.Nŗ .Lī’šN^NuNVHē0 p*?NATOr2 tĄ‚$ź‚v㹁āvĀƒvPŅƒ///Hl/.Nŗ .Lī ’ōN^NuHē*o./,/0HĄ¾€m00-HĄ¼€m&0-HĄ2HĮŅ€¾n0-HĄ2-HĮŅ€¼np`pLß ĄNuNVHē< n0HĄ n 2HĮ°m  n2(HĮ n 4(HĀ²‚m" n4(HĀ6HĆւ n 4(HĀ8HÄŲ‚¶„n& n4(HĀ8(HÄŲ‚ n 4(HĀ:(HÅŚ‚ø…n(0€1A–€1C˜1DLß. HĄAī’ö////Hx /NŗOļ0.’ö°Ggr HĄr////Hx /NŗOļ HĄŠ€Aģx=p’ųAģ =p’śAģČ204.’ųŌASB=B’üAģš200.’śŠAS@=@’ž0,HĄHn’ųHx/NŗLī„’īN^NuNV’ąHē?0.. ,.*.(.&.Jƒk’J‡j~0,HĄV€¼€l,J…gJ„f6Hn’šHn’ņHn’ōHn’öHxB§NŗOļ>.’öHĒ<.’ōHĘ:.’ņHÅ8.’šHÄp(ŗ€n*ø€n(/////NŗOļ&Jƒo Š€Aģ1¼*B§Hx/@(Nŗ9| <„NŗPO. g" ."HAHĮt////Hx/NŗOļ. g" . "HAHĮt////Hx/NŗOļ/////Nŗ /4AģxŃĄCģ ÓĄEģČÕĄGģš×Ą.‹/ / /Hx/Nŗ0,HĄHn’ųHn’śHxB§/Nŗ.ƒaŹBl <„NŗOļ. JGoV,HĘ܆AģJphgF HĄ/aü0,HĄAģ(20hHĮAģP40hHĀ.® ///NŗOļ0,AģPŃphp`pLßÄN^NuNV’üHē#>. JGoP,HĘ܆AģJphg@Aģx00hHĄ2,4.ÅĮŌ€Aģ(1‚hAģ 00hHĄ2,4.ÅĮŌ€AģP1‚hp`pLßÄN^NuNV’ų/..J‡kZ Š€AģJpgLHn’ųHn’śHn’üHn’žHx/Nŗ2.’žHĮ n 2.’üHĮ n 2.’śHĮ n 2.’ųHĮ n `p..’ōN^NuHē~Kģ`p*°Uf/ażPXOR‡TMp¾€mčLß €NuNV’ų=n ’ų=n’ś=n’ü=n’ž0,HĄHn’ųHx/NŗN^NuNV’ų/..p¾€lZJ‡oVB§HxNŗ9| <„NŗHn’žHn’ųHn’śHn’ü//HxNŗ9| <„NŗB—HxNŗOļ(`Hn’žHn’ųHn’śHn’üNŗOļ0.’üHĄ n €0.’śHĄ n €0.’ųHĄ.N^NuNV’ąHē4*n&n $n~ g f g~J®gĒJ®g J®gĒJ‡fp`| rĄg B§HxNŗPOAī’š/Hn’ņ//Hn’ōHn’öp//Hn’ą//////////r////NŗOļ\S€g S€grg.`z0.’ņHĄ n €|`j0.’öHĄ n €0.’ōHĄ n €|`N0.’ąr °Af( g g0.’ęHĄ*€0.’čHĄ&€|`( /NŗXO` g4®’ą|`5¶hähT†p ¼€mņ|J†g’, rĄg B§HxNŗPO Lß,ĄN^NuųØ€jbLBöģŅnZPF~ņģęąP~j`Vļƒ_wind_getČ$ƒ_wind_setĘœH†_handleNę’‚4$ ’ƒ_vs_clip¢†_gl_hchartŲƒ_wind_create<ƒ_graf_mouseNdĘ€ä’Zd†__AESintin²†ŠĄØ˜*jƒ@_AESif¼ŚŹ²¢4tƒ_wind_openŲƒ_vst_alignment ƒ_vsf_interior0ƒ_vsf_colorž>ƒ_vr_recflŽƒ_v_gtext †_gl_wcharVƒ_v_pline^ƒ_evnt_button¬ƒ_graf_mkstateąƒ_evnt_multi؃_select_menuņėFņū compil.c_wind_get__CXM33_vq_extnd_v_opnvwk_graf_handle_form_alert@_AESif_v_clsvwk_ic_main_graf_mouse_main_CO_init_CO_term_CO_exec__MERGED_resolution__MNEED_pxyarray_work_out_work_in_handle_gl_hbox_gl_wbox_gl_wchar_gl_hchar_mem_mfdb_scr_mfdb_wwork_hwork_ywork_xworklibdial.c__CXM22_vro_cpyfm_objc_add_form_center_form_dial_objc_draw_form_do_vs_clip_allocate_adr_box_init_box_copy_screen_text_box_button_box_gtext_box_color_box_readstr_box_readbut_box_edit_box_draw_box_tree_number_max_objs_cur_objs_ad_rootlibmenu.c_menu_tnormal_menu_bar_select_menu_enable_menu_check_menu_item_menu_title_menu_delete_menu_draw_menu_init_menu_copy_object_obj_arr_menu_draw_menu_initlibresou.c_objc_offset_sprintf_rsrc_gaddr_rs_objstate_rs_objselect_rs_objunselect_rs_objxywh_rs_drawobject_set_clip_strtime_strdate_rect_point_rect_union_rect_init_rs_addralert_rs_addrdial_rs_addredit_rs_addrbutton_rs_drawalert_rs_drawdial_rs_erasediallibwind.c_evnt_multi_graf_mkstate_evnt_button_v_pline_v_gtext_vr_recfl_vsf_color_vsf_interior_vst_alignment_wind_open__AESintin_wind_create_wind_set_event_mouse_draw_close_all_size_window_pos_window_print_window_clear_window_close_window_open_window_clipmé %/<HPZcp”vd&ˆ‘źš<¦‘6ė®ĀøPĀ:Ė8Ó6Ü4å2ļ0ł ")ļĄé2äīŹ:EOų \gcr{ …˜<¢öÆJ¹\ÅvŠŪ®č õb’F‘ź‘yė  ¤*D3“é<JīäE„2 UābŽoB{x†>’ ŸvŖ µ‘sźĀz‘ ėĖÖįAeé2ėgŹ{ų<Ocų”\! |)–9°E T`^ gźp8|ˆˆ*“T”t®’»¶ŹŲŲöåš‘ź‘ėó P×éTü#ä,5?JXgHrc}ī{ŹŠ • œd£0©“”Į*ĶŗŪšél÷®‘Fėöööööööööööööööööööööööööööööööööööö. |•Ė}.. M•ĖMASTER HRD bN~)MASTER RSC bN²ICONMASTERV$Āööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö–„„„„$$’®²°°°°°°;ø;ø;ø;ø{¼{¼ū¾óŸóŸ€揱Ƈüƒƒü~€üx€<$„’’’’’’ A  –öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. ‚•Ė€.. M•ĖRCLOCK RSC ³mpxRCLOCK HRD “mp‚JCLOCK C 4ŒĖƒ˜ CLOCK PRJ „’r†‚RCLOCK C ømp‡RCLOCK H ømpˆ€DDDD<$<Dtx00:00:00 Clock Clock-6’’G’’’’ $Dööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö)ŅrclocköTIMEöclock_menuöclock_title«õöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * clock.c - simple clock in a window Desk Accessory * * Note: When NOT_A_DA is defined the program is built as a true program, * but if optimising some unused assignments will be reported. */ #include #include #include #include "rclock.h" #include "rclock.c" #ifndef NOT_A_DA #include STACK(1024); // hopefully plenty #endif #define W_TYPE (NAME | MOVER | CLOSER) int new_window(OBJECT *tree, const char *title) { int wh; GRECT p; // compute required size for window given object tree wind_calc(WC_BORDER, W_TYPE, PTRS((GRECT *)&tree[ROOT].ob_x), &p.g_x, &p.g_y, &p.g_w, &p.g_h); wh = wind_create(W_TYPE, ELTS(p)); if (wh >= 0) { wind_title(wh, title); wind_open(wh, ELTS(p)); } return wh; } int redraw(int wh,GRECT *p) { objc_draw(rclock,ROOT,MAX_DEPTH,PTRS(p)); return 1; } #ifdef NOT_A_DA int #else void #endif main(void) { int id, wh = -1; GRECT full; id = appl_init(); rsrc_init(); wind_get(DESK, WF_WXYWH, &full.g_x, &full.g_y, &full.g_w, &full.g_h); rc_constrain(&full, (GRECT *)&rclock[ROOT].ob_x); #ifndef NOT_A_DA menu_register(id, clock_menu); // register as a DA #else wh = new_window(rclock, clock_title); #endif for (;;) { short msg[8], junk; int which; which = evnt_multi(MU_TIMER | MU_MESAG, 0, 0, 0, // mouses 0, 0, 0, 0, 0, // rectangle 1 0, 0, 0, 0, 0, // rectangle 2 msg, // message buffer 2000, 0, // respond every 2s &junk, &junk, &junk, &junk, &junk, &junk); if (which & MU_MESAG) switch (msg[0]) { #ifndef NOT_A_DA case AC_OPEN: if (wh < 0) wh = new_window(rclock, clock_title); else wind_set(wh, WF_TOP, wh); break; case AC_CLOSE: wh = -1; break; #endif case WM_TOPPED: wind_set(msg[3], WF_TOP, msg[3]); break; case WM_CLOSED: wind_close(wh); wind_delete(wh); wh = -1; break; case WM_REDRAW: wind_redraw(msg[3], (GRECT *)&msg[4], redraw); break; case WM_MOVED: wind_set(wh, WF_CXYWH, PTRS((GRECT *)&msg[4])); wind_calc(WC_WORK, W_TYPE, PTRS((GRECT *)&msg[4]), &rclock[ROOT].ob_x, &rclock[ROOT].ob_y, &rclock[ROOT].ob_width, &rclock[ROOT].ob_height); break; } if (which & MU_TIMER) { short top; wind_get(DESK, WF_TOP, &top, &junk, &junk, &junk); if (top == wh) { // may only safely call GEMDOS if on top time_t t; struct tm *tm; time(&t); tm = localtime(&t); sprintf(rclock[TIME].ob_spec,"%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec); *(GRECT *)&msg[4] = *(GRECT *)&rclock[ROOT].ob_x; wind_redraw(msg[3], (GRECT *)&msg[4], redraw); } } #ifdef NOT_A_DA if (wh < 0) break; #endif } #ifdef NOT_A_DA appl_exit(); return 0; #endif } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööCLOCK.ACC .C [-b4 -r6 -w -d2 -m0 -rr -fm] .S [-m0] .L [ADDSYM] = CSRACC.O CLOCK.C (RCLOCK.C,RCLOCK.H) LCGSR.LIB LCSR.LIB öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö#include OBJECT rclock[] = { /*0*/ {-1,1,1,G_BOX,0x0,0x0,(void *)0x1181,1095,1538,8,1}, /*1*/ {0,-1,-1,G_STRING,0x20,0x0,"00:00:00", 0,0,8,1}, }; char clock_menu[] = " Clock "; char clock_title[] = "Clock"; static void fix_tree(OBJECT *s,int max) { int i; for(i=0; i<=max; i++) rsrc_obfix(s,i); } void rsrc_init(void) { fix_tree(rclock,1); } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööextern void rsrc_init(void); extern OBJECT rclock[]; #define TIME 1 extern char clock_menu[]; extern char clock_title[]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. ‹•Ė‰.. M•ĖWRSC H !›\Š€WRSC HRD !›\‹’WRSC RSC !›\ŒTWTEST C DoæŽčWTEST PRJ Š“r”a #define Menu1 0 #define MAbout 8 #define MQuit 17 #define MCheckme 19 #define MDialog 21 #define MInstall 22 #define TestDialog 1 #define DOK 2 #define DCancel 3 #define DEditable 4 #define DParent 5 #define DRadio1 6 #define DRadio2 7 #define DRadio3 8 #define NewDesktop 2 #define AAlert 0 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööLe Menu1Le MLMAboutLMQuitLMCheckmeLMDialogLMInstallLTestDialogLDLDOKLDCancelLDEditableLDParentLDRadio1LDRadio2LDRadio3LNewDesktopLAAlert<ēööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö¦Ž¢$ĀH#T Desk File Other About WERCTEST...---------------------- Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Quit Check me------------------- Dialog box... Install desktop A Test Dialog Box OKCancelJUNKJUNKEditable text: ________XRadio #1Radio #2Radio #3Tiny text...Floppy Disk[2][Simple Test Program][ OK ]’’žDBDBD BD BD BD BD BDBDBG’’Ā@@G’’ņDDDDDDDDDTD’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢IRj€’’ ‡”•€’’ 2Ā–Q   &B’’  ’’’’ $’’’’ +’’’’ 2  ’ ’’’’: ’’’’N ’’’’e ’’’’z ’’’’’’’’¤’’’’¹’’’’Ī’’’’’ć’’’’’ź’’’’õ’’’’ ’’’’ ’’ -’’’’+ ’’’’? ’’’’B’’’’¦ %’’’’l ’’’’u ’’’’~ ’’’’ Ā ’’Q4 ’’’’ Ž  (öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * wtest.c - the WERCS test program for Lattice C 5 * * 28/1/90 - Extended to do a PROGDEF AGK * * This program MUST be compiled with stack checks *off* * * Copyright (c) 1990 HiSoft */ #include #include #include #include #include #include "wrsc.h" /* global variables */ OBJECT *menu_ptr; short screenx,screeny,screenw,screenh; int radio; int deskflag,finished=0; int checked; char edit[20]; int handle; int __stdargs __saveds round_button(PARMBLK *pb) { OBJECT *tree; int slct, flip; short pxy[4]; tree = pb->pb_tree; slct = SELECTED & pb->pb_currstate; flip = SELECTED & (pb->pb_currstate ^ pb->pb_prevstate); pxy[0]=pb->pb_xc; pxy[1]=pb->pb_yc; pxy[2]=pb->pb_xc+pb->pb_wc-1; pxy[3]=pb->pb_yc+pb->pb_hc-1; vs_clip(handle,1,pxy); pxy[0]=pb->pb_x-2; pxy[1]=pb->pb_y-2; pxy[2]=pb->pb_x+pb->pb_w-1+4; pxy[3]=pb->pb_y+pb->pb_h-1+4; if (flip) { pxy[0]-=1; pxy[1]-=1; pxy[2]+=1; pxy[3]+=1; } vsf_color(handle, WHITE); vsf_style(handle, FIS_SOLID); vsf_interior(handle, SOLID); vsf_perimeter(handle, 1); v_rfbox(handle, pxy); if (!flip) { short junk; pxy[0]-=1; pxy[1]-=1; pxy[2]+=1; pxy[3]+=1; vsl_color(handle, BLACK); vsl_type(handle,SOLID); v_rbox(handle, pxy); vst_alignment(handle,1,5,&junk,&junk); vst_color(handle,BLACK); v_gtext(handle,pb->pb_x+pb->pb_w/2,pb->pb_y,(char *)pb->pb_parm); vst_alignment(handle,0,0,&junk,&junk); if (tree[pb->pb_obj].ob_flags & DEFAULT) { pxy[0]-=4; pxy[1]-=4; pxy[2]+=4; pxy[3]+=4; vsl_width(handle,3); v_rbox(handle, pxy); vsl_width(handle,1); } } vsl_color(handle, BLACK); return 0; } void obj_init(void) { OBJECT *tree; static APPLBLK obj[2]; short junk; rsrc_gaddr(R_TREE,TestDialog,&tree); obj[0].ab_parm=(long)tree[DOK].ob_spec; tree[DOK].ob_spec=obj; obj[1].ab_parm=(long)tree[DCancel].ob_spec; tree[DCancel].ob_spec=obj+1; obj[0].ab_code = obj[1].ab_code = round_button; tree[DOK].ob_type=tree[DCancel].ob_type=G_PROGDEF; handle=graf_handle(&junk,&junk,&junk,&junk); } void initialise(void) { if (appl_init()) exit(EXIT_FAILURE); if (!rsrc_load("WRSC.RSC")) { form_alert(1,"[1][Resource file error][ Quit ]"); exit(EXIT_FAILURE); } deskflag=0; rsrc_gaddr(R_TREE,Menu1,&menu_ptr); menu_bar(menu_ptr,1); obj_init(); wind_get(DESK,WF_WORKXYWH,&screenx,&screeny,&screenw,&screenh); graf_mouse(ARROW,NULL); *edit=0; radio=DRadio1; } void setdesk(OBJECT *newdesk) { wind_newdesk(newdesk,ROOT); /* force the AES to redraw the whole screen */ form_dial(FMD_FINISH,0,0,0,0,screenx,screeny,screenw,screenh); } void deinitialise(void) { if (deskflag) { setdesk(NULL); deskflag=0; } menu_bar(menu_ptr,0); rsrc_free(); appl_exit(); } int handle_dialog(OBJECT *dlog,int editnum) { short x,y,w,h; int but; form_center(dlog,&x,&y,&w,&h); form_dial(FMD_START,0,0,0,0,x,y,w,h); form_dial(FMD_GROW,x+w/2,y+h/2,0,0,x,y,w,h); objc_draw(dlog,0,10,x,y,w,h); but=form_do(dlog,editnum); form_dial(FMD_SHRINK,x+w/2,y+h/2,0,0,x,y,w,h); form_dial(FMD_FINISH,0,0,0,0,x,y,w,h); dlog[but].ob_state&=~SELECTED; /* de-select exit button */ return but; } /* * copy a string into a TEDINFO structure. */ void set_tedinfo(OBJECT *tree,int obj,char *source) { char *dest; dest=((TEDINFO *)tree[obj].ob_spec)->te_ptext; strcpy(dest,source); } /* * copy the string from a TEDINFO into another string */ void get_tedinfo(OBJECT *tree, int obj, char *dest) { char *source; source=((TEDINFO *)tree[obj].ob_spec)->te_ptext; /* extract address */ strcpy(dest,source); } void set_button(OBJECT *tree,int parent,int button) { int b; for (b=tree[parent].ob_head; b!=parent; b=tree[b].ob_next) if (b==button) tree[b].ob_state|=SELECTED; else tree[b].ob_state&=~SELECTED; } int get_button(OBJECT *tree,int parent) { int b; b=tree[parent].ob_head; for (; b!=parent && !(tree[b].ob_state&SELECTED); b=tree[b].ob_next) ; return b; } void test_dialog(void) { OBJECT *dlog; int result; rsrc_gaddr(R_TREE,TestDialog,&dlog); set_tedinfo(dlog,DEditable,edit); set_button(dlog,DParent,radio); result=handle_dialog(dlog,DEditable); if (result==DOK) { get_tedinfo(dlog,DEditable,edit); radio=get_button(dlog,DParent); } } void handle_menu(int title,int item) { char *aboutstr; switch (item) { case MAbout: rsrc_gaddr(R_STRING,AAlert,&aboutstr); form_alert(1,aboutstr); break; case MQuit: finished=1; break; case MCheckme: checked^=1; menu_icheck(menu_ptr,MCheckme,checked); break; case MDialog: test_dialog(); break; case MInstall: if (deskflag) { deskflag=0; setdesk(NULL); } else { OBJECT *temp; deskflag=1; rsrc_gaddr(R_TREE,NewDesktop,&temp); temp[0].ob_x=screenx; temp[0].ob_y=screeny; temp[0].ob_width=screenw; temp[0].ob_height=screenh; setdesk(temp); } break; } menu_tnormal(menu_ptr,title,1); } void handle_events(void) { short mbuff[8]; for (; !finished;) { evnt_mesag(mbuff); if (mbuff[0]==MN_SELECTED) { wind_update(BEG_UPDATE); handle_menu(mbuff[3],mbuff[4]); wind_update(END_UPDATE); } } } int main(void) { initialise(); handle_events(); deinitialise(); return EXIT_SUCCESS; } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööWTEST.PRG .C [-b4 -r6 -v -d2 -m0 -rs -fm] .S [-m0] = C.O WTEST.C (WRSC.H) LCG.LIB LC.LIB ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. “•Ė•.. M•ĖGSTLIB PRJ Ō‚’–hGSTLIB C ւ’—”vGSTLIB.TTP .C [-b4 -r6 -v -w -d0 -m0 -rs -cw -fm -j135i -Oloop] .S [-m0] = CS.O GSTLIB.C LCS.LIB öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* lc -w -v -csfm -Lav -O -M gstlib.c */ /* librarian for GST .bin files (c) k.b.v. controls 02 jun 1989 * read existing archive into memory, and build list of modules * process arguments, and modify the archive list * output a ranlib consisting of comment items * output the modules on the list to tmp file. if ok unlink old and rename * we should be able to sort archive list into single pass order as default. * if we use a|b modifiers, the sorting is not done. * we will do everything in memory, requiring approx 100k for typical archive. * * we must have a module name entry in the .bin file else we have problems * Prospero libraries have wierd module name entries. * if we convert to a more reasonable name in our MODULE structure * then we can continue as per Unix. * ie convert to "WIERD blah blah" to "wierd.bin" * but "normal.ext" remains as "normal.ext" * */ #include #include #ifdef LATTICE #include #include #include #define lmalloc(n) malloc(n) #endif /* #define DEBUG */ #define JAN011980 ((1 << 5) | 1) #define UPDATE 1 #define LOAD 2 #ifdef DEBUG #define D(x) x #else #define D(x) #endif /* * Modes, a la GEM-DOS: */ #define S_IJRON 0x01 /* Read-only */ #define S_IJHID 0x02 /* Hidden from search */ #define S_IJSYS 0x04 /* System, hidden from search */ #define S_IJVOL 0x08 /* Volume label in first 11 bytes */ #define S_IJDIR 0x10 /* Directory */ #define S_IJWAC 0x20 /* Written to and closed */ typedef struct { char d_glob[12]; /* GEMDOS wildcard string from Fsfirst */ char d_mask; /* Attribute mask from Fsfirst */ char d_dirent[4]; /* Offset into directory, MSB first */ char d_dirid[4]; /* Pointer to directory structure in GEM mem */ char d_fattr; /* File attributes */ long d_tandd; /* Time and date words */ long d_fsize; /* File size */ char d_fname[14]; /* File name */ } DMABUFFER; typedef struct tm { int tm_sec; /* Seconds (0-59) */ int tm_min; /* Minutes (0-59) */ int tm_hour; /* Hours (0-23); 0 = midnight */ int tm_mday; /* Day of month (1..28,29,30,31) */ int tm_mon; /* Month (0-11); 0 = January */ int tm_year; /* Year AD since 1900 */ int tm_wday; /* Day of week (0-6): 0 = Sunday */ int tm_yday; /* Day of year (0-365,366) */ int tm_isdst; /* Daylight savings time flag: */ /* Non-standard, they make negative==NA */ } tm_t; typedef unsigned long tand_t; /* we use disk format for time */ #ifndef NARGS tand_t tm_to_tand(tm_t *); tm_t *tand_to_tm(tand_t); void mytime(tand_t *); char *myctime(tand_t *); #else tand_t tm_to_tand(); tm_t *tand_to_tm(); void mytime(); char *myctime(); #endif typedef union any_ptr { char *name; struct mod_info *module; struct cref_info *cref; } PTR; typedef struct list { struct list *next; PTR p; } LIST; typedef struct mod_info { char *name; tand_t date; long size; unsigned char *buf; LIST *xdef; LIST *xref; } MODULE; typedef struct cref_info { char *name; LIST *xdef; LIST *xref; } CREF; #define MALLOC(x) (x *)malloc(sizeof(x)) #define AFTER 1 #define BEFORE 2 #define TRUE 1 #define VOIDP char * /* really want a void * */ LIST *libhead = NULL; LIST *xrefhead = NULL; LIST *beforemod = NULL; LIST *ranlib = NULL; char *aftmodname; extern int errno; int verbose, aftbef, sortflag, keepflag, quitflag; #ifndef LATTICE char *calloc(), *malloc(), *realloc(), *strrchr(), *strchr(); #endif #define addlist(x, y) inslist(x, y, NULL) #ifndef NARGS void inslist(LIST **, VOIDP, LIST *); /* want to check for ptr argument */ void dellist(LIST **, LIST *); void mkxrefs(LIST *, LIST **); void prtxrefs(LIST *); void prtlist(LIST *, char *); int sortxrefs(LIST **, LIST *); int weneed(LIST *, MODULE *); int weload(LIST **, LIST **, MODULE *); int mkcode(int, char *, char *, int); void fatal(char *, char *); void faterr(char *, char *); MODULE *gstread(unsigned char *, unsigned char *); MODULE *mkranlib(LIST *, char *); tand_t rdranlib(MODULE *, char *); LIST *msearch(LIST *, char *); LIST *nsearch(LIST *, char *); CREF *addxsym(LIST **, char *); char *newstring(char *, int); char *cleannm(char *); char *strlower(char *); char *unwierd(char *, int); #else void fatal(); void faterr(); void inslist(); void dellist(); void mkxrefs(); void prtxrefs(); void prtlist(); int sortxrefs(); int weneed(); int weload(); int mkcode(); MODULE *gstread(); MODULE *mkranlib(); tand_t rdranlib(); LIST *msearch(); LIST *nsearch(); CREF *addxsym(); char *newstring(); char *strlower(); char *cleannm(); char *unwierd(); #endif void usage() { fprintf(stderr, "Librarian for GST .bin object files (c) kbv controls 1989\n"); fprintf(stderr, "Usage: gstlib {dlmrtux}[vsk][a|b obmod] library [files..]\n"); fprintf(stderr, "\toptions\td delete modules\n"); fprintf(stderr, "\t\tm move modules\n"); fprintf(stderr, "\t\tr replace modules\n"); fprintf(stderr, "\t\tu update modules\n"); fprintf(stderr, "\t\tl load modules\n"); fprintf(stderr, "\t\tt table [modules..]\n"); fprintf(stderr, "\t\tx extract [modules..]\n"); fprintf(stderr, "\t\modifiers\tv verbose\n"); fprintf(stderr, "\t\t\ta|b obmod with m|r replace after|before obmod\n"); fprintf(stderr, "\t\t\ts sort library for single pass\n"); fprintf(stderr, "\t\t\tk keep module datestamp when extracting\n"); fprintf(stderr, "\tall modified libraries will have a ranlib\n"); exit(1); } int main(argc, argv) int argc; char *argv[]; { char **myargv; char inpbuf[160], *p, *q, *r; int myargc = 0; int i, j; FILE *fp; myargv = NULL; for (i = 1; i < argc; i++) { strlower(argv[i]); if (argv[i][0] == '@') { if ((myargv = (char **)calloc(sizeof(char *), 200)) == NULL) fatal("exparg", "duff calloc"); break; } } if (myargv) { for (i = 0; i < argc; i++) { if (argv[i][0] == '@') { if ((fp = fopen(argv[i] + 1, "r")) == NULL) fatal("exparg", argv[i]); while (fgets(inpbuf, 160, fp) != NULL) { p = inpbuf; while (*p) { while (*p == ' ' || *p == '\t' || *p == '\n') p++; if (*p == '\0' || *p == '#') break; if (*p == '\\' && *(p+1) == '\n') break; q = p; for (j = 0; *p && *p != ' ' && *p != '\t' && *p != '\n'; j++,p++) ; if (j) { if ((r = malloc(j+1)) == NULL) fatal("exparg", "duff malloc"); strncpy(r, q, j); r[j] = '\0'; myargv[myargc++] = r; } } } fclose(fp); } else myargv[myargc++] = argv[i]; if (myargc > 199) fatal("exparg", "too many args"); } myargv[myargc] = NULL; return (mymain(myargc, myargv)); } return (mymain(argc, argv)); } int mymain(argc, argv) int argc; char **argv; { char *libname, *cmd, *p; int ret = 2; int fd, keepran, exist = 1; setbuf(stdout, NULL); if (argc < 3) usage(); p = cmd = *++argv; switch (*cmd) { case 'r': case 'u': exist = 0; case 'd': case 'm': case 'l': keepran = 0; break; case 't': case 'x': keepran = 1; break; default: fatal("Usage", "gstlib {dmrutx}[vsk][a|b modname] archive files.."); break; } while (*++p) { switch (*p) { case 'a': aftbef |= AFTER; break; case 'b': aftbef |= BEFORE; break; case 'v': verbose++; break; case 's': sortflag = TRUE; break; case 'k': keepflag = TRUE; break; case 'q': quitflag = TRUE; break; default: usage(); break; } } if (aftbef) aftmodname = *++argv; libname = *++argv; if ((fd = open(libname, O_RAW)) > 0) close(fd); else { if (exist) fatal(libname, "library does not exist"); else if (verbose) fprintf(stderr, "creating new library %s\n", libname); } if (fd > 0) readlib(&libhead, libname, keepran); if (aftbef) { if (*cmd != 'r' || *cmd != 'm' || *cmd != 'u') fatal("a or b modifiers only with r or m option", cmd); if ((beforemod = msearch(libhead, aftmodname)) == NULL) fatal(aftmodname, "not in library"); if (aftbef & AFTER) { beforemod = beforemod->next; } } else beforemod = NULL; switch (*cmd) { case 'd': ret = delete(libname, ++argv); break; case 'l': ret = replace(libname, ++argv, LOAD); break; case 'm': ret = move(libname, ++argv); break; case 'r': ret = replace(libname, ++argv, 0); break; case 't': ret = table(libname, ++argv); break; case 'u': ret = replace(libname, ++argv, UPDATE); break; case 'x': ret = extract(libname, ++argv); break; } myexit(ret); } myexit(ret) int ret; { if (ferror(stdout)) { fprintf(stderr, "stream error on \n"); ret |= 1; } if (quitflag) { fprintf(stderr, "press return to continue\n"); getchar(); } exit(ret); } /* print the table. * if (verbose == 0) just the modnames * if (verbose > 0) we do size and datestamp * if (verbose > 1) we do xdefs (and xrefs) * if (verbose > 3) we do a cross-reference of symbols too. */ int table(libname, namelist) char *libname, **namelist; { register LIST *l; register MODULE *m; LIST *xlisthead = NULL; LIST *tablehead = NULL; register char *name; int all = 1; name = NULL; if (*namelist) all = 0; while (all || (name = *namelist++)) { for (l = libhead; l != NULL; l = l->next) { m = l->p.module; if ((name != NULL) && (strcmp(name, m->name) != 0)) continue; addlist(&tablehead, (VOIDP)m); if (verbose) { printf("%-16.16s size:%5ld date:%s", m->name, m->size, myctime(&m->date)); } else printf("%s\n", m->name); if (verbose > 1) prtlist(m->xdef, " xdef:"); if (verbose > 2) prtlist(m->xref, " xref:"); if (all = 0) break; } all = 0; } if (verbose > 3) { mkxrefs(tablehead, &xlisthead); prtxrefs(xlisthead); } return 0; } /* replace the modules found in the file, (it may have multiple mods) * if update mode is set, we only replace out of date modules */ replace(libname, namelist, mode) char *libname, **namelist; int mode; { char *name; register LIST *l, *xl; LIST *onemod, *resolved = NULL, *unres = NULL; register MODULE *m; tand_t old, new; int count = 0, ret = 0; if (mode & LOAD) for (l = libhead; l; l = l->next) if (weload(&resolved, &unres, l->p.module)) ret |= 1; while (name = *namelist++) { onemod = NULL; readlib(&onemod, name, 0); for (l = onemod; l; l = l->next) { m = l->p.module; new = m->date; new = (new >> 16) | (new << 16); if (mode & LOAD) { if (weneed(unres, m) == 0) continue; if (weload(&resolved, &unres, m)) ret |= 1; } if (xl = msearch(libhead, m->name)) { old = xl->p.module->date; old = (old >> 16) | (old << 16); if (!(mode & UPDATE) || old < new) { xl->p.module = l->p.module; if (verbose) printf("r %s\n", m->name); count++; } } else { inslist(&libhead, (VOIDP)l->p.module, beforemod); if (verbose) printf("a %s\n", m->name); count++; } } } if (verbose > 1 && (mode & LOAD)) prtlist(unres, "unresolved:"); if (ret) return ret; if ((mode & UPDATE) && (count == 0)) return 0; return (copyback(libhead, libname)); } move(libname, namelist) char *libname, **namelist; { char *name; LIST *l; MODULE *m; while (name = *namelist++) { if ((l = msearch(libhead, name)) == NULL) { printf("move: %s is not in library", name); } else { m = l->p.module; dellist(&libhead, l); inslist(&libhead, (VOIDP)m, beforemod); if (verbose) printf("m %s\n", m->name); } } return (copyback(libhead, libname)); } delete(libname, namelist) char *libname, **namelist; { char *name; LIST *l; int ret = 0; if (*namelist == NULL) return -1; while (name = *namelist++) { if (l = msearch(libhead, name)) { dellist(&libhead, l); if (verbose) printf("d %s\n", name); } else { printf("delete: %s not in archive\n", name); ret |= 1; } } if (ret) return(ret); return (copyback(libhead, libname)); } extract(libname, namelist) char *libname, **namelist; { char *name; char tmpname[80]; LIST *l, *xl, onemod; MODULE *m; int dummy = 0; int ret = 0; if (*namelist == NULL) xl = libhead; else xl = NULL; for (;;) { if (xl == NULL) name = *namelist++; else { m = xl->p.module; xl = xl->next; name = m->name; } if (name == NULL) break; if (l = msearch(libhead, name)) { m = l->p.module; strcpy(tmpname, m->name); if (*tmpname == '\0') sprintf(tmpname, "dummy%03d.bin", ++dummy); if (verbose) printf("x %s\n", tmpname); onemod.p.module = l->p.module; onemod.next = NULL; writemod(&onemod, tmpname, keepflag); } else { printf("extract: %s not in %s\n", name, libname); ret |= 1; } } return ret; } /* read a file into memory, and append details to listp * if a single module with no ranlib we use the file datestamp else jan 1 1970 * if the first module is "ranlib" then we re-adjust date fields from there * and eliminate "ranlib" from our enquiries. */ int readlib(listp, name, keepran) LIST **listp; char *name; int keepran; { DMABUFFER filestat; long count; int chunk; tand_t t; unsigned char *mp, *p, *endp; MODULE *m, *ranmod = NULL; LIST *l; int fd; if (mystat(name, &filestat) < 0) faterr("cannot mystat", name); if ((mp = lmalloc(filestat.d_fsize)) == NULL) fatal("readlib", "lmalloc"); if ((fd = open(name, O_RAW)) < 0) faterr("cant open", name); for (p = mp, count = filestat.d_fsize; count > 0L; p += chunk) { chunk = (count > 4096L) ? 4096 : count; if (read(fd, p, chunk) != chunk) faterr("read error", name); count -= chunk; } close(fd); for (count = 0L, p = mp, endp = mp + filestat.d_fsize; p < endp; ) { if ((m = gstread(p, endp)) == NULL) fatal("duff module", name); m->date = JAN011980; addlist(listp, (VOIDP)m); count += m->size; p += m->size; } if (l = msearch(*listp, "ranlib.bin")) { ranmod = l->p.module; if (l != *listp) fatal("ranlib.bin", "is not at beginning"); if (keepran == 0) dellist(listp, l); for (l = *listp; l; l = l->next) { m = l->p.module; t = rdranlib(ranmod, m->name); m->date = t; D(printf("module:%s %s", m->name, myctime(&m->date));) } } else if ((l = *listp) && (l->next == NULL)) l->p.module->date = filestat.d_tandd; return 0; } /* given a memory address, we read the memory to analyse the module. * if ok, we return the details in a freshly malloced MODULE structure * else we return NULL */ MODULE *gstread(mp, endp) unsigned char *mp; register unsigned char *endp; { register unsigned char *p; register MODULE *m; register int len, byte; register short section; char *newname; if ((m = MALLOC(MODULE)) == NULL) fatal("gstread", "malloc"); m->name = ""; m->buf = mp; m->size = m->date = 0L; m->xdef = m->xref = NULL; p = mp; if (*p != 0xfb || *(p+1) != 0x01) return NULL; p += 2; len = *p++; newname = unwierd(p, len); m->name = newstring(newname, strlen(newname)); p += len; while (p < endp) { if (*p++ != 0xfb) continue; switch (byte = *p++) { case 0xfb: break; case 0x01: m->size = (long)(p - mp -2); return m; case 0x02: len = *p++; p += len; break; case 0x03: p += 4; break; case 0x04: p += 2; break; case 0x05: p += 4; break; case 0x06: /* XDEF */ len = *p++; addlist(&m->xdef, (VOIDP)newstring(p, len)); p += len; p += 4; /* .kbv was missing */ section = (*p << 8) + *(p+1); p += 2; break; case 0x07: p += 5; while (*p++ != 0xfb) p += 2; break; case 0x10: /* XREF */ section = (*p << 8) + *(p+1); p += 2; len = *p++; if (section >= 0) addlist(&m->xref, (VOIDP)newstring(p, len)); p += len; break; case 0x12: p += 2; break; case 0x13: m->size = (long)(p - mp); return m; default: printf("escape 0xfb%02x in %s\n", byte, m->name); fatal("gstread", "unknown object type"); break; } } fatal("gstread", "unexpected EOF"); } /* insert an item before list entry and update head if empty * if posn is NULL, then we are adding to the end of list * if posn is not in the list, we've had it */ void inslist(head, str, posn) LIST **head; VOIDP str; register LIST *posn; { register LIST *l, *new; if ((new = MALLOC(LIST)) == NULL) fatal("inslist", "malloc"); new->next = posn; new->p.name = str; for (l = *head; l; l = l->next) { if (l->next == posn) { l->next = new; return; } } *head = new; return; } /* delete entry from list */ void dellist(head, lentry) LIST **head; LIST *lentry; { register LIST *l; if (lentry == *head) *head = lentry->next; else { for (l = *head; l->next; l = l->next) { if (l->next == lentry) { l->next = lentry->next; break; } } } free(lentry); } int weneed(reflist, newmod) register LIST *reflist; register MODULE *newmod; { register LIST *l; if (reflist == NULL) return 0; for (l = newmod->xdef; l; l = l->next) if (nsearch(reflist, l->p.name)) return 1; return 0; } /* merge the new module's symbols into our lists * if multiple xdefs then shout */ int weload(pdeflist, preflist, newmod) MODULE *newmod; LIST **pdeflist, **preflist; { register LIST *l, *xl; register char *name; int ret = 0; for (l = newmod->xdef; l; l = l->next) { name = l->p.name; if (xl = nsearch(*preflist, name)) dellist(preflist, xl); if (nsearch(*pdeflist, name)) { ret |= 1; printf("%s is multiply defined in %s\n", name, newmod->name); } else addlist(pdeflist, name); } for (l = newmod->xref; l; l = l->next) { name = l->p.name; if (nsearch(*pdeflist, name)) continue; if (nsearch(*preflist, name) == NULL) addlist(preflist, name); } return ret; } /* build an xref list from the module list */ void mkxrefs(list, xlist) LIST *list; LIST **xlist; { LIST *modlist; register LIST *l; register MODULE *m; register CREF *xr; char *symbol, *modname; for (modlist = list; modlist; modlist = modlist->next) { m = modlist->p.module; modname = m->name; for (l = m->xdef; l; l = l->next) { symbol = l->p.name; xr = addxsym(xlist, symbol); addlist(&xr->xdef, (VOIDP)modname); } for (l = m->xref; l; l = l->next) { symbol = l->p.name; xr = addxsym(xlist, symbol); addlist(&xr->xref, (VOIDP)modname); } } } /* display the xref list */ void prtxrefs(xlist) LIST *xlist; { register LIST *l, *xl; register CREF *xr; for (l = xlist; l; l = l->next) { xr = l->p.cref; printf("symbol:%s", xr->name); if (xl = xr->xdef) { printf("\txdef:"); for ( ; xl; xl = xl->next) printf(" %s", xl->p.name); } printf("\n"); prtlist(xr->xref, " xref:"); } } void prtlist(list, title) register LIST *list; char *title; { register LIST *l; char buf[256]; l = list; while (l) { strcpy(buf, title); for (; l; l = l->next) { strcat(buf, " "); strcat(buf, l->p.name); if (strlen(buf) > 60) break; } printf("%s\n", buf); } } /* we go thru the whole list of xdef'd symbols. * if it is possible to find any module that contains xref to symbol * we move the xdef MODULE info in the main list to after the xref MODULE * we give up if we make moves but list in unchanged. * we give up if we have 50 attempts to sort list. */ int sortxrefs(list, xlist) LIST **list; LIST *xlist; { register LIST *l, *xl; LIST *xrefl, *refpsn, *defpsn, *copyhead; MODULE *m; register CREF *xr; register int exchanges, changed, attempts; char *modname; copyhead = NULL; for (l = *list; l; l = l->next) addlist(©head, (VOIDP)l); for (attempts = 0; attempts < 50; attempts++) { exchanges = 0; for (l = *list, xl = copyhead; l; l = l->next, xl = xl->next) xl->p.module = l->p.module; for (l = xlist; l; l = l->next) { xr = l->p.cref; for (xl = xr->xdef; xl; xl = xl->next) { defpsn = msearch(*list, xl->p.name); modname = xl->p.name; for (xrefl = xr->xref; xrefl; xrefl = xrefl->next) { if (refpsn = msearch(defpsn, xrefl->p.name)) { D(printf("moving %s after %s\n", modname, xrefl->p.name);) m = defpsn->p.module; dellist(list, defpsn); inslist(list, (VOIDP)m, refpsn->next); defpsn = refpsn->next; exchanges++; } } } } if (verbose > 3) printf("attempt :%d moves done :%d\n", attempts, exchanges); if (exchanges == 0) return 0; for (l = *list, xl = copyhead, changed = 0; l; l = l->next, xl = xl->next) { if (xl->p.module != l->p.module) { changed = 1; break; } } if (changed == 0) return 1; } return 1; } tand_t rdranlib(ranmod, name) MODULE *ranmod; char *name; { register MODULE *m; register unsigned char *p; tm_t t; int byte, len; char buf[128]; sprintf(buf,"module:%-16.16s", name); m = ranmod; p = m->buf; if (*p != 0xfb || *(p+1) != 0x01) return JAN011980; p += 2; len = *p++; if (strncmp(p, "ranlib.bin", len)) return JAN011980; p += len; for (;;) { if (*p++ != 0xfb) return 0L; switch (byte = *p++) { case 0x01: return JAN011980; case 0x02: len = *p++; if (strncmp(p, buf, strlen(buf)) == 0) { strncpy(buf, p, len); p = buf + 32; t.tm_mon = atoi(p) - 1; p += 3; t.tm_mday = atoi(p); p += 3; t.tm_year = atoi(p) - 1900; p += 5; t.tm_hour = atoi(p); p += 3; t.tm_min = atoi(p); p += 3; t.tm_sec = atoi(p); return (tm_to_tand(&t)); } p += len; break; case 0x13: return JAN011980; default: fatal("rdranlib", "unknown object type"); break; } } } MODULE *mkranlib(list, name) LIST *list; char *name; { register LIST *xl; register unsigned char *p; register MODULE *m; register int pass; MODULE *ranmod; LIST *l, onemod; tm_t *tp; char buf[1000], *mp = NULL; if ((ranmod = m = MALLOC(MODULE)) == NULL) fatal("mkranlib", "MALLOC"); m->name = name; m->size = 0L; m->buf = NULL; mytime(&m->date); m->xref = m->xdef = NULL; onemod.p.module = m; onemod.next = list; for (pass = 0; pass < 2; pass++) { p = mp; sprintf(buf, "%s", name); D(printf("mkranlib: %s\n", buf);) p += mkcode(0x01, p, buf, pass); for (l = &onemod; l; l = l->next) { m = l->p.module; tp = tand_to_tm(m->date); sprintf(buf, "module:%-16.16s %8ld %02d %02d %04d %02d %02d %02d ", m->name, m->size, tp->tm_mon+1, tp->tm_mday, tp->tm_year+1900, tp->tm_hour, tp->tm_min, tp->tm_sec); D(printf("%s\n", buf);) p += mkcode(0x02, p, buf, pass); if (xl = m->xdef) { more: strcpy(buf, "xdef:"); for (; xl; xl = xl->next) { strcat(buf, " "); strcat(buf, xl->p.name); if (strlen(buf) > 60) break; } D(printf("%s\n", buf);) p += mkcode(0x02, p, buf, pass); if (xl) goto more; } } p += mkcode(0x13, p, NULL, pass); m = ranmod; m->size = (long)(p - mp); if (pass == 0) if ((p = mp = m->buf = malloc((unsigned)m->size)) == NULL) fatal("mkranlib", "malloc"); } D(printf("ranlib size: %ld\n", m->size);) return m; } int mkcode(code, mp, buf, doflag) register char *mp, *buf; register int code, doflag; { register char *p; register int len; p = mp; if (doflag) { *p++ = 0xfb; *p++ = code; } else p += 2; if (buf != NULL) { len = strlen(buf); if (doflag) { *p++ = len; strncpy(p, buf, len); } else p++; p += len; } return (p - mp); } /* lookup a module name in LIST of modules */ LIST *msearch(list, name) LIST *list; char *name; { register LIST *l; register MODULE *m; for (l = list; l ; l = l->next) { m = l->p.module; if (m && (strcmp(m->name, name) == 0)) return l; } return NULL; } /* lookup a name in LIST of names */ LIST *nsearch(list, name) LIST *list; register char *name; { register LIST *l; for (l = list; l ; l = l->next) { if ((strcmp(l->p.name, name) == 0)) return l; } return NULL; } /* insert symbol into sorted list of xref symbols * create a new node if reqd. return ptr to CREF */ CREF *addxsym(xlist, name) LIST **xlist; char *name; { register LIST *l; register CREF *xr; register int cmp; for (l = *xlist; l ; l = l->next) { xr = l->p.cref; cmp = strcmp(name, xr->name); if (cmp == 0) return xr; if (cmp < 0) break; } if ((xr = MALLOC(CREF)) == NULL) fatal("addxsym", "MALLOC"); xr->name = name; xr->xref = xr->xdef = NULL; inslist(xlist, (VOIDP)xr, l); return xr; } /* copy archive back to tmp file inserting "ranlib" module */ int copyback(liblist, libname) LIST *liblist; char *libname; { int ret = 0; LIST *xlist, *list; char tempname[200], *p; strcpy(tempname, libname); if (p = strrchr(tempname, '\\')) p++; else p = tempname; strcpy(p, "libname.tmp"); list = liblist; xlist = NULL; if (sortflag) { mkxrefs(list, &xlist); if (ret = sortxrefs(&list, xlist)) fprintf(stderr, "unable to sort library %s\n", libname); } if (msearch(list, "ranlib.bin") == NULL) inslist(&list, (VOIDP)mkranlib(list, "ranlib.bin"), list); ret |= writemod(list, tempname, 0); if (ret == 0) { unlink(libname); if (rename(tempname, libname) != 0) faterr("rename", libname); } return ret; } /* write a list of modules to name */ int writemod(list, name, touch) LIST *list; char *name; int touch; { register LIST *l; register MODULE *m; register int fd, chunk, ret; register long count; register unsigned char *p; if ((fd = creat(name, O_RAW)) < 0) faterr("cant creat", name); for (l = list; l != NULL; l = l->next) { m = l->p.module; for (count = m->size, p = m->buf; count > 0L; ) { chunk = (count > 4096L) ? 4096 : count; if (write(fd, p, chunk) != chunk) faterr("write error", name); count -= chunk; p += chunk; } } ret = close(fd); if (touch) keepdate(name, m->date); return ret; } char *newstring(mp, len) register char *mp; int len; { register char *dst, *str; if ((str = dst = malloc(len + 1)) == NULL) fatal("newstring", "malloc"); while (len--) *dst++ = *mp++; *dst = '\0'; D(printf("%s\n", str);) return str; } /* make a normal lowercase filename * with a .bin extension if none already */ char *unwierd(name, len) char *name; int len; { register char *p, *dst; static char wierdbuf[200]; for (p = name, dst = wierdbuf, *dst = '\0'; len > 0; len--, p++) { if (*p == ' ') break; *dst++ = (*p >= 'A' && *p <= 'Z') ? *p + ('a' - 'A') : *p; } *dst++ = '\0'; *dst++ = '\0'; if (strchr(wierdbuf+1, '.') == NULL) strcat(wierdbuf, ".bin"); return wierdbuf; } char *strlower(s) char *s; { register char *p; for (p = s; *p; p++) *p = (*p >= 'A' && *p <= 'Z') ? *p + ('a' - 'A') : *p; return s; } char *cleannm(name) char *name; { register char *p; if (p = strrchr(name, '\\')) return p+1; if (p = strrchr(name, ':')) return p+1; return name; } void faterr(s, t) char *s, *t; { fprintf(stderr, "gstlib: Fatal error: %s %s\n", s, t); perror("Tos error"); myexit(1); } void fatal(s, t) char *s, *t; { fprintf(stderr, "gstlib: Fatal error: %s %s\n", s, t); myexit(1); } #ifndef LATTICE rename(old, new) char *new, *old; { int ret; ret = Frename(0, old, new); if (ret < 0) errno = -ret; return ret; } #endif keepdate(name, date) char *name; tand_t date; { int fd; if ((fd = Fopen(name, 0)) > 0) { Fdatime((short *)&date, fd, 1); Fclose(fd); } else { errno = -fd; perror(name); } return fd; } int mystat(fullname, statptr) char *fullname; DMABUFFER *statptr; { DMABUFFER *saved; char *name; int ret = 0; name = cleannm(fullname); saved = (DMABUFFER *)Fgetdta(); Fsetdta(statptr); ret = Fsfirst(fullname, 0); if (ret < 0) { errno = -ret; ret = -1; } /* else if (strcmp(name, statptr->d_fname) != 0) ret = -1; */ Fsetdta(saved); return ret; } tm_t *tand_to_tm(tandd) register tand_t tandd; { static tm_t tm; static int monbeg[2][12] = { { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }, { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 306, 335 } }; register unsigned time; register unsigned date; int leap; time = tandd >> 16; date = tandd & 0xffffL; tm.tm_sec = (time & 0x1f)<< 1; /* Seconds (0-59) */ tm.tm_min = (time >> 5) & 0x3f; /* Minutes (0-59) */ tm.tm_hour = (time >> 11) & 0x1f; /* Hours (0-23); 0 = midnight */ tm.tm_mday = ((date) & 0x1f); /* Day of month (1..28,29,30,31) */ tm.tm_mon = ((date >> 5) & 0x0f) - 1; /* Month (0-11); 0 = January */ tm.tm_year = ((date >> 9) & 0x3f)+80; /* Year AD since 1900 */ leap = ((tm.tm_year %4) == 0); tm.tm_yday = monbeg[leap][tm.tm_mon] + tm.tm_mday - 1; tm.tm_wday = (3 + tm.tm_year + (tm.tm_year << 2) + tm.tm_yday) % 7; return &tm; } tand_t tm_to_tand(tp) register tm_t *tp; { register tand_t tandd = 0L; tandd <<= 5; tandd |= (tp->tm_hour); tandd <<= 6; tandd |= (tp->tm_min); tandd <<= 5; tandd |= (tp->tm_sec >> 1); tandd <<= 7; tandd |= (tp->tm_year - 80); tandd <<= 4; tandd |= (tp->tm_mon + 1); tandd <<= 5; tandd |= (tp->tm_mday); return tandd; } void mytime(tandp) tand_t *tandp; { *tandp = Tgettime(); *tandp = (*tandp << 16) | (Tgetdate() & 0xffffL); } char *myctime(tandp) tand_t *tandp; { static char ctimbuf[30]; static char *monnm[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; static char *daynm[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; tm_t *tp; tp = tand_to_tm(*tandp); sprintf(ctimbuf, "%s %s %2d %02d:%02d:%02d %04d GMT\n", daynm[tp->tm_wday], monnm[tp->tm_mon], tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec, tp->tm_year+1900); return ctimbuf; } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö#include /* get the AES prototypes and definitions */ #include /* get the VDI prototypes and definitions */ /* v_opnvwk input array */ short work_in[11] = {1,1,1,1,1,1,1,1,1,1,2}; /* v_opnvwk output array */ short work_out[57]; int main(void) { short handle; /* virtual workstation handle */ short junk; /* unused variable */ appl_init(); /* start AES */ handle=graf_handle(&junk, &junk, &junk, &junk); /* find AES handle */ v_opnvwk(work_in, handle, work_out); /* open workstation */ v_clrwk(handle); /* clear workstation */ vsf_interior(handle; FIS_USER); /* select fill type user-defined */ /* draw a circle on screen */ v_circle(handle, work_out[0]/2, work_out[1]/2, work_out[1]/2); v_clsvwk(handle); /* close workstation */ evnt_keybd(); appl_exit(); /* shutdown AES */ return 0; } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. ›•Ė¶.. DEFAULT LNK glŠ·›AS68 SYN oZ­ø(LC1 FRG %q’ŗ=LC1 USA 0„ĄcAES I R\iÅŗ C LNK FlŠÉdERROR CMD †;ŹÅ ATARI S &Q®ĪŠI; ; default.lnk - an example CLINKWITH default file ; ; This file forces the linker to always place programs & data in TT RAM ; (when available), and increases the output buffers to 32K (from 4K); ; note that you should have plenty of memory available in order to do this! ; TTLOAD ; all programs in TT RAM TTMALLOC ; all programs 'Malloc'ing from TT RAM BUFSIZE -32768 ; a nice big output buffer ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö** ** $Header: E:\EXTRAS\RCS\as68.syn,v 1.1 1992/05/13 11:19:08 AGK Exp $ ** ** Define synonyms for AS68 users under ASM ** ** Copyright (c) 1991 HiSoft ** IFND __AS68_SYN __AS68_SYN equ 1 opsyn .macro,MACRO opsyn .endm,ENDM ;--- Exports & imports: opsyn .globl,XDEF opsyn .extern,XREF opsyn .export,XDEF opsyn .import,XREF opsyn .xdef,XDEF opsyn .xref,XREF ;--- Segments & alignment: .bss macro csect udata,2 endm .data macro csect data,1 endm .text macro csect text,0 endm .even macro cnop 0,2 endm .align macro cnop 0,\1 endm opsyn .abs,OFFSET opsyn .dc,DC opsyn .ds,DS opsyn .equ,EQU opsyn .offset,OFFSET ;--- Conditionals: opsyn .else,ELSE opsyn .endc,ENDC opsyn .endif,ENDC opsyn .if,IFNE opsyn .ifc,IFC opsyn .ifeq,IFEQ opsyn .ifge,IFGE opsyn .ifgt,IFGT opsyn .ifle,IFLE opsyn .iflt,IFLT opsyn .ifne,IFNE ;--- Listing et. al. opsyn .page,PAGE opsyn .eject,PAGE opsyn .end,END opsyn .list,LIST opsyn .nolist,NOLIST opsyn .subttl,TTL ENDC ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööPr„prozessorkommando fehlerhaft unerwartetes Dateiende Datei nicht gefunden $ lexikalisches Symbol nicht vorhanden fehlerhafter Gebrauch eines Makros šberlauf des Zeilenpuffers Dateistapel voll nicht erlaubte Umwandlung nicht definierter Bezeichner $ fehlerhafter Ausdruck als Feld-Index Zeichenkette zu lang oder nicht beendet fehlerhafter Bezug auf Struktur Komponentenname fehlt Komponente nicht definiert $ fehlerhafter Funktionsaufruf fehlerhaftes Argument in Funktion zu viele Operanden Operator nicht aufl”sbar runde Klammern nicht Ausgeglichen fehlerhafter konstanter Ausdruck unerlaubter Gebrauch von Aggregaten Struktur als Argument in Funktion verwand fehlerhafter Gebrauch eines abh„ngigen Operators Operand muž Zeiger sein ver„nderbarer "lvalue" ben”tigt arithmetischer Operand ben”tigt Operand muž arithmetisch oder Zeiger sein fehlender Operand fehlerhafte Operation mit Zeiger Zeiger weisen auf unterschiedliche Arten von Objekten unvollst„ndiger Operand fehlerhafte Umwandlung angegeben Vorbesetzung von AUTO-Objekten nicht erlaubt Ausdruck zur Vorbesetzung fehlerhaft schliežende geschweifte Klammer erwartet Dieser Befehl kann im Programmablauf nicht erreicht werden Marke fr Befehl doppelt vorhanden $ geschweifte Klammern nicht Ausgeglichen fehlerhafter Gebrauch eines reservierten Wortes $ BREAK muž in einer Schleife oder in einem SWITCH-Block auftreten CASE nicht in einem SWITCH-Block fehlerhafter CASE-Ausdruck CASE Wert doppelt vorhanden CONTINUE nicht in einer Schleife DEFAULT nicht in einem SWITCH-Block mehr als eine DEFAULT Anweisung WHILE zur DO-Anweisung fehlt fehlerhafter WHILE-Ausdruck ELSE geh”rt zu keinem IF Marke zu GOTO nicht vorhanden Marke schon als Variable definiert $ Ausdruck zur IF-Anweisung nicht vorhanden RETURN-Ausdruck kann nicht konvertiert werden SWITCH-Ausdruck fehlerhaft SWITCH Befehl enth„lt keine CASE-Anweisung Doppelpunkt erwartet Strichpunkt erwartet fehlende runde Klammer ungltige Speicherklasse unvereinbare Typen in Zuweisung oder Vergleich undefiniertes STRUCT/UNION Kennwort $ E62 Deklaration des Ausdrucks doppelt vorhanden $ Struktur enth„lt keine Komponenten fehlerhafte Definition einer Funktion fehlerhafte Feldgrenzen Objekt nicht erlaubt Funktion innerhalb einer Struktur nicht erlaubt Struktur enth„lt sich selbst Funktion als formaler Parameter Fehler in formaler Deklaration $ externes Objekt mit unterschiedlichen Eigenschaften Deklaration erwartet Daten zur Vorbesetzung nicht vollst„ndig bernommen Anwendung von SIZEOF auf Bit-Feld linke geschweifte Klammer erwartet Bezeichner erwartet Marke nicht definiert $ Wert in Aufz„hlungsliste doppelt vorhanden Bitfeld fehlerhaft Pr„prozessor: Schleife in Symbolauswertung Objekt zu grož oder zu wenig Speicher Bezug liegt aužerhalb der Objektgrenzen Neu-Definition des Pr„prozessor-Symbols $ Rckgabewert der Funktion stimmt nicht berein Die formale Deklaration steht in Widerspruch zur Typenliste Die Anzahl der Argumente stimmt nicht Der Typ der Argumente stimmt nicht Konstante in erforderlichen Typ umgewandelt Der Bezeichner des Argumenttyps ist fehlerhaft VOID-Operand ist hier nicht erlaubt Statement hat keine Wirkung kein Bezug auf Bezeichner $ AUTO-Variable nicht vorbesetzt $ #pragma Operand nicht erkannt fehlender Name fr #pragma libcall/syscall/inline E97 E98 Versuch einen konstanten "lvalue" zu ver„ndern kein Prototyp fr Funktion deklariert redundante Schlsselw”rter in der Deklaration Widersprchliche Schlsselw”rter in der Deklaration Konstante hat keinen Wert $ Umwandlung von Zeiger auf Konstante/volatile zu Zeiger auf Variable/volatile E105 $ postfix Ausdrcke nicht anwendbar auf Konstanten zu viele Vorbesetzungen E108 $ fehlerhafter Gebrauch einer Typen-Bezeichnung oder eines Schlsselwortes E110 $ E111 $ E112 $ E113 $ E114 $ E115 $ nicht definiertes Kennwort einer Aufz„hlung $ Aufz„hlung enth„lt keine Komponnenten Sich ausschliežender Gebrauch des UNION/STRUCT/ENUM Kennwortes $ Bezeichner der Definition oder Funktion fehlt $ E120 $ hexadezimale Konstante zu grož fr CHAR (h”herwertige Bits gehen verloren) fehlende Auslassung Kein Kennwort fr Aufz„hlung definiert (kann keinen Prototyp erzeugen) Symboltabelle fr den Debugger l„uft ber ungltige Nummer #ENDIF, #ELSE, or #ELIF ohne zugeh”riges #IF Operand zu # Operator muž ein Makro-Argument sein $ mehrdeutige Komponente $ E130 E131 Zus„tzliche Symbole nach gltiger Pr„prozessor-Anweisung Kann das Makro nicht umdefinieren $ Zu viele Argumente Zuweisung auf krzeren Datentyp (Verlust an Genauigkeit m”glich) fehlerhafter Gebrauch eines REGISTER Schlsselwortes E137 E138 Fehlendes #ENDIF Anwendung des SIZEOF-Operators auf Feld, das in einen Zeiger umgewandelt wurde E141 Feldgr”že niemals angegeben fr $ Objekt hat keine Adresse Ben”tigter Speicher fr Strings und Konstanten berschreitet Maximum E145 langer CASE-Wert in kurzem SWITCH Umwandlung von Zeigern auf Funktionen/Daten in Zeiger auf Daten/Funktionen Gebrauch unvollst„ndiger STRUCT/UNION/ENUM Kennworte $ E149 $ E150 Verwendung der flexiblen ANSI Schlsselwort-Anordnung Funktion kann nicht mit TYPEDEF definiert werden String-Konstanten k”nnen nicht verkettet werden Kein Prototyp fr Funktionszeiger definiert Kein Statement nach Marke E156 E157 E158 E159 E160 no prototype at definition of function E162 E163 E164 E165 unbalanced comment nested comment detected E168 E169 C++-style comment detected implicit cast of integral argument öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööinvalid pre-processor command unexpected end of file file not found $ invalid lexical token invalid macro usage line buffer overflow file stack full invalid conversion undefined identifier $ invalid subscript expression string too large or not terminated invalid structure reference member name missing undefined member $ invalid function call invalid function argument too many operands unresolved operator unbalanced parentheses invalid constant expression illegal use of aggregate structure used as function argument invalid use of conditional operator pointer operand required modifiable lvalue required arithmetic operand required arithmetic or pointer operand required missing operand invalid pointer operation pointers do not point to same type of object integral operand required invalid conversion specified illegal initializer expression invalid initializer expression closing brace expected control cannot reach this statement duplicate statement label $ unbalanced braces invalid use of keyword $ break not inside loop or switch case not inside switch invalid case expression duplicate case value continue not inside loop default not inside switch more than one default while missing from do statement invalid while expression else not associated with if label missing from goto label name conflict $ invalid if expression invalid return expression invalid switch expression no case values for switch statement colon expected semi-colon expected missing parenthesis invalid storage class incompatible aggregate types undefined struct/union tag $ E62 duplicate declaration of item $ structure contains no members invalid function definition invalid array limit expression illegal object illegal object for structure structure includes instance of self invalid use of structure qualifier formal declaration error $ external item attribute mismatch declaration expected initializer data truncated invalid sizeof expression left brace expected identifier expected undefined statement label $ duplicate enumeration value invalid bit field pre-processor symbol loop (macro expansion too long or circular) maximum object/storage size exceeded reference beyond object size redefinition of pre-processor symbol $ function return value mismatch formal definitions conflict with type list argument count incorrect argument type incorrect constant converted to required type invalid argument type specifier illegal void operand statement has no effect no reference to identifier $ uninitialized auto variable $ unrecognized #pragma operand missing name for #pragma libcall/syscall/inline E97 E98 attempt to change a const lvalue no prototype declared for function redundant keywords in declaration conflicting keywords in declaration uninitialized constant $ conversion from pointer to const/volatile to pointer to non-const/volatile E105 $ postfix expression not allowed on a constant too many initializers E108 $ Invalid use of type name or keyword E110 $ E111 $ E112 $ E113 $ E114 $ E115 $ Undefined enum tag $ Enum contains no members Conflicting use of enum/struct/union tag $ Identifiers missing from definition of function $ E120 Hex constant too large for char (high bits will be lost) Missing ellipsis No tag defined for enumeration (cannot construct prototype) Debugger symbol table overflow Invalid number #endif, #else, or #elif out of order Operand to # operator must be a macro argument $ Ambiguous member $ E130 E131 Extra tokens after valid preprocessor directive Cannot redefine macro $ Too many arguments Assignment to shorter data type (precision may be lost) Invalid use of register keyword E137 E138 Missing #endif sizeof operator used on array that has been converted to pointer E141 Array size never given for $ Object has no address Combined storage for strings and constants exceeds maximum E145 long case value in short switch conversion between function and data pointers use of incomplete struct/union/enum tag $ undefined struct/union/enum tag in prototype scope $ E150 use of ANSI flexible keyword ordering cannot define function via typedef name use of string constant concatenation no prototype declared for function pointer no statement after label E156 E157 E158 use of unary minus on unsigned value E160 no prototype at definition of public function non-ANSI use of ellipsis punctuator E163 E164 E165 unbalanced comment nested comment detected E168 E169 C++-style comment detected implicit cast of integral argument ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö** ** $Header: e:/dercs\aes.i,v 1.2 1993/11/08 17:25:50 AGK Exp $ ** ** AES macro definitions for DERCS & Devpac ** ** This file is designed for use with the VDI macros and library supplied ** as part of Devpac. The file is usable either by Devpac or by ASM ** ** (c) Copyright 1991, 1993 HiSoft ** IFND __AES_I __AES_I SET 1 IBM equ 3 SMALL equ 5 G_BOX equ 20 G_TEXT equ 21 G_BOXTEXT equ 22 G_IMAGE equ 23 G_PROGDEF equ 24 G_IBOX equ 25 G_BUTTON equ 26 G_BOXCHAR equ 27 G_STRING equ 28 G_FTEXT equ 29 G_FBOXTEXT equ 30 G_ICON equ 31 G_TITLE equ 32 G_CICON equ 33 TE_LEFT equ 0 TE_RIGHT equ 1 TE_CNTR equ 2 IFD __G2 _TEDINFO MACRO dc.l \1 dc.l \2 dc.l \3 dc.w \4 dc.w \5 dc.w \6 dc.w \7 dc.w \8 dc.w \9 dc.w \A dc.w \B ENDM ELSEIF MACRO _TEDINFO te_ptext,te_ptmplt,te_pvalid,te_font,te_junk1,te_just,te_color,te_junk2,te_thickness,te_txtlen,te_tmplen dc.l te_ptext dc.l te_ptmplt dc.l te_pvalid dc.w te_font dc.w te_junk1 dc.w te_just dc.w te_color dc.w te_junk2 dc.w te_thickness dc.w te_txtlen dc.w te_tmplen ENDM ENDC IFD __G2 _BITBLK MACRO dc.l \1 dc.w \2 dc.w \3 dc.w \4 dc.w \5 dc.w \6 ENDM ELSEIF MACRO _BITBLK bi_pdata,bi_wb,bi_hl,bi_x,bi_y,bi_color dc.l bi_pdata dc.w bi_wb dc.w bi_hl dc.w bi_x dc.w bi_y dc.w bi_color ENDM ENDC IFD __G2 _ICONBLK MACRO dc.l \1 dc.l \2 dc.l \3 dc.w \4 dc.w \5 dc.w \6 dc.w \7 dc.w \8 dc.w \9 dc.w \A dc.w \B dc.w \C dc.w \D dc.w \E ENDM ELSEIF MACRO _ICONBLK ib_pmask,ib_pdata,ib_ptext,ib_char,ib_xchar,ib_ychar,ib_xicon,ib_yicon,ib_wicon,ib_hicon,ib_xtext,ib_ytext,ib_wtext,ib_htext dc.l ib_pmask dc.l ib_pdata dc.l ib_ptext dc.w ib_char dc.w ib_xchar dc.w ib_ychar dc.w ib_xicon dc.w ib_yicon dc.w ib_wicon dc.w ib_hicon dc.w ib_xtext dc.w ib_ytext dc.w ib_wtext dc.w ib_htext ENDM ENDC IFD __G2 _OBJECT MACRO dc.w \1 dc.w \2 dc.w \3 dc.w \4 dc.w \5 dc.w \6 dc.l \7 dc.w \8 dc.w \9 dc.w \A dc.w \B ENDM ELSEIF MACRO _OBJECT ob_next,ob_head,ob_tail,ob_type,ob_flags,ob_state,ob_spec,ob_x,ob_y,ob_width,ob_height dc.w ob_next dc.w ob_head dc.w ob_tail dc.w ob_type dc.w ob_flags dc.w ob_state dc.l ob_spec dc.w ob_x dc.w ob_y dc.w ob_width dc.w ob_height ENDM ENDC IFD __G2 _CICON MACRO dc.w \1 dc.l \2 dc.l \3 dc.l \4 dc.l \5 dc.l \6 ENDM ELSEIF MACRO _CICON num_planes,col_data,col_mask,sel_data,sel_mask,next_res dc.w num_planes dc.l col_data dc.l col_mask dc.l sel_data dc.l sel_mask dc.l next_res ENDM ENDC IFD __G2 _CICONBLK MACRO _ICONBLK \1,\2,\3,\4,\5,\6,\7,\8,\9,\A,\B,\C,\D,\E dc.l \F ENDM ELSEIF MACRO _CICONBLK ib_pmask,ib_pdata,ib_ptext,ib_char,ib_xchar,ib_ychar,ib_xicon,ib_yicon,ib_wicon,ib_hicon,ib_xtext,ib_ytext,ib_wtext,ib_htext,mainlist _ICONBLK ib_pmask,ib_pdata,ib_ptext,ib_char,ib_xchar,ib_ychar,ib_xicon,ib_yicon,ib_wicon,ib_hicon,ib_xtext,ib_ytext,ib_wtext,ib_htext dc.l mainlist ENDM ENDC ENDC öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö* control file for linking Lattice C 5 GST modules. INPUT cnb.bin INPUT * * Real maths library - uncomment if required *LIBRARY lcmnb.bin * GEM graphics library - uncomment if required *LIBRARY lcgnb.bin LIBRARY lcnb.bin * order the sections and specify the BSS area SECTION TEXT SECTION DATA SECTION MERGED_DATA SECTION MERGED_BSS BSS UDATA öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö; ERROR.CMD: Parse Lattice C compilation error files ; using MicroEMACS 3.10 ; ; (C)opyright 1987 by Daniel M. Lawrence ; (C)opyright 1992 HiSoft ; ; This is an example script file for use with MicroEMACS to ; demonstrate how the -E and $EDITOR environment variables may be ; used to provide a semi-integrated environment from a command ; line mode of operation. To make MicroEMACS 3.10 automatically ; read this file on a compiler error, add the environment variable ; entries: ; ; EDITOR=d:\bin\local\me.prg ; or whatever ; LC_OPT=-E=-e ; ; Run standard startup file execute-file "emacs.rc" ; Load up the needed macros set $discmd "FALSE" write-message "[Setting UP]" ; cycle to the next error 39 store-macro run closelast !force 1 next-line run getnext !endm bind-to-key execute-macro-39 FN1 ; cycle to the previous error 38 store-macro run closelast !force 1 previous-line run getnext !endm bind-to-key execute-macro-38 FN2 ; get the next error store-procedure getnext ;check for end of errors 2 next-window !if &seq $line "" 3 next-window write-message "[No more errors]" !return !endif set $discmd "FALSE" ;grab the file name set-mark search-forward " " backward-character kill-region yank set %efile $kill ;and line number forward-character set-mark search-forward ":" backward-character kill-region yank set %eline $kill ;and column number forward-character set-mark search-forward " " backward-character kill-region yank set %ecol &sub $kill 1 ;mark the line beginning-of-line insert-string "[" end-of-line insert-string "]" beginning-of-line unmark-buffer ; save the last file if different 3 next-window !if ¬ &seq $lastfile "" !if ¬ &seq %lastfile %efile save-file select-buffer "[temp]" delete-buffer $lastfile !endif !endif find-file %efile %eline goto-line beginning-of-line %ecol forward-character update-screen write-message &cat &cat &cat &cat "[Error found in " %efile " at line " %eline "]" set $discmd "TRUE" !endm ; close the last error store-procedure closelast ;if at the end.... go away 2 next-window !if &seq $line "" !return !endif ;unmark the last error beginning-of-line delete-next-character end-of-line delete-previous-character beginning-of-line ;and save the file name set %lastfile %efile !endm ; Abort! 40 store-macro 4 exit-emacs !endm bind-to-key execute-macro-40 FN5 ; save current file bind-to-key save-file FN9 ; recompile!!!! bind-to-key quick-exit FN0 ; set the help window 1 split-current-window select-buffer "[Lattice C-Errors]" insert-string "Lattice C Compilation Error Scanning~n" insert-string " F1 Go to next error F9 Save current source file~n" insert-string " F2 Go to last error F10 Re-compile~n" insert-string " F5 Abort compiler" beginning-of-file 4 resize-window add-mode "red" unmark-buffer ; set up the error line window next-window 1 split-current-window 4 resize-window add-mode "black" *getcc !if ¬ &seq &right $cbufname 4 ".err" next-buffer !goto getcc !endif ; set up the current source window next-window next-buffer ; initialize set %lastfile "" run getnext set $gflags 0 set $discmd "TRUE" ; wait for a command ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö* atari.s: AS68/MADMAC synonyms & Atari equates for Lattice ASM ************************************************************************* * History: * 920514 agk updated for new as68.syn * 920424 kbad minor bugfixes * 920421 kbad based on lmd's 870721 atari.s & Lattice as68.syn ************************************************************************* ifnd __ATARI_S __ATARI_S equ 1 include as68.syn * Magic numbers * ======================================================================= bootmagic equ $1234 ; magic checksum for boot sector memmagic equ $752019f3 ; validates 'memvalid' memmag2 equ $237698aa ; validates 'memval2' memmag3 equ $5555aaaa ; validates 'memval3' rammagic equ $1357bd13 ; validates 'ramtop' resmagic equ $31415926 ; validates 'resvalid' * ST hardware locations * ======================================================================= cartbase equ $fa0000 ; start of cartridge ROM cartsize equ $20000 ; size of cartridge (128K) ;--- Shifter memconf equ $ffff8001 ; memory controller dbaseh equ $ffff8201 ; display base high, low dbasel equ $ffff8203 vcounthi equ $ffff8205 ; display counter high, mid, low vcountmid equ $ffff8207 vcountlow equ $ffff8209 syncmode equ $ffff820a ; video sync mode color0 equ $ffff8240 ; ST color palette #0 shiftmd equ $ffff8260 ; video shift mode (resolution) ttcolor0 equ $ffff8400 ; TT background color reg ttshiftmd equ $ffff8262 ; TT shift mode ;--- DMA chip diskctl equ $ffff8604 ; disk controller data access fifo equ $ffff8606 ; DMA mode control dmahigh equ $ffff8609 ; DMA base high, mid, low dmamid equ $ffff860b dmalow equ $ffff860d ;--- 1770 registers cmdreg equ $80 ; 1770/FIFO command register select trkreg equ $82 ; 1770/FIFO track register select secreg equ $84 ; 1770/FIFO sector register select datareg equ $86 ; 1770/FIFO data register select ;--- Sound Chip giselect equ $ffff8800 ; (W) sound chip register select giread equ $ffff8800 ; (R) sound chip read-data giwrite equ $ffff8802 ; (W) sound chip write-data gitoneaf equ 0 ; channel A fine/coarse tune gitoneac equ 1 gitonebf equ 2 ; channel B gitonebc equ 3 gitonecf equ 4 ; channel C gitonecc equ 5 ginoise equ 6 ; noise generator control gimixer equ 7 ; I/O control/volume control register giaamp equ 8 ; channel A, B, C amplitude gibamp equ 9 gicamp equ $a gifienvlp equ $b ; envelope period fine, coarse tune gicrnvlp equ $c giporta equ $e ; GI register# for I/O port A giportb equ $f ; Centronics output register ;--- Bits in "giporta": xrts equ 8 ; RTS output dtr equ $10 ; DTR output strobe equ $20 ; Centronics strobe output gpo equ $40 ; "general purpose" output ;--- 68901 (MFP) mfp equ $fffffa00 ; mfp base gpip equ mfp+$01 ; general purpose I/O aer equ mfp+$03 ; active edge reg ddr equ mfp+$05 ; data direction reg iera equ mfp+$07 ; interrupt enable A & B ierb equ mfp+$09 ipra equ mfp+$0b ; interrupt pending A & B iprb equ mfp+$0d isra equ mfp+$0f ; interrupt inService A & B isrb equ mfp+$11 imra equ mfp+$13 ; interrupt mask A & B imrb equ mfp+$15 vr equ mfp+$17 ; interrupt vector base tacr equ mfp+$19 ; timer A control tbcr equ mfp+$1b ; timer B control tcdcr equ mfp+$1d ; timer C & D control tadr equ mfp+$1f ; timer A data tbdr equ mfp+$21 ; timer B data tcdr equ mfp+$23 ; timer C data tddr equ mfp+$25 ; timer D data scr equ mfp+$27 ; sync char ucr equ mfp+$29 ; USART control reg rsr equ mfp+$2b ; receiver status tsr equ mfp+$2d ; transmit status udr equ mfp+$2f ; USART data ;--- TTMFP 68901 ttmfp equ $fffffa80 ttgpip equ ttmfp+$01 ; general purpose I/O ttaer equ ttmfp+$03 ; active edge reg ttddr equ ttmfp+$05 ; data direction reg ttiera equ ttmfp+$07 ; interrupt enable A & B ttierb equ ttmfp+$09 ttipra equ ttmfp+$0b ; interrupt pending A & B ttiprb equ ttmfp+$0d ttisra equ ttmfp+$0f ; interrupt inService A & B ttisrb equ ttmfp+$11 ttimra equ ttmfp+$13 ; interrupt mask A & B ttimrb equ ttmfp+$15 ttvr equ ttmfp+$17 ; interrupt vector base tttacr equ ttmfp+$19 ; timer A control tttbcr equ ttmfp+$1b ; timer B control tttcdcr equ ttmfp+$1d ; timer C & D control tttadr equ ttmfp+$1f ; timer A data tttbdr equ ttmfp+$21 ; timer B data tttcdr equ ttmfp+$23 ; timer C data tttddr equ ttmfp+$25 ; timer D data ttscr equ ttmfp+$27 ; sync char ttucr equ ttmfp+$29 ; USART control reg ttrsr equ ttmfp+$2b ; receiver status tttsr equ ttmfp+$2d ; transmit status ttudr equ ttmfp+$2f ; USART data ;--- 6850s keyctl equ $fffffc00 ; keyboard ACIA control keybd equ $fffffc02 ; keyboard data midictl equ $fffffc04 ; MIDI ACIA control midi equ $fffffc06 ; MIDI data * BIOS variables * ======================================================================= ;--- "extended" trap vectors: etv_timer equ $400 ; vector for timer interrupt chain etv_critic equ $404 ; vector for critical error chain etv_term equ $408 ; vector for process terminate etv_xtra equ $40c ; 5 reserved vectors memvalid equ $420 ; indicates system state on RESET memcntlr equ $424 ; mem controller config nibble resvalid equ $426 ; validates 'resvector' resvector equ $42a ; [RESET] bailout vector phystop equ $42e ; physical top of RAM _membot equ $432 ; bottom of available memory; _memtop equ $436 ; top of available memory; memval2 equ $43a ; validates 'memcntlr' and 'memconf' flock equ $43e ; floppy disk/FIFO lock variable seekrate equ $440 ; default floppy seek rate _timr_ms equ $442 ; system timer calibration (in ms) _fverify equ $444 ; nonzero: verify on floppy write _bootdev equ $446 ; default boot device palmode equ $448 ; nonzero :: PAL mode defshiftmd equ $44a ; default video rez (first byte) sshiftmd equ $44c ; shadow for 'shiftmd' register _v_bas_ad equ $44e ; pointer to base of screen memory vblsem equ $452 ; semaphore to enforce mutex in vbl nvbls equ $454 ; number of deferred vectors _vblqueue equ $456 ; pointer to vector of deferred vfuncs colorptr equ $45a ; pointer to palette setup (or NULL) screenpt equ $45e ; pointer to screen base setup (|NULL) _vbclock equ $462 ; count of unblocked vblanks _frclock equ $466 ; count of every vblank hdv_init equ $46a ; hard disk initialization swv_vec equ $46e ; video change-resolution bailout hdv_bpb equ $472 ; disk "get BPB" hdv_rw equ $476 ; disk read/write hdv_boot equ $47a ; disk "get boot sector" hdv_mediach equ $47e ; disk media change detect _cmdload equ $482 ; nonzero: load COMMAND.COM from boot conterm equ $484 ; console/vt52 bitSwitches (%%0..%%2) themd equ $48e ; memory descriptor (MD) _____md equ $49e ; (more MD) savptr equ $4a2 ; pointer to register save area _nflops equ $4a6 ; number of disks attached (0, 1+) con_state equ $4a8 ; state of conout() parser save_row equ $4ac ; saved row# for cursor X-Y addressing sav_context equ $4ae ; pointer to saved processor context _bufl equ $4b2 ; two buffer-list headers _hz_200 equ $4ba ; 200hz raw system timer tick _drvbits equ $4c2 ; bit vector of "live" block devices _dskbufp equ $4c6 ; pointer to common disk buffer _autopath equ $4ca ; pointer to autoexec path (or NULL) _vbl_list equ $4ce ; initial _vblqueue (to $4ee) _dumpflg equ $4ee ; screen-dump flag _prtabt equ $4f0 ; printer abort flag _sysbase equ $4f2 ; -> base of OS _shell_p equ $4f6 ; -> global shell info end_os equ $4fa ; -> end of OS memory usage exec_os equ $4fe ; -> address of shell to exec on startup scr_dump equ $502 ; -> screen dump code ;--- character-output vectors for _prtblk(): prv_lsto equ $506 ; -> _lstostat() prv_lst equ $50a ; -> _lstout() prv_auxo equ $50e ; -> _auxostat() prv_aux equ $512 ; -> _auxout() pun_ptr equ $516 ; -> hard disk driver phys unit table memval3 equ $51a ; memory validation _longframe equ $59e ; if nonzero, we're on >68000 _p_cookie equ $5a0 ; -> cookie jar _ramtop equ $5a4 ; top of ram starting at $01000000 _ramvalid equ $5a8 ; _ramtop valid if rammagic ($1357bd13) bell_hook equ $5ac ; handler for bell kcl_hook equ $5b0 ; handler for keyclick * "Line A" equates * ======================================================================= VPLANES equ 0 VWRAP equ 2 CONTRL equ 4 INTIN equ 8 PTSIN equ 12 INTOUT equ 16 PTSOUT equ 20 COLBIT0 equ 24 COLBIT1 equ 26 COLBIT2 equ 28 COLBIT3 equ 30 LSTLIN equ 32 LNMASK equ 34 WMODE equ 36 X1 equ 38 Y1 equ 40 X2 equ 42 Y2 equ 44 PATPTR equ 46 PATMSK equ 50 MFILL equ 52 CLIP equ 54 XMINCL equ 56 YMINCL equ 58 XMAXCL equ 60 YMAXCL equ 62 XDDA equ 64 DDAINC equ 66 SCALDIR equ 68 MONO equ 70 SRCX equ 72 SRCY equ 74 DSTX equ 76 DSTY equ 78 DELX equ 80 DELY equ 82 FBASE equ 84 FWIDTH equ 88 STYLE equ 90 LITEMSK equ 92 SKEWMSK equ 94 WEIGHT equ 96 ROFF equ 98 LOFF equ 100 SCALE equ 102 CHUP equ 104 TEXTFG equ 106 SCRTCHP equ 108 SCRPT2 equ 112 TEXTBG equ 114 COPYTRAN equ 116 SEEDABORT equ 118 * "Line A" macros * ======================================================================= A_init macro dc.w $a000 endm A_putpix macro dc.w $a001 endm A_getpix macro dc.w $a002 endm A_abline macro dc.w $a003 endm A_habline macro dc.w $a004 endm A_rectfill macro dc.w $a005 endm A_polyfill macro dc.w $a006 endm A_bitblt macro dc.w $a007 endm A_textblt macro dc.w $a008 endm A_showcur macro dc.w $a009 endm A_hidecur macro dc.w $a00a endm A_chgcur macro dc.w $a00b endm A_drsprite macro dc.w $a00c endm A_unsprite macro dc.w $a00d endm A_copyrstr macro dc.w $a00e endm A_seedfill macro dc.w $a00f endm * OS macros * ======================================================================= ;--- trap to BIOS .macro Bios trpno,clean move.w #trpno,-(sp) trap #13 .ifgt clean-8 lea clean(sp),sp .else addq #clean,sp .endif .endm ;--- trap to XBIOS .macro Xbios trpno,clean move.w #trpno,-(sp) trap #14 .ifgt clean-8 lea clean(sp),sp .else addq #clean,sp .endif .endm ;--- trap to GEMDOS .macro Gemdos trpno,clean move.w #trpno,-(sp) trap #1 .ifgt clean-8 lea clean(sp),sp .else addq #clean,sp .endif .endm ;--- define & use a string ; String "foobar" (push onto stack) ; String "foobar",a0 move address of string somewhere .macro String str,loc csect data,1 string\@: dc.b "str",0 csect text,0 .ifgt \#-1 move.l #string\@,loc .else pea string\@ .endif .endm * BIOS traps * ======================================================================= ;--- character device numbers PRT equ 0 ; printer AUX equ 1 ; RS-232 CON equ 2 ; console (vt-52 emulator) MIDI equ 3 ; MIDI port IKBD equ 4 ; ikbd (out only) RAWCON equ 5 ; console (raw characters) ;--- .macro Getmbp ptr move.l ptr,-(sp) Bios 0,4 .endm ;--- .macro Bconstat dev move.w dev,-(sp) Bios 1,4 .endm ;--- .macro Bconin dev move.w dev,-(sp) Bios 2,4 .endm ;--- .macro Bconout dev,char move.w char,-(sp) move.w dev,-(sp) Bios 3,6 .endm ;--- .macro Rwabs rwflag,buf,count,recno,dev move.w dev,-(sp) move.w recno,-(sp) move.w count,-(sp) move.l buf,-(sp) move.w rwflag,-(sp) Bios 4,14 .endm ;--- .macro Setexc vecnum,vec move.l vec,-(sp) move.w vecnum,-(sp) Bios 5,8 .endm ;--- .macro Tickcal Bios 6,2 .endm ;--- .macro Getbpb devno move.w devno,-(sp) Bios 7,4 .endm ;--- .macro Bcostat devno move.w devno,-(sp) Bios 8,4 .endm ;--- .macro Mediach devno move.w devno,-(sp) Bios 9,4 .endm ;--- .macro Drvmap Bios 10,2 .endm ;--- .macro Kbshift mode move.w mode,-(sp) Bios 11,4 .endm * Extended BIOS traps * ======================================================================= .macro Initmous type,param,vec move.l vec,-(sp) move.l param,-(sp) move.w type,-(sp) Xbios 0,12 .endm ;--- .macro Physbase Xbios 2,2 .endm ;--- .macro Logbase Xbios 3,2 .endm ;--- .macro Getrez Xbios 4,2 .endm ;--- .macro Setscreen logloc,physloc,rez move.w rez,-(sp) move.l physloc,-(sp) move.l logloc,-(sp) Xbios 5,12 .endm ;--- .macro Setpalette ptr move.l ptr,-(sp) Xbios 6,6 .endm ;--- .macro Setcolor colnum,color move.w color,-(sp) move.w colnum,-(sp) Xbios 7,6 .endm ;--- .macro Floprd buf,devno,sectno,trackno,sideno,count move.w count,-(sp) move.w sideno,-(sp) move.w trackno,-(sp) move.w sectno,-(sp) move.w devno,-(sp) clr.l -(sp) ; (filler) move.l buf,-(sp) Xbios 8,20 .endm ;--- .macro Flopwr buf,devno,sectno,trackno,sideno,count move.w count,-(sp) move.w sideno,-(sp) move.w trackno,-(sp) move.w sectno,-(sp) move.w devno,-(sp) clr.l -(sp) ; (filler) move.l buf,-(sp) Xbios 9,20 .endm ;--- .macro Flopfmt buf,devno,spt,trackno,sideno,interlv,magic,virgin move.w virgin,-(sp) move.l magic,-(sp) move.w interlv,-(sp) move.w sideno,-(sp) move.w trackno,-(sp) move.w spt,-(sp) move.w devno,-(sp) clr.l -(sp) ; (filler) move.l buf,-(sp) Xbios $a,26 .endm ;--- .macro Midiws cnt1,ptr move.l ptr,-(sp) move.w cnt1,-(sp) Xbios $c,8 .endm ;--- .macro Random Xbios $11,2 .endm ;--- .macro Protobt buf,serialno,disktype,execflag move.w execflag,-(sp) move.w disktype,-(sp) move.l serialno,-(sp) move.l buf,-(sp) Xbios $12,14 .endm ;--- .macro Flopver buf, devno, sectno, trackno, sideno, count move.w count,-(sp) move.w sideno,-(sp) move.w trackno,-(sp) move.w sectno,-(sp) move.w devno,-(sp) clr.l -(sp) ; (filler) move.l buf,-(sp) Xbios $13,20 .endm ;--- CURS_HIDE equ 0 CURS_SHOW equ 1 CURS_BLINK equ 2 CURS_NOBLINK equ 3 CURS_SETRATE equ 4 CURS_GETRATE equ 5 .macro Cursconf func,op move.w op,-(sp) move.w func,-(sp) Xbios $15,6 .endm ;--- .macro Settime datetime move.l datetime,-(sp) Xbios $16,6 .endm ;--- .macro Gettime Xbios $17,2 .endm ;--- .macro Kbdvbase Xbios $22,2 .endm ;--- .macro Vsync Xbios $24,2 .endm ;--- .macro Supexec where move.l where,-(sp) Xbios $26,6 .endm * GEMDOS traps * ======================================================================= .macro Dsetdrv drive move.w drive,-(sp) Gemdos $e,4 .endm ;--- .macro Pterm0 clr.w (sp) trap #1 illegal .endm ;--- .macro Cconin Gemdos 1,2 .endm ;--- .macro Cconout char move.w #char,-(sp) Gemdos 2,4 .endm ;--- .macro Cconws str String str Gemdos $9,6 .endm ;--- .macro Pterm code .ifgt \# move.w code,-(sp) .else clr.w -(sp) .endif move.w #$4c,-(sp) trap #1 illegal .endm ;--- .macro Super clr.l -(sp) move.w #$20,-(sp) trap #1 addq #6,sp move.l d0,-(sp) move.w #$20,-(sp) .endm ;--- .macro User trap #1 addq #6,sp .endm ;--- .macro Puts string move.l string,-(sp) Gemdos 9,6 .endm ;--- .macro Tgetdate Gemdos $2a,2 .endm ;--- .macro Tsetdate date move.w date,-(sp) Gemdos $2b,4 .endm ;--- .macro Tgettime Gemdos $2c,2 .endm ;--- .macro Tsettime time move.w time,-(sp) Gemdos $2d,4 .endm ;--- .macro Fgetdta Gemdos $2f,0 .endm ;--- .macro Sversion Gemdos $30,2 .endm ;--- .macro Dfree buf,drive move.w drive,-(sp) move.l buf,-(sp) Gemdos $36,8 .endm ;--- FO_READ equ 0 FO_WRITE equ 1 FO_RW equ 2 .macro Fopen file,mode move.w mode,-(sp) move.l file,-(sp) Gemdos $3d,8 .endm ;--- .macro Fcreate file,mode move.w mode,-(sp) move.l file,-(sp) Gemdos $3c,8 .endm ;--- .macro Fread handle,count,buf move.l buf,-(sp) move.l count,-(sp) move.w handle,-(sp) Gemdos $3f,12 .endm ;--- .macro Fwrite handle,count,buf move.l buf,-(sp) move.l count,-(sp) move.w handle,-(sp) Gemdos $40,12 .endm ;--- .macro Fclose handle move.w handle,-(sp) Gemdos $3e,4 .endm ;--- .macro Fdelete file move.l file,-(sp) Gemdos $41,6 .endm ;--- .macro Fseek offset,handle,mode move.w mode,-(sp) move.w handle,-(sp) move.l offset,-(sp) Gemdos $42,10 .endm ;--- .macro Fsetdta addr move.l addr,-(sp) Gemdos $1a,6 .endm ;--- .macro Ptermres count,retcode .ifgt \#-1 move.w retcode,-(sp) .else clr.w -(sp) .endif move.l count,-(sp) move.w #$31,-(sp) trap #1 illegal .endm ;--- .macro Mshrink block,newsiz move.l newsiz,-(sp) move.l block,-(sp) clr.w -(sp) Gemdos $4a,12 .endm ;--- .macro Malloc amount move.l amount,-(sp) Gemdos $48,6 .endm ;--- .macro Mfree addr move.l addr,-(sp) Gemdos $49,6 .endm ;--- .macro Pexec mode,p1,p2,p3 move.l p3,-(sp) move.l p2,-(sp) move.l p1,-(sp) move.w mode,-(sp) Gemdos $4b,16 .endm ;--- .macro Fsfirst fspec,attr move.w attr,-(sp) move.l fspec,-(sp) Gemdos $4e,8 .endm ;--- .macro Fsnext Gemdos $4f,2 .endm * Structures * ======================================================================= ;--- Basepage Format .ABS 0 Plowtpa: ds.l 1 ; -> base of TPA Phitpa: ds.l 1 ; -> top of TPA +1 Ptbase: ds.l 1 ; -> text segment Ptlen: ds.l 1 ; text segment size Pdbase: ds.l 1 ; -> data segment Pdlen: ds.l 1 ; data segment size Pbbase: ds.l 1 ; -> BSS segment Pblen: ds.l 1 ; BSS segment size Pxdta: ds.l 1 ; -> current DTA Pparent: ds.l 1 ; -> parent basepage Prsv1: ds.l 1 Penv: ds.l 1 ; -> environment Prsv2: ds.l 20 Pcmdlin: ds.b 128 ; command line sizeof_BP: ;--- Searchfirst/Searchnext DTA structure .ABS 0 ds.b 21 DTA_attr: ds.b 1 DTA_time: ds.w 1 DTA_date: ds.w 1 DTA_size: ds.l 1 DTA_name: ds.b 14 sizeof_DTA: ;--- OS header pointed to by _sysbase .ABS 0 OS_entry: ds.w 1 ; $00 BRA to reset handler OS_version: ds.w 1 ; $02 TOS version number OS_reseth: ds.l 1 ; $04 -> system reset handler OS_beg: ds.l 1 ; $08 -> base of OS OS_end: ds.l 1 ; $0c -> end of BIOS/GEMDOS/VDI memory usage OS_rsv1: ds.l 1 ; $10 reserved OS_magic: ds.l 1 ; $14 -> GEM MPB (or NULL) OS_date: ds.l 1 ; $18 date of system build ($DDMMYYYY) OS_conf: ds.w 1 ; $1c OS configuration bits OS_dosdate: ds.w 1 ; $1e DOS-format date the system was built **** the following are available in TOS >= 1.2 OS_root: ds.l 1 ; $20 -> base of OS pool OS_kbshift: ds.l 1 ; $24 -> keyboard shift state variable OS_run: ds.l 1 ; $28 -> GEMDOS PID of current process OS_rsv2: ds.l 1 ; $2c reserved sizeof_OS: .TEXT endc öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. ¬•Ėį.. HFSEL PRG tS1āHFSEL TXT T«1čæ`T`File Selector v1.9 ½ HiSoft 1990 Cś®2Ą@ ĄüAśBŠĄp2Ą2Ą2ĄBQ"<f0<ČNB0:ĀNuÜä .6 paCśt < "€#@B#@pg&²<.gĮQČ’ņg²<.fRŠCśHpŚWČ’üS‰BpAś.aŹpAł ’a¾?</NAT#ĄˆHz®?<NA\AśĪCś –ŁfüpAś ėBŠüQČ’ų?< NMTAś“tāHTĆC0ƒŠüQŹ’šBy|3śHxpaīBy~3üv#ü`.p6aüŲLŗžČH¹h3ü3ü3ü3ü3ü3Ą 3Į 3Ā3Ćp3aü„paaŠ`"B¹3ü!paüdg0:žXr’NuaÜg†°|afp`’°< fp`†°<g°< e`vGśä`vGśÜ`0°<.g°<ae °<{d߀0RC`r’Co ¼ 0RCSAfō¶< ga’lg°< eī`¼B30 Kpa#ü`.3üp2aū“Qłp>j PłpG’Jyrg0:Śraa,Cś °0@’ŲĄü:ü\J@gRˆŲfü`ü*ü.ü*BAś ‚pa`?a0H@0<Hē a,LßNuĄü€`"@"i 2)"QUAgĄQÉ’ųBNu#Ą#łh#łl#ü`.p*`÷T3ĄĄü |`#Č.00 @’ž€ABy#ś f#ś b3Ą 3üp/`÷ 3ś Vz3ś J~J@g < `’pNu8r ?: 0Āś ,Ņŗ 2&A?/?<NNAP:`œp ü QČ’śGė’ōAś 2p"Kg ²<.gĮQČ’ņJ@jJgpCėĮgĮQČ’ų 9”f&Aś ō .fJg( .fJgGė PŪRyz`JDf Gė QŪRyz0: Ž°z ’fzĻ` ?<ONAT:0g’b6: p0–@gLSCgHĄü Šŗ h$@SCk: J4xp "HGč ·nfQČ’ų` Ip PÄč A QČ’ōAé QŹ’ŅJfĀ0NuAś TJfü €¹g S@ \WČ’śR@NuAśCś 0f Aś’pażÜ`č :fJĮRˆü: \gü\ŲfüAśĢCśüŁfüAśō`ŹŲfüAßA@3Į€k²|eBy€`ĮŲfü0:„grażą0:‚g@3ĄvrażŹByz3üpNaõa’:AśŒCśŗJ@gŲQČ’üü*ü.ü*BpAśœażņ°|’ßg°|’ĻfAśVpażÜ°|’ßg°|’Ļg3ü’’z3üpNaō¢ažŌGśXgRˆŲfü €ź°|d #ü źAś4paü¶p80:¶@ ø@o8JDjxGłŒ(z¦v0Ąü ŁĄ Sü ü 0ŠC°yzmp ü_QČ’ś|.’ü`p ÜQČ’üJg|’ņü BÖüRC¶| m“ <aür3Ä~ y znBy|3śx`,p Ąś€ś3Ąx0:zĄś2:üA €Į3Ą|p`ü”v#ü`.3Ćpraó„RC¶|+fā3śŹtNuHiSoft Extended File SelectorAbout... FILENAME.111 FILENAME.222 FILENAME.333 FILENAME.444 FILENAME.555 FILENAME.666 FILENAME.777 FILENAME.888 FILENAME.999 OKCancelDirectory:DrivesA:\*.*[1][Brought to you from HiSoft,| suppliers of powerful| Atari ST software][OK| More ][1][Copyright ½ HiSoft 1990|The Old School, Greenfield,|Bedford, MK45 5DE England|Phone: (0525) 718181][Deinstall|OK]„«Ņ''JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ______________________________________Pšü  FILENAMEXXX________.___F(4A”’’ FILENAMEXXX________.___F ¼ Ł Ł€’’’’*(’’’’D’’’’h&’’’’Ō ’’’’@’ž’’’’@ ž÷ @  @ ’’’’@ ’’’’@  @ ’’’’@’ ’’’’@ ć’’’’@ ó’’’’@ ’’’’@ ’’’’@ #’’’’@ 3’’’’@ C’’’’@ S’’’’@ c ’’’’ s’’’’ v ’’’’ }*) ’’’’A’’’’’B’’’’’C’’’’’D’’’’’E’’’’’F’  ’’’’G’!’’’’H’"’’’’I’#’’’’J’$’’’’K’%’’’’L’ &’’’’M’'’’’’N’(’’’’O’)’’’’P’’’’’ ˆž’’’’% Śž /:ģD?<"?<NMPAśų0¼NqAśö0¼NqNugX ÆfNJ9Ūg!üˆ 8"/ k!ĮNsJÆ k(/ /°øņLßePłŪ#ļ/|NqNł4Vxgō ÆfźJ9Ūg!üˆ 8"/ k!ĮNsJÆ kÄ/ /°øņLße“PłŪ#ļ/|`œ#ųˆb!üˆNł4Vx°|Čf/ A P PZg P[g _/:ė0NuHłžž:Cś÷| P[f A h"hAśłš ‰OśźŅJ9Śf zģŌ#čjPłŚa÷0<ōaf00<–af( zģ® h B`r3Ą‚Ąü /?<HNA\#Ą„Nu zģ†#čj h$h Paģ¤Hē /:ż²?<INA\LßJGg"zģT"i&iŚfü&QŲfü"zģ>"i 2ü2ĒLśžžģ. _NsHzéš?< NA\Hz?<&NN\Bg/<?<1NA#ų“žAśżüJxžgAśžV!Č“NuRPN ¤ Öb,"8&NØ" ~&ˆh$ ^("H“d0080زō. . 0$&‚öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö The HiSoft Extended File Selector ================================= This is a replacement for the GEM File Selector, used by most HiSoft products and many other GEM applications, offering many advantages. This product is supplied as a service to HiSoft customers. It is *not* public domain, but is supplied with most of our products. This version (1.9) also emulates the GEM fsel_exinput call on pre-1.4 ROMs. Installation ============ The file HFSEL.PRG should be copied into an AUTO folder on your boot disk. When you re-boot your machine, the new file selector will be available. It uses less than 6k bytes. Improvements ============ The Selector looks fairly similar to the standard one and has been designed to be used in a similar way, but without the annoying features. There are sixteen Drive buttons, allowing easy changing of drives. When you change the Directory string from the keyboard you can press the Return key to re-display the filename list, without forcing a Cancel. By default up to 150 files are displayed (the norm is 100) but, if memory allows, up to 600 files will be shown. While a disk directory is being read, the keyboard is being read so you can type-ahead into the Filename box. No ESC will be needed if you type- ahead. The Undo key may be pressed to Cancel the Selector whilst the disk is being read. Similar Features ================ The bug in pre-blitter ROMs to do with pressing the Underline key when in the Directory string still affects the HiSoft Selector. Compatibility ============= It should be compatible with all GEM programs that use the normal File Selector. If you encounter any problems please write to us, stating the serial number of the HiSoft product you obtained this from. The selector may be de-installed if required by selecting the relevant option from the About.. alert box. HiSoft, The Old School, Greenfield, Bedford, MK45 5DE, England Phone: (0525) 718181 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. 4vjź.. SYS 5vjė__LIMITSH |‰oō!__MODES H }‰oõž__TYPES H €‰oö'ACC H ‰o÷ÆAES H ‚‰oųäASSERT H ƒ‰o›BASEPAGEH „‰ońCDBIND H …‰ołCONIO H †‰oĘCOOKIE H ‡‰o1CPX H ˆ‰o0CTYPE H ‰‰o–DIRENT H Š‰o=DOS H Š‰o ÷ DRAGDROPH Œ‰o øDSPBIND H Œ‰o VERRNO H ‰oqERROR H Ž‰o EXT H ‰oFCNTL H ‰oāFCTYPE H ‘‰ołFLOAT H ’‰oO FTW H “‰ovGEMEXTRAH ”‰oĄGEMLIB H •‰oGEMOUT H –‰o£IEEEFP H —‰oŒIO H ˜‰o!IOS1 H ™‰o˜. 5vjė.. 4vjźDIR H ĉoģOEXCEPT H ʼnoķŹFILE H ʉoī PARAM H ʉoļHSTAT H Ē‰oš TYPES H ȉoń‹WAIT H ɉoóģ€ˆ_DIR_H€_DIR_H€dirent directŒ #undef dirent€MAXNAMLEN 13€DIRSIZ 128‡6]; Ÿ_AESintout[7]; ‹*_AESaddrin[3]; ‹*_AESaddrout[1]; „ƒ{ ap_event; ap_value; }EVNTREC; ‚appl_init(‹); ‚appl_read(‚,‚,‹*); ‚appl_write(‚,‚,‹*); ‚appl_find(const„*); ‚appl_tplay(const‹*,‚,‚); ‚appl_trecord(‹*,‚); ‚appl_search(‚,„*,Ÿ*,Ÿ*); ‚appl_exit(‹); ‚appl_getinfo(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*);€MU_KEYBD 1€MU_BUTTON 2€MU_M1 4€MU_M2 8€MU_MESAG 16€MU_TIMER 32€K_RSHIFT 1€K_LSHIFT 2€K_CTRL 4€K_ALT 8€MN_SELECTED 10€WM_REDRAW 20€WM_TOPPED 21€WM_CLOSED 22€WM_FULLED 23€WM_ARROWED 24€WM_HSLID 25€WM_VSLID 26€WM_SIZED 27€WM_MOVED 28€WM_NEWTOP 29€WM_UNTOPPED 30€WM_ONTOP 31€AC_OPEN 40€AC_CLOSE 41€AP_TERM 50€AP_TFAIL 51€AP_RESCHG 57€SHUT_COMPLETED 60€RESCH_COMPLETED 61€AP_DRAGDROP 63€SH_WDRAW 72€CH_EXIT 80€CT_NEWTOP 52€CT_KEY 53€WA_UPPAGE 0€WA_DNPAGE 1€WA_UPLINE 2€WA_DNLINE 3€WA_LFPAGE 4€WA_RTPAGE 5€WA_LFLINE 6€WA_RTLINE 7 „ƒmoblk{ Ÿm_out; Ÿm_x; Ÿm_y; Ÿm_w; Ÿm_h; }MOBLK; ‚evnt_keybd(‹); ‚evnt_button(‚,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚evnt_mouse(‚,‚,‚,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*)€ˆ_SYS_EXCEPT_H€_SYS_EXCEPT_H „ƒexcept{ «{ ƒ{ «{ ƒ{ Ÿsr; ‹*pc; }g0; ƒ{ Ÿsr; ‹*pc; }g1; ƒ{ Ÿssr; ‹*aa; Ÿir; Ÿsr; ‹*pc; }g2; }g; }mc68000; ƒ{ Ÿsr; ‹*pc; ŽŸfv; «{ ƒ{ ‹*ia; }f2; ƒ{ Ÿi[29]; }f7; ƒ{ Ÿssr; ‹*dcfa; Ÿi1; ‹*dob; Ÿi2; ‹*dib; Ÿi3; ‹*iib; Ÿi4; Ÿi5; Ÿi6; Ÿi7; Ÿi8; Ÿi9; Ÿi10; Ÿi11; Ÿi12; Ÿi13; Ÿi14; Ÿi15; Ÿi16; Ÿi17; Ÿi18; Ÿi19; }f8; ƒ{ ‹*ia; Ÿi1; Ÿi2; Ÿi3; Ÿi4; }f9; ƒ{ Ÿi1; Ÿssr; Ÿipc; Ÿipb; ‹*dcfa; Ÿi2; Ÿi3; ‹*dob; Ÿi4; Ÿi5; }f10; ƒ{ Ÿi1; Ÿssr; Ÿipc; Ÿipb; ‹*dcfa; Ÿi2; Ÿi3; ‹*dob; Ÿi4; Ÿi5; Ÿi6; Ÿi7; ‹*sba; Ÿi8; Ÿi9; ‹*dib; Ÿi10; Ÿi11; Ÿi12; Ÿvni; Ÿi13; Ÿi14; Ÿi15; Ÿi16; Ÿi17; Ÿi18; Ÿi19; Ÿi20; Ÿi21; Ÿi22; Ÿi23; Ÿi24; Ÿi25; Ÿi26; Ÿi27; Ÿi28; Ÿi29; Ÿi30; }f11; ƒ{ Ÿi; }f12; }f; }mc680x0; }m; }except_t;‡GREEN 3€BLUE 4€CYAN 5€YELLOW 6€MAGENTA 7€LWHITE 8€LBLACK 9€LRED 10€LGREEN 11€LBLUE 12€LCYAN 13€LYELLOW 14€LMAGENTA 15€TE_LEFT 0€TE_RIGHT 1€TE_CNTR 2 „ƒtext_edinfo{ „*te_ptext; „*te_ptmplt; „*te_pvalid; Ÿte_font; Ÿte_junk1; Ÿte_just;°__TE_COLOR __TE_COLOR te_color; Ÿte_color;‡ Ÿte_junk2; Ÿte_thickness; Ÿte_tx€Œ plen; }TEDINFO; „ƒicon_block{ Ÿ*ib_pmask; Ÿ*ib_pdata; „*ib_ptext; Ÿib_char; Ÿib_xchar; Ÿib_ychar; Ÿib_xicon; Ÿib_yicon; Ÿib_wicon; Ÿib_hicon; Ÿib_xtext; Ÿib_ytext; Ÿib_wtext; Ÿib_htext; }ICONBLK; „ƒcicon_data{ Ÿnum_planes; Ÿ*col_data; Ÿ*col_mask; Ÿ*sel_data; Ÿ*sel_mask; ƒcicon_data*next_res; }CICON; „ƒcicon_blk{ ICONBLK monoblk; CICON*mainlist; }CICONBLK; „ƒbit_block{ Ÿ*bi_pdata; Ÿbi_wb; Ÿbi_hl; Ÿbi_x; Ÿbi_y; Ÿbi_color; }BITBLK; „ƒparm_blk{ ƒobject*pb_tree; Ÿpb_obj; Ÿpb_prevstate; Ÿpb_currstate; Ÿpb_x; Ÿpb_y; Ÿpb_w; Ÿpb_h; Ÿpb_xc; Ÿpb_yc; Ÿpb_wc; Ÿpb_hc; pb_parm; }PARMBLK; „ƒuser_blk{ ‚(*__stdargs ub_code)(PARMBLK*); ub_parm; }USERBLK; „ƒappl_blk{ ‚(*__stdargs ab_code)(PARMBLK*); ab_parm; }APPLBLK; „ƒobject{ Ÿob_next; Ÿob_head; Ÿob_tail; ŽŸob_type; ŽŸob_flags; ŽŸob_state;°__OB_SPEC __OB_SPEC ob_spec; ‹*ob_spec;‡ Ÿob_x; Ÿob_y; Ÿob_width; Ÿob_height; }OBJECT; „ƒgrect{ Ÿg_x; Ÿg_y; Ÿg_w; Ÿg_h; }GRECT;€LK3DIND 1€LK3DACT 2€INDBUTCOL 3€ACTBUTCOL 4€BACKGRCOL 5€AD3DVALUE 6 ‚objc_add(OBJECT*,‚,‚); ‚objc€ˆ_PARAM_H€_PARAM_H€MAXPATHLEN 128€NOFILE 20€NCARGS 4096€CANBSIZ NCARGS‡‚,‚,‚,‚); ‚objc_offset(OBJECT*,‚,Ÿ*,Ÿ*); ‚objc_order(OBJECT*,‚,‚); ‚objc_edit(OBJECT*,‚,‚,Ÿ*,‚); ‚objc_change(OBJECT*,‚,‚,‚,‚,‚,‚,‚,‚); ‚objc_sysvar(‚,‚,‚,‚,Ÿ*,Ÿ*); ‚objc_xywh(OBJECT*,‚,GRECT*); ‹objc_walk(OBJECT*,‚,‚,‚,‚(*)(OBJECT*,‚)); „ƒ_menu{ OBJECT*mn_tree; Ÿmn_menu; Ÿmn_item; Ÿmn_scroll; Ÿmn_keystate; }MENU; „ƒ_mn_set{ Display; Drag; Delay; Speed; Height; }MN_SET;€MA_INQUIRE 0€MA_ATTACH 1€MA_REMOVE 2 ‚menu_bar(OBJECT*,‚); ‚menu_icheck(OBJECT*,‚,‚); ‚menu_ienable(OBJECT*,‚,‚); ‚menu_tnormal(OBJECT*,‚,‚); ‚menu_text(OBJECT*,‚,const„*); ‚menu_register(‚,const„*); ‚menu_popup(MENU*,‚,‚,MENU*); ‚menu_attach(‚,OBJECT*,‚,MENU*); ‚menu_istart(‚,OBJECT*,‚,‚); ‚menu_settings(‚,MN_SET*);€ED_START 0€EDSTART ED_START€ED_INIT 1€EDINIT ED_INIT€ED_CHAR 2€EDCHAR ED_CHAR€ED_END 3€EDEND ED_END€FMD_START 0€FMD_GROW 1€FMD_SHRINK 2€FMD_FINISH 3 ‚form_do(OBJECT*,‚); ‚form_dial(‚,‚,‚,‚,‚,‚,‚,‚,‚); ‚form_alert(‚,const„*); ‚form_error(‚); ‚form_center(O€ˆ_SYS_STAT_H€_SYS_STAT_Hˆ__TYPES_HŒ<__types.h>‡ˆ__MODES_HŒ<__modes.h>‡ ƒstat{ __mode_t st_mode; __ino_t st_ino; __dev_t st_dev; __dev_t st_rdev; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __off_t st_size; __off_t st_blksize; __off_t st_blocks; __time_t st_mtime; __time_t st_atime; __time_t st_ctime; Ÿst_attr; Ÿ__st_res1; __st_res2[2]; };£!defined(_POSIX_SOURCE)\ ||defined(_MWC)€S_IJRON 1€S_IJHID 2€S_IJSYS 4€S_IJVOL 8€S_IJDIR 16€S_IJWAC 32 „ƒ{ „d_resvd[21]; „d_fattr; d_tandd; d_fsize; „d_fname[14]; }DMABUFFER;‡ ‚(chmod)(const„*,__mode_t); ‚(fstat)(‚,ƒstat*); ‚(mkdir)(const„*,__mode_t); ‚(mkfifo)(const„*,__mode_t); ‚(stat)(const„*,ƒstat*); __mode_t(umask)(__mode_t);£!defined(_POSIX_SOURCE)\ ||defined(_BSD) ‚(lstat)(const„*,ƒstat*); ‚(fchmod)(‚,__mode_t);‡‡VE€INFO 16€SIZE 32€SIZER SIZE€UPARROW 64€DNARROW 128€VSLIDE 256€LFARROW 512€RTARROW 0x400€HSLIDE 0x800€WF_KIND 1€WF_NAME 2€WF_INFO 3€WF_WXYWH 4€WF_WORKXYWH WF_WXYWH€WF_CXYWH 5€WF_CURRXYWH WF_CXYWH€WF_PXYWH 6€WF_PREVXYWH WF_PXYWH€WF_FXYWH 7€WF_FULL€ˆ_SYS_TYPES_H€_SYS_TYPES_H£!defined(_POSIX_SOURCE)\ ||defined(_BSD) „Ž„u_char; „ŽŸu_short; „Ž‚u_int; „Žu_long;‡£!defined(_POSIX_SOURCE)\ ||defined(_SYSV) „Ž„unchar; „ŽŸushort; „Ž‚uint; „Žulong;‡£!defined(_POSIX_SOURCE)\ ||defined(_BSD)\ ||defined(_SYSV) „daddr_t; „„*caddr_t;‡ˆ__TYPES_HŒ<__types.h>‡ˆ_DEV_T€_DEV_T „__dev_t dev_t;‡ˆ_GID_T€_GID_T „__gid_t gid_t;‡ˆ_INO_T€_INO_T „__ino_t ino_t;‡ˆ_MODE_T€_MODE_T „__mode_t mode_t;‡ˆ_NLINK_T€_NLINK_T „__nlink_t nlink_t;‡ˆ_OFF_T€_OFF_T „__off_t off_t;‡ˆ_PID_T€_PID_T „__pid_t pid_t;‡ˆ_SIZE_T€_SIZE_T „__size_t size_t;‡ˆ_SSIZE_T€_SSIZE_T „__ssize_t ssize_t;‡ˆ_CLOCK_T€_CLOCK_T „__clock_t clock_t;‡ˆ_TIME_T€_TIME_T „__time_t time_t;‡ˆ_UID_T€_UID_T „__uid_t uid_t;‡£!defined(_POSIX_SOURCE)\ ||defined(_BSD)€NBBY 8ˆFD_SETSIZE€FD_SETSIZE 32‡ „fd_mask;€NFDBITS (sizeof(fd_mask)*NBBY)ˆhowmany€howmany(x,y) (((x)+((y)-1))/(y))‡ „ƒfd_set{ fd_mask fds_bits[howmany(FD_SETSIZE,NFDBITS)]; }fd_set;€FD_SET(n,p) ((p)->fds_bits[(n)/NFDBITS]|=(1<<((n)%NFDBITS)))€FD_CLR(n,p) ((p)->fds_bits[(n)/NFDBITS]&=~(1<<((n)%NFDBITS)))€FD_ISSET(n,p) ((p)->fds_bits[(n)/NFDBITS]&(1<<((n)%NFDBITS)))€FD_ZERO(p) memset((p),'\0',sizeof(*(p)))‡‡ ŽŸrsh_imdata; ŽŸrsh_frimg; ŽŸrsh_trindex; ŽŸrsh_nobs; ŽŸrsh_ntree; ŽŸrsh_nted; ŽŸrsh_nib; ŽŸrsh_nbb; ŽŸrsh_nstring; ŽŸrsh_nimages; ŽŸrsh_rssize; }RSHDR; ‚rsrc_load(const„*); ‚rsrc_free(‹); ‚rsrc_gaddr(‚,‚,‹*); ‚rsrc_saddr(‚,‚,‹*); ‚rsrc_obfix(OBJECT*,‚); ‚rsrc_rcfix(RSHDR*rc_header); ‚shel_read(„*,„*); ‚shel_write(‚,‚,‚,const„*,const„*); ‚shel_get(„*,‚); ‚shel_put(const„*,‚); ‚shel_find(„*); ‚shel_envrn(„**,const„*); ‹rc_constrain(const GRECT*,GRECT*); ‹rc_copy(const GRECT*,GRECT*); ‚rc_equal(const GRECT*,const GRECT*); ‚__builtin_memcmp(const‹*,const‹*,Ž);€rc_equal(p1,p2) (!__builtin_memcmp(p1,p2,sizeof(GRECT))) ‚rc_intersect(const GRECT*,GRECT*); ‚rc_inside(‚,‚,const GRECT*); ‹rc_union(const GRECT*,GRECT*); ‹rc_center(const GRECT*,GRECT*);°_SHORTINT€ADDR(a) (a)€ADDR(a) (()(a)>>16),(()(a))‡ˆmin ‚min(‚,‚); ‚__builtin_min(‚,‚);€min(a,b) __builtin_min(a,b)‡ˆmax ‚max(‚,‚€ˆ_SYS_WAIT_H€_SYS_WAIT_Hˆ__TYPES_HŒ<__types.h>‡€WNOHANG 1€WUNTRACED 2€WIFEXITED(x) ((‚)((x)&0xFF00)==0)€WEXITSTATUS(x) ((‚)((x)&255))€WIFSIGNALED(x) (((‚)((x)&0xFF00)>0)&&((‚)(((x)&255)==0)))€WTERMSIG(x) ((‚)(((x)&0xFF00)>>8))€WIFSTOPPED(x) (((‚)((x)&255)==127)&&((‚)(((x)>>8)&255)!=0))€WSTOPSIG(x) ((‚)(((x)>>8)&255)) __pid_t(wait)(‚*); __pid_t(waitpid)(__pid_t,‚*,‚);£!defined(_POSIX_SOURCE)\ ||defined(_BSD) ƒrusage; __pid_t(wait3)(‚*,‚,ƒrusage*); __pid_t(wait4)(__pid_t,‚*,‚,ƒrusage*);‡‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€€__LIMITS_H€__POSIX_NAME_MAX 31 (const„*,const„*,‚);‡ˆNDEBUG€assert(x) (x?(‹)0:__assert(#x,__FILE__,__LINE__))€assert(x) ((‹)0)‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€€__MODE_H€_S_IFMT 0170000€_S_IFDIR 0040000€_S_IFCHR 0020000€_S_IFREG 0100000€_S_IFBLK 0060000€_S_IFIFO 0120000£!defined(_POSIX_SOURCE)\ ||defined(_BSD)€_S_IMEM 0140000€_S_IFLNK 0160000€_S_IFSOCK 0140000€S_IFMT _S_IFMT€S_IFDIR _S_IFDIR€S_IFCHR _S_IFCHR€S_IFREG _S_IFREG€S_IFIFO _S_IFIFO€S_IFBLK _S_IFBLK€S_IMEM _S_IMEM€S_IFLNK _S_IFLNK€S_IFSOCK _S_IFSOCK‡€S_ISDIR(f) (((f)&_S_IFMT)==S_IFDIR)€S_ISCHR(f) (((f)&_S_IFMT)==S_IFCHR)€S_ISBLK(f) (((f)&_S_IFMT)==S_IFBLK)€S_ISREG(f) (((f)&_S_IFMT)==S_IFREG)€S_ISFIFO(f) (((f)&_S_IFMT)==S_IFIFO)£!defined(_POSIX_SOURCE)\ ||defined(_BSD)€S_ISLNK(f) (((f)&_S_IFMT)==S_IFLNK)€S_ISMEM(f) (((f)&_S_IFMT)==S_IFMEM)€S_ISSOCK(f) (((f)&_S_IFMT)==S_IFSOCK)‡€S_ISUID 04000€S_ISGID 02000£!defined(_POSIX_SOURCE)\ ||defined(_V7)€S_ISVTX 01000‡€S_IRWXU 0700€S_IRUSR 0400€S_IWUSR 0200€S_IXUSR 0100€S_IRWXG 0070€S_IRGRP 0040€S_IWGRP 0020€S_IXGRP 0010€S_IRWXO 0007€S_IROTH 0004€S_IWOTH 0002€S_IXOTH 0001£!defined(_POSIX_SOURCE)\ ||defined(_LATTICE)€S_IREAD S_IRUSR€S_IWRITE S_IWUSR€S_IEXEC S_IXUSR‡öö€€__TYPES_H „__clock_t; „‚__ptrdiff_t; „Ž__size_t; „__time_t; „Ž„__wchar_t; „„*__va_list;€__NULL ((‹*)0)€__SEEK_SET (0)€__SEEK_CUR (1)€__SEEK_END (2)€__EOF (-1) „__off_t; „Ÿ__nlink_t; „Ÿ__pid_t; „signed__ssize_t; „ŽŸ__dev_t; „ŽŸ__gid_t; „ŽŸ__mode_t; „ŽŸ__uid_t; „Ž__ino_t; „Ž__sigset_t; c(59,a,b,c)€CDstop_aud(a) __lxs(60,a)€CDset_songtime(a,b,c,d) __lxssss(61,a,b,c,d)€CDget_toc(a,b,c) __lxssp(62,a,b,c)€CDdisc_info(a,b) __lxsp(63,a,b)‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_ACC_H€_ACC_Hˆ_SIZE_T€_SIZE_T „Ž‚size_t;‡€STACK(x) size_t __far _STACK_HEAP[(x+sizeof(size_t)-1)/sizeof(size_t)];\ size_t _STACK=sizeof(_STACK_HEAP) ‹_addheap(‹*,size_t);‡putch(‚); ‚ungetch(‚);‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_AES_H€_AES_Hˆ__TYPES_HŒ<__types.h>‡ ‹*_AESpb[6]; Ÿ_AEScontrol[5]; Ÿ_AESglobal[15]; Ÿ_AESintin[16]; Ÿ_AESintout[7]; ‹*_AESaddrin[3]; ‹*_AESaddrout[1]; „ƒ{ ap_event; ap_value; }EVNTREC; ‚appl_init(‹); ‚appl_read(‚,‚,‹*); ‚appl_write(‚,‚,‹*); ‚appl_find(const„*); ‚appl_tplay(const‹*,‚,‚); ‚appl_trecord(‹*,‚); ‚appl_search(‚,„*,Ÿ*,Ÿ*); ‚appl_exit(‹); ‚appl_getinfo(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*);€MU_KEYBD 1€MU_BUTTON 2€MU_M1 4€MU_M2 8€MU_MESAG 16€MU_TIMER 32€K_RSHIFT 1€K_LSHIFT 2€K_CTRL 4€K_ALT 8€MN_SELECTED 10€WM_REDRAW 20€WM_TOPPED 21€WM_CLOSED 22€WM_FULLED 23€WM_ARROWED 24€WM_HSLID 25€WM_VSLID 26€WM_SIZED 27€WM_MOVED 28€WM_NEWTOP 29€WM_UNTOPPED 30€WM_ONTOP 31€WM_BOTTOM 33€WM_ICONIFY 34€WM_UNICONIFY 35€WM_ALLICONIFY 36€WM_TOOLBAR 37€AC_OPEN 40€AC_CLOSE 41€AP_TERM 50€AP_TFAIL 51€AP_RESCHG 57€SHUT_COMPLETED 60€RESCH_COMPLETED 61€AP_DRAGDROP 63€SH_WDRAW 72€CH_EXIT 80€CT_NEWTOP 52€CT_KEY 53€WA_UPPAGE 0€WA_DNPAGE 1€WA_UPLINE 2€WA_DNLINE 3€WA_LFPAGE 4€WA_RTPAGE 5€WA_LFLINE 6€WA_RTLINE 7 „ƒmoblk{ Ÿm_out; Ÿm_x; Ÿm_y; Ÿm_w; Ÿm_h; }MOBLK; ‚evnt_keybd(‹); ‚evnt_button(‚,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚evnt_mouse(‚,‚,‚,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚evnt_mesag(Ÿ*); ‚evnt_timer(‚,‚); ‚evnt_multi(‚,‚,‚,‚,‚,‚,‚,‚,‚,‚,‚,‚,‚,‚,Ÿ*,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚evnt_dclick(‚,‚);€ROOT 0€NIL -1€MAX_DEPTH 8€IP_HOLLOW 0€IP_1PATT 1€IP_2PATT 2€IP_3PATT 3€IP_4PATT 4€IP_5PATT 5€IP_6PATT 6€IP_SOLID 7€GDOS_PROP 0€GDOS_MONO 1€GDOS_BITM 2€IBM 3€SMALL 5€G_BOX 20€G_TEXT 21€G_BOXTEXT 22€G_IMAGE 23€G_PROGDEF 24€G_USERDEF G_PROGDEF€G_IBOX 25€G_BUTTON 26€G_BOXCHAR 27€G_STRING 28€G_FTEXT 29€G_FBOXTEXT 30€G_ICON 31€G_TITLE 32€G_CICON 33€NONE 0€SELECTABLE 1€DEFAULT 2€EXIT 4€EDITABLE 8€RBUTTON 16€LASTOB 32€TOUCHEXIT 64€HIDETREE 128€INDIRECT 256€FL3DMASK 0x600€FL3DNONE 0€FL3DIND 512€FL3DBAK 0x400€FL3DACT 0x600€SUBMENU 0x800€NORMAL 0€SELECTED 1€CROSSED 2€CHECKED 4€DISABLED 8€OUTLINED 16€SHADOWED 32€SPECIAL 64€WHITE 0€BLACK 1€RED 2€GREEN 3€BLUE 4€CYAN 5€YELLOW 6€MAGENTA 7€LWHITE 8€LBLACK 9€LRED 10€LGREEN 11€LBLUE 12€LCYAN 13€LYELLOW 14€LMAGENTA 15€TE_LEFT 0€TE_RIGHT 1€TE_CNTR 2 „ƒtext_edinfo{ „*te_ptext; „*te_ptmplt; „*te_pvalid; Ÿte_font; Ÿte_fontid; Ÿte_just;°__TE_COLOR __TE_COLOR te_color; Ÿte_color;‡ Ÿte_fontsize; Ÿte_thickness; Ÿte_txtlen; Ÿte_tmplen; }TEDINFO; „ƒicon_block{ Ÿ*ib_pmask; Ÿ*ib_pdata; „*ib_ptext; Ÿib_char; Ÿib_xchar; Ÿib_ychar; Ÿib_xicon; Ÿib_yicon; Ÿib_wicon; Ÿib_hicon; Ÿib_xtext; Ÿib_ytext; Ÿib_wtext; Ÿib_htext; }ICONBLK; „ƒcicon_data{ Ÿnum_planes; Ÿ*col_data; Ÿ*col_mask; Ÿ*sel_data; Ÿ*sel_mask; ƒcicon_data*next_res; }CICON; „ƒcicon_blk{ ICONBLK monoblk; CICON*mainlist; }CICONBLK; „ƒbit_block{ Ÿ*bi_pdata; Ÿbi_wb; Ÿbi_hl; Ÿbi_x; Ÿbi_y; Ÿbi_color; }BITBLK; „ƒparm_blk{ ƒobject*pb_tree; Ÿpb_obj; Ÿpb_prevstate; Ÿpb_currstate; Ÿpb_x; Ÿpb_y; Ÿpb_w; Ÿpb_h; Ÿpb_xc; Ÿpb_yc; Ÿpb_wc; Ÿpb_hc; pb_parm; }PARMBLK; „ƒuser_blk{ ‚(*__stdargs ub_code)(PARMBLK*); ub_parm; }USERBLK; „ƒappl_blk{ ‚(*__stdargs ab_code)(PARMBLK*); ab_parm; }APPLBLK; „ƒobject{ Ÿob_next; Ÿob_head; Ÿob_tail; ŽŸob_type; ŽŸob_flags; ŽŸob_state;°__OB_SPEC __OB_SPEC ob_spec; ‹*ob_spec;‡ Ÿob_x; Ÿob_y; Ÿob_width; Ÿob_height; }OBJECT; „ƒgrect{ Ÿg_x; Ÿg_y; Ÿg_w; Ÿg_h; }GRECT;€LK3DIND 1€LK3DACT 2€INDBUTCOL 3€ACTBUTCOL 4€BACKGRCOL 5€AD3DVALUE 6 ‚objc_add(OBJECT*,‚,‚); ‚objc_delete(OBJECT*,‚); ‚objc_draw(OBJECT*,‚,‚,‚,‚,‚,‚); ‚objc_find(OBJECT*,‚,‚,‚,‚); ‚objc_offset(OBJECT*,‚,Ÿ*,Ÿ*); ‚objc_order(OBJECT*,‚,‚); ‚objc_edit(OBJECT*,‚,‚,Ÿ*,‚); ‚objc_change(OBJECT*,‚,‚,‚,‚,‚,‚,‚,‚); ‚objc_sysvar(‚,‚,‚,‚,Ÿ*,Ÿ*); ‚objc_xywh(OBJECT*,‚,GRECT*); ‹objc_walk(OBJECT*,‚,‚,‚,‚(*)(OBJECT*,‚)); „ƒ_menu{ OBJECT*mn_tree; Ÿmn_menu; Ÿmn_item; Ÿmn_scroll; Ÿmn_keystate; }MENU; „ƒ_mn_set{ Display; Drag; Delay; Speed; Height; }MN_SET;€ME_INQUIRE 0€ME_ATTACH 1€ME_REMOVE 2 ‚menu_bar(OBJECT*,‚); ‚menu_icheck(OBJECT*,‚,‚); ‚menu_ienable(OBJECT*,‚,‚); ‚menu_tnormal(OBJECT*,‚,‚); ‚menu_text(OBJECT*,‚,const„*); ‚menu_register(‚,const„*); ‚menu_popup(MENU*,‚,‚,MENU*); ‚menu_attach(‚,OBJECT*,‚,MENU*); ‚menu_istart(‚,OBJECT*,‚,‚); ‚menu_settings(‚,MN_SET*);€ED_START 0€EDSTART ED_START€ED_INIT 1€EDINIT ED_INIT€ED_CHAR 2€EDCHAR ED_CHAR€ED_END 3€EDEND ED_END€FMD_START 0€FMD_GROW 1€FMD_SHRINK 2€FMD_FINISH 3 ‚form_do(OBJECT*,‚); ‚form_dial(‚,‚,‚,‚,‚,‚,‚,‚,‚); ‚form_alert(‚,const„*); ‚form_error(‚); ‚form_center(OBJECT*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚form_keybd(OBJECT*,‚,‚,‚,Ÿ*,Ÿ*); ‚form_button(OBJECT*,‚,‚,Ÿ*);€ARROW 0€TEXT_CRSR 1€HOURGLASS 2€BUSYBEE HOURGLASS€BUSY_BEE HOURGLASS€POINT_HAND 3€FLAT_HAND 4€THIN_CROSS 5€THICK_CROSS 6€OUTLN_CROSS 7€USER_DEF 255€M_OFF 256€M_ON 257€M_SAVE 258€M_RESTORE 259€M_PREVIOUS 260€VERTICAL 0€HORIZONTAL 1 ‚graf_rubberbox(‚,‚,‚,‚,Ÿ*,Ÿ*); ‚graf_dragbox(‚,‚,‚,‚,‚,‚,‚,‚,Ÿ*,Ÿ*); ‚graf_movebox(‚,‚,‚,‚,‚,‚); ‚graf_growbox(‚,‚,‚,‚,‚,‚,‚,‚); ‚graf_shrinkbox(‚,‚,‚,‚,‚,‚,‚,‚); ‚graf_watchbox(OBJECT*,‚,‚,‚); ‚graf_slidebox(OBJECT*,‚,‚,‚); ‚graf_handle(Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚graf_mouse(‚,const‹*); ‚graf_mkstate(Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚scrp_read(„*); ‚scrp_write(const„*); ‚fsel_input(„*,„*,Ÿ*); ‚fsel_exinput(„*,„*,Ÿ*,const„*);€NAME 1€CLOSE 2€CLOSER CLOSE€FULL 4€FULLER FULL€MOVE 8€MOVER MOVE€INFO 16€SIZE 32€SIZER SIZE€UPARROW 64€DNARROW 128€VSLIDE 256€LFARROW 512€RTARROW 0x400€HSLIDE 0x800€SMALLER 0x4000€WF_KIND 1€WF_NAME 2€WF_INFO 3€WF_WXYWH 4€WF_WORKXYWH WF_WXYWH€WF_CXYWH 5€WF_CURRXYWH WF_CXYWH€WF_PXYWH 6€WF_PREVXYWH WF_PXYWH€WF_FXYWH 7€WF_FULLXYWH WF_FXYWH€WF_HSLIDE 8€WF_VSLIDE 9€WF_TOP 10€WF_FIRSTXYWH 11€WF_NEXTXYWH 12€WF_IGNORE 13€WF_NEWDESK 14€WF_HSLSIZE 15€WF_HSLSIZ WF_HSLSIZE€WF_VSLSIZE 16€WF_VSLSIZ WF_VSLSIZE€WF_SCREEN 17€WF_COLOR 18€WF_DCOLOR 19€WF_OWNER 20€WF_BEVENT 24€WF_BOTTOM 25€WF_ICONIFY 26€WF_UNICONIFY 27€WF_UNICONIFYXYWH 28€WF_TOOLBAR 30€WF_FTOOLBAR 31€WF_NTOOLBAR 32€END_UPDATE 0€BEG_UPDATE 1€END_MCTRL 2€BEG_MCTRL 3€WC_BORDER 0€WC_WORK 1€DESK 0€W_BOX 0€W_TITLE 1€W_CLOSER 2€W_NAME 3€W_FULLER 4€W_INFO 5€W_DATA 6€W_WORK 7€W_SIZER 8€W_VBAR 9€W_UPARROW 10€W_DNARROW 11€W_VSLIDE 12€W_VELEV 13€W_HBAR 14€W_LFARROW 15€W_RTARROW 16€W_HSLIDE 17€W_HELEV 18 ‚wind_create(‚,‚,‚,‚,‚); ‚wind_open(‚,‚,‚,‚,‚); ‚wind_close(‚); ‚wind_delete(‚); ‚wind_get(‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚wind_set(‚,‚,...); ‚wind_find(‚,‚); ‚wind_update(‚); ‚wind_calc(‚,‚,‚,‚,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚wind_new(‹); ‚wind_newdesk(OBJECT*,‚); ‚wind_info(‚,const„*); ‚wind_title(‚,const„*); ‚wind_redraw(‚,GRECT*,‚(*)(‚,GRECT*));€R_TREE 0€R_OBJECT 1€R_TEDINFO 2€R_ICONBLK 3€R_BITBLK 4€R_STRING 5€R_IMAGEDATA 6€R_OBSPEC 7€R_TEPTEXT 8€R_TEPTMPLT 9€R_TEPVALID 10€R_IBPMASK 11€R_IBPDATA 12€R_IBPTEXT 13€R_BIPDATA 14€R_FRSTR 15€R_FRIMG 16 „ƒ{ Ÿrsh_vrsn; ŽŸrsh_object; ŽŸrsh_tedinfo; ŽŸrsh_iconblk; ŽŸrsh_bitblk; ŽŸrsh_frstr; ŽŸrsh_string; ŽŸrsh_imdata; ŽŸrsh_frimg; ŽŸrsh_trindex; ŽŸrsh_nobs; ŽŸrsh_ntree; ŽŸrsh_nted; ŽŸrsh_nib; ŽŸrsh_nbb; ŽŸrsh_nstring; ŽŸrsh_nimages; ŽŸrsh_rssize; }RSHDR; ‚rsrc_load(const„*); ‚rsrc_free(‹); ‚rsrc_gaddr(‚,‚,‹*); ‚rsrc_saddr(‚,‚,‹*); ‚rsrc_obfix(OBJECT*,‚); ‚rsrc_rcfix(RSHDR*rc_header); ‚shel_read(„*,„*); ‚shel_write(‚,‚,‚,const„*,const„*); ‚shel_get(„*,‚); ‚shel_put(const„*,‚); ‚shel_find(„*); ‚shel_envrn(„**,const„*); ‹rc_constrain(const GRECT*,GRECT*); ‹rc_copy(const GRECT*,GRECT*); ‚rc_equal(const GRECT*,const GRECT*); ‚__builtin_memcmp(const‹*,const‹*,Ž);€rc_equal(p1,p2) (!__builtin_memcmp(p1,p2,sizeof(GRECT))) ‚rc_intersect(const GRECT*,GRECT*); ‚rc_inside(‚,‚,const GRECT*); ‹rc_union(const GRECT*,GRECT*); ‹rc_center(const GRECT*,GRECT*);°_SHORTINT€ADDR(a) (a)€ADDR(a) (()(a)>>16),(()(a))‡ˆmin ‚min(‚,‚); ‚__builtin_min(‚,‚);€min(a,b) __builtin_min(a,b)‡ˆmax ‚max(‚,‚); ‚__builtin_max(‚,‚);€max(a,b) __builtin_max(a,b)‡ ŽŸumul_div(Ž‚,Ž‚,Ž‚);…inline d0=umul_div(d0,d1,d2){"c0c180c2";}ˆPTRS€PTRS(r) (r)->g_x,(r)->g_y,(r)->g_w,(r)->g_h‡ˆELTS€ELTS(r) (r).g_x,(r).g_y,(r).g_w,(r).g_h‡ˆœ€œ__NULL‡‡14€REG_A7 15‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ #undef assertˆNDEBUG€_STR(x) _VAL(x)€_VAL(x) #x ‹__assert(const„*);€assert(x) ((x)?(‹)0:(__assert)(__FILE__":"_STR(__LINE__)"("#x")"))€assert(x) ((‹)0)‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_BASEPAGE_H€_BASEPAGE_H „ƒ_base BASEPAGE; ƒ_base{ ‹*p_lowtpa; ‹*p_hitpa; ‹*p_tbase; p_tlen; ‹*p_dbase; p_dlen; ‹*p_bbase; p_blen; ‹*p_dta; BASEPAGE*p_parent; p_flags; „*p_env; p_undef[20]; „p_cmdlin[128]; }; BASEPAGE*_pbase,*_PBASE;‡3€EMFILE 24€ENOTTY 25€ETXTBSY 26€EFBIG 27€ENOSPC 28€ESPIPE 29€EROFS 30€EMLINK 31€EPIPE 32€EDOM 33€ERANGE 34€EDEADLK 35 ‚errno;ˆ_ANSI ‚sys_nerr; const„*sys_errlist[];‡‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_CDBIND_H€_CDBIND_HŒ€CDread_aud(a,b,c,d) __lxspls(58,a,b,c,d)€CDstart_aud(a,b,c) __lxssc(59,a,b,c)€CDstop_aud(a) __lxs(60,a)€CDset_songtime(a,b,c,d) __lxssss(61,a,b,c,d)€CDget_toc(a,b,c) __lxssp(62,a,b,c)€CDdisc_info(a,b) __lxsp(63,a,b)‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_CONIO_H€_CONIO_H ‚cget(‹); ‚cgetc(‹); „*cgets(„*); ‚cputc(‚); ‚cputs(const„*); ‚cprintf(const„*,...); ‚cscanf(const„*,...); ‚getch(‹); ‚getche(‹); ‚kbhit(‹); ‚iskbhit(‹); ‚putch(‚); ‚ungetch(‚);‡IZE€MAXDRIVE 3€MAXDIR FMSIZE€MAXFILE (FNSIZE-FESIZE-1)€MAXEXT (FESIZE+2) ƒffblk { „ff_reserved[21]; „ff_attrib; Ÿff_ftime; Ÿff_fdate; ff_fsize; „ff_name[14]; }; ‚findfirst(const„*,ƒffblk*,‚); ‚findnext(ƒffblk*);€findfirst(a,b,c) dfind((ƒFILEINFO*)(b),(a),(c))€findnext(a) dnext((ƒFILEINFO*)(a)) ƒdate { Ÿda_year; „da_day; „da_mon; }; ‹getdate(ƒdate*); ‹setdate(ƒdate*); ƒtime { Ž„ti_min; Ž„ti_hour; Ž„ti_hund; Ž„ti_sec; }; ‹gettime(ƒtime*); ‹settime(ƒtime*); ƒftime { Žft_hour:5; Žft_min:6; Žft_tsec:5; Žft_year:7; Žft_month:4; Žft_day:5; }; __regargs _CXCERR(); ‚getftime(‚,ƒftime*); ‚setftime(‚,ƒftime*);€getftime(a,b) ((‚)_CXCERR(Fdatime((Ÿ*)(b),(a),0)))€setftime(a,b) ((‚)_CXCERR(Fdatime((Ÿ*)(b),(a),1))) ƒtm*ftimtotm(ƒftime*); ƒdfree { Ždf_avail; Ždf_total; Ždf_bsec; Ždf_sclus; }; ‹getdfree(‚,ƒdfree*);€getdfree(a€ˆ_COOKIE_H€_COOKIE_H „ƒ{ cookie; value; }COOKIE;ˆ_p_cookies€_p_cookies (*(COOKIE**)0x5a0)‡ __cookie;€_CPU 0x5f435055€_VDO 0x5f56444f€_SND 0x5f534e44€_MCH 0x5f4d4348€_SWI 0x5f535749€_FRB 0x5f465242€_FPU 0x5f465055€_FDC 0x5f464443€_FLK 0x5f464c4b€_NET 0x5f4e4554 ‚(getcookie)(,*); ‚(putcookie)(,);‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_CPX_H€_CPX_HŒ „ƒ{ Ÿx; Ÿy; Ÿbuttons; Ÿkstate; }MRETS;ˆ_MFORM_T€_MFORM_T „ƒmfstr{ Ÿmf_xhot; Ÿmf_yhot; Ÿmf_nplanes; Ÿmf_fg; Ÿmf_bg; Ÿmf_mask[16]; Ÿmf_data[16]; }MFORM;‡ „ƒ{ Ÿhandle; Ÿbooting; Ÿversion; ŸSkipRshFix; „*reserve1; „*reserve2; ‹(*__stdargs rsh_fix)(Ÿ,Ÿ,Ÿ,Ÿ,OBJECT*,TEDINFO*, „*,ICONBLK*,BITBLK*,*,*,*,‹*); ‹(*__stdargs rsh_obfix)(OBJECT*,Ÿ); Ÿ(*__stdargs Popup)(„*[],Ÿ,Ÿ,Ÿ,GRECT*,GRECT*); ‹(*__stdargs Sl_size)(OBJECT*,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ); ‹(*__stdargs Sl_x)(OBJECT*,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ,‹(*__saveds)(‹)); ‹(*__stdargs Sl_y)(OBJECT*,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ,‹(*__saveds)(‹)); ‹(*__stdargs Sl_arrow)(OBJECT*,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ*,Ÿ,‹(*__saveds)(‹)); ‹(*__stdargs Sl_dragx)(OBJECT*,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ*,‹(*__saveds)(‹)); ‹(*__stdargs Sl_dragy)(OBJECT*,Ÿ,Ÿ,Ÿ,Ÿ,Ÿ*,‹(*__saveds)(‹)); Ÿ(*__stdargs Xform_do)(OBJECT*,Ÿ,Ÿ*); GRECT*(*__stdargs GetFirstRect)(GRECT*); GRECT*(*__stdargs GetNextRext)(‹); ‹(*__stdargs Set_Evnt_Mask)(Ÿ,MOBLK*,MOBLK*,);€SAVE_DEFAULTS 0€MEM_ERR 1€FILE_ERR 2€FILE_NOT_FOUND 3 Ÿ(*__stdargs XGen_Alert)(Ÿ); Ÿ(*__stdargs CPX_Save)(‹*,); ‹*(*__stdargs Get_Buffer)(‹); Ÿ(*__stdargs getcookie)(cookie,*p_value); ŸCountry_Code;€MFSAVE 1€MFRESTORE 0 ‹(*__stdargs MFsave)(Ÿsaveit,MFORM*mf); }XCPB; „ƒ{ Ÿ(*__saveds __stdargs cpx_call)(GRECT*); ‹(*__saveds __stdargs cpx_draw)(GRECT*); ‹(*__saveds __stdargs cpx_wmove)(GRECT*); ‹(*__saveds __stdargs cpx_timer)(Ÿ*); ‹(*__saveds __stdargs cpx_key)(Ÿ,Ÿ,Ÿ*); ‹(*__saveds __stdargs cpx_button)(MRETS*,Ÿ,Ÿ*); ‹(*__saveds __stdargs cpx_m1)(MRETS*,Ÿ*); ‹(*__saveds __stdargs cpx_m2)(MRETS*mrets,Ÿ*); Ÿ(*__saveds __stdargs cpx_hook)(Ÿ,Ÿ*,MRETS*,Ÿ*,Ÿ*); ‹(*__saveds __stdargs cpx_close)(Ÿ); }CPXINFO; „ƒ_cpxhead{€CPXMAGIC 100 ŽŸmagic;€CPX_RESIDENT 4€CPX_BOOTINIT 2€CPX_SETONLY 1 Ÿflags; cpx_id; ŽŸcpx_version; „i_text[14]; ŽŸsm_icon[48]; ŽŸi_color; „title_txt[18]; ŽŸt_color; „buffer[64]; „reserved[306]; }CPXHEAD;‡EAD;‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_CTYPE_H€_CTYPE_HŒ€_U 1€_L 2€_N 4€_S 8€_P 16€_C 32€_B 64€_X 128 „__ctype[257];€isalnum(c) (__ctype[(c)+1]&(_U|_L|_N))€isalpha(c) (__ctype[(c)+1]&(_U|_L))€iscntrl(c) (__ctype[(c)+1]&_C)€isdigit(c) (__ctype[(c)+1]&_N)€isgraph(c) (__ctype[(c)+1]&(_P|_U|_L|_N))€islower(c) (__ctype[(c)+1]&_L)€isprint(c) (__ctype[(c)+1]&(_P|_U|_L|_N|_B))€ispunct(c) (__ctype[(c)+1]&_P)€isspace(c) (__ctype[(c)+1]&_S)€isupper(c) (__ctype[(c)+1]&_U)€isxdigit(c) (__ctype[(c)+1]&_X)ˆ_ANSI€isascii(c) ((Ž)(c)<=127)€iscsym(c) (isalnum(c)||(((c)&127)==0x5f))€iscsymf(c) (isalpha(c)||(((c)&127)==0x5f))€_toupper(c) ((c)-'a'+'A')€_tolower(c) ((c)+'a'-'A')€toascii(c) ((c)&127)‡‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_DIRENT_H€_DIRENT_Hˆ__TYPES_HŒ<__types.h>‡ˆ__LIMITS_HŒ<__limits.h>‡ ƒdirent{ __ino_t d_ino; __off_t d_off; Ÿd_reclen; „d_name[__POSIX_NAME_MAX+1]; }; „ƒ__dir DIR; DIR*opendir(const„*); ƒdirent*readdir(DIR*); ‹rewinddir(DIR*); ‚closedir(DIR*);£!defined(_POSIX_SOURCE) __off_t telldir(DIR*); ‹seekdir(DIR*,__off_t);‡‡XP -308€__SINGLE_MAX_EXP 128€__DOUBLE_MAX_EXP 1024€__EXTEND_MAX_EXP 1024€__SINGLE_MAX_10_EXP 38€__DOUBLE_MAX_10_EXP 308€__EXTEND_MAX_10_EXP 308€__SINGLE_MAX 3.40282347E+38€__DOUBLE_MAX 1.797693134862317E+308€__EXTEND_MAX 1.797693134862317E+308€__SINGLE_EPSILON 1.19209290E-07€__DOUBLE_EPSILON 2.2204460492503147E-16€__EXTEND_EPSILON 2.2204460492503147E-16€__SINGLE_MIN 3.40282347E-38€__DOUBLE_MIN 1.797693134862316E-308€__EXTEND_MIN 1.797693134862316E-308£defined(_MSINGLE)€FLT_MANT_DIG __SINGLE_MANT_DIG€DBL_MANT_DIG __SINGLE_MANT_DIG€LDBL_MANT_DIG __SINGLE_MANT_DIG€FLT_DIG __SINGLE_DIG€DBL_DIG __SINGLE_DIG€LDBL_DIG __SINGLE_DIG€FLT_MIN_EXP __SINGLE_MIN_EXP€DBL_MIN_EXP __SINGLE_MIN_EXP€LDBL_MIN_EXP __SI€ˆ_DOS_H€_DOS_HŒŒŒˆ_SIZE_T€_SIZE_T „Ž‚size_t;‡ Ÿ_tos; enum{USA,FRG,FRA,GBR,SPA,ITA,SWE,SWF,SWG,TUR,FIN,NOR,DEN,SAU,HOL,CZE,HUN}_country;€FNSIZE 13€FMSIZE 128€FESIZE 4 ƒDISKINFO { Žfree; Žcpd; Žbps; Žspc; }; ƒFILEINFO { „resv[21]; „attr; time; size; „name[14]; }; „ƒ { Ÿrecsiz; Ÿclsiz; Ÿclsizb; Ÿrdlen; Ÿfsiz; Ÿfatrec; Ÿdatrec; Ÿnumcl; Ÿbflags; }BPB; „ƒparam { „topmode; „buttons; „xparam; „yparam; Ÿxmax; Ÿymax; Ÿxinitial; Ÿyinitial; }MOUSE; „ƒiorec { „*ibuf; Ÿibufsiz; Ÿibufhd; Ÿibuftl; Ÿibuflow; Ÿibufhi; }IOREC; „ƒkbdvecs { ‹(*__asm midivec)(register __d0Ž„); ‹(*vkbderr)(‹); ‹(*vmiderr)(‹); ‹(*__asm statvec)(register __a0‹*); ‹(*__asm mousevec)(register __a0‹*); ‹(*__asm clockvec)(register __a0‹*); ‹(*__asm joyvec)(register __a0‹*); ‹(*midisys)(‹); ‹(*ikbdsys)(‹); „kstate; }KBDVBASE; „ƒkeytab { „*unshift; „*shift; „*capslock; }KEYTAB; „ƒprtarg { „*scrptr; ŽŸoffset; ŽŸwidth; ŽŸheight; ŽŸleft; ŽŸright; ŽŸsrcres; ŽŸdstres; ŽŸ*colpal; ŽŸtype; ŽŸport; „*masks; }PBDEF; „ƒmaptab { (*Bconstat)(‚); (*Bconin)(Ÿ); (*Bcostat)(‚); (*Bconout)(‚,‚); Ž(*Rsconf)(‚,‚,‚,‚,‚,‚); IOREC*iorec; }MAPTAB; „ƒbconmap { MAPTAB*maptab; Ÿmaptabsize; }BCONMAP; „ƒ_osheader { ŽŸos_entry; ŽŸos_version; ‹(*reseth)(‹); ƒ_osheader*os_beg; ‹*os_end; ‹*os_rsv1; *os_magic; os_date; ŽŸos_conf; ŽŸos_dosdate; ‹**p_root; Ž„*pkbshift; BASEPAGE**p_run; ‹*p_rsv2; }OSHEADER; size_t _MSTEP; _MNEED; ‚__chkabort; _dclose(‚); _dcreat(const„*,‚); _dopen(const„*,‚); ‚getcd(‚,„*); ‚getfa(const„*); ‚chgfa(const„*,‚); ‚getdsk(‹); __regargs _CXCERR(); __regargs _CXCERZ(); _dcreatx(const„*,‚); _dread(‚,‹*,); _dwrite(‚,const‹*,); _dseek(‚,,‚); ‚_disatty(‚); ‚_ddup(‚); ‚_ddup2(‚,‚); Žchgdsk(‚); ‹chgdta(ƒFILEINFO*); ƒFILEINFO*getdta(‹); ‚dfind(ƒFILEINFO*,const„*,‚); ‚dnext(ƒFILEINFO*); ‚getdfs(‚,ƒDISKINFO*); getft(‚); ‚chgft(‚,);€FA_READONLY 1€FA_HIDDEN 2€FA_SYSTEM 4€FA_VOLUME 8€FA_SUBDIR 16€FA_ARCHIVE 32€FO_READ 0€FO_WRITE 1€FO_RW 2€FSEEK_SET 0€FSEEK_CUR 1€FSEEK_END 2 ftpack(const„*); ‹ftunpk(,„*); ‚getpf(„*,const„*); ‚getpfe(„*,const„*); ‹__stdargs _stub(‹); ‹__stdargs _xcovf(‹); ‹getclk(Ž„*); ‚chgclk(Žconst„*); ‚onbreak(‚(*)()); ‹onerror(‚); ‚poserr(const„*); volatile _oserr; volatile _OSERR; Ž‚_STACK;€geta4 __builtin_geta4 ‹geta4(‹);€getreg __builtin_getreg getreg(‚);€putreg __builtin_putreg ‹putreg(‚,);€__emit __builtin_emit ‹__emit(‚);€REG_D0 0€REG_D1 1€REG_D2 2€REG_D3 3€REG_D4 4€REG_D5 5€REG_D6 6€REG_D7 7€REG_A0 8€REG_A1 9€REG_A2 10€REG_A3 11€REG_A4 12€REG_A5 13€REG_A6 14€REG_A7 15‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_DRAGDROP_H€_DRAGDROP_H€DD_OK 0€DD_NAK 1€DD_EXT 2€DD_LEN 3€DD_TRASH 4€DD_PRINTER 5€DD_CLIPBOARD 6€DD_TIMEOUT 4000€DD_NUMEXTS 8€DD_EXTSIZE 32L€DD_NAMEMAX 128€DD_HDRMAX (8+DD_NAMEMAX)‡reserved1; ƒfsm_component_t*nextComponent; Ž„numPoints; Ž„numCurves; Ž„numContours; Ž„reserved2[13]; fsm_data_fpoint_t*points; Ž„*startPts; }fsm_component_t;‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_DSPBIND_H€_DSPBIND_HŒ ƒdspblock{ Ÿblocktype; blocksize; ‹*blockaddr; };‡st„*,‚(*)(const„*,ƒstat*,‚),‚);‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_ERRNO_H€_ERRNO_H€EOSERR -1€EPERM 1€ENOENT 2€ESRCH 3€EINTR 4€EIO 5€ENXIO 6€E2BIG 7€ENOEXEC 8€EBADF 9€ECHILD 10€EAGAIN 11€ENOMEM 12€EACCES 13€EFAULT 14€ENOTBLK 15€EBUSY 16€EEXIST 17€EXDEV 18€ENODEV 19€ENOTDIR 20€EISDIR 21€EINVAL 22€ENFILE 23€EMFILE 24€ENOTTY 25€ETXTBSY 26€EFBIG 27€ENOSPC 28€ESPIPE 29€EROFS 30€EMLINK 31€EPIPE 32€EDOM 33€ERANGE 34€EDEADLK 35 ‚errno;‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€Œ di.h> öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_EXT_H€_EXT_HŒŒŒŒˆ_SSIZE_T€_SSIZE_T „signedssize_t;‡€FA_UPDATE 0€FA_RDONLY FA_READONLY€FA_LABEL FA_VOLUME€FA_DIREC FA_SUBDIR€FA_ARCH FA_ARCHIVE€MAXPATH FMSIZE€MAXDRIVE 3€MAXDIR FMSIZE€MAXFILE (FNSIZE-FESIZE-1)€MAXEXT (FESIZE+2) ƒffblk { „ff_reserved[21]; „ff_attrib; Ÿff_ftime; Ÿff_fdate; ff_fsize; „ff_name[14]; }; ‚findfirst(const„*,ƒffblk*,‚); ‚findnext(ƒffblk*);€findfirst(a,b,c) dfind((ƒFILEINFO*)(b),(a),(c))€findnext(a) dnext((ƒFILEINFO*)(a)) ƒdate { Ÿda_year; „da_day; „da_mon; }; ‹getdate(ƒdate*); ‹setdate(ƒdate*); ƒtime { Ž„ti_min; Ž„ti_hour; Ž„ti_hund; Ž„ti_sec; }; ‹gettime(ƒtime*); ‹settime(ƒtime*); ƒftime { Žft_hour:5; Žft_min:6; Žft_tsec:5; Žft_year:7; Žft_month:4; Žft_day:5; }; __regargs _CXCERR(); ‚getftime(‚,ƒftime*); ‚setftime(‚,ƒftime*);€getftime(a,b) ((‚)_CXCERR(Fdatime((Ÿ*)(b),(a),0)))€setftime(a,b) ((‚)_CXCERR(Fdatime((Ÿ*)(b),(a),1))) ƒtm*ftimtotm(ƒftime*); ƒdfree { Ždf_avail; Ždf_total; Ždf_bsec; Ždf_sclus; }; ‹getdfree(‚,ƒdfree*);€getdfree(a,b) getdfs((a),(ƒDISKINFO*)(b)) ‚getdisk(‹);€getdisk getdsk ‚setdisk(‚);€setdisk chgdsk ‚getcurdir(‚,„*);€getcurdir getcd size_t coreleft(‹);€coreleft()((size_t)Malloc(-1)) ‹delay(size_t); ‹sleep(size_t); ‚chdir(const„*); ‚isatty(‚); ssize_t filelength(‚); „*getcwd(„*,‚);‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_FCNTL_H€_FCNTL_Hˆ__TYPES_HŒ<__types.h>‡ˆ__MODES_HŒ<__modes.h>‡ˆ_SIZE_T€_SIZE_T „Ž‚size_t;‡ˆ_SSIZE_T€_SSIZE_T „signedssize_t;‡€O_RDONLY 0€O_WRONLY 1€O_RDWR 2€O_NDELAY 0€O_APPEND 8€O_SYNC 0€O_SDRW 16€O_SDW 32€O_SDR 48€O_SDN 64€O_PVT 128€O_CREAT 256€O_TRUNC 512€O_EXCL 0x400€O_RAW 0x8000€O_BINARY O_RAWˆSEEK_SET€SEEK_SET __SEEK_SET‡ˆSEEK_CUR€SEEK_CUR __SEEK_CUR‡ˆSEEK_END€SEEK_END __SEEK_END‡€F_DUPFD 0€F_GETFD 1€F_SETFD 2€F_GETFL 3€F_SETFL 4€F_GETLK 5€F_SETLK 6€F_SETLKW 7 ƒflock{€F_RDLCK O_RDONLY€F_WRLCK O_WRONLY€F_UNLCK 3 Ÿl_type; Ÿl_whence; l_start; l_len; Ÿl_pid; }; ‚open(const„*,‚,...); ‚opene(const„*,‚,‚,„*); ‚creat(const„*,‚); ‚fcntl(‚,‚,‹*);€creat(name,prot) open(name,O_WRONLY|O_TRUNC|O_CREAT|(prot&O_RAW),(prot&~O_RAW))‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_FCTYPE_H€_FCTYPE_H #undef isalnum #undef isalpha #undef iscntrl #undef isdigit #undef isgraph #undef islower #undef isprint #undef ispunct #undef isspace #undef isupper #undef isxdigit #undef tolower #undef toupper ‚isalnum(‚); ‚isalpha(‚); ‚iscntrl(‚); ‚isdigit(‚); ‚isgraph(‚); ‚islower(‚); ‚isprint(‚); ‚ispunct(‚); ‚isspace(‚); ‚isupper(‚); ‚isxdigit(‚); ‚tolower(‚); ‚toupper(‚);ˆ_ANSI #undef isascii #undef iscsym #undef iscsymf #undef toascii ‚isascii(‚); ‚iscsym(‚); ‚iscsymf(‚); ‚toascii(‚);‡‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_FLOAT_H€_FLOAT_H€FLT_RADIX 2€FLT_ROUNDS 1€__SINGLE_MANT_DIG 24€__DOUBLE_MANT_DIG 53€__EXTEND_MANT_DIG 53€__SINGLE_DIG 7€__DOUBLE_DIG 16€__EXTEND_DIG 16€__SINGLE_MIN_EXP -126€__DOUBLE_MIN_EXP -1022€__EXTEND_MIN_EXP -1022€__SINGLE_MIN_10_EXP -38€__DOUBLE_MIN_10_EXP -308€__EXTEND_MIN_10_EXP -308€__SINGLE_MAX_EXP 128€__DOUBLE_MAX_EXP 1024€__EXTEND_MAX_EXP 1024€__SINGLE_MAX_10_EXP 38€__DOUBLE_MAX_10_EXP 308€__EXTEND_MAX_10_EXP 308€__SINGLE_MAX 3.40282347E+38€__DOUBLE_MAX 1.797693134862317E+308€__EXTEND_MAX 1.797693134862317E+308€__SINGLE_EPSILON 1.19209290E-07€__DOUBLE_EPSILON 2.2204460492503147E-16€__EXTEND_EPSILON 2.2204460492503147E-16€__SINGLE_MIN 3.40282347E-38€__DOUBLE_MIN 1.797693134862316E-308€__EXTEND_MIN 1.797693134862316E-308£defined(_MSINGLE)€FLT_MANT_DIG __SINGLE_MANT_DIG€DBL_MANT_DIG __SINGLE_MANT_DIG€LDBL_MANT_DIG __SINGLE_MANT_DIG€FLT_DIG __SINGLE_DIG€DBL_DIG __SINGLE_DIG€LDBL_DIG __SINGLE_DIG€FLT_MIN_EXP __SINGLE_MIN_EXP€DBL_MIN_EXP __SINGLE_MIN_EXP€LDBL_MIN_EXP __SINGLE_MIN_EXP€FLT_MIN_10_EXP __SINGLE_MIN_10_EXP€DBL_MIN_10_EXP __SINGLE_MIN_10_EXP€LDBL_MIN_10_EXP __SINGLE_MIN_10_EXP€FLT_MAX_EXP __SINGLE_MAX_EXP€DBL_MAX_EXP __SINGLE_MAX_EXP€LDBL_MAX_EXP __SINGLE_MAX_EXP€FLT_MAX_10_EXP __SINGLE_MAX_10_EXP€DBL_MAX_10_EXP __SINGLE_MAX_10_EXP€LDBL_MAX_10_EXP __SINGLE_MAX_10_EXP€FLT_MAX __SINGLE_MAX€DBL_MAX __SINGLE_MAX€LDBL_MAX __SINGLE_MAX€FLT_EPSILON __SINGLE_EPSILON€DBL_EPSILON __SINGLE_EPSILON€LDBL_EPSILON __SINGLE_EPSILON€FLT_MIN __SINGLE_MIN€DBL_MIN __SINGLE_MIN€LDBL_MIN __SINGLE_MIN #elif defined(_MDOUBL)€FLT_MANT_DIG __DOUBLE_MANT_DIG€DBL_MANT_DIG __DOUBLE_MANT_DIG€LDBL_MANT_DIG __DOUBLE_MANT_DIG€FLT_DIG __DOUBLE_DIG€DBL_DIG __DOUBLE_DIG€LDBL_DIG __DOUBLE_DIG€FLT_MIN_EXP __DOUBLE_MIN_EXP€DBL_MIN_EXP __DOUBLE_MIN_EXP€LDBL_MIN_EXP __DOUBLE_MIN_EXP€FLT_MIN_10_EXP __DOUBLE_MIN_10_EXP€DBL_MIN_10_EXP __DOUBLE_MIN_10_EXP€LDBL_MIN_10_EXP __DOUBLE_MIN_10_EXP€FLT_MAX_EXP __DOUBLE_MAX_EXP€DBL_MAX_EXP __DOUBLE_MAX_EXP€LDBL_MAX_EXP __DOUBLE_MAX_EXP€FLT_MAX_10_EXP __DOUBLE_MAX_10_EXP€DBL_MAX_10_EXP __DOUBLE_MAX_10_EXP€LDBL_MAX_10_EXP __DOUBLE_MAX_10_EXP€FLT_MAX __DOUBLE_MAX€DBL_MAX __DOUBLE_MAX€LDBL_MAX __DOUBLE_MAX€FLT_EPSILON __DOUBLE_EPSILON€DBL_EPSILON __DOUBLE_EPSILON€LDBL_EPSILON __DOUBLE_EPSILON€FLT_MIN __DOUBLE_MIN€DBL_MIN __DOUBLE_MIN€LDBL_MIN __DOUBLE_MIN€FLT_MANT_DIG __SINGLE_MANT_DIG€DBL_MANT_DIG __DOUBLE_MANT_DIG€LDBL_MANT_DIG __EXTEND_MANT_DIG€FLT_DIG __SINGLE_DIG€DBL_DIG __DOUBLE_DIG€LDBL_DIG __EXTEND_DIG€FLT_MIN_EXP __SINGLE_MIN_EXP€DBL_MIN_EXP __DOUBLE_MIN_EXP€LDBL_MIN_EXP __EXTEND_MIN_EXP€FLT_MIN_10_EXP __SINGLE_MIN_10_EXP€DBL_MIN_10_EXP __DOUBLE_MIN_10_EXP€LDBL_MIN_10_EXP __EXTEND_MIN_10_EXP€FLT_MAX_EXP __SINGLE_MAX_EXP€DBL_MAX_EXP __DOUBLE_MAX_EXP€LDBL_MAX_EXP __EXTEND_MAX_EXP€FLT_MAX_10_EXP __SINGLE_MAX_10_EXP€DBL_MAX_10_EXP __DOUBLE_MAX_10_EXP€LDBL_MAX_10_EXP __EXTEND_MAX_10_EXP€FLT_MAX __SINGLE_MAX€DBL_MAX __DOUBLE_MAX€LDBL_MAX __EXTEND_MAX€FLT_EPSILON __SINGLE_EPSILON€DBL_EPSILON __DOUBLE_EPSILON€LDBL_EPSILON __EXTEND_EPSILON€FLT_MIN __SINGLE_MIN€DBL_MIN __DOUBLE_MIN€LDBL_MIN __EXTEND_MIN‡ˆ_ANSI€FLT_GUARD 0€FLT_NORMALIZE 1ˆHUGE_VAL€HUGE_VAL 1.797693134862317E+308‡‡‡m_pos_hy; Ÿld_m_planes; Ÿld_m_cdb_bg; Ÿld_m_cdb_fg; Ÿld_mask_form[32]; Ÿld_inq_tab[45]; Ÿld_dev_tab[45]; Ÿld_gcurx; Ÿld_gcury; Ÿld_m_hid_ct; Ÿld_mouse_bt; Ÿld_req_col[3][16]; Ÿld_siz_tab[15]; Ÿld_resvd3; Ÿld_resvd4; Ÿ*ld_cur_work; ƒla_font*ld_def_font; ƒla_font*ld_font_ring[4]; Ÿld_font_count; Ÿld_resvd5[45]; Ž„ld_cur_ms_stat; „ld_resvd6; Ÿld_v_hid_cnt; Ÿld_cur_x; Ÿld_cur_y; „ld_cur_flag; „ld_mouse_flag; ld_resvd7; Ÿld_v_sav_xy[2]; Ÿld_save_len; Ÿ*ld_save_addr; Ÿld_save_stat; ld_save_area[4][16]; ‹(*ld_user_tim)(); ‹(*ld_next_tim)(); ‹(*ld_user_but)(); ‹(*ld_user_cur)(); ‹(*ld_user_mot)(); Ÿld_cel_ht; Ÿld_cel_mx; Ÿld_cel_my; Ÿld_cel_wr; Ÿld_col_bg; Ÿld_col_fg; ‹*ld_cur_ad; Ÿld_cur_off; Ÿld_cur_xy[2]; „ld_cur_cnt; „ld_cur_tim; ‹*ld_fnt_ad; Ÿld_fnt_nd; Ÿld_fnt_st; Ÿld_fnt_wr; Ÿld_x_max; ‹*ld_off_ad; Ÿld_status; Ÿld_y_max; Ÿld_bytes_lin; }LA_EXT; „ƒla_blk { Ÿbl_xmin; Ÿbl_ymin; Ÿ*bl_form; Ÿbl_nxwd; Ÿbl_nxln; Ÿbl_nxpl; }LA_BLK; „ƒla_b€ˆ_FTW_H€_FTW_HŒŒ€FTW_F 0€FTW_D 1€FTW_DNR 2€FTW_NS 3 ‚ftw(const„*,‚(*)(const„*,ƒstat*,‚),‚);‡; Ÿbb_p_nxln; Ÿbb_p_nxpl; Ÿbb_p_mask; „bb_fill[24]; }LA_BLIT; „ƒla_sprite { Ÿls_xhot; Ÿls_yhot; Ÿls_form; Ÿls_bgcol; Ÿls_fgcol; Ÿls_image[32]; }LA_SPRITE; „ƒlinea_info { li_d0; ƒla_data*li_a0; ƒla_font**li_a1; (*li_a2)(); }LINEA_INFO; ƒlinea_info la_info; ƒlinea_init { li_d0; ƒla_data*li_a0; ƒla_font**li_a1; (*li_a2)(); }; ƒlinea_init la_init;€VPLANES la_info.li_a0->ld_vplanes€VWRAP la_info.li_a0->ld_vwrap€CONTRL la_info.li_a0->ld_contrl€INTIN la_info.li_a0->ld_intin€PTSIN la_info.li_a0->ld_ptsin€INTOUT la_info.li_a0->ld_intout€PTSOUT la_info.li_a0->ld_ptsout€COLBIT0 la_info.li_a0->ld_colbit[0]€COLBIT1 la_info.li_a0->ld_colbit[1]€COLBIT2 la_info.li_a0->ld_colbit[2]€COLBIT3 la_info.li_a0->ld_colbit[3]€LSTLIN la_info.li_a0->ld_lstlin€LNMASK la_info.li_a0->ld_lnmask€WMODE la_info.li_a0->ld_wmode€X1 la_info.li_a0->ld_x1€Y1 la_info.li_a0->ld_y1€X2 la_info.li_a0->ld_x2€Y2 la_info.li_a0->ld_y2€€ˆ_GEMEXTRA_H€_GEMEXTRA_Hˆmin ‚min(‚,‚); ‚__builtin_min(‚,‚);€min(a,b) __builtin_min(a,b)‡ˆmax ‚max(‚,‚); ‚__builtin_max(‚,‚);€max(a,b) __builtin_max(a,b)‡ ‚rc_intersect(const GRECT*,GRECT*);‡ la_info.li_a0->ld_xmaxcl€YMAXCL la_info.li_a0->ld_ymaxcl€XDDA la_info.li_a0->ld_xdda€DDAINC la_info.li_a0->ld_ddainc€SCALDIR la_info.li_a0->ld_scaldir€MONO la_info.li_a0->ld_mono€SRCX la_info.li_a0->ld_srcx€SRCY la_info.li_a0->ld_srcy€DSTX la_info.li_a0->ld_dstx€DSTY la_info.li_a0->ld_dsty€DELX la_info.li_a0->ld_delx€DELY la_info.li_a0->ld_dely€FBASE la_info.li_a0->ld_fbase€FWIDTH la_info.li_a0->ld_fwidth€STYLE la_info.li_a0->ld_style€LITEMSK la_info.li_a0->ld_litemsk€SKEWMSK la_info.li_a0->ld_skewmsk€WEIGHT la_info.li_a0->ld_weight€ROFF la_info.li_a0->ld_roff€LOFF la_info.li_a0->ld_loff€SCALE la_info.li_a0->ld_scale€CHUP la_info.li_a0->ld_chup€TEXTFG la_info.li_a0->ld_textfg€SCRTCHP la_info.li_a0->ld_scrtchp€SCRPT2 la_info.li_a0->ld_scrpt2€TEXTBG la_info.li_a0->ld_textbg€COPYTRAN la_info.li_a0->ld_copytran€SEEDABORT la€ŒŒ edabort€V_CUR_FONT ((LA_EXT*)la_info.li_a0-1)->ld_cur_font€V_M_POS_HX ((LA_EXT*)la_info.li_a0-1)->ld_m_pos_hx€V_M_POS_HY ((LA_EXT*)la_info.li_a0-1)->ld_m_pos_hy€V_M_PLANES ((LA_EXT*)la_info.li_a0-1)->ld_m_planes€V_M_CDB_BG ((LA_EXT*)la_info.li_a0-1)->ld_m_cdb_bg€V_M_CDB_FG ((LA_EXT*)la_info.li_a0-1)->ld_m_cdb_fg€V_MASK_FORM ((LA_EXT*)la_info.li_a0-1)->ld_mask_form€V_INQ_TAB ((LA_EXT*)la_info.li_a0-1)->ld_inq_tab€V_DEV_TAB ((LA_EXT*)la_info.li_a0-1)->ld_dev_tab€V_GCURX ((LA_EXT*)la_info.li_a0-1)->ld_gcurx€V_GCURY ((LA_EXT*)la_info.li_a0-1)->ld_gcury€V_M_HID_CT ((LA_EXT*)la_info.li_a0-1)->ld_m_hid_ct€V_MOUSE_BT ((LA_EXT*)la_info.li_a0-1)->ld_mouse_bt€V_REQ_COL ((LA_EXT*)la_info.li_a0-1)->ld_req_col€V_SIZ_TAB ((LA_EXT*)la_info.li_a0-1)->ld_siz_tab€V_CUR_WORK ((LA_EXT*)la_info.li_a0-1)->ld_cur_work€V_DEF_FONT ((LA_EXT*)la_info.li_a0-1)->ld_def_font€V_FONT_RING ((LA_EXT*)la_info.li_a0-1)->ld_font_ring€V_FONT_COUNT ((LA_EXT*)la_info.li_a0-1)->ld_font_count€V_CUR_MS_STAT ((LA_EXT*)la_info.li_a0-1)-€ˆ_GEMOUT_H€_GEMOUT_H ƒgemohdr{€GEMOMAGIC 0x601a Ÿg_magic;€GO_TEXT 0€GO_DATA 1€GO_BSS 2€GO_SYM 3€GEMNSEG 4 g_ssize[GEMNSEG]; g_reserved;€GF_FAST 1€GF_TTMALLOC 2€GF_LOAD 4€GF_PROT_P 0€GF_PROT_G 16€GF_PROT_S 32€GF_PROT_PR 48€GF_SHTEXT 0x800€GF_TPASHIFT 28 g_flags; Ÿg_relflag; }; ƒgemsym{ „gs_name[8];€GS_HISOFT 72€GS_ARCHIVE 64€GS_FILE 128€GS_BSS 256€GS_TEXT 512€GS_DATA 0x400€GS_EXT 0x800€GS_EQREG 0x1000€GS_GLOBL 0x2000€GS_EQU 0x4000€GS_DEF 0x8000 ŽŸgs_type; gs_value; };€GR_ABS 0€GR_DATA 1€GR_TEXT 2€GR_BSS 3€GR_SYM 4€GR_LONG 5€GR_PC 6€GR_INST 7€GR_MASK 7€GR_SHIFT 3€GEMAMAGIC 0xff65 ƒgemahdr{ „ga_name[14]; ga_date; „ga_uid; „ga_gid; Ÿga_mode; ga_size; Ÿga_fill; };‡but€V_USER_CUR ((LA_EXT*)la_info.li_a0-1)->ld_user_cur€V_USER_MOT ((LA_EXT*)la_info.li_a0-1)->ld_user_mot€V_CEL_HT ((LA_EXT*)la_info.li_a0-1)->ld_cel_ht€V_CEL_MX ((LA_EXT*)la_info.li_a0-1)->ld_cel_mx€V_CEL_MY ((LA_EXT*)la_info.li_a0-1)->ld_cel_my€V_CEL_WR ((LA_EXT*)la_info.li_a0-1)->ld_cel_wr€V_COL_BG ((LA_EXT*)la_info.li_a0-1)->ld_col_bg€V_COL_FG€ˆ_IEEEFP_H€_IEEEFP_H __getfpcr(‹); __getfpsr(‹); ‹__setfpcr(); ‹__setfpsr(); ‚_FPCmode; _FPCfpcr; „enum fp_rnd{ FP_RN=0, FP_RZ=16, FP_RM=32, FP_RP=48 }fp_rnd; fp_rnd fpgetround(‹); fp_rnd fpsetround(fp_rnd); „enum fp_prec{ FP_PX=0, FP_PS=64, FP_PD=128 }fp_prec; fp_prec fpgetprecision(‹); fp_prec fpsetprecision(fp_prec); „enum fp_except{ FP_X_BSUN=0x8000, FP_X_SNAN=0x4000, FP_X_OPERR=0x2000,€FP_X_IOP FP_X_OPERR FP_X_OVFL=0x1000, FP_X_UNFL=0x800, FP_X_DZ=0x400, FP_X_INEX2=512,€FP_X_INEX FP_X_INEX2 FP_X_INEX1=256 }fp_except; fp_except fpgetmask(‹); fp_except fpsetmask(fp_except); fp_except fpgetsticky(‹); fp_except fpsetsticky(fp_except);‡_status€V_Y_MAX ((LA_EXT*)la_info.li_a0-1)->ld_y_max€BYTES_LIN ((LA_EXT*)la_info.li_a0-1)->ld_bytes_lin€putpixel(x,y,v) ((PTSIN[0]=(x)),(PTSIN[1]=(y)),(INTIN[0]=(v)),linea1())€getpixel(x,y) ((PTSIN[0]=(x)),(PTSIN[1]=(y)),linea2())€showmouse(show) (INTIN[0]=show,linea9())€hidemouse()lineaa()€mousehidden (V_M_HID_CT) ƒla_data*linea0(‹); ‹linea1(‹); Ÿlinea2(‹); ‹linea3(‹);€ŒŒŒ ‹); ‹linea7(LA_BLIT*); ‹linea8(‹); ‹linea9(‹); ‹lineaa(‹); ‹lineab(‹); ‹lineac(‹*); ‹linead(‚,‚,LA_SPRITE*,‹*); ‹lineae(‹); ‹lineaf(‹);…inline linea1(){register a2,d2;"a001";}…inline d0=linea2(){register a2,d2;"a002";}…inline linea3(){register a2,d2;"a003";}…inline linea4(){register a2,d2;"a004";}…inline linea5(){register a2,d2;"a005";}…inline linea6(){register a2,d2;"a006";}…inline linea7(a6){register a2,d2;"a007";}…inline linea8(){register a2,d2;"a008";}…inline linea9(){register a2,d2;"a009";}…inline lineaa(){register a2,d2;"a00a";}…inline lineab(){register a2,d2;"a00b";}…inline lineac(a2){register d2,a6;"a00c";}…inline linead(d0,d1,a0,a2){register d2,a6;"a00d";}…inline lineae(){register a2,d2;"a00e";}…inline lineaf(){register a2,d2;"a00f";}‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_IOS1_H€_IOS1_H ƒUFB{ Ÿufbflg; Ÿufbfh; };€NUFBS 32€UFB_RA 1€UFB_WA 2€UFB_NC 4€UFB_FH 16 ƒUFB _ufbs[NUFBS]; ‚_iomode,_nufbs,__umask; ƒUFB*chkufb(‚);‡‡conv { const„*decimal_point; const„*thousands_sep; const„*grouping;€LCONVM int_curr_symbol const„*int_curr_symbol; const„*currency_symbol; const„*mon_decimal_point; const„*mon_thousands_sep; const„*mon_grouping; const„*positive_sign; const„*negative_sign; „int_frac_digits; „frac_digits; „p_cs_precedes; „p_sep_by_space; „n_cs_precedes; „n_sep_by_space; „p_sign_posn; „n_sign_posn; }; ƒ__lconvn { const„*decimal_point; const„*thousands_sep; const„*grouping; }; ƒ__lconvm { const„*int_curr_symbol; const„*currency_symbol; const„*mon_decimal_point; const„*mon_thousands_sep; const„*mon_grouping; const„*positive_sign; const„*negative_sign; „int_frac_digits; „frac_digits; „p_cs_precedes; „p_sep_by_space; „n_cs_precedes; „n_sep_by_space; „p_sign_posn; „n_sign_posn; }; ƒ__locale { ƒ__locale*nxtlc; const„*lcname; const„**abswday; const„**swday; const„**absmon; const„**smonLIMITS H š‰o ;LINEA H œ‰o! LOCALE H  ‰o)ąM68881 H ”‰o+IMACROS H ¢‰o,£MATH H £‰o-¾MEMORY H ¤‰o/*MINTBINDH „‰o0MODE H ¦‰o2ĒOSBIND H §‰o3€1OSERR H Ŗ‰o@¬PORTAB H «‰oAPROCESS H ¬‰oBiSETJMP H ®‰oCSIGNAL H ƉoDgSNDBIND H °‰oFķSPEEDOHDH ±‰oG›STDARG H ²‰oHŹSTDDEF H ³‰oIŹSTDIO H “‰oJ9 STDLIB H ¶‰oMSTRING H ·‰oPļ STRINGS H ø‰oS#TADDR H ¹‰oT\TIME H ŗ‰oUuTOS H »‰oViUNISTD H ¼‰oW»UTIME H Ą‰oY}VARARGS H Į‰oZ”VDI H Ā‰o[Q€ˆ_LIMITS_H€_LIMITS_H€CHAR_BIT (8)€SCHAR_MAX (127)€SCHAR_MIN (-128)€UCHAR_MAX (255)°_UNSIGNEDCHAR€CHAR_MAX UCHAR_MAX€CHAR_MIN (0)€CHAR_MAX SCHAR_MAX€CHAR_MIN SCHAR_MIN‡€SHRT_MAX (32767)€SHRT_MIN (-32767)€USHRT_MAX (65535)€LONG_MAX (2147483647)€LONG_MIN (-2147483647)€ULONG_MAX (4294967295)°_SHORTINT€INT_MAX SHRT_MAX€INT_MIN SHRT_MIN€UINT_MAX USHRT_MAX€INT_MAX LONG_MAX€INT_MIN LONG_MIN€UINT_MAX ULONG_MAX‡€MB_LEN_MAX (1)£!defined(_ANSI)\ ||defined(_POSIX_SOURCE)ˆ__LIMITS_HŒ<__limits.h>‡€_POSIX_ARG_MAX 4096€_POSIX_CHILD_MAX 6€_POSIX_LINK_MAX 8€_POSIX_MAX_CANON 255€_POSIX_MAX_INPUT 255€_POSIX_NAME_MAX 14€_POSIX_NGROUPS_MAX 0€_POSIX_OPEN_MAX 16€_POSIX_PATH_MAX 255€_POSIX_PIPE_BUF 512€_POSIX_SSIZE_MAX 32767€_POSIX_STREAM_MAX 8€_POSIX_TZNAME_MAX 3€NGROUPS_MAX 512€OPEN_MAX 32€STREAM_MAX 32€TZNAME_MAX 8€SSIZE_MAX LONG_MAX‡‡|åARARGS H ‰JiTįåDI H ŠJiU‹€ˆ_LINEA_H€_LINEA_H „ƒla_data{ Ÿld_vplanes; Ÿld_vwrap; Ÿ*ld_contrl; Ÿ*ld_intin; Ÿ*ld_ptsin; Ÿ*ld_intout; Ÿ*ld_ptsout; Ÿld_colbit[4]; Ÿld_lstlin; Ÿld_lnmask; Ÿld_wmode; Ÿld_x1; Ÿld_y1; Ÿld_x2; Ÿld_y2; Ÿ*ld_patptr; Ÿld_patmsk; Ÿld_mfill; Ÿld_clip; Ÿld_xmincl; Ÿld_ymincl; Ÿld_xmaxcl; Ÿld_ymaxcl; Ÿld_xdda; Ÿld_ddainc; Ÿld_scaldir; Ÿld_mono; Ÿld_srcx; Ÿld_srcy; Ÿld_dstx; Ÿld_dsty; Ÿld_delx; Ÿld_dely; ‹*ld_fbase; Ÿld_fwidth; Ÿld_style; Ÿld_litemsk; Ÿld_skewmsk; Ÿld_weight; Ÿld_roff; Ÿld_loff; Ÿld_scale; Ÿld_chup; Ÿld_textfg; ‹*ld_scrtchp; Ÿld_scrpt2; Ÿld_textbg; Ÿld_copytran; ‚(*ld_seedabort)(‹); }LA_DATA; „ƒla_font{ Ÿfont_id; Ÿfont_size; „font_name[32]; Ÿfont_low_ade; Ÿfont_hi_ade; Ÿfont_top_dst; Ÿfont_ascent_dst; Ÿfont_half_dst; Ÿfont_descent_dst; Ÿfont_bottom_dist; Ÿfont_fatest; Ÿfont_fat_cell; Ÿfont_left_off; Ÿfont_right_off; Ÿfont_thickening; Ÿfont_underline; Ÿfont_lightening; Ÿfont_skewing; Ÿfont_flags; Ÿ*font_horiz_off; Ÿ*font_char_off; ‹*font_data; Ÿfont_width; Ÿfont_height; ƒla_font*font_next; }LA_FONT; „ƒla_ext{ ld_resvd1; ƒla_font*ld_cur_font; Ÿld_resvd2[23]; Ÿld_m_pos_hx; Ÿld_m_pos_hy; Ÿld_m_planes; Ÿld_m_cdb_bg; Ÿld_m_cdb_fg; Ÿld_mask_form[32]; Ÿld_inq_tab[45]; Ÿld_dev_tab[45]; Ÿld_gcurx; Ÿld_gcury; Ÿld_m_hid_ct; Ÿld_mouse_bt; Ÿld_req_col[3][16]; Ÿld_siz_tab[15]; Ÿld_resvd3; Ÿld_resvd4; Ÿ*ld_cur_work; ƒla_font*ld_def_font; ƒla_font*ld_font_ring[4]; Ÿld_font_count; Ÿld_resvd5[45]; Ž„ld_cur_ms_stat; „ld_resvd6; Ÿld_v_hid_cnt; Ÿld_cur_x; Ÿld_cur_y; „ld_cur_flag; „ld_mouse_flag; ld_resvd7; Ÿld_v_sav_xy[2]; Ÿld_save_len; Ÿ*ld_save_addr; Ÿld_save_stat; ld_save_area[4][16]; ‹(*ld_user_tim)(); ‹(*ld_next_tim)(); ‹(*ld_user_but)(); ‹(*ld_user_cur)(); ‹(*ld_user_mot)(); Ÿld_cel_ht; Ÿld_cel_mx; Ÿld_cel_my; Ÿld_cel_wr; Ÿld_col_bg; Ÿld_col_fg; ‹*ld_cur_ad; Ÿld_cur_off; Ÿld_cur_xy[2]; „ld_cur_cnt; „ld_cur_tim; ‹*ld_fnt_ad; Ÿld_fnt_nd; Ÿld_fnt_st; Ÿld_fnt_wr; Ÿld_x_max; ‹*ld_off_ad; Ÿld_status; Ÿld_y_max; Ÿld_bytes_lin; }LA_EXT; „ƒla_blk{ Ÿbl_xmin; Ÿbl_ymin; Ÿ*bl_form; Ÿbl_nxwd; Ÿbl_nxln; Ÿbl_nxpl; }LA_BLK; „ƒla_blit{ Ÿbb_b_wd; Ÿbb_b_ht; Ÿbb_plane_ct; Ÿbb_fg_col; Ÿbb_bg_col; „bb_op_tab[4]; ƒla_blk bb_s; ƒla_blk bb_d; Ÿ*bb_p_addr; Ÿbb_p_nxln; Ÿbb_p_nxpl; Ÿbb_p_mask; „bb_fill[24]; }LA_BLIT; „ƒla_sprite{ Ÿls_xhot; Ÿls_yhot; Ÿls_form; Ÿls_bgcol; Ÿls_fgcol; Ÿls_image[32]; }LA_SPRITE; „ƒlinea_info{ li_d0; ƒla_data*li_a0; ƒla_font**li_a1; (*li_a2)(); }LINEA_INFO; ƒlinea_info la_info; ƒlinea_init{ li_d0; ƒla_data*li_a0; ƒla_font**li_a1; (*li_a2)(); }; ƒlinea_init la_init;€VPLANES la_info.li_a0->ld_vplanes€VWRAP la_info.li_a0->ld_vwrap€CONTRL la_info.li_a0->ld_contrl€INTIN la_info.li_a0->ld_intin€PTSIN la_info.li_a0->ld_ptsin€INTOUT la_info.li_a0->ld_intout€PTSOUT la_info.li_a0->ld_ptsout€COLBIT0 la_info.li_a0->ld_colbit[0]€COLBIT1 la_info.li_a0->ld_colbit[1]€COLBIT2 la_info.li_a0->ld_colbit[2]€COLBIT3 la_info.li_a0->ld_colbit[3]€LSTLIN la_info.li_a0->ld_lstlin€LNMASK la_info.li_a0->ld_lnmask€WMODE la_info.li_a0->ld_wmode€X1 la_info.li_a0->ld_x1€Y1 la_info.li_a0->ld_y1€X2 la_info.li_a0->ld_x2€Y2 la_info.li_a0->ld_y2€PATPTR la_info.li_a0->ld_patptr€PATMSK la_info.li_a0->ld_patmsk€MFILL la_info.li_a0->ld_mfill€CLIP la_info.li_a0->ld_clip€XMINCL la_info.li_a0->ld_xmincl€YMINCL la_info.li_a0->ld_ymincl€XMAXCL la_info.li_a0->ld_xmaxcl€YMAXCL la_info.li_a0->ld_ymaxcl€XDDA la_info.li_a0->ld_xdda€DDAINC la_info.li_a0->ld_ddainc€SCALDIR la_info.li_a0->ld_scaldir€MONO la_info.li_a0->ld_mono€SRCX la_info.li_a0->ld_srcx€SRCY la_info.li_a0->ld_srcy€DSTX la_info.li_a0->ld_dstx€DSTY la_info.li_a0->ld_dsty€DELX la_info.li_a0->ld_delx€DELY la_info.li_a0->ld_dely€FBASE la_info.li_a0->ld_fbase€FWIDTH la_info.li_a0->ld_fwidth€STYLE la_info.li_a0->ld_style€LITEMSK la_info.li_a0->ld_litemsk€SKEWMSK la_info.li_a0->ld_skewmsk€WEIGHT la_info.li_a0->ld_weight€ROFF la_info.li_a0->ld_roff€LOFF la_info.li_a0->ld_loff€SCALE la_info.li_a0->ld_scale€CHUP la_info.li_a0->ld_chup€TEXTFG la_info.li_a0->ld_textfg€SCRTCHP la_info.li_a0->ld_scrtchp€SCRPT2 la_info.li_a0->ld_scrpt2€TEXTBG la_info.li_a0->ld_textbg€COPYTRAN la_info.li_a0->ld_copytran€SEEDABORT la_info.li_a0->ld_seedabort€V_CUR_FONT ((LA_EXT*)la_info.li_a0-1)->ld_cur_font€V_M_POS_HX ((LA_EXT*)la_info.li_a0-1)->ld_m_pos_hx€V_M_POS_HY ((LA_EXT*)la_info.li_a0-1)->ld_m_pos_hy€V_M_PLANES ((LA_EXT*)la_info.li_a0-1)->ld_m_planes€V_M_CDB_BG ((LA_EXT*)la_info.li_a0-1)->ld_m_cdb_bg€V_M_CDB_FG ((LA_EXT*)la_info.li_a0-1)->ld_m_cdb_fg€V_MASK_FORM ((LA_EXT*)la_info.li_a0-1)->ld_mask_form€V_INQ_TAB ((LA_EXT*)la_info.li_a0-1)->ld_inq_tab€V_DEV_TAB ((LA_EXT*)la_info.li_a0-1)->ld_dev_tab€V_GCURX ((LA_EXT*)la_info.li_a0-1)->ld_gcurx€V_GCURY ((LA_EXT*)la_info.li_a0-1)->ld_gcury€V_M_HID_CT ((LA_EXT*)la_info.li_a0-1)->ld_m_hid_ct€V_MOUSE_BT ((LA_EXT*)la_info.li_a0-1)->ld_mouse_bt€V_REQ_COL ((LA_EXT*)la_info.li_a0-1)->ld_req_col€V_SIZ_TAB ((LA_EXT*)la_info.li_a0-1)->ld_siz_tab€V_CUR_WORK ((LA_EXT*)la_info.li_a0-1)->ld_cur_work€V_DEF_FONT ((LA_EXT*)la_info.li_a0-1)->ld_def_font€V_FONT_RING ((LA_EXT*)la_info.li_a0-1)->ld_font_ring€V_FONT_COUNT ((LA_EXT*)la_info.li_a0-1)->ld_font_count€V_CUR_MS_STAT ((LA_EXT*)la_info.li_a0-1)->ld_cur_ms_stat€V_V_HID_CNT ((LA_EXT*)la_info.li_a0-1)->ld_v_hid_cnt€V_CUR_X ((LA_EXT*)la_info.li_a0-1)->ld_cur_x€V_CUR_Y ((LA_EXT*)la_info.li_a0-1)->ld_cur_y€V_CUR_FLAG ((LA_EXT*)la_info.li_a0-1)->ld_cur_flag€V_MOUSE_FLAG ((LA_EXT*)la_info.li_a0-1)->ld_mouse_flag€V_V_SAV_XY ((LA_EXT*)la_info.li_a0-1)->ld_v_sav_xy€V_SAVE_LEN ((LA_EXT*)la_info.li_a0-1)->ld_save_len€V_SAVE_ADDR ((LA_EXT*)la_info.li_a0-1)->ld_save_addr€V_SAVE_STAT ((LA_EXT*)la_info.li_a0-1)->ld_save_stat€V_SAVE_AREA ((LA_EXT*)la_info.li_a0-1)->ld_save_area€V_USER_TIM ((LA_EXT*)la_info.li_a0-1)->ld_user_tim€V_NEXT_TIM ((LA_EXT*)la_info.li_a0-1)->ld_next_tim€V_USER_BUT ((LA_EXT*)la_info.li_a0-1)->ld_user_but€V_USER_CUR ((LA_EXT*)la_info.li_a0-1)->ld_user_cur€V_USER_MOT ((LA_EXT*)la_info.li_a0-1)->ld_user_mot€V_CEL_HT ((LA_EXT*)la_info.li_a0-1)->ld_cel_ht€V_CEL_MX ((LA_EXT*)la_info.li_a0-1)->ld_cel_mx€V_CEL_MY ((LA_EXT*)la_info.li_a0-1)->ld_cel_my€V_CEL_WR ((LA_EXT*)la_info.li_a0-1)->ld_cel_wr€V_COL_BG ((LA_EXT*)la_info.li_a0-1)->ld_col_bg€V_COL_FG ((LA_EXT*)la_info.li_a0-1)->ld_col_fg€V_CUR_AD ((LA_EXT*)la_info.li_a0-1)->ld_cur_ad€V_CUR_OFF ((LA_EXT*)la_info.li_a0-1)->ld_cur_off€V_CUR_CX ((LA_EXT*)la_info.li_a0-1)->ld_cur_xy[0]€V_CUR_CY ((LA_EXT*)la_info.li_a0-1)->ld_cur_xy[1]€V_CUR_CNT ((LA_EXT*)la_info.li_a0-1)->ld_cur_cnt€V_CUR_TIM ((LA_EXT*)la_info.li_a0-1)->ld_cur_tim€V_FNT_AD ((LA_EXT*)la_info.li_a0-1)->ld_fnt_ad€V_FNT_ND ((LA_EXT*)la_info.li_a0-1)->ld_fnt_nd€V_FNT_ST ((LA_EXT*)la_info.li_a0-1)->ld_fnt_st€V_FNT_WR ((LA_EXT*)la_info.li_a0-1)->ld_fnt_wr€V_X_MAX ((LA_EXT*)la_info.li_a0-1)->ld_x_max€V_OFF_AD ((LA_EXT*)la_info.li_a0-1)->ld_off_ad€V_STATUS ((LA_EXT*)la_info.li_a0-1)->ld_status€V_Y_MAX ((LA_EXT*)la_info.li_a0-1)->ld_y_max€BYTES_LIN ((LA_EXT*)la_info.li_a0-1)->ld_bytes_lin€putpixel(x,y,v) ((PTSIN[0]=(x)),(PTSIN[1]=(y)),(INTIN[0]=(v)),linea1())€getpixel(x,y) ((PTSIN[0]=(x)),(PTSIN[1]=(y)),linea2())€showmouse(show) (INTIN[0]=show,linea9())€hidemouse()lineaa()€mousehidden (V_M_HID_CT) ƒla_data*linea0(‹); ‹linea1(‹); Ÿlinea2(‹); ‹linea3(‹); ‹linea4(‹); ‹linea5(‹); ‹linea6(‹); ‹linea7(LA_BLIT*); ‹linea8(‹); ‹linea9(‹); ‹lineaa(‹); ‹lineab(‹); ‹lineac(‹*); ‹linead(‚,‚,LA_SPRITE*,‹*); ‹lineae(‹); ‹lineaf(‹);…inline linea1(){register a2,d2;"a001";}…inline d0=linea2(){register a2,d2;"a002";}…inline linea3(){register a2,d2;"a003";}…inline linea4(){register a2,d2;"a004";}…inline linea5(){register a2,d2;"a005";}…inline linea6(){register a2,d2;"a006";}…inline linea7(a6){register a2,d2;"a007";}…inline linea8(){register a2,d2;"a008";}…inline linea9(){register a2,d2;"a009";}…inline lineaa(){register a2,d2;"a00a";}…inline lineab(){register a2,d2;"a00b";}…inline lineac(a2){register d2,a6;"a00c";}…inline linead(d0,d1,a0,a2){register d2,a6;"a00d";}…inline lineae(){register a2,d2;"a00e";}…inline lineaf(){register a2,d2;"a00f";}‡sk(‚);‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_LOCALE_H€_LOCALE_Hˆ__TYPES_HŒ<__types.h>‡ˆ_SIZE_T€_SIZE_T „Žsize_t;‡ˆ_WCHAR_T€_WCHAR_T „Ž„wchar_t;‡€LC_COLLATE 0€LC_CTYPE 1€LC_NUMERIC 2€LC_TIME 3€LC_MONETARY 4€LC_ALL 5 ƒlconv { const„*decimal_point; const„*thousands_sep; const„*grouping;€LCONVM int_curr_symbol const„*int_curr_symbol; const„*currency_symbol; const„*mon_decimal_point; const„*mon_thousands_sep; const„*mon_grouping; const„*positive_sign; const„*negative_sign; „int_frac_digits; „frac_digits; „p_cs_precedes; „p_sep_by_space; „n_cs_precedes; „n_sep_by_space; „p_sign_posn; „n_sign_posn; }; ƒ__lconvn { const„*decimal_point; const„*thousands_sep; const„*grouping; }; ƒ__lconvm { const„*int_curr_symbol; const„*currency_symbol; const„*mon_decimal_point; const„*mon_thousands_sep; const„*mon_grouping; const„*positive_sign; const„*negative_sign; „int_frac_digits; „frac_digits; „p_cs_precedes; „p_sep_by_space; „n_cs_precedes; „n_sep_by_space; „p_sign_posn; „n_sign_posn; }; ƒ__locale { ƒ__locale*nxtlc; const„*lcname; const„**abswday; const„**swday; const„**absmon; const„**smon; const„**sampm; const„*stzone; const‚*lccomp; const‚*ixfrm; „decpt; „mb_cur_max; „mb_state; ‚(*mblen)(const„*,size_t); ‚mblen_state; ‚(*mbtowc)(wchar_t*,const„*,size_t); ‚mbtowc_state; ‚(*wctomb)(„*,wchar_t); ‚wctomb_state; size_t(*mbstowcs)(wchar_t*,const„*,size_t); ‚mbstowcs_state; size_t(*wcstombs)(„*,const wchar_t*,size_t); ‚wcstombs_state; ƒ__lconvn*lconvn; ƒ__lconvm*lconvm; }; ƒ__locale*__clocale[]; ƒlconv __clconv; „__decpt;€DECPT __decpt „__mb_cur_max; ƒ__locale*__flocale; ƒ__locale*__llocale; „*setlocale(‚,const„*); ƒlconv*localeconv(‹); ƒ__locale*readlocale(const„*);€LCLNAME 1€LCLOPEN 2€LCLCOLL 3€LCLCTYPE 4€LCLNUMERIC 5€LCLTIME 6€LCLMONETARY 7€LCLREAD 8€LCLEND 9 ‚__lclerror;ˆœ€œ__NULL‡‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_M68881_H€_M68881_H°_M881 __builtin_fpc(‚,);€acos(d) __builtin_fpc(0x001C,d)€asin(d) __builtin_fpc(0x000C,d)€atan(d) __builtin_fpc(0x000A,d)€cos(d) __builtin_fpc(0x001D,d)€cosh(d) __builtin_fpc(0x0019,d)€exp(d) __builtin_fpc(0x0010,d)€fabs(d) __builtin_fpc(0x0018,d)€log(d) __builtin_fpc(0x0014,d)€log10(d) __builtin_fpc(0x0015,d)€sin(d) __builtin_fpc(0x000E,d)€sinh(d) __builtin_fpc(0x0002,d)€sqrt(d) __builtin_fpc(0x0004,d)€tan(d) __builtin_fpc(0x000F,d)€tanh(d) __builtin_fpc(0x0009,d)ˆ_ANSI€pow2(d) __builtin_fpc(0x0011,d)€fintrz(d) __builtin_fpc(0x0003,d)€flognp1(d) __builtin_fpc(0x0006,d)€fetoxm1(d) __builtin_fpc(0x0008,d)€fatanh(d) __builtin_fpc(0x000D,d)€fgetexp(d) __builtin_fpc(0x001E,d)€ftentox(d) __builtin_fpc(0x0012,d)€flog2(d) __builtin_fpc(0x0016,d)€fneg(d) __builtin_fpc(0x001A,d)€fgetman(d) __builtin_fpc(0x001F,d)‡‡‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_MACROS_H€_MACROS_H ‚__builtin_abs(‚);€abs(i) __builtin_abs(i) ‚__builtin_min(‚,‚);€min(a,b) __builtin_min(a,b) ‚__builtin_max(‚,‚);€max(a,b) __builtin_max(a,b)‡6,a)€Fgetchar(a,b) __lgss(0x107,a,b)€Fputchar(a,b,c) __lgsls(0x108,a,b,c)€Pwait()__lgv(0x109)€Pnice(a) __sgs(0x10a,a)€Pgetpid()__sgv(0x10b)€Pgetppid()__sgv(0x10c)€Pgetpgrp()__sgv(0x10d)€Psetpgrp(a,b) __sgss(0x010e,a,b)€Pgetuid()__sgv(0x10f)€Psetuid(a) __sgs(0x110,a)€Pkill(a,b) __sgss(0x111,a,b)€Psignal(a,b) __ggsg(0x112,a,b)€Pvfork()__sgv(0x113)€Pgetgid()__sgv(0x114)€Psetgid(a) __sgs(0x115,a)€Psigblock(a) __lgl(0x116,a)€Psigsetmask(a) __lgl(0x117,a)€Pusrval(a) __lgl(0x118,a)€Pdomain(a) __sgs(0x119,a)€Psigreturn()__lgv(0x11a)€Pfork()__lgv(0x11b)€Pwait3(a,b) __lgsn(0x11c,a,b)€Fselect(a,b,c,d) __sgunnn(0x11d,a,b,c,d)€Prusage(a) __lgn(0x11e,a)€Psetlimit(a,b) __lgsl(0x11f,a,b)€Talarm(a) __lgl(0x120,a)€Pause()__vgv(0x121)€Sysconf(a) __lgs(0x122,a)€Psigpending()__lgv(0x123)€Dpathconf(a,b) __lgcs(0x124,a,b)€Pmsg(a,b,c) __lgslp(0x125,a,b,c)€Fmidipipe(a,b,c) €ˆ_MATH_H€_MATH_HˆHUGE_VAL€HUGE_VAL 1.797693134862317E+308‡ˆEDOM€EDOM 33‡ˆERANGE€ERANGE 34‡ acos(); asin(); atan(); cos(); cosh(); exp(); fabs(); log(); log10(); sin(); sinh(); sqrt(); tan(); atan2(,); frexp(,‚*); ldexp(,‚); modf(,*); pow(,); ceil(); floor(); fmod(,); tanh();ˆ_ANSI pow2();‡Œˆ_ANSI ƒexception{ ‚type; const„*name; arg1,arg2; retval; };€DOMAIN 1€SING 2€OVERFLOW 3€UNDERFLOW 4€TLOSS 5€PLOSS 6€RANGE 7€FPEUND 1€FPEOVF 2€FPEZDV 3€FPENAN 4€FPECOM 5 ‹__stdargs _CXFERR(‚);€PI 3.14159265358979323846€PID2 1.57079632679489661923€PID4 0.78539816339744830962€I_PI 0.31830988618379067154€I_PID2 0.63661977236758134308€HUGE HUGE_VAL€TINY 2.2e-308€LOGHUGE 709.778€LOGTINY -708.396 „ƒcomplex{ re; im; }COMPLEX; cabs(COMPLEX*); COMPLEX*cadd(COMPLEX*,COMPLEX*,COMPLEX*); COMPLEX*cdiv(COMPLEX*,COMPLEX*,COMPLEX*); COMPLEX*cmul(COMPLEX*,COMPLEX*,COMPLEX*); COMPLEX*csub(COMPLEX*,COMPLEX*,COMPLEX*); cot(); drand48(‹); erand48(ŽŸ*); „*ecvt(,‚,‚*,‚*); „*fcvt(,‚,‚*,‚*); „*gcvt(,‚,„*); jrand48(ŽŸ*); ‹lcong48(ŽŸ*); lrand48(‹); except(‚,const„*,,,); ‚matherr(ƒexception*); mrand48(‹); nrand48(ŽŸ*); ŽŸ*seed48(ŽŸ*); ‹srand48(); ‚_FPERR;‡‡_HSYNC 4‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_MEMORY_H€_MEMORY_Hˆ_SIZE_T€_SIZE_T „Ž‚size_t;‡ ‹*malloc(size_t); ‹*calloc(size_t,size_t); ‹*realloc(‹*,size_t); ‹free(‹*); ‹*getml(size_t); ‚rlsml(‹*,size_t); size_t sizmem(‹); size_t chkml(‹); ‚bldmem(‚); ‹*getmem(Ž); ‚rlsmem(‹*,Ž); ‹*alloca(size_t); size_t _stkdelta; ‹*sbrk(Ž); ‹*lsbrk();‡cc(‚,‚,const„*,const„*); __lgsccc(‚,‚,const„*,const„*,const„*); __lgscp(‚,‚,const„*,‹*); __lgsdc(‚,‚,„*,const„*); __lgsl(‚,‚,); __lgsld(‚,‚,,„*); __lgsll(‚,‚,,); __lgslp(‚,‚,,‹*); __lgslq(‚,‚,,const‹*); __lgsls(‚,‚,,‚); __lgsn(‚,‚,*); __lgspl(‚,‚,‹*,); __lgsqp(‚,‚,const‹*,‹*); __lgss(‚,‚,‚); __lgssl(‚,‚,‚,); __lgssn(‚,‚,‚,*); __lgssll(‚,‚,‚,,); __lgsss(‚,‚,‚,‚); __lgu(‚,Ž‚); __lgv(‚); __sgunnn(‚,Ž,*,*,*); Ÿ__sgr(‚,Ÿ*); Ÿ__sgs(‚,‚); Ÿ__sgsl(‚,‚,); Ÿ__sgsls(‚,‚,,‚); Ÿ__sgss(‚,‚,‚); Ÿ__sgv(‚); ŽŸ__ugv(‚); ‹(*__stdargs __ggsg(‚,‚,‹(*__stdargs)()))(); ‹*__pgl(‚,); ‹*__pgls(‚,,‚); ‹*__pgp(‚,‹*); ‹*__pgs(‚,‚); ‹*__pgv(‚); ‹__vgc(‚,const„*); ‹__vgls(‚,,‚); ‹__vgp(‚,‹*); ‹__vgs(‚,‚);€ˆ_MINTBIND_H€_MINTBIND_HŒ€Syield()__vgv(0xff)€Fpipe(a) __sgr(0x100,a)€Fcntl(a,b,c) __lgsls(0x104,a,b,c)€Finstat(a) __lgs(0x105,a)€Foutstat(a) __lgs(0x106,a)€Fgetchar(a,b) __lgss(0x107,a,b)€Fputchar(a,b,c) __lgsls(0x108,a,b,c)€Pwait()__lgv(0x109)€Pnice(a) __sgs(0x10a,a)€Pgetpid()__sgv(0x10b)€Pgetppid()__sgv(0x10c)€Pgetpgrp()__sgv(0x10d)€Psetpgrp(a,b) __sgss(0x010e,a,b)€Pgetuid()__sgv(0x10f)€Psetuid(a) __sgs(0x110,a)€Pkill(a,b) __sgss(0x111,a,b)€Psignal(a,b) __ggsg(0x112,a,b)€Pvfork()__sgv(0x113)€Pgetgid()__sgv(0x114)€Psetgid(a) __sgs(0x115,a)€Psigblock(a) __lgl(0x116,a)€Psigsetmask(a) __lgl(0x117,a)€Pusrval(a) __lgl(0x118,a)€Pdomain(a) __sgs(0x119,a)€Psigreturn()__lgv(0x11a)€Pfork()__lgv(0x11b)€Pwait3(a,b) __lgsn(0x11c,a,b)€Fselect(a,b,c,d) __sgunnn(0x11d,a,b,c,d)€Prusage(a) __lgn(0x11e,a)€Psetlimit(a,b) __lgsl(0x11f,a,b)€Talarm(a) __lgl(0x120,a)€Pause()__vgv(0x121)€Sysconf(a) __lgs(0x122,a)€Psigpending()__lgv(0x123)€Dpathconf(a,b) __lgcs(0x124,a,b)€Pmsg(a,b,c) __lgslp(0x125,a,b,c)€Fmidipipe(a,b,c) __lgsss(0x126,a,b,c)€Prenice(a,b) __sgss(0x127,a,b)€Dopendir(a,b) __lgcs(0x128,a,b)€Dreaddir(a,b,c) __lgslp(0x129,a,b,c)€Drewinddir(a) __lgl(0x12a,a)€Dclosedir(a) __lgl(0x12b,a)€Fxattr(a,b,c) __lgscp(0x12c,a,b,c)€Flink(a,b) __lgcc(0x12d,a,b)€Fsymlink(a,b) __lgcc(0x12e,a,b)€Freadlink(a,b,c) __lgsdc(0x12f,a,b,c)€Dcntl(a,b,c) __lgscp(0x130,a,b,c)€Fchown(a,b,c) __lgcss(0x131,a,b,c)€Fchmod(a,b) __lgcs(0x132,a,b)€Pumask(a) __lgu(0x133,a)€Psemaphore(a,b,c) __lgsll(0x134,a,b,c)€Dlock(a,b) __lgss(0x135,a,b)€Psigpause(a) __lgl(0x136,a)€Psigaction(a,b,c) __lgsqp(0x137,a,b,c)€Pgeteuid()__sgv(0x138)€Pgetegid()__sgv(0x139)€Pwaitpid(a,b,c) __lgssn(0x13a,a,b,c)€Dgetcwd(a,b,c) __lgdss(0x13b,a,b,c)€Salert(a) __lgc(0x13c,a)€Dos_tab()__ngv(-1)€Bios_tab()__nbv(-1)€Xbios_tab()__nxv(-1)‡…inline d0=__sgv((Ÿ))_GEMDOS…inline d0=__ugv((Ÿ))_GEMDOS€Pterm0()__vgv(0x0)€Cconin()__lgv(0x1)€Cconout(a) __vgs(0x2,a)€Cauxin()__sgv(0x3)€Cauxout(a) __vgs(0x4,a)€Cprnout(a) __lgs(0x5,a)€Crawio(a) __lgs(0x6,a)€Crawcin()__lgv(0x7)€Cnecin()__lgv(0x8)€C€ˆ_MODE_H€_MODE_H€VERTFLAG 256€STMODES 128€OVERSCAN 64€PAL 32€VGA 16€COL80 8€NUMCOLS 7€BPS16 4€BPS8 3€BPS4 2€BPS2 1€BPS1 0€STmono 0€STcolor 1€VGAcolor 2€TVcolor 3€VID_CLOCK 1€VID_VSYNC 2€VID_HSYNC 4‡)€Srealloc(a) __pgl(0x15,a)€Dgetdrv()__sgv(0x19)€Fsetdta(a) __vgp(0x1a,a)€Super(a) __pgp(0x20,a)€Tgetdate()__ugv(0x2a)€Tsetdate(a) __lgu(0x2b,a)€Tgettime()__ugv(0x2c)€Tsettime(a) __lgu(0x2d,a)€Fgetdta()__pgv(0x2f)€Sversion()__ugv(0x30)€Ptermres(a,b) __vgls(0x31,a,b)€Dfree(a,b) __lgns(0x36,a,b)€Dcreate(a) __lgc(0x39,a)€Ddelete(a) __lgc(0x3a,a)€Dsetpath(a) __lgc(0x3b,a)€Fcreate(a,b) __lgcs(0x3c,a,b)€Fopen(a,b) __lgcs(0x3d,a,b)€Fclose(a) __lgs(0x3e,a)€Fread(a,b,c) __lgslp(0x3f,a,b,c)€Fwrite(a,b,c) __lgslq(0x40,a,b,c)€Fdelete(a) __lgc(0x41,a)€Fseek(a,b,c) __lglss(0x42,a,b,c)€Fattrib(a,b,c) __lgcss(0x43,a,b,c)€Mxalloc(a,b) __pgls(0x44,a,b)€Fdup(a) __lgs(0x45,a)€Fforce(a,b) __lgss(0x46,a,b)€Dgetpath(a,b) __lgds(0x47,a,b)€Malloc(a) __pgl(0x48,a)€Mfree(a) __lgp(0x49,a)€Mshrink(a,b) __lgspl(0x4a,0,a,b)€Pexec(a,b,c,d) __lgs€ˆ_OSBIND_H€_OSBIND_H *__ngv(‚); __lgc(‚,const„*); __lgcc(‚,const„*,const„*); __lgcs(‚,const„*,‚); __lgcss(‚,const„*,‚,‚); __lgds(‚,„*,‚); __lgdss(‚,„*,‚,‚); __lgl(‚,); __lglss(‚,,‚,‚); __lgn(‚,*); __lgns(‚,*,‚); __lgp(‚,‹*); __lgpl(‚,‹*,); __lgrss(‚,Ÿ*,‚,‚); __lgs(‚,‚); __lgscc(‚,‚,const„*,const„*); __lgsccc(‚,‚,const„*,const„*,const„*); __lgscp(‚,‚,const„*,‹*); __lgsdc(‚,‚,„*,const„*); __lgsl(‚,‚,); __lgsld(‚,‚,,„*); __lgsll(‚,‚,,); __lgslp(‚,‚,,‹*); __lgslq(‚,‚,,const‹*); __lgsls(‚,‚,,‚); __lgsn(‚,‚,*); __lgspl(‚,‚,‹*,); __lgsqp(‚,‚,const‹*,‹*); __lgss(‚,‚,‚); __lgssl(‚,‚,‚,); __lgssn(‚,‚,‚,*); __lgssll(‚,‚,‚,,); __lgsss(‚,‚,‚,‚); __lgu(‚,Ž‚); __lgv(‚); __sgunnn(‚,Ž,*,*,*); Ÿ__sgr(‚,Ÿ*); Ÿ__sgs(‚,‚); Ÿ__sgsl(‚,‚,); Ÿ__sgsls(‚,‚,,‚); Ÿ__sgss(‚,‚,‚); Ÿ__sgv(‚); ŽŸ__ugv(‚); ‹(*__stdargs __ggsg(‚,‚,‹(*__stdargs)()))(); ‹*__pgl(‚,); ‹*__pgls(‚,,‚); ‹*__pgp(‚,‹*); ‹*__pgs(‚,‚); ‹*__pgv(‚); ‹__vgc(‚,const„*); ‹__vgls(‚,,‚); ‹__vgp(‚,‹*); ‹__vgs(‚,‚); ‹__vgv(‚);€_GEMDOS {register d2,a2;"4e41";}…inline __vgc((Ÿ),)_GEMDOS…inline __vgls((Ÿ),,(Ÿ))_GEMDOS…inline __vgp((Ÿ),)_GEMDOS…inline __vgs((Ÿ),(Ÿ))_GEMDOS…inline __vgv((Ÿ))_GEMDOS…inline d0=__ggsg((Ÿ),(Ÿ),)_GEMDOS…inline d0=__lgc((Ÿ),)_GEMDOS…inline d0=__lgcc((Ÿ),,)_GEMDOS…inline d0=__lgcs((Ÿ),,(Ÿ))_GEMDOS…inline d0=__lgcss((Ÿ),,(Ÿ),(Ÿ))_GEMDOS…inline d0=__lgds((Ÿ),,(Ÿ))_GEMDOS…inline d0=__lgdss((Ÿ),,(Ÿ),(Ÿ))_GEMDOS…inline d0=__lgl((Ÿ),)_GEMDOS…inline d0=__lglss((Ÿ),,(Ÿ),(Ÿ))_GEMDOS…inline d0=__lgn((Ÿ),)_GEMDOS…inline d0=__lgns((Ÿ),,(Ÿ))_GEMDOS…inline d0=__lgp((Ÿ),)_GEMDOS…inline d0=__lgpl((Ÿ),,)_GEMDOS…inline d0=__lgrss((Ÿ),,(Ÿ),(Ÿ))_GEMDOS…inline d0=__lgs((Ÿ),(Ÿ))_GEMDOS…inline d0=__lgscc((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgsccc((Ÿ),(Ÿ),,,)_GEMDOS…inline d0=__lgscp((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgsdc((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgsl((Ÿ),(Ÿ),)_GEMDOS…inline d0=__lgsld((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgsll((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgslp((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgslq((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgsls((Ÿ),(Ÿ),,(Ÿ))_GEMDOS…inline d0=__lgsn((Ÿ),(Ÿ),)_GEMDOS…inline d0=__lgspl((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgsqp((Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgss((Ÿ),(Ÿ),(Ÿ))_GEMDOS…inline d0=__lgssl((Ÿ),(Ÿ),(Ÿ),)_GEMDOS…inline d0=__lgssn((Ÿ),(Ÿ),(Ÿ),)_GEMDOS…inline d0=__lgssll((Ÿ),(Ÿ),(Ÿ),,)_GEMDOS…inline d0=__lgsss((Ÿ),(Ÿ),(Ÿ),(Ÿ))_GEMDOS…inline d0=__lgu((Ÿ),(Ÿ))_GEMDOS…inline d0=__lgv((Ÿ))_GEMDOS…inline d0=__ngv((Ÿ))_GEMDOS…inline d0=__pgl((Ÿ),)_GEMDOS…inline d0=__pgls((Ÿ),,(Ÿ))_GEMDOS…inline d0=__pgp((Ÿ),)_GEMDOS…inline d0=__pgs((Ÿ),(Ÿ))_GEMDOS…inline d0=__pgv((Ÿ))_GEMDOS…inline d0=__sgr((Ÿ),)_GEMDOS…inline d0=__sgs((Ÿ),(Ÿ))_GEMDOS…inline d0=__sgsl((Ÿ),(Ÿ),)_GEMDOS…inline d0=__sgsls((Ÿ),(Ÿ),,(Ÿ))_GEMDOS…inline d0=__sgss((Ÿ),(Ÿ),(Ÿ))_GEMDOS…inline d0=__sgunnn((Ÿ),(Ÿ),,,)_GEMDOS…inline d0=__sgv((Ÿ))_GEMDOS…inline d0=__ugv((Ÿ))_GEMDOS€Pterm0()__vgv(0x0)€Cconin()__lgv(0x1)€Cconout(a) __vgs(0x2,a)€Cauxin()__sgv(0x3)€Cauxout(a) __vgs(0x4,a)€Cprnout(a) __lgs(0x5,a)€Crawio(a) __lgs(0x6,a)€Crawcin()__lgv(0x7)€Cnecin()__lgv(0x8)€Cconws(a) __vgc(0x9,a)€Cconrs(a) __vgp(0x0a,a)€Cconis()__sgv(0x0b)€Dsetdrv(a) __lgs(0x0e,a)€Cconos()__sgv(0x10)€Cprnos()__sgv(0x11)€Cauxis()__sgv(0x12)€Cauxos()__sgv(0x13)€Maddalt(a,b) __lgpl(0x14,a,b)€Srealloc(a) __pgl(0x15,a)€Dgetdrv()__sgv(0x19)€Fsetdta(a) __vgp(0x1a,a)€Super(a) __pgp(0x20,a)€Tgetdate()__ugv(0x2a)€Tsetdate(a) __lgu(0x2b,a)€Tgettime()__ugv(0x2c)€Tsettime(a) __lgu(0x2d,a)€Fgetdta()__pgv(0x2f)€Sversion()__ugv(0x30)€Ptermres(a,b) __vgls(0x31,a,b)€Dfree(a,b) __lgns(0x36,a,b)€Dcreate(a) __lgc(0x39,a)€Ddelete(a) __lgc(0x3a,a)€Dsetpath(a) __lgc(0x3b,a)€Fcreate(a,b) __lgcs(0x3c,a,b)€Fopen(a,b) __lgcs(0x3d,a,b)€Fclose(a) __lgs(0x3e,a)€Fread(a,b,c) __lgslp(0x3f,a,b,c)€Fwrite(a,b,c) __lgslq(0x40,a,b,c)€Fdelete(a) __lgc(0x41,a)€Fseek(a,b,c) __lglss(0x42,a,b,c)€Fattrib(a,b,c) __lgcss(0x43,a,b,c)€Mxalloc(a,b) __pgls(0x44,a,b)€Fdup(a) __lgs(0x45,a)€Fforce(a,b) __lgss(0x46,a,b)€Dgetpath(a,b) __lgds(0x47,a,b)€Malloc(a) __pgl(0x48,a)€Mfree(a) __lgp(0x49,a)€Mshrink(a,b) __lgspl(0x4a,0,a,b)€Pexec(a,b,c,d) __lgsccc(0x4b,a,b,c,d)€Pterm(a) __vgs(0x4c,a)€Fsfirst(a,b) __lgcs(0x4e,a,b)€Fsnext()__lgv(0x4f)€Frename(a,b,c) __lgscc(0x56,a,b,c)€Fdatime(a,b,c) __lgrss(0x57,a,b,c)€Flock(a,b,c,d) __lgssll(0x5c,a,b,c,d) *__nbv(‚); __lbs(‚,‚); __lbspsss(‚,‚,‹*,‚,‚,‚); __lbspsssl(‚,‚,‹*,‚,‚,‚,); __lbss(‚,‚,‚); __lbv(‚); Ž__mbv(‚); ‹(*__fbsf(‚,‚,‹(*)()))(); ‹*__pbs(‚,‚); ‹__vbp(‚,‹*);€_BIOS {register d2,a2;"4e4d";}…inline __vbp((Ÿ),)_BIOS…inline d0=__fbsf((Ÿ),(Ÿ),)_BIOS…inline d0=__lbs((Ÿ),(Ÿ))_BIOS…inline d0=__lbspsss((Ÿ),(Ÿ),,(Ÿ),(Ÿ),(Ÿ))_BIOS…inline d0=__lbspsssl((Ÿ),(Ÿ),,(Ÿ),(Ÿ),(Ÿ),)_BIOS…inline d0=__lbss((Ÿ),(Ÿ),(Ÿ))_BIOS…inline d0=__lbv((Ÿ))_BIOS…inline d0=__mbv((Ÿ))_BIOS…inline d0=__nbv((Ÿ))_BIOS…inline d0=__pbs((Ÿ),(Ÿ))_BIOS€Getmpb(a) __vbp(0,a)€Bconstat(a) __lbs(1,a)€Bconin(a) __lbs(2,a)€Bconout(a,b) __lbss(3,a,b)€Rwabs(a,b,c,d,e) __lbspsss(4,a,b,c,d,e)€Lrwabs(a,b,c,d,e) __lbspsssl(4,a,b,c,-1,d,e)€Setexc(a,b) __fbsf(5,a,b)€Tickcal()__lbv(6)€Getbpb(a) __pbs(7,a)€Bcostat(a) __lbs(8,a)€Mediach(a) __lbs(9,a)€Drvmap()__mbv(10)€Kbshift(a) __lbs(11,a) „**__exccc(‚,const„*,const„*,const„*); *__nxv(‚); __lxcp(‚,const„*,‹*); __lxg(‚,(*)(‹)); __lxlsps(‚,,‚,‹*,‚); __lxn(‚,*); __lxp(‚,‹*); __lxs(‚,‚); __lxs(‚,‚); __lxsl(‚,‚,); __lxsll(‚,Ÿ,,); __lxsp(‚,‚,‹*); __lxspls(‚,‚,‹*,,‚); __lxspp(‚,‚,‹*,‹*); __lxsqls(‚,‚,‹*,,‚); __lxss(‚,‚,‚); __lxss(‚,‚,‚); __lxssc(‚,‚,‚,const„*); __lxssp(‚,‚,‚,‹*); __lxssss(‚,‚,‚,‚,‚); __lxsssss(‚,‚,‚,‚,‚,‚); __lxsssss(‚,‚,‚,‚,‚,‚); __lxv(‚); Ÿ__sxcs(‚,const„*,‚); Ÿ__sxcsp(‚,const„*,‚,‹*); Ÿ__sxll(‚,,); Ÿ__sxp(‚,‹*); Ÿ__sxppss(‚,‹*,‹*,‚,‚); Ÿ__sxppsssss(‚,‹*,‹*,‚,‚,‚,‚,‚); Ÿ__sxprsssssls(‚,‹*,Ÿ*,‚,‚,‚,‚,‚,,‚); Ÿ__sxqls(‚,const‹*,,‚); Ÿ__sxs(‚,‚); Ÿ__sxsp(‚,‚,‹*); Ÿ__sxss(‚,‚,‚); Ÿ__sxsssd(‚,‚,‚,‚,„*); Ÿ__sxv(‚); Ž„bxv(‚); Ž__mxssssss(‚,‚,‚,‚,‚,‚,‚); Ž__mxv(‚); ‹**__rxv(‚); ‹*__pxs(‚,‚); ‹*__pxv(‚); ‹__vxc(‚,const„*); ‹__vxcldl(‚,Žconst„*,,Ž„*,); ‹__vxfg(‚,‹(*__stdargs)(),(*)(‹)); ‹__vxllqp(‚,,,const‹*,‹*); ‹__vxm(‚,Ž); ‹__vxnn(‚,*,*); ‹__vxp(‚,‹*); ‹__vxplln(‚,‹*,,,*); ‹__vxplss(‚,‹*,,‚,‚); ‹__vxpps(‚,‹*,‹*,‚); ‹__vxqlln(‚,const‹*,,,*); ‹__vxqlpl(‚,const‹*,,‹*,); ‹__vxolnl(‚,const*,,*,); ‹__vxlls(‚,,,‚); ‹__vxqls(‚,const‹*,,‚); ‹__vxqpllln(‚,const‹*,‹*,,,,*); ‹__vxs(‚,‚); ‹__vxsc(‚,‚,const„*); ‹__vxsf(‚,‚,‹(*)(‹)); ‹__vxsl(‚,‚,); ‹__vxsp(‚,‚,‹*); ‹__vxssl(‚,‚,‚,); ‹__vxspf(‚,‚,‹*,‹(*)()); ‹__vxssn(‚,‚,‚,*); ‹__vxsso(‚,‚,‚,const*); ‹__vxssr(‚,‚,‚,Ÿ*); ‹__vxsss(‚,‚,‚,‚); ‹__vxsssf(‚,‚,‚,‚,‹(*)()); ‹__vxtlrl(‚,constŸ*,,Ÿ*,); ‹__vxv(‚);€_XBIOS {register d2,a2;"4e4e";}…inline __vxc((Ÿ),)_XBIOS…inline __vxcldl((Ÿ),,,,)_XBIOS…inline __vxfg((Ÿ),,)_XBIOS…inline __vxllqp((Ÿ),,,,)_XBIOS…inline __vxm((Ÿ),)_XBIOS…inline __vxnn((Ÿ),,)_XBIOS…inline __vxp((Ÿ),)_XBIOS…inline __vxplln((Ÿ),,,,)_XBIOS…inline __vxplss((Ÿ),,,(Ÿ),(Ÿ))_XBIOS…inline __vxpps((Ÿ),,,(Ÿ))_XBIOS…inline __vxqlln((Ÿ),,,,)_XBIOS…inline __vxqlpl((Ÿ),,,,)_XBIOS…inline __vxolnl((Ÿ),,,,)_XBIOS…inline __vxlls((Ÿ),,,(Ÿ))_XBIOS…inline __vxqls((Ÿ),,,(Ÿ))_XBIOS…inline __vxqpllln((Ÿ),,,,,,)_XBIOS…inline __vxs((Ÿ),(Ÿ))_XBIOS…inline __vxsc((Ÿ),(Ÿ),)_XBIOS…inline __vxsf((Ÿ),(Ÿ),)_XBIOS…inline __vxsl((Ÿ),(Ÿ),)_XBIOS…inline __vxsp((Ÿ),(Ÿ),)_XBIOS…inline __vxssl((Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline __vxspf((Ÿ),(Ÿ),,)_XBIOS…inline __vxssn((Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline __vxsso((Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline __vxssr((Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline __vxsss((Ÿ),(Ÿ),(Ÿ))_XBIOS…inline __vxsssf((Ÿ),(Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline __vxtlrl((Ÿ),,,,)_XBIOS…inline __vxv((Ÿ))_XBIOS…inline d0=__bxv((Ÿ))_XBIOS…inline d0=__exccc((Ÿ),,,)_XBIOS…inline d0=__lxcp((Ÿ),,)_XBIOS…inline d0=__lxg((Ÿ),)_XBIOS…inline d0=__lxlsps((Ÿ),,(Ÿ),,(Ÿ))_XBIOS…inline d0=__lxn((Ÿ),)_XBIOS…inline d0=__lxp((Ÿ),)_XBIOS…inline d0=__lxs((Ÿ),(Ÿ))_XBIOS…inline d0=__lxsl((Ÿ),(Ÿ),)_XBIOS…inline d0=__lxsll((Ÿ),(Ÿ),,)_XBIOS…inline d0=__lxsp((Ÿ),(Ÿ),)_XBIOS…inline d0=__lxspls((Ÿ),(Ÿ),,,(Ÿ))_XBIOS…inline d0=__lxspp((Ÿ),(Ÿ),,)_XBIOS…inline d0=__lxsqls((Ÿ),(Ÿ),,,(Ÿ))_XBIOS…inline d0=__lxss((Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__lxss((Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__lxssc((Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline d0=__lxssp((Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline d0=__lxssss((Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__lxsssss((Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__lxsssss((Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__lxv((Ÿ))_XBIOS…inline d0=__mxssssss((Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__mxv((Ÿ))_XBIOS…inline d0=__nxv((Ÿ))_XBIOS…inline d0=__pxs((Ÿ),(Ÿ))_XBIOS…inline d0=__pxv((Ÿ))_XBIOS…inline d0=__rxv((Ÿ))_XBIOS…inline d0=__sxcs((Ÿ),,(Ÿ))_XBIOS…inline d0=__sxcsp((Ÿ),,(Ÿ),)_XBIOS…inline d0=__sxll((Ÿ),,)_XBIOS…inline d0=__sxp((Ÿ),)_XBIOS…inline d0=__sxppss((Ÿ),,,(Ÿ),(Ÿ))_XBIOS…inline d0=__sxppsssss((Ÿ),,,(Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__sxprsssssls((Ÿ),,,(Ÿ),(Ÿ),(Ÿ),(Ÿ),(Ÿ),,(Ÿ))_XBIOS…inline d0=__sxqls((Ÿ),,,(Ÿ))_XBIOS…inline d0=__sxs((Ÿ),(Ÿ))_XBIOS…inline d0=__sxsp((Ÿ),(Ÿ),)_XBIOS…inline d0=__sxss((Ÿ),(Ÿ),(Ÿ))_XBIOS…inline d0=__sxsssd((Ÿ),(Ÿ),(Ÿ),(Ÿ),)_XBIOS…inline d0=__sxv((Ÿ))_XBIOS€Initmous(a,b,c) __vxspf(0,a,b,c)€Ssbrk(a) __lxs(1,a)€Physbase()__pxv(2)€Logbase()__pxv(3)€Getrez()__sxv(4)€Setscreen(a,b,c) __vxpps(5,a,b,c)€Setpallete(a) __vxp(6,a)€Setpalette(a) __vxp(6,a)€Setcolor(a,b) __sxss(7,a,b)€Floprd(a,b,c,d,e,f,g) __sxppsssss(8,a,b,c,d,e,f,g)€Flopwr(a,b,c,d,e,f,g) __sxppsssss(9,a,b,c,d,e,f,g)€Flopfmt(a,b,c,d,e,f,g,h,i) __sxprsssssls(10,a,b,c,d,e,f,g,h,i)€Dbmsg(a,b,c) __vxssl(11,a,b,c)€Midiws(a,b) __vxsc(12,a,b)€Mfpint(a,b) __vxsf(13,a,b)€Iorec(a) __pxs(14,a)€Rsconf(a,b,c,d,e,f) __mxssssss(15,a,b,c,d,e,f)€Keytbl(a,b,c) __exccc(16,a,b,c)€Random()__lxv(17)€Protobt(a,b,c,d) __vxplss(18,a,b,c,d)€Flopver(a,b,c,d,e,f,g) __sxppsssss(19,a,b,c,d,e,f,g)€Scrdmp()__vxv(20)€Cursconf(a,b) __sxss(21,a,b)€Settime(a) __vxm(22,a)€Gettime()__mxv(23)€Bioskeys()__vxv(24)€Ikbdws(a,b) __vxsc(25,a,b)€Jdisint(a) __vxs(26,a)€Jenabint(a) __vxs(27,a)€Giaccess(a,b) __sxss(28,a,b)€Offgibit(a) __vxs(29,a)€Ongibit(a) __vxs(30,a)€Xbtimer(a,b,c,d) __vxsssf(31,a,b,c,d)€Dosound(a) __vxc(32,a)€Setprt(a) __sxs(33,a)€Kbdvbase()__rxv(34)€Kbrate(a,b) __sxss(35,a,b)€Prtblk(a) __sxp(36,a)€Vsync()__vxv(37)€Supexec(a) __lxg(38,a)€Puntaes()__vxv(39)€Floprate(a,b) __sxss(41,a,b)€DMAread(a,b,c,d) __lxlsps(42,a,b,c,d)€DMAwrite(a,b,c,d) __lxlsps(43,a,b,c,d)€Bconmap(a) __lxs(44,a)€NVMaccess(a,b,c,d) __sxsssd(46,a,b,c,d)€Metainit(a) __vxp(48,a)€Minit(a) __vxp(48,a)€Mopen(a,b) __sxsp(49,a,b)€Mclose(a) __sxs(50,a)€Mread(a,b,c,d) __lxspls(51,a,b,c,d)€Mwrite(a,b,c,d) __lxsqls(51,a,b,c,d)€Mseek(a,b) __lxsl(53,a,b)€Mstatus(a,b) __lxsp(54,a,b)€Blitmode(a) __sxs(64,a)€EsetShift(a) __sxs(80,a)€EgetShift()__sxv(81)€EsetBank(a) __sxs(82,a)€EsetColor(a,b) __sxss(83,a,b)€EsetPalette(a,b,c) __vxssr(84,a,b,c)€EgetPalette(a,b,c) __vxssr(85,a,b,c)€EsetGray(a) __sxs(86,a)€EsetSmear(a) __sxs(87,a)€VsetScreen(a,b,c,d) __sxppss(5,a,b,c,d)€Vsetmode(a) __sxs(88,a)€Montype()__sxv(89)€VgetMonitor()__sxv(89)€VsetSync(a) __vxs(90,a)€VgetSize(a) __lxs(91,a)€VsetRGB(a,b,c) __vxsso(93,a,b,c)€VgetRGB(a,b,c) __vxssn(94,a,b,c)€Dsp_DoBlock(a,b,c,d) __vxqlpl(96,a,b,c,d)€Dsp_BlkHandShake(a,b,c,d) __vxqlpl(97,a,b,c,d)€Dsp_BlkUnpacked(a,b,c,d) __vxolnl(98,a,b,c,d)€Dsp_InStream(a,b,c,d) __vxqlln(99,a,b,c,d)€Dsp_OutStream(a,b,c,d) __vxqlln(100,a,b,c,d)€Dsp_IOStream(a,b,c,d,e,f) __vxqpllln(101,a,b,c,d,e,f)€Dsp_RemoveInterrupts(a) __vxs(102,a)€Dsp_GetWordSize()__sxv(103)€Dsp_Lock()__sxv(104)€Dsp_Unlock()__vxv(105)€Dsp_Available(a,b) __vxnn(106,a,b)€Dsp_Reserve(a,b) __sxll(107,a,b)€Dsp_LoadProg(a,b,c) __sxcsp(108,a,b,c)€Dsp_ExecProg(a,b,c) __vxqls(109,a,b,c)€Dsp_ExecBoot(a,b,c) __vxqls(110,a,b,c)€Dsp_LodToBinary(a,b) __lxcp(111,a,b)€Dsp_TriggerHC(a) __vxs(112,a)€Dsp_RequestUniqueAbility()__sxv(113)€Dsp_GetProgAbility()__sxv(114)€Dsp_FlushSubroutines()__vxv(115)€Dsp_LoadSubroutine(a,b,c) __sxqls(116,a,b,c)€Dsp_InqSubrAbility(a) __sxs(117,a)€Dsp_RunSubroutine(a) __sxs(118,a)€Dsp_Hf0(a) __sxs(119,a)€Dsp_Hf1(a) __sxs(120,a)€Dsp_Hf2()__sxv(121)€Dsp_Hf3()__sxv(122)€Dsp_BlkWords(a,b,c,d) __vxtlrl(123,a,b,c,d)€Dsp_BlkBytes(a,b,c,d) __vxcldl(124,a,b,c,d)€Dsp_HStat()__bxv(125)€Dsp_SetVectors(a,b) __vxfg(126,a,b)€Dsp_MultBlocks(a,b,c,d) __vxllqp(127,a,b,c,d)€Locksnd()__lxv(128)€Unlocksnd()__lxv(129)€Soundcmd(a,b) __lxss(130,a,b)€Setbuffer(a,b,c) __lxspp(131,a,b,c)€Setmode(a) __lxs(132,a)€Settrack(a,b) __lxss(133,a,b)€Setmontrack(a) __lxs(134,a)€Setinterrupt(a,b) __lxss(135,a,b)€Buffoper(a) __lxs(136,a)€Dsptristate(a,b) __lxss(137,a,b)€Gpio(a,b) __lxss(138,a,b)€Devconnect(a,b,c,d,e) __lxsssss(139,a,b,c,d,e)€Sndstatus(a) __lxs(140,a)€Buffptr(a) __lxn(141,a)€VsetMask(a,b,c) __vxlls(150,a,b,c) ‚_mediach(‚);‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_OSERR_H€_OSERR_H€E_OK 0€ERROR 1€EDRVNR 2€EUNCMD 3€E_CRC 4€EBADRQ 5€E_SEEK 6€EMEDIA 7€ESECNF 8€EPAPER 9€EWRITF 10€EREADF 11€EWRPRO 13€E_CHNG 14€EUNDEV 15€EBADSF 16€EOTHER 17€EDISC 18€EDEVNRS 19€EHARD 20€EINVFN 32€EFILNF 33€EPTHNF 34€ENHNDL 35€EACCDN 36€EIHNDL 37€ENSMEM 39€EIMBA 40€EDRIVE 46€ENSAME 48€ENMFIL 49€ELOCKED 58€ENSLOCK 59€E_RANGE 64€EINTRN 65€EPLFMT 66€EGSBF 67 volatile _OSERR; ‚os_nerr; const„*os_errlist[];‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_PORTAB_H€_PORTAB_Hˆ__TYPES_HŒ<__types.h>‡£defined(_UNSIGNEDCHAR)€UCHARA 1 #undef UCHARA‡€PORTAB_TYPEDEFS 1€ANSI_C 1€STDARGS __stdargs __saveds€HIBIT_1ST 1 „signed„š; „Ž„Š;ˆ_WORD_T€_WORD_T „signedŸ˜;‡ „ŽŸ‰; „signed’; „Ž—; „‹VOID; „‚BOOLEAN; „‹*VOIDP; #undef __PROTOˆ__NOPROTO€__PROTO(a) a€__PROTO(a) ()‡ „‚(*CMPFUNC)(const‹*,const‹*); „‹(*VOIDFUNC)(‹);€REG register€LOCAL auto€EXTERN€MLOCAL static€GLOBAL€TRUE (!0)€FALSE (0)€YES TRUE€NO FALSE€SUCCESS TRUE€FAILURE FALSE€EOF (-1)€NULLPTRœ€NULLFUNC ((‹(*)(‹))0)ˆœ€œ__NULL‡‡LK50K 49170€ACT_CLK33K 33880€ACT_CLK25K 24585€ACT_CLK20K 20770€ACT_CLK16K 16490€ACT_CLK12K 12292€ACT_CLK10K 9834€ACT_CLK8K 8195€NO_SHAKE 1€HANDSHAKE 0 „ƒSndBufPtr{ const„*play; „*record; reserve1; reserve2; }SndBufPtr;‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_PROCESS_H€_PROCESS_HŒ ‚exec(const„*,const„*,const„*,‚*);€exec(a,b,c,d) (*(d)=(‚)Pexec(0,(a),(b),(c)))€P_WAIT 0€P_NOWAIT 1€P_OVERLAY 2 ‚spawnl(‚,const„*,...); ‚spawnle(‚,const„*,...); ‚spawnlp(‚,const„*,...); ‚spawnlpe(‚,const„*,...); ‚spawnv(‚,const„*,const„**); ‚spawnve(‚,const„*,const„**,const„**); ‚spawnvp(‚,const„*,const„**); ‚spawnvpe(‚,const„*,const„**,const„**); ‚forkl(const„*,...); ‚forkle(const„*,...); ‚forklp(const„*,...); ‚forklpe(const„*,...); ‚forkv(const„*,const„**); ‚forkve(const„*,const„**,const„**); ‚forkvp(const„*,const„**); ‚forkvpe(const„*,const„**,const„**); ‚system(const„*);‡DNTR 414€SIZE_FW FH_LDNTR+6€EXP_FH_METRES SIZE_FW‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_SETJMP_H€_SETJMP_H°_M881€_JMP_BUF 37€_JMP_BUF 13‡ „ƒ{__jmp_buf[_JMP_BUF];}jmp_buf[1]; ‹(longjmp)(jmp_buf,‚); ‚(setjmp)(jmp_buf);€setjmp(a) ((setjmp)(a))£!defined(_ANSI)\ ||defined(_POSIX_SOURCE)ˆ__TYPES_HŒ<__types.h>‡€_SIGJMP_BUF _JMP_BUF+(sizeof(__sigset_t)/sizeof()) „ƒ{__sigjmp_buf[_SIGJMP_BUF];}sigjmp_buf[1]; ‹(siglongjmp)(sigjmp_buf,‚); ‚(sigsetjmp)(sigjmp_buf,‚);€sigsetjmp(a,b) ((sigsetjmp)(a,b))‡‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_SIGNAL_H€_SIGNAL_H€SIGINT 2€SIGILL 4€SIGABRT 6€SIGFPE 8€SIGSEGV 11€SIGTERM 15 „‹(*__sigfunc_t)(‚);€SIG_DFL ((__sigfunc_t)0)€SIG_IGN ((__sigfunc_t)1)€SIG_ERR ((__sigfunc_t)-1) __sigfunc_t signal(‚,__sigfunc_t); ‚raise(‚); „sig_atomic_t;£!defined(_ANSI)\ ||defined(_POSIX_SOURCE)\ ||defined(_BSD)€SIGNULL 0€SIGHUP 1€SIGQUIT 3€SIGTRAP 5€SIGPRIV 7€SIGKILL 9€SIGBUS 10€SIGSYS 12€SIGPIPE 13€SIGALRM 14€SIGURG 16€SIGSTOP 17€SIGTSTP 18€SIGCONT 19€SIGCHLD 20€SIGTTIN 21€SIGTTOU 22€SIGIO 23€SIGXCPU 24€SIGXFSZ 25€SIGVTALRM 26€SIGPROF 27€SIGWINCH 28€SIGUSR1 29€SIGUSR2 30£!defined(_POSIX_SOURCE)\ ||defined(_BSD)€NSIG 31‡ˆ__TYPES_HŒ<__types.h>‡ ‚kill(__pid_t,‚); „__sigset_t sigset_t; ƒsigaction{ __sigfunc_t sa_handler; sigset_t sa_mask;€SA_NOCLDSTOP 1 ‚sa_flags; }; ‚sigaddset(sigset_t*,‚);€sigaddset(s,n) ((*(s)|=(sigset_t)1<<(n)),0) ‚sigdelset(sigset_t*,‚);€sigdelset(s,n) ((*(s)&=~((sigset_t)1<<(n))),0) ‚sigemptyset(sigset_t*);€sigemptyset(s,n) ((*(s)=0),0) ‚sigfillset(sigset_t*);€sigfillset(s,n) ((*(s)=~(sigset_t)0),0) ‚sigismember(const sigset_t*,‚);€sigismember(s,n) (!!(*(s)&((sigset_t)1<<(n)))) ‚sigaction(‚,constƒsigaction*,ƒsigaction*); ‚sigpending(sigset_t*);€SIG_BLOCK 0€SIG_UNBLOCK 1€SIG_SETMASK 2 ‚sigprocmask(‚,const sigset_t*,sigset_t*); ‚sigsuspend(const sigset_t*);£!defined(_POSIX_SOURCE)\ ||defined(_BSD) ‚sigpause(); sigsetmask(); sigblock(); ‚killpg(‚,‚);‡‡‡EEK_END 2 „ƒ_iobuf{ ƒ_iobuf*_next; Ž„*_ptr; ‚_rcnt; ‚_wcnt; Ž„*_base; ‚_size; ‚_flag; ‚_file; Ž„_cbuff; }¢; ƒ_iobuf _iob[];€stdin (&_iob[0])€stdout (&_iob[1])€stderr (&_iob[2])€stdaux (&_iob[3])€stdprt (&_iob[4]) #undef rename ‚rename(const„*,const„*);ˆ__NO_STDIO_DEFINES _lgscc(‚,‚,const„*,const„*);…inline d0=_lgscc((Ÿ),(Ÿ),,){register d2,a2;"4e41";}€rename(x,y) _CXCERR(_lgscc(0x56,0,x,y))‡ #undef remove ‚remove(const„*);ˆ__NO_STDIO_DEFINES _lgc(‚,const„*);…inline d0=_lgc((Ÿ),){register d2,a2;"4e41";}€remove(x) _CXCERR(_lgc(0x41,x))‡ ¢*tmpfile(‹); „*tmpnam(„*s); ‚fclose(¢*); ‚fflush(¢*); ¢*fopen(const„*,const„*); ¢*freopen(const„*,const„*,¢*); ‹setbuf(¢*€ˆ_SNDBIND_H€_SNDBIND_HŒ€PLAY 0€RECORD 1€INQUIRE -1€LTATTEN 0€RTATTEN 1€LTGAIN 2€RTGAIN 3€ADDERIN 4€ADCINPUT 5€SETPRESCALE 6€SNDNOTLOCK -128€SNDLOCKED -129€ADDERIN_ADC 1€ADDERIN_MATRIX 2€STE_6K 0€STE_12K 1€STE_25K 2€STE_50K 3€STEREO8 0€STEREO16 1€MONO8 2€PLAY_ENABLE 1€PLAY_REPEAT 2€RECORD_ENABLE 4€RECORD_REPEAT 8€ENABLE 1€TRISTATE 0€DMAPLAY 0€DSPXMIT 1€EXTINP 2€ADC 3€DMAREC 1€DSPRECV 2€EXTOUT 4€DAC 8€CLK25M 0€CLKEXT 1€CLK32M 2€CLK_OLD 0€CLK50K 1€CLK33K 2€CLK25K 3€CLK20K 4€CLK16K 5€CLK12K 7€CLK10K 9€CLK8K 11€ACT_CLK50K 49170€ACT_CLK33K 33880€ACT_CLK25K 24585€ACT_CLK20K 20770€ACT_CLK16K 16490€ACT_CLK12K 12292€ACT_CLK10K 9834€ACT_CLK8K 8195€NO_SHAKE 1€HANDSHAKE 0 „ƒSndBufPtr{ const„*play; „*record; reserve1; reserve2; }SndBufPtr;‡ fread(‹*,size_t,size_t,¢*); size_t fwrite(const‹*,size_t,size_t,¢*); ‚fgetpos(¢*,fpos_t*); ‚fseek(¢*,‚,‚); ‚fsetpos(¢*,const fpos_t*); ‚ftell(¢*); ‹rewind(¢*);ˆ__NO_STDIO_DEFINES€rewind(p) fseek(p,0L,0)‡ ‹clearerr(¢*);ˆ__NO_STDIO_DEFINES€clearerr(p) ((p)->_flag&=~(_IOERR|€ˆ_SPEEDOHD_H€_SPEEDOHD_H€FH_FMVER 0€FH_FNTSZ 8€FH_FBFSZ 12€FH_CBFSZ 16€FH_HEDSZ 18€FH_FNTID 20€FH_SFVNR 22€FH_FNTNM 24€FH_MDATE 94€FH_LAYNM 104€FH_CPYRT 174€FH_NCHRL 252€FH_NCHRF 254€FH_FCHRF 256€FH_NKTKS 258€FH_NKPRS 260€FH_FLAGS 262€FH_CLFGS 263€FH_FAMCL 264€FH_FRMCL 265€FH_SFNTN 266€FH_SFACN 298€FH_FNTFM 314€FH_ITANG 328€FH_ORUPM 330€FH_WDWTH 332€FH_EMWTH 334€FH_ENWTH 336€FH_TNWTH 338€FH_FGWTH 340€FH_FXMIN 342€FH_FYMIN 344€FH_FXMAX 346€FH_FYMAX 348€FH_ULPOS 350€FH_ULTHK 352€FH_SMCTR 354€FH_DPSTR 360€FH_FNSTR 366€FH_ALSTR 372€FH_CMITR 378€FH_SNMTR 384€FH_SDNTR 390€FH_MNMTR 396€FH_MDNTR 402€FH_LNMTR 408€FH_LDNTR 414€SIZE_FW FH_LDNTR+6€EXP_FH_METRES SIZE_FW‡DEFINES€clrerr clearerr€fileno(p) ((p)->_file)€_flsbf __flushbuff€_getbf __getbuff‡ ‚_getbf(¢*); Ž__fmask; ‚_fmode; ‚_bufsiz;ˆœ€œ((‹*)0)‡‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_STDARG_H€_STDARG_Hˆ__TYPES_HŒ<__types.h>‡ „__va_list va_list;€__va(a) ((sizeof(a)+1)&~1ul)€va_start(a,b) ((‹)((a)=(va_list)&(b)+__va(b)))€va_arg(a,b) (*(b*)(((a)+=__va(b))-__va(b)))€va_end(a) ((‹)0)‡c(size_t,size_t); ‹*realloc(‹*,size_t); ‹free(‹*); ‹*getml(size_t); ‚rlsml(‹*,size_t); size_t sizmem(‹); size_t chkml(‹); ‚bldmem(‚); ‹*getmem(Ž); ‚rlsmem(‹*,Ž); ‹*alloca(size_t); size_t _stkdelta; ‹*sbrk(Ž); ‹*lsbrk(); ‚chdir(const„*); „*getcwd(„*,‚); ‚chmod(const„*,‚); ‚mkdir(const„*,...); ‚rmdir(const„*); ‹qsort(‹*,size_t,size_t,‚(*)(const‹*,const‹*)); ‹dqsort(*,size_t); ‹fqsort(float*,size_t); ‹lqsort(*,size_t); ‹sqsort(Ÿ*,size_t); ‹tqsort(„**,size_t); ‚mblen(const„*,size_t); size_t mbstowcs(wchar_t*,const„*,size_t); ‚mbtowc(wchar_t*,const„*,size_t); size_t wcstombs(„*,const wchar_t*,size_t); ‚wctomb(„*,wchar_t); ‹exit(‚); ‹abort(‹); ‚atoi(const„*); atof(const„*); ‚atol(const„*); „*getenv(const„*); ‹_exit(‚); ‹_XCEXIT(‚); „*argopt(‚,const„*[],const„*,‚*,„*); ‹*bsearch(const‹*,const‹*,size_t,size_t,‚(*€ˆ_STDDEF_H€_STDDEF_Hˆ__TYPES_HŒ<__types.h>‡ˆœ€œ__NULL‡€offsetof(type,memb) ((size_t)&((type*)0)->memb) „__ptrdiff_t ptrdiff_t;ˆ_SIZE_T€_SIZE_T „__size_t size_t;‡ˆ_WCHAR_T€_WCHAR_T „__wchar_t wchar_t;‡‡ ‹swab(const‹*,‹*,size_t); #undef abs ‚abs(‚); ‚__builtin_abs(‚);€abs(i) __builtin_abs(i) #undef iabs ‚iabs(‚); ‚__builtin_abs(‚);€iabs(i) __builtin_abs(i) #undef labs labs(); __builtin_labs();€labs(i) __builtin_labs(i)ˆmin ‚min(‚,‚); ‚__builtin_min(‚,‚);€min(a,b) __builtin_min(a,b)‡ˆmax ‚max(‚,‚); ‚__builtin_max(‚,‚);€max(a,b) __builtin_max(a,b)‡ „*ecvt(,‚,‚*,‚*); „*fcvt(,‚,‚*,‚*); „*gcvt(,‚,„*); getfnl(const„*,„*,size_t,‚); ‚onexit(‚(*)(‚)); ‚putenv(„*); ‚rand(‹); ‚rmvenv(const„*); ‹srand(Ž‚); strtod(const„*,„**); ‚strtol(const„*,„**,‚); Ž‚strtoul(const„*,„**,‚); ‚utpack(const„*); ‹utunpk(‚,„*); ‚atexit(‹(*)(‹)); div_t div(‚,‚); ldiv_t ldiv(‚,‚); Ž_lrotl(Ž,‚);…inline d0=_lrotl(D0,D1){"e3b8";} ŽŸ_rotl(Ž‚,‚);…inline d0=_rotl(D0,D1){"e378";} Ž_lrotr(Ž,‚);…inline d0=_lrotr(D0,D1){"e2b8";} ŽŸ_ro€ˆ_STDIO_H€_STDIO_Hˆ__TYPES_HŒ<__types.h>‡ˆ_SIZE_T€_SIZE_T „__size_t size_t;‡ __regargs _CXCERR(); „Žfpos_t;€_BUFSIZ 512€BUFSIZ _BUFSIZ€OPEN_MAX 32€_NFILE OPEN_MAX€FOPEN_MAX OPEN_MAX€FILENAME_MAX 128€L_tmpnam FILENAME_MAX€TMP_MAX 17576€_IOFBF 0€_IOREAD 1€_IOWRT 2€_IONBF 4€_IOMYBUF 8€_IOEOF 16€_IOERR 32€_IOLBF 64€_IORW 128€_IOAPP 0x4000€_IOXLAT 0x8000ˆEOF€EOF __EOF‡ˆSEEK_SET€SEEK_SET __SEEK_SET‡ˆSEEK_CUR€SEEK_CUR __SEEK_CUR‡ˆSEEK_END€SEEK_END __SEEK_END‡ „ƒ_iobuf{ ƒ_iobuf*_next; Ž„*_ptr; ‚_rcnt; ‚_wcnt; Ž„*_base; ‚_size; ‚_flag; ‚_file; Ž„_cbuff; }¢; ƒ_iobuf _iob[];€stdin (&_iob[0])€stdout (&_iob[1])€stderr (&_iob[2])€stdaux (&_iob[3])€stdprt (&_iob[4]) #undef rename ‚rename(const„*,const„*);ˆ__NO_STDIO_DEFINES _lgscc(‚,‚,const„*,const„*);…inline d0=_lgscc((Ÿ),(Ÿ),,){register d2,a2;"4e41";}€rename(x,y) _CXCERR(_lgscc(0x56,0,x,y))‡ #undef remove ‚remove(const„*);ˆ__NO_STDIO_DEFINES _lgc(‚,const„*);…inline d0=_lgc((Ÿ),){register d2,a2;"4e41";}€remove(x) _CXCERR(_lgc(0x41,x))‡ ¢*tmpfile(‹); „*tmpnam(„*s); ‚fclose(¢*); ‚fflush(¢*); ¢*fopen(const„*,const„*); ¢*freopen(const„*,const„*,¢*); ‹setbuf(¢*,„*); ‚setvbuf(¢*,„*,‚,size_t); ‚fprintf(¢*,const„*,...); ‚fscanf(¢*,const„*,...); ‚printf(const„*,...); ‚lprintf(const„*,...); ‚scanf(const„*,...); ‚sprintf(„*,const„*,...); ‚sscanf(const„*,const„*,...); ‚vfprintf(¢*,const„*,„*); ‚vprintf(const„*,„*); ‚vsprintf(„*,const„*,„*); ‚__builtin_printf(const„*,...);ˆ__NO_STDIO_DEFINES€printf __builtin_printf‡ ‚fgetc(¢*); „*fgets(„*,‚,¢*); ‚fputc(‚,¢*); ‚fputs(const„*,¢*); ‚getc(¢*);ˆ__NO_STDIO_DEFINES€getc(p) (--(p)->_rcnt>=0?*(p)->_ptr++:fgetc(p))‡ ‚getchar(‹);ˆ__NO_STDIO_DEFINES€getchar()getc(stdin)‡ „*gets(„*); ‚putc(‚,¢*);ˆ__NO_STDIO_DEFINES€putc(c,p) (--(p)->_wcnt>=0?*(p)->_ptr++=(c):fputc(c,p))‡ ‚putchar(‚);ˆ__NO_STDIO_DEFINES€putchar(c) putc(c,stdout)‡ ‚puts(const„*); ‚ungetc(‚,¢*); size_t fread(‹*,size_t,size_t,¢*); size_t fwrite(const‹*,size_t,size_t,¢*); ‚fgetpos(¢*,fpos_t*); ‚fseek(¢*,‚,‚); ‚fsetpos(¢*,const fpos_t*); ‚ftell(¢*); ‹rewind(¢*);ˆ__NO_STDIO_DEFINES€rewind(p) fseek(p,0L,0)‡ ‹clearerr(¢*);ˆ__NO_STDIO_DEFINES€clearerr(p) ((p)->_flag&=~(_IOERR|_IOEOF))‡ ‚feof(¢*);ˆ__NO_STDIO_DEFINES€feof(p) (((p)->_flag&_IOEOF)!=0)‡ ‚ferror(¢*);ˆ__NO_STDIO_DEFINES€ferror(p) (((p)->_flag&_IOERR)!=0)‡ ‹perror(const„*); ‚fcloseall(‹); ¢*fdopen(‚,const„*); ‚fgetchar(‹); ‚fileno(¢*); ‚flushall(‹); ‹fmode(¢*,‚); ‚__stdargs _writes(„*); ‚_tinyprintf(„*,...); ‚fputchar(‚); ‚setnbf(¢*); ‚__flushbuff(‚,¢*); ¢*fopene(const„*,const„*,„*); ¢*popen(const„*,const„*); ‚pclose(¢*); ‚sys_nerr; const„*sys_errlist[]; #undef unlink ‚unlink(const„*);ˆ__NO_STDIO_DEFINES€unlink remove‡ „*mktemp(„*s); Ÿfputw(‚,¢*); fputl(,¢*); Ÿfgetw(¢*); fgetl(¢*);ˆ__NO_STDIO_DEFINES€clrerr clearerr€fileno(p) ((p)->_file)€_flsbf __flushbuff€_getbf __getbuff‡ ‚_getbf(¢*); ‚__fmask; ‚__fmode; ‚_bufsiz;ˆœ€œ__NULL‡‡rset(„*,‚); ‹strsfn(const„*,„*,„*,„*,„*); „*strupr(„*); ‚stspfp(„*,‚*); ‹strsrt(„*[],size_t);€strcmpi stricmp „*index(const„*,‚); „*rindex(const„*,‚);‡ ‹*memchr(const‹*,‚,size_t); ‚memcmp(const‹*,con€ˆ_STDLIB_H€_STDLIB_Hˆ__TYPES_HŒ<__types.h>‡ˆ_SIZE_T€_SIZE_T „Ž‚size_t;‡ˆ_WCHAR_T€_WCHAR_T „Ž„wchar_t;‡€MB_CUR_MAX __mb_cur_max „__mb_cur_max; „ƒ { ‚quot; ‚rem; }div_t; „ƒ { ‚quot; ‚rem; }ldiv_t; ‹*malloc(size_t); ‹*calloc(size_t,size_t); ‹*realloc(‹*,size_t); ‹free(‹*); ‹*getml(size_t); ‚rlsml(‹*,size_t); size_t sizmem(‹); size_t chkml(‹); ‹*getmem(Ž); ‚rlsmem(‹*,Ž); ‹*alloca(size_t); size_t _stkdelta; ‹qsort(‹*,size_t,size_t,‚(*)(const‹*,const‹*)); ‹dqsort(*,size_t); ‹fqsort(float*,size_t); ‹lqsort(*,size_t); ‹sqsort(Ÿ*,size_t); ‹tqsort(„**,size_t); ‚mblen(const„*,size_t); size_t mbstowcs(wchar_t*,const„*,size_t); ‚mbtowc(wchar_t*,const„*,size_t); size_t wcstombs(„*,const wchar_t*,size_t); ‚wctomb(„*,wchar_t); ‹exit(‚); ‹abort(‹); ‚atoi(const„*); atof(const„*); ‚atol(const„*); „*getenv(const„*); ‹_exit(‚); ‹_XCEXIT(‚); „*argopt(‚,const„*[],const„*,‚*,„*); ‹*bsearch(const‹*,const‹*,size_t,size_t,‚(*)(const‹*,const‹*)); ‹*lsearch(const‹*,‹*,size_t*,size_t,‚(*)(const‹*,const‹*)); ‹*lfind(const‹*,const‹*,const size_t*,size_t,‚(*)(const‹*,const‹*)); ‚system(const„*); size_t _hash(const„*); #undef abs ‚abs(‚); ‚__builtin_abs(‚);€abs(i) __builtin_abs(i) #undef iabs ‚iabs(‚); ‚__builtin_abs(‚);€iabs(i) __builtin_abs(i) #undef labs labs(); __builtin_labs();€labs(i) __builtin_labs(i)ˆmin ‚min(‚,‚); ‚__builtin_min(‚,‚);€min(a,b) __builtin_min(a,b)‡ˆmax ‚max(‚,‚); ‚__builtin_max(‚,‚);€max(a,b) __builtin_max(a,b)‡ „*ecvt(,‚,‚*,‚*); „*fcvt(,‚,‚*,‚*); „*gcvt(,‚,„*); getfnl(const„*,„*,size_t,‚); ‚onexit(‚(*)(‚)); ‚putenv(„*); ‚rand(‹); ‚rmvenv(const„*); ‹srand(Ž‚); strtod(const„*,„**); ‚strtol(const„*,„**,‚); Ž‚strtoul(const„*,„**,‚); ‚utpack(const„*); ‹utunpk(‚,„*); ‚atexit(‹(*)(‹)); div_t div(‚,‚); ldiv_t ldiv(‚,‚); Ž_lrotl(Ž,‚);…inline d0=_lrotl(D0,D1){"e3b8";} ŽŸ_rotl(Ž‚,‚);…inline d0=_rotl(D0,D1){"e378";} Ž_lrotr(Ž,‚);…inline d0=_lrotr(D0,D1){"e2b8";} ŽŸ_rotr(Ž‚,‚);…inline d0=_rotr(D0,D1){"e278";} „*optarg; ‚optopt; ‚optind; ‚opterr; ‚getopt(‚,„*const*,const„*);€EXIT_SUCCESS 0€EXIT_FAILURE 3€RAND_MAX 32767ˆœ€œ__NULL‡‡x) (tree[x]->ob_next)€OB_HEAD(x) (tree[x]->ob_head)€OB_TAIL(x) (tree[x]->ob_tail)€OB_TYPE(x) (tree[x]->ob_type)€OB_FLAGS(x) (tree[x]->ob_flags)€OB_STATE(x) (tree[x]->ob_state)€OB_SPEC(x) (tree[x]->ob_spec)€OB_X(x) (tree[x]->ob_x)€OB_Y(x) (tree[x]->ob_y)€OB_WIDTH(x) (tree[x]->ob_width)€OB_HEIGHT(x) (tree[x]->ob_height)‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_STRING_H€_STRING_Hˆ__TYPES_HŒ<__types.h>‡ˆ_SIZE_T€_SIZE_T „Ž‚size_t;‡ „_SLASH; „*strcat(„*,const„*); „*strchr(const„*,‚); ‚strcmp(const„*,const„*); „*strcpy(„*,const„*); size_t strcspn(const„*,const„*); size_t strspn(const„*,const„*); size_t strlen(const„*); „*strncat(„*,const„*,size_t); ‚strncmp(const„*,const„*,size_t); „*strncpy(„*,const„*,size_t); „*strpbrk(const„*,const„*); „*strrchr(const„*,‚); „*strstr(const„*,const„*); „*strtok(„*,const„*); „*strerror(‚); ‚strcoll(const„*,const„*); size_t strxfrm(„*,const„*,size_t); size_t __builtin_strlen(const„*); „*__builtin_strcpy(„*,const„*); ‚__builtin_strcmp(const„*,const„*);€strlen(x) __builtin_strlen(x)€strcpy(x,y) __builtin_strcpy(x,y)€strcmp(x,y) __builtin_strcmp(x,y)ˆ_ANSI size_t stcarg(const„*,const„*); size_t stccpy(„*to,const„*from,size_t length); „*stpcpy(„*,const„*); „*strdup(const„*); ‹strins(„*,const„*); „*strnset(„*,‚,size_t); „*strrev(„*); size_t stcis(const„*,const„*); size_t stcisn(const„*,const„*); size_t stcpm(const„*,const„*,„**); size_t stcpma(const„*,const„*); „*stpblk(const„*); „*stpbrk(const„*,const„*); „*stpchr(const„*,‚); „*stpsym(const„*,„*,size_t); „*stpchrn(const„*,‚); „*stptok(const„*,„*,size_t,const„*); strbpl(„**,size_t,const„*); ‚stcgfe(„*,const„*); ‚stcgfn(„*,const„*); ‚stcd_i(const„*,‚*); ‚stcd_l(const„*,*); ‚stch_i(const„*,‚*); ‚stch_l(const„*,*); ‚stco_i(const„*,‚*); ‚stco_l(const„*,*); ‚stci_d(„*,‚); ‚stci_h(„*,‚); ‚stci_o(„*,‚); ‚stcl_d(„*,); ‚stcl_h(„*,); ‚stcl_o(„*,); ‚stcsma(„*,„*); ‚stcu_d(„*,Ž); ‚stcul_d(„*,Ž); size_t stclen(const„*);€stclen(a) strlen(a) „*stpdate(„*,‚,const„*); „*stptime(„*,‚,const„*); ‚strmid(const„*,„*,size_t,size_t); „*strlwr(„*); ‹strmfe(„*,const„*,const„*); ‹strmfn(„*,const„*,const„*,const„*,const„*); ‹strmfp(„*,const„*,const„*); ‚stcgfp(„*,const„*); ‚strnicmp(const„*,const„*,size_t); ‚stricmp(const„*,const„*); „*strset(„*,‚); ‹strsfn(const„*,„*,„*,„*,„*); „*strupr(„*); ‚stspfp(„*,‚*); ‹strsrt(„*[],size_t);€strcmpi stricmp „*index(const„*,‚); „*rindex(const„*,‚); ‹swab(const‹*,‹*,size_t);‡ ‹*memchr(const‹*,‚,size_t); ‚memcmp(const‹*,const‹*,size_t); ‹*memcpy(‹*,const‹*,size_t); ‹*memmove(‹*,const‹*,size_t); ‹*memset(‹*,‚,size_t); ‹*__builtin_memset(‹*,‚,size_t); ‚__builtin_memcmp(const‹*,const‹*,size_t); ‹*__builtin_memcpy(‹*,const‹*,size_t);€memset(x,y,z) __builtin_memset(x,y,z)€memcmp(x,y,z) __builtin_memcmp(x,y,z)€memcpy(x,y,z) __builtin_memcpy(x,y,z)ˆ_ANSI ‹bzero(‹*,size_t); ‹bcopy(const‹*,‹*,size_t); ‚bcmp(const‹*,const‹*,size_t);€bzero(x,y) __builtin_memset(x,0,y)€bcopy(x,y,z) __builtin_memcpy(y,x,z)€bcmp(x,y,z) __builtin_memcmp(y,x,z) ‹*memccpy(‹*,const‹*,‚,size_t); ‹*memswp(‹*,‹*,size_t); ‹*memrep(‹*,const‹*,size_t,size_t); ‹setmem(‹*,Ž,‚); ‹movmem(const‹*,‹*,Ž); ‹repmem(const‹*,‹*,Ž,Ž); ‹swmem(‹*,‹*,Ž);‡ˆœ€œ__NULL‡‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_STRINGS_H€_STRINGS_HŒ‡ „time_t;‡ ƒutimbuf { time_t actime; time_t modtime; }; ‚utime(const„*,constƒutimbuf*);‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_TADDR_H€_TADDR_H€OB_NEXT(x) (tree[x]->ob_next)€OB_HEAD(x) (tree[x]->ob_head)€OB_TAIL(x) (tree[x]->ob_tail)€OB_TYPE(x) (tree[x]->ob_type)€OB_FLAGS(x) (tree[x]->ob_flags)€OB_STATE(x) (tree[x]->ob_state)€OB_SPEC(x) (tree[x]->ob_spec)€OB_X(x) (tree[x]->ob_x)€OB_Y(x) (tree[x]->ob_y)€OB_WIDTH(x) (tree[x]->ob_width)€OB_HEIGHT(x) (tree[x]->ob_height)‡öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_TIME_H€_TIME_Hˆ__TYPES_HŒ<__types.h>‡ˆœ€œ__NULL‡€CLOCKS_PER_SEC (200)ˆ_CLOCK_T€_CLOCK_T „__clock_t clock_t;‡ˆ_TIME_T€_TIME_T „__time_t time_t;‡ˆ_SIZE_T€_SIZE_T „__size_t size_t;‡ ƒtm{ ‚tm_sec; ‚tm_min; ‚tm_hour; ‚tm_mday; ‚tm_mon; ‚tm_year; ‚tm_wday; ‚tm_yday; ‚tm_isdst; }; clock_t(clock)(‹); (difftime)(time_t,time_t); time_t(mktime)(ƒtm*); time_t(time)(time_t*); „*(asctime)(constƒtm*); „*(ctime)(const time_t*); ƒtm*(gmtime)(const time_t*); ƒtm*(localtime)(const time_t*); size_t(strftime)(„*,size_t,const„*,constƒtm*); „*__tzname[2]; ‚__daylight; ‚__timezone; ‹(__tzset)(‹);£!defined(_ANSI)\ ||defined(_POSIX_SOURCE)€CLK_TCK CLOCKS_PER_SEC ‹(tzset)(‹); „*(tzname)[2];‡£!(defined(_ANSI)\ ||defined(_POSIX_SOURCE))\ ||defined(_LATTICE) ‹(getclk)(Ž„*); ‚(chgclk)(Žconst„*); ‹(utunpk)(,„*); (utpack)(const„*);‡£!(defined(_ANSI)\ ||defined(_SYSV)) ‚(stime)(const time_t*);‡‡‚,‚,‚,‚,Ÿ*); ‹v_contourfill(‚,‚,‚,‚); ‹vr_recfl(‚,Ÿ*); ‹v_bar(‚,Ÿ*); ‹v_arc(‚,‚,‚,‚,‚,‚); ‹v_pieslice(‚,‚,‚,‚,‚,‚); ‹v_circle(‚,‚,‚,‚); ‹v_€ˆ_TOS_H€_TOS_HŒ „ƒ{ „d_reserved[21]; „d_attrib; Ÿd_time; Ÿd_date; d_length; „d_fname[14]; }DTA;‡‡justified(‚,‚,‚,const„*,‚,‚,‚); ‹v_bez(‚,‚,constŸ*,const„*,Ÿ*,Ÿ*,Ÿ*); ‹v_bez_fill(‚,‚,constŸ*,const„*,Ÿ*,Ÿ*,Ÿ*); ‹v_ftext_offset(‚,‚,‚,const„*,constŸ*); ‹v_wc_ftext(‚,‚,‚,constŸ*); ‹v_wc_ftext_offset(‚,‚,‚,constŸ*,constŸ*); ‹v_wc_gtext(‚,‚,‚,constŸ*); ‹v_wc_justified(‚,‚,‚,constŸ*,‚,‚,‚);€MD_REPLACE 1€MD_TRANS 2€MD_XOR 3€MD_ERASE 4€FIS_HOLLOW 0€HOLLOW FIS_HOLLOW€FIS_SOLID 1€SOLID FIS_SOLID€FIS_PATTERN 2€PATTERN FIS_PATTERN€FIS_HATCH 3€HATCH FIS_HATCH€FIS_USER 4€UDFILLSTYLE FIS_USER€ALL_WHITE 0€S_AND_D 1€S_AND_NOTD 2€S_ONLY 3€NOTS_AND_D 4€D_ONLY 5€S_XOR_D 6€S_OR_D 7€NOT_SORD 8€NOT_SXORD 9€NOT_D 10€S_OR_NOTD 11€NOT_S 12€NOTS_OR_D 13€NOT_SANDD 14€ALL_BLACK 15€LDASHED 2€LONGDASH LDASHED€DOTTED 3€DOT DOTTED€DASHDOT 4€DASHED 5€DASH DASHED€DASHDOTDOT 6€DASH2DOT DASHDOTDOT€USERLINE 7€SQUARE 0€SQUARED SQUARE€ARROWED 1€ROUND 2€ROUNDED ROUND€DOTS 3€GRID 6€BRICKS 9€WEAVE 16€THICKENED 1€SHADED 2€SKEWED 4€UNDERLINED 8€€ˆ_UNISTD_H€_UNISTD_Hˆ__TYPES_HŒ<__types.h>‡ˆ_SIZE_T€_SIZE_T „__size_t size_t;‡ˆ_SSIZE_T€_SSIZE_T „__ssize_t ssize_t;‡ˆœ€œ__NULL‡ˆSEEK_SET€SEEK_SET 0‡ˆSEEK_CUR€SEEK_CUR 1‡ˆSEEK_END€SEEK_END 2‡€STDIN_FILENO 0€STDOUT_FILENO 1€STDERR_FILENO 2€F_OK 0€X_OK 1€W_OK 2€R_OK 4€_POSIX_VDISABLE 0€_POSIX_JOB_CONTROL€_POSIX_CHOWN_RESTRICTED 0 __pid_t(getpid)(‹); __pid_t(getppid)(‹); __uid_t(getuid)(‹); __uid_t(geteuid)(‹); __gid_t(getgid)(‹); __gid_t(getegid)(‹); ‚(setuid)(__uid_t); ‚(setgid)(__gid_t); ‚(getgroups)(‚,__gid_t[]); „*(getlogin)(‹); __pid_t(getpgrp)(‹); __pid_t(setsid)(‹); ‚(setpgid)(__pid_t,__pid_t);£!defined(_POSIX_SOURCE)\ ||defined(_BSD) __pid_t setpgrp(__pid_t,__pid_t); __gid_t setregid(__gid_t,__gid_t); __uid_t setreuid(__uid_t,__uid_t);‡ ‚pause(‹); ‹_exit(‚); ‚access(const„*,‚); ‚chown(const„*,__uid_t,__gid_t); ‚close(‚); ‚dup(‚); ‚dup2(‚,‚); ‚isatty(‚); __off_t lseek(‚,__off_t,‚); ‚pipe(‚*); ssize_t read(‚,‹*,size_t); ssize_t write(‚,const‹*,size_t); ‚chdir(const„*); „*getcwd(„*,‚); ‚rmdir(const„*);£!defined(_POSIX_SOURCE)\ ||defined(_LATTICE) __off_t filelength(‚); ‚iomode(‚,‚); __off_t tell(‚);‡ __pid_t fork(‹); ‚execl(const„*,...); ‚execle(const„*,...); ‚execlp(const„*,...); ‚execlpe(const„*,...); ‚execv(const„*,const„**); ‚execve(const„*,const„**,const„**); ‚execvp(const„*,const„**); ‚execvpe(const„*,const„**,const„**);£!defined(_POSIX_SOURCE)\ ||defined(_BSD) __pid_t vfork(‹);‡£!defined(_POSIX_SOURCE) ‹*sbrk(size_t); „**environ;‡‡utes(‚,Ÿ*); ‹vqf_attributes(‚,Ÿ*); ‹vqt_attributes(‚,Ÿ*); ‹vqt_extent(‚,const„*,Ÿ[8]); ‹vqt_f_extent(‚,const„*,Ÿ[8]); ‚vqt_width(‚,‚,Ÿ*,Ÿ*,Ÿ*); ‚vqt_name(‚,‚,„*); ‚vqt_f_name(‚,‚,„*,Ÿ*); ‹vq_cellarray(‚,Ÿ*,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vqin_mode(‚,‚,Ÿ*); ‹vqt_fontinfo(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vqt_advance(‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vqt_cachesize(‚,‚,*); ‹vqt_devinfo(‚,‚,Ÿ*,„*); ‹vqt_get_table(‚,Ÿ**); ‹v_getbitmap_info(‚,‚,fix31*,fix31*,fix31*,fix31*,Ÿ*,Ÿ*,Ÿ**); ‹vqt_advance32(‚,‚,fix31*,fix31*); ‹vqt_fontheader(‚,‹*,„*); ‹vqt_pairkern(‚,‚,‚,fix31*,fix31*); ‹vqt_trackkern(‚,fix31*,fix31*); ‹vqt_wc_e€ˆ_UTIME_H€_UTIME_Hˆ__TYPES_HŒ<__types.h>‡ ƒutimbuf{ __time_t actime; __time_t modtime; }; ‚(utime)(const„*,constƒutimbuf*);‡t_cur(‚); ‹v_enter_cur(‚); ‹v_curup(‚); ‹v_curdown(‚); ‹v_curright(‚); ‹v_curleft(‚); ‹v_curhome(‚); ‹v_eeos(‚); ‹v_eeol(‚); ‹vs_curaddress(‚,‚,‚); ‹v_curtext(‚,const„*); ‹v_rvon(‚); ‹v_rvoff(‚); ‹vq_curaddress(‚,Ÿ*,Ÿ*); ‚vq_tabstatus(‚); ‹v_hardcopy(‚); ‹v_dspcur(‚,‚,‚); ‹v_rmcur(‚); ‹v_form_adv(‚); ‹v_output_window(‚,Ÿ*); ‹v_clear_disp_list(‚); ‹v_bit_image(‚,const„*,‚,‚,‚,‚,‚,Ÿ*); ‹vq_scan(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹v_alpha_text(‚,const„*); ‚vs_palette(‚,‚); ‹vqp_films(‚,„*); ‹vqp_state(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vsp_state(‚,‚,‚,‚,‚,‚,constŸ*); ‹vsp_save(‚); ‹vsp_message(‚); ‚vqp_error(‚); ‹v_meta_extents(‚,‚,‚,‚,‚); ‹v_write_meta(‚,‚,Ÿ*,‚,Ÿ*); ‹vm_filename(‚,const„*); ‹v_pgcount(‚,‚); ‹vm_pagesize(‚,‚,‚); ‹vm_coords(‚,‚,‚,‚,‚); ‹v_offset(‚,‚); ‹v_font(‚,‹*); ‚vq_gdos(‹);€GDOS_NONE 0xfffffffe€GDOS_FSM 0x5f46534d€GDOS_FNT 0x5f464e54 Žvq_vgdos(‹);ˆ__NO_VDI_DEFINES…inline d0=vq_vgdos(){register d€ˆ_VARARGS_H€_VARARGS_Hˆ_VA_LIST€_VA_LIST „„*va_list;‡€va_dcl va_list va_alist;€va_start(a) a=(va_list)&va_alist€va_arg(a,b) ((b*)(a+=sizeof(b)))[-1]€va_end(ap)‡list)&va_alist€va_arg(a,b) ((b*)(a+=sizeof(b)))[-1]€va_end(ap)‡‡ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö€ˆ_VDI_H€_VDI_H Ÿ*_VDIpb[5]; Ÿ_VDIcontrl[]; Ÿ_VDIintin[]; Ÿ_VDIintout[]; Ÿ_VDIptsin[]; Ÿ_VDIptsout[]; „signed„fix7; „Ž„ufix8; „Ÿfix15; „ŽŸufix16; „fix31; „Žufix32; „ƒfdbstr{ ‹*fd_addr; Ÿfd_w; Ÿfd_h; Ÿfd_wdwidth; Ÿfd_stand; Ÿfd_nplanes; Ÿfd_r1; Ÿfd_r2; Ÿfd_r3; }MFDB,FDB; ‹v_opnwk(Ÿ*,Ÿ*,Ÿ*); ‹v_clswk(‚); ‹v_opnvwk(Ÿ*,Ÿ*,Ÿ*); ‹v_clsvwk(‚); ‹v_clrwk(‚); ‹v_updwk(‚); ‚vst_load_fonts(‚,‚); ‹vst_unload_fonts(‚,‚); ‹vs_clip(‚,‚,Ÿ*); ‚v_bez_con(‚,‚); ‹v_bez_qual(‚,‚,Ÿ*); ‹v_set_app_buff(‹*,‚); ‚v_flushcache(‚); ‚v_loadcache(‚,const„*,‚); ‚v_savecache(‚,const„*); ‹v_getoutline(‚,‚,Ÿ*,„*,‚,Ÿ*); ‹vst_scratch(‚,‚); ‹vst_error(‚,‚,Ÿ*); ‚v_bez_on(‚); ‚v_bez_off(‚); ‹v_xopnwk(Ÿ*,Ÿ*,Ÿ*,‚,‚,‹**); ‹v_xupdwk(‚,‹**,‚,Ÿ*); ‹v_opnbm(Ÿ*,MFDB*,Ÿ*,Ÿ*); ‹v_clsbm(‚); ‹v_pline(‚,‚,Ÿ*); ‹v_pmarker(‚,‚,Ÿ*); ‹v_gtext(‚,‚,‚,const„*); ‹v_ftext(‚,‚,‚,const„*); ‹v_fillarea(‚,‚,Ÿ*); ‹v_cellarray(‚,Ÿ*,‚,‚,‚,‚,Ÿ*); ‹v_contourfill(‚,‚,‚,‚); ‹vr_recfl(‚,Ÿ*); ‹v_bar(‚,Ÿ*); ‹v_arc(‚,‚,‚,‚,‚,‚); ‹v_pieslice(‚,‚,‚,‚,‚,‚); ‹v_circle(‚,‚,‚,‚); ‹v_ellarc(‚,‚,‚,‚,‚,‚,‚); ‹v_ellpie(‚,‚,‚,‚,‚,‚,‚); ‹v_ellipse(‚,‚,‚,‚,‚); ‹v_rbox(‚,Ÿ*); ‹v_rfbox(‚,Ÿ*); ‹v_justified(‚,‚,‚,const„*,‚,‚,‚); ‹v_bez(‚,‚,constŸ*,const„*,Ÿ*,Ÿ*,Ÿ*); ‹v_bez_fill(‚,‚,constŸ*,const„*,Ÿ*,Ÿ*,Ÿ*); ‹v_ftext_offset(‚,‚,‚,const„*,constŸ*); ‹v_wc_ftext(‚,‚,‚,constŸ*); ‹v_wc_ftext_offset(‚,‚,‚,constŸ*,constŸ*); ‹v_wc_gtext(‚,‚,‚,constŸ*); ‹v_wc_justified(‚,‚,‚,constŸ*,‚,‚,‚); ‹v_ftext16(‚,‚,‚,constŸ*); ‹v_ftext_offset16(‚,‚,‚,constŸ*,constŸ*); ‹v_gtext16(‚,‚,‚,constŸ*); ‹v_justified16(‚,‚,‚,constŸ*,‚,‚,‚);€MD_REPLACE 1€MD_TRANS 2€MD_XOR 3€MD_ERASE 4€FIS_HOLLOW 0€HOLLOW FIS_HOLLOW€FIS_SOLID 1€SOLID FIS_SOLID€FIS_PATTERN 2€PATTERN FIS_PATTERN€FIS_HATCH 3€HATCH FIS_HATCH€FIS_USER 4€UDFILLSTYLE FIS_USER€ALL_WHITE 0€S_AND_D 1€S_AND_NOTD 2€S_ONLY 3€NOTS_AND_D 4€D_ONLY 5€S_XOR_D 6€S_OR_D 7€NOT_SORD 8€NOT_SXORD 9€NOT_D 10€S_OR_NOTD 11€NOT_S 12€NOTS_OR_D 13€NOT_SANDD 14€ALL_BLACK 15€LDASHED 2€LONGDASH LDASHED€DOTTED 3€DOT DOTTED€DASHDOT 4€DASHED 5€DASH DASHED€DASHDOTDOT 6€DASH2DOT DASHDOTDOT€USERLINE 7€SQUARE 0€SQUARED SQUARE€ARROWED 1€ROUND 2€ROUNDED ROUND€DOTS 3€GRID 6€BRICKS 9€WEAVE 16€THICKENED 1€SHADED 2€SKEWED 4€UNDERLINED 8€OUTLINE 16€SHADOW 32 ‚vswr_mode(‚,‚); ‹vs_color(‚,‚,constŸ*); ‚vsl_type(‚,‚); ‹vsl_udsty(‚,‚); ‚vsl_width(‚,‚); ‚vsl_color(‚,‚); ‹vsl_ends(‚,‚,‚); ‚vsm_type(‚,‚); ‚vsm_height(‚,‚); ‚vsm_color(‚,‚); ‹vst_height(‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚vst_point(‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚vst_rotation(‚,‚); ‚vst_font(‚,‚); ‚vst_color(‚,‚); ‚vst_effects(‚,‚); ‹vst_alignment(‚,‚,‚,Ÿ*,Ÿ*); ‚vsf_interior(‚,‚); ‚vsf_style(‚,‚); ‚vsf_color(‚,‚); ‚vsf_perimeter(‚,‚); ‹vsf_udpat(‚,const‹*,‚); ‚vst_arbpt(‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚vst_setsize(‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‚vst_skew(‚,‚); fix31 vst_arbpt32(‚,fix31,Ÿ*,Ÿ*,Ÿ*,Ÿ*); fix31 vst_setsize32(‚,fix31,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vst_charmap(‚,‚); ‹vst_kern(‚,‚,‚,Ÿ*,Ÿ*); ‹vro_cpyfm(‚,‚,Ÿ*,MFDB*,MFDB*); ‹vrt_cpyfm(‚,‚,Ÿ*,MFDB*,MFDB*,Ÿ*); ‹vr_trnfm(‚,MFDB*,MFDB*); ‹v_get_pixel(‚,‚,‚,Ÿ*,Ÿ*);ˆ_MFORM_T€_MFORM_T „ƒmfstr{ Ÿmf_xhot; Ÿmf_yhot; Ÿmf_nplanes; Ÿmf_fg; Ÿmf_bg; Ÿmf_mask[16]; Ÿmf_data[16]; }MFORM;‡ ‚vsin_mode(‚,‚,‚); ‹vrq_locator(‚,‚,‚,Ÿ*,Ÿ*,Ÿ*); ‚vsm_locator(‚,‚,‚,Ÿ*,Ÿ*,Ÿ*); ‹vrq_valuator(‚,‚,Ÿ*,Ÿ*); ‹vsm_valuator(‚,‚,Ÿ*,Ÿ*,Ÿ*); ‹vrq_choice(‚,‚,Ÿ*); ‚vsm_choice(‚,Ÿ*); ‹vrq_string(‚,‚,‚,Ÿ*,„*); ‚vsm_string(‚,‚,‚,Ÿ*,„*); ‹vsc_form(‚,MFORM*); ‹vex_timv(‚,‚(*)(‹),‚(**)(‹),Ÿ*); ‹v_show_c(‚,‚); ‹v_hide_c(‚); ‹vq_mouse(‚,Ÿ*,Ÿ*,Ÿ*); ‹vex_butv(‚,‚(*__regargs)(Ÿ),‚(**__regargs)(Ÿ)); ‹vex_motv(‚,‚(*__regargs)(Ÿ,Ÿ),‚(**__regargs)(Ÿ,Ÿ)); ‹vex_curv(‚,‚(*__regargs)(Ÿ,Ÿ),‚(**__regargs)(Ÿ,Ÿ)); ‹vq_key_s(‚,Ÿ*); ‹vq_extnd(‚,‚,Ÿ*); ‹vq_color(‚,‚,‚,Ÿ*); ‹vql_attributes(‚,Ÿ*); ‹vqm_attributes(‚,Ÿ*); ‹vqf_attributes(‚,Ÿ*); ‹vqt_attributes(‚,Ÿ*); ‹vqt_extent(‚,const„*,Ÿ[8]); ‹vqt_f_extent(‚,const„*,Ÿ[8]); ‚vqt_width(‚,‚,Ÿ*,Ÿ*,Ÿ*); ‚vqt_name(‚,‚,„*); ‚vqt_f_name(‚,‚,„*,Ÿ*); ‹vq_cellarray(‚,Ÿ*,‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vqin_mode(‚,‚,Ÿ*); ‹vqt_fontinfo(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vqt_advance(‚,‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vqt_cachesize(‚,‚,*); ‹vqt_devinfo(‚,‚,Ÿ*,„*); ‹vqt_get_table(‚,Ÿ**); ‹v_getbitmap_info(‚,‚,fix31*,fix31*,fix31*,fix31*,Ÿ*,Ÿ*,Ÿ**); ‹vqt_advance32(‚,‚,fix31*,fix31*); ‹vqt_fontheader(‚,‹*,„*); ‹vqt_pairkern(‚,‚,‚,fix31*,fix31*); ‹vqt_trackkern(‚,fix31*,fix31*); ‹vqt_wc_extent(‚,constŸ*,Ÿ*); ‹vqt_wc_f_extent(‚,constŸ*,Ÿ*); ‹vqt_extent16(‚,constŸ*,Ÿ*); ‹vqt_f_extent16(‚,constŸ*,Ÿ*); ‹vq_xextnd(‚,‚,Ÿ*,‚,‚); ‹vq_scrninfo(‚,Ÿ*); ‹vq_chcells(‚,Ÿ*,Ÿ*); ‹v_exit_cur(‚); ‹v_enter_cur(‚); ‹v_curup(‚); ‹v_curdown(‚); ‹v_curright(‚); ‹v_curleft(‚); ‹v_curhome(‚); ‹v_eeos(‚); ‹v_eeol(‚); ‹vs_curaddress(‚,‚,‚); ‹v_curtext(‚,const„*); ‹v_rvon(‚); ‹v_rvoff(‚); ‹vq_curaddress(‚,Ÿ*,Ÿ*); ‚vq_tabstatus(‚); ‹v_hardcopy(‚); ‹v_dspcur(‚,‚,‚); ‹v_rmcur(‚); ‹v_form_adv(‚); ‹v_output_window(‚,Ÿ*); ‹v_clear_disp_list(‚); ‹v_bit_image(‚,const„*,‚,‚,‚,‚,‚,Ÿ*); ‹vq_scan(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹v_alpha_text(‚,const„*); ‚vs_palette(‚,‚); ‹vqp_films(‚,„*); ‹vqp_state(‚,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*,Ÿ*); ‹vsp_state(‚,‚,‚,‚,‚,‚,constŸ*); ‹vsp_save(‚); ‹vsp_message(‚); ‚vqp_error(‚); ‹v_meta_extents(‚,‚,‚,‚,‚); ‹v_write_meta(‚,‚,Ÿ*,‚,Ÿ*); ‹vm_filename(‚,const„*); ‹v_pgcount(‚,‚); ‹vm_pagesize(‚,‚,‚); ‹vm_coords(‚,‚,‚,‚,‚); ‹v_offset(‚,‚); ‹v_font(‚,‹*); ‚vq_gdos(‹);€GDOS_NONE 0xfffffffe€GDOS_FSM 0x5f46534d€GDOS_FNT 0x5f464e54 Žvq_vgdos(‹);ˆ__NO_VDI_DEFINES…inline d0=vq_vgdos(){register d2,a2;"70fe4e42";}°_SHORTINT…inline d0=vq_gdos(){register d2,a2;"70fe4e42548056c0";}…inline d0=vq_gdos(){register d2,a2;"70fe4e425480";}‡‡‡ally (it will fail if a local attempt is made) */ #define STACK(x) size_t __far _STACK_HEAP[(x + sizeof(size_t) - 1) / sizeof(size_t)]; \ extern size_t _STACK = sizeof(_STACK_HEAP) void _addheap(void *,size_t); #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. lvja.. SYS lvjbLIMITS H E‰op«STDDEF H b‰orSTDIO H c‰os}OSBIND H R‰oyJLDIRENT H 0‰o„FCNTL H 8‰oŽŃ TOS H l‰o‘MERROR H 6‰o’“ACC H $‰o“BCPX H -‰o”G COOKIE H ,‰o˜!VARARGS H p‰o™›GEMLIB H @‰ošæCTYPE H .‰o›•PORTAB H W‰ožė__LIMITSH ‰o ĪFCTYPE H 9‰o¦…VDI H q‰o§ć&STDARG H a‰o±ŌSTRING H g‰o²ŌCDBIND H *‰oĘćDOS H 1‰oČÓSIGNAL H [‰oŁ CONIO H +‰oĒĢERRNO H 4‰oŃGEMEXTRAH =‰oąŅIOS1 H D‰oį#STDLIB H e‰oāCSTRINGS H h‰oę×. mvjb.. lvjaSTAT H x‰ocĆFILE H v‰oeŸEXCEPT H u‰ofæDIR H t‰ojPARAM H w‰okzTYPES H y‰olŖWAIT H z‰oo/** * $Id: stat.h,v 1.1 1993/11/14 14:58:56 AGK Rel $ * * Low level file system manipulation * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _SYS_STAT_H #define _SYS_STAT_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef __MODES_H #include <__modes.h> #endif struct stat { __mode_t st_mode; __ino_t st_ino; __dev_t st_dev; __dev_t st_rdev; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __off_t st_size; __off_t st_blksize; __off_t st_blocks; __time_t st_mtime; __time_t st_atime; __time_t st_ctime; short st_attr; short __st_res1; long __st_res2[2]; }; #if !defined(_POSIX_SOURCE) \ || defined(_MWC) #define S_IJRON 0x01 /* read only */ #define S_IJHID 0x02 /* hidden */ #define S_IJSYS 0x04 /* system */ #define S_IJVOL 0x08 /* label */ #define S_IJDIR 0x10 /* directory */ #define S_IJWAC 0x20 /* archive */ typedef struct { char d_resvd[21]; char d_fattr; /* File attributes */ long d_tandd; /* Time and date words */ long d_fsize; /* File size */ char d_fname[14]; /* File name */ } DMABUFFER; #endif int (chmod)(const char *, __mode_t); int (fstat)(int, struct stat *); int (mkdir)(const char *, __mode_t); int (mkfifo)(const char *, __mode_t); int (stat)(const char *, struct stat *); __mode_t (umask)(__mode_t); #if !defined(_POSIX_SOURCE) \ || defined(_BSD) int (lstat)(const char *, struct stat *); int (fchmod)(int, __mode_t); #endif #endif efine FL3DIND 0x0200 #define FL3DBAK 0x0400 #define FL3DACT 0x0600 #define SUBMENU 0x0800 #define NORMAL 0x0000 /* Object states */ #define SELECTED 0x0001 #define CROSSED 0x0002 #define CHECKED 0x0004 #define DISABLED 0x0008 #define OUTLINED 0x0010 #define SHADOWED 0x0020 #define SPECIAL 0x0040 /* user defined object state */ #define WHITE 0 /* Object colors */ #define BLACK 1 #define RED 2 #define GREEN 3 #define BLUE 4 #define CYAN 5 #define YELLOW 6 #define MAGENTA 7 #define LWHITE 8 #define LBLACK 9 #define LRED 1/** * $Id: file.h,v 1.1 1993/11/14 14:58:56 AGK Rel $ * * Compatability definitions * * (c) Copyright 1991, 1993 HiSoft **/ #include #define TE_RIGHT 1 #define TE_CNTR 2 typedef struct text_edinfo { char *te_ptext; char *te_ptmplt; char *te_pvalid; short te_font; short te_junk1; short te_just; #ifdef __TE_COLOR __TE_COLOR te_color; #else short te_color; #endif short te_junk2; short te_thickness; short te_txtlen; short te_tmplen; } TEDINFO; typedef struct icon_block { short *ib_pmask; short *ib_pdata; char *ib_ptext; short ib_char; short ib_xchar; short ib_ychar; short ib_xicon; short ib_yicon; short ib_wicon; short ib_hicon; short ib_xtext; short ib_ytext; short ib_wtext; short ib_htext; } ICONBLK; typedef struct cicon_data { short num_planes; short *col_data; short *col_mask; short *sel_data; short *sel_mask; struct cicon_data *next_res; } CICON; typedef struct cicon_blk { ICONBLK monoblk; CIC/** * $Id: except.h,v 1.1 1993/11/14 14:58:56 AGK Rel $ * * M680x0 family exception frames * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _SYS_EXCEPT_H #define _SYS_EXCEPT_H typedef struct except { union { struct { union { struct { short sr; /* status register */ void *pc; /* program counter */ } g0; /* group 0 */ struct { short sr; /* status register */ void *pc; /* program counter */ } g1; /* group 1 */ struct { short ssr; /* special sr */ void *aa; /* access address */ short ir; /* instruction register */ short sr; /* status register */ void *pc; /* program counter */ } g2; /* group 2 */ } g; } mc68000; struct { short sr; /* status register */ void *pc; /* program counter */ unsigned short fv; /* format & vector offset */ union { /* format 0 */ /* format 1 */ struct { void *ia; /* instruction address */ } f2; /* format 2 */ struct { short i[29]; } f7; /* format 7 */ struct { short ssr; /* special sr */ void *dcfa; /* data cycle fault address */ short i1; /* internal */ void *dob; /* data output buffer */ short i2; /* internal */ void *dib; /* data input buffer */ short i3; /* internal */ void *iib; /* input input buffer */ short i4; /* internal */ short i5; /* internal */ short i6; /* internal */ short i7; /* internal */ short i8; /* internal */ short i9; /* internal */ short i10; /* internal */ short i11; /* internal */ short i12; /* internal */ short i13; /* internal */ short i14; /* internal */ short i15; /* internal */ short i16; /* internal */ short i17; /* internal */ short i18; /* internal */ short i19; /* internal */ } f8; /* format 8 */ struct { void *ia; /* instruction address */ short i1; /* internal */ short i2; /* internal */ short i3; /* internal */ short i4; /* internal */ } f9; /* format 9 */ struct { short i1; /* internal */ short ssr; /* special sr */ short ipc; /* instruction pipe stage C */ short ipb; /* instruction pipe stage B */ void *dcfa; /* data cycle fault address */ short i2; /* internal */ short i3; /* internal */ void *dob; /* data output buffer */ short i4; /* internal */ short i5; /* internal */ } f10; /* format 10 */ struct { short i1; /* internal */ short ssr; /* special sr */ short ipc; /* instruction pipe stage C */ short ipb; /* instruction pipe stage B */ void *dcfa; /* data cycle fault address */ short i2; /* internal */ short i3; /* internal */ void *dob; /* data output buffer */ short i4; /* internal */ short i5; /* internal */ short i6; /* internal */ short i7; /* internal */ void *sba; /* stage B address */ short i8; /* internal */ short i9; /* internal */ void *dib; /* data input buffer */ short i10; /* internal */ short i11; /* internal */ short i12; /* internal */ short vni; /* version no. & internal */ short i13; /* internal */ short i14; /* internal */ short i15; /* internal */ short i16; /* internal */ short i17; /* internal */ short i18; /* internal */ short i19; /* internal */ short i20; /* internal */ short i21; /* internal */ short i22; /* internal */ short i23; /* internal */ short i24; /* internal */ short i25; /* internal */ short i26; /* internal */ short i27; /* internal */ short i28; /* internal */ short i29; /* internal */ short i30; /* internal */ } f11; /* format 11 */ struct { short i; /* format unknown */ } f12; /* format 12 */ } f; } mc680x0; } m; } except_t; #endif t,int,int,int); int graf_shrinkbox(int,int,int,int,int,int,int,i/** * $Id: dir.h,v 1.1 1993/11/14 14:58:56 AGK Rel $ * * BSD directory functions * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _DIR_H #define _DIR_H #define dirent direct #include #undef dirent #define MAXNAMLEN 13 #define DIRSIZ 128 #endif int scrp_write(const char *); /* File selector library definitions */ int fsel_input(char *,char *,short *); int fsel_exinput(char *,char *,short *,const char *); /* Window library definitions */ #define NAME 0x0001 #define CLOSE 0x0002 #define CLOSER CLOSE #define FULL 0x0004 #define FULLER FULL #define MOVE 0x0008 #define MOVER MOVE #define INFO 0x0010 #define SIZE 0x0020 #define SIZER SIZE #define UPARROW 0x0040 #define DNARROW 0x0080 #define VSLIDE 0x0100 #define LFARROW 0x0200 #define RTARROW 0x0400 #define HSLIDE 0x0800 #define SMALLER 0x4000 #define WF_KIND 1 #define WF_NAME 2 #define WF_INFO 3 #define WF_WXYWH 4 #define WF_WORKXYWH WF_WXYWH #define WF_CXYWH 5 #define/** * $Id: param.h,v 1.1 1993/11/14 14:58:56 AGK Rel $ * * System parameters * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _PARAM_H #define _PARAM_H #define MAXPATHLEN 128 /* FILENAME_MAX */ #define NOFILE 20 /* FOPEN_MAX */ #define NCARGS 4096 /* Max. chars in argv - arbitrary */ #define CANBSIZ NCARGS /* max # chars of input on one line */ #endif LSIZE #define WF_SCREEN 17 #define WF_COLOR 18 #define WF_DCOLOR 19 #define WF_OWNER 20 #define WF_BEVENT 24 #define WF_BOTTOM 25 #define WF_ICONIFY 26 #define WF_UNICONIFY 27 #define WF_UNICONIFYXYWH 28 #define WF_TOOLBAR 30 #define WF_FTOOLBAR 31 #define WF_NTOOLBAR 32 #define END_UPDATE 0 #define BEG_UPDATE 1 #define END_MCTRL 2 #define BEG_MCTRL 3 #define WC_BORDER 0 #define WC_WORK 1 #define DESK 0 #define W_BOX 0 #define W_TITLE 1 #define W_CLOSER 2 #define W_NAME 3 #define W_FULLER 4 #define W_INFO 5 #define W_DATA 6 #define W_WORK 7 #define W_SIZER 8 #define W_VBAR 9 #define W_UPARROW/** * $Id: types.h,v 1.1 1993/11/14 14:58:56 AGK Rel $ * * POSIX.1 types header file * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _SYS_TYPES_H #define _SYS_TYPES_H #if !defined(_POSIX_SOURCE) \ || defined(_BSD) typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; #endif #if !defined(_POSIX_SOURCE) \ || defined(_SYSV) typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; #endif #if !defined(_POSIX_SOURCE) \ || defined(_BSD) \ || defined(_SYSV) typedef long daddr_t; typedef char *caddr_t; #endif #ifndef __TYPES_H #include <__types.h> #endif #ifndef _DEV_T #define _DEV_T typedef __dev_t dev_t; #endif #ifndef _GID_T #define _GID_T typedef __gid_t gid_t; #endif #ifndef _INO_T #define _INO_T typedef __ino_t ino_t; #endif #ifndef _MODE_T #define _MODE_T typedef __mode_t mode_t; #endif #ifndef _NLINK_T #define _NLINK_T typedef __nlink_t nlink_t; #endif #ifndef _OFF_T #define _OFF_T typedef __off_t off_t; #endif #ifndef _PID_T #define _PID_T typedef __pid_t pid_t; #endif #ifndef _SIZE_T #define _SIZE_T typedef __size_t size_t; #endif #ifndef _SSIZE_T #define _SSIZE_T typedef __ssize_t ssize_t; #endif #ifndef _CLOCK_T #define _CLOCK_T typedef __clock_t clock_t; #endif #ifndef _TIME_T #define _TIME_T typedef __time_t time_t; #endif #ifndef _UID_T #define _UID_T typedef __uid_t uid_t; #endif #if !defined(_POSIX_SOURCE) \ || defined(_BSD) #define NBBY 8 #ifndef FD_SETSIZE #define FD_SETSIZE 32 #endif typedef long fd_mask; #define NFDBITS (sizeof(fd_mask) * NBBY) #ifndef howmany #define howmany(x, y) (((x) + ((y) - 1)) / (y)) #endif typedef struct fd_set { fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; } fd_set; #define FD_SET(n, p) ((p)->fds_bits[(n) / NFDBITS] |= (1 << ((n) % NFDBITS))) #define FD_CLR(n, p) ((p)->fds_bits[(n) / NFDBITS] &= ~(1 << ((n) % NFDBITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n) / NFDBITS] & (1 << ((n) % NFDBITS))) #define FD_ZERO(p) memset((p), '\0', sizeof(*(p))) #endif #endif of free strings */ unsigned short rsh_nimages; /* number of free images */ unsigned short rsh_rssize; /* total bytes in resource */ } RSHDR; int rsrc_load(const char *); int rsrc_free(void); int rsrc_gaddr(int,int,void *); int rsrc_saddr(int,int,void *); int rsrc_obfix(OBJECT *,int); int rsrc_rcfix(RSHDR *rc_header); /* Shell library definitions */ int shel_read(char *,char *); int shel_write(int,int,int,const char *,const char *); int shel_get(char *,int); int shel_put(const char *,int); int shel_find(char *); int shel_envrn(char **, const char *); /* Rectangle manipulation definitions */ void rc_constrain(const GRECT *,GRECT *); void rc_copy(const GRECT *,GRECT *); int rc_equal(const GRECT *,const GRECT *); int __builtin_memcmp(const void *, const void *, unsigned long); #define rc_equal(p1,p2) (!__builtin_mem/** * $Id: wait.h,v 1.1 1993/11/14 14:58:56 AGK Rel $ * * POSIX process termination functions and macros * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _SYS_WAIT_H #define _SYS_WAIT_H #ifndef __TYPES_H #include <__types.h> #endif #define WNOHANG 1 #define WUNTRACED 2 #define WIFEXITED(x) ((int)((x) & 0xFF00) == 0) #define WEXITSTATUS(x) ((int)((x) & 0xFF)) #define WIFSIGNALED(x) (((int)((x) & 0xFF00) > 0) && ((int)(((x) & 0xFF) == 0))) #define WTERMSIG(x) ((int)(((x) & 0xFF00) >> 8)) #define WIFSTOPPED(x) (((int)((x) & 0xFF) == 0x7f) && ((int)(((x) >> 8) & 0xFF) != 0)) #define WSTOPSIG(x) ((int)(((x) >> 8) & 0xFF)) __pid_t (wait)(int *); __pid_t (waitpid)(__pid_t, int *, int); #if !defined(_POSIX_SOURCE) \ || defined(_BSD) struct rusage; __pid_t (wait3)(int *, int, struct rusage *); __pid_t (wait4)(__pid_t, int *, int, struct rusage *); #endif #endif _NULL #endif #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: limits.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * ANSI & POSIX system limits * * (c) Copyright 1992 HiSoft **/ #ifndef _LIMITS_H #define _LIMITS_H #define CHAR_BIT (8) #define SCHAR_MAX (127) #define SCHAR_MIN (-128) #define UCHAR_MAX (255) #ifdef _UNSIGNEDCHAR #define CHAR_MAX UCHAR_MAX #define CHAR_MIN (0) #else #define CHAR_MAX SCHAR_MAX #define CHAR_MIN SCHAR_MIN #endif #define SHRT_MAX (32767) #define SHRT_MIN (-32767) #define USHRT_MAX (65535) #define LONG_MAX (2147483647) #define LONG_MIN (-2147483647) #define ULONG_MAX (4294967295) #ifdef _SHORTINT #define INT_MAX SHRT_MAX #define INT_MIN SHRT_MIN #define UINT_MAX USHRT_MAX #else #define INT_MAX LONG_MAX #define INT_MIN LONG_MIN #define UINT_MAX ULONG_MAX #endif #define MB_LEN_MAX (1) #if !defined(_ANSI) \ || defined(_POSIX_SOURCE) #ifndef __LIMITS_H #include <__limits.h> #endif #define _POSIX_ARG_MAX 4096 #define _POSIX_CHILD_MAX 6 #define _POSIX_LINK_MAX 8 #define _POSIX_MAX_CANON 255 #define _POSIX_MAX_INPUT 255 #define _POSIX_NAME_MAX 14 #define _POSIX_NGROUPS_MAX 0 #define _POSIX_OPEN_MAX 16 #define _POSIX_PATH_MAX 255 #define _POSIX_PIPE_BUF 512 #define _POSIX_SSIZE_MAX 32767 #define _POSIX_STREAM_MAX 8 #define _POSIX_TZNAME_MAX 3 #define NGROUPS_MAX 512 #define OPEN_MAX 32 #define STREAM_MAX 32 #define TZNAME_MAX 8 #define SSIZE_MAX LONG_MAX #endif #endif ata segment */ long p_dlen; /* length of data segment */ void *p_bbase; /* base of BSS segment */ long p_blen; /* length of BSS segment */ void *p_dta; /* pointer to current DTA */ BASEPAGE *p_parent; /* pointer to parent's basepage */ long p_flags; /* memory usage flags */ char *p_env; /* pointer to environment strings */ long p_undef[20]; char p_cmdlin[128]; /* command line image */ }; extern BASEPAGE *_pbase, *_PBASE; #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: stddef.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * ANSI common definitions * * (c) Copyright 1993 HiSoft **/ #ifndef _STDDEF_H #define _STDDEF_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef NULL #define NULL __NULL #endif #define offsetof(type, memb) ((size_t)&((type *)0)->memb) typedef __ptrdiff_t ptrdiff_t; #ifndef _SIZE_T #define _SIZE_T typedef __size_t size_t; #endif #ifndef _WCHAR_T #define _WCHAR_T typedef __wchar_t wchar_t; #endif #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: stdio.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * ANSI I/O interface file * * (c) Copyright 1989, 1992, 1993 HiSoft **/ #ifndef _STDIO_H #define _STDIO_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef _SIZE_T #define _SIZE_T typedef __size_t size_t; #endif long __regargs _CXCERR(long); /* always __regargs for efficiency */ typedef unsigned long fpos_t; #define _BUFSIZ 512 /* standard buffer size */ #define BUFSIZ _BUFSIZ /* standard buffer size */ #define OPEN_MAX 32 /* maximum number of files */ #define _NFILE OPEN_MAX /* maximum number of files */ #define FOPEN_MAX OPEN_MAX /* maximum number of files */ #define FILENAME_MAX 128 /* FMSIZE */ #define L_tmpnam FILENAME_MAX /* maximum tmpnam filename length */ #define TMP_MAX 17576 /* Guaranteed unique temp names */ /** * * Definitions associated with _iobuf._flag * **/ #define _IOFBF 0 /* fully buffered (for setvbuf) */ #define _IOREAD 1 /* read flag */ #define _IOWRT 2 /* write flag */ #define _IONBF 4 /* non-buffered flag */ #define _IOMYBUF 8 /* private buffer flag */ #define _IOEOF 16 /* end-of-file flag */ #define _IOERR 32 /* error flag */ #define _IOLBF 64 /* line-buffered flag */ #define _IORW 128 /* read-write (update) flag */ #define _IOAPP 0x4000 /* append flag */ #define _IOXLAT 0x8000 /* translation flag */ #ifndef EOF #define EOF __EOF #endif #ifndef SEEK_SET #define SEEK_SET __SEEK_SET #endif #ifndef SEEK_CUR #define SEEK_CUR __SEEK_CUR #endif #ifndef SEEK_END #define SEEK_END __SEEK_END #endif typedef struct _iobuf { struct _iobuf *_next; unsigned char *_ptr; /* current buffer pointer */ int _rcnt; /* current byte count for reading */ int _wcnt; /* current byte count for writing */ unsigned char *_base; /* base address of I/O buffer */ int _size; /* size of buffer */ int _flag; /* control flags */ int _file; /* file descriptor */ unsigned char _cbuff; /* single char buffer */ } FILE; extern struct _iobuf _iob[]; #define stdin (&_iob[0]) /* standard input file pointer */ #define stdout (&_iob[1]) /* standard output file pointer */ #define stderr (&_iob[2]) /* standard error file pointer */ #define stdaux (&_iob[3]) /* standard auxiliary file pointer */ #define stdprt (&_iob[4]) /* standard printer file pointer */ /* * Prototypes for ANSI standard functions. */ #undef rename int rename(const char *,const char *); #ifndef __NO_STDIO_DEFINES long _lgscc(int,int,const char *,const char *); #pragma inline d0=_lgscc((short),(short),,) {register d2,a2; "4e41";} #define rename(x,y) _CXCERR(_lgscc(0x56,0,x,y)) #endif #undef remove int remove(const char *); #ifndef __NO_STDIO_DEFINES long _lgc(int,const char *); #pragma inline d0=_lgc((short),) {register d2,a2; "4e41";} #define remove(x) _CXCERR(_lgc(0x41,x)) #endif FILE *tmpfile(void); char *tmpnam(char *s); int fclose(FILE *); int fflush(FILE *); FILE *fopen(const char *, const char *); FILE *freopen(const char *, const char *, FILE *); void setbuf(FILE *, char *); int setvbuf(FILE *, char *, int, size_t); int fprintf(FILE *, const char *, ...); int fscanf(FILE *, const char *, ...); int printf(const char *, ...); int lprintf(const char *, ...); int scanf(const char *, ...); int sprintf(char *, const char *, ...); int sscanf(const char *, const char *, ...); int vfprintf(FILE *, const char *, char *); int vprintf(const char *, char *); int vsprintf(char *, const char *, char *); int __builtin_printf(const char *, ...); #ifndef __NO_STDIO_DEFINES #define printf __builtin_printf #endif int fgetc(FILE *); char *fgets(char *, int, FILE *); int fputc(int, FILE *); int fputs(const char *, FILE *); int getc(FILE *); #ifndef __NO_STDIO_DEFINES #define getc(p) (--(p)->_rcnt>=0 ? *(p)->_ptr++ : fgetc(p)) #endif int getchar(void); #ifndef __NO_STDIO_DEFINES #define getchar() getc(stdin) #endif char *gets(char *); int putc(int, FILE *); #ifndef __NO_STDIO_DEFINES #define putc(c,p) (--(p)->_wcnt>=0 ? *(p)->_ptr++=(c) : fputc(c,p)) #endif int putchar(int); #ifndef __NO_STDIO_DEFINES #define putchar(c) putc(c,stdout) #endif int puts(const char *); int ungetc(int, FILE *); size_t fread(void *, size_t, size_t, FILE *); size_t fwrite(const void *, size_t, size_t, FILE *); int fgetpos(FILE *, fpos_t *); int fseek(FILE *, long int, int); int fsetpos(FILE *, const fpos_t *); long int ftell(FILE *); void rewind(FILE *); #ifndef __NO_STDIO_DEFINES #define rewind(p) fseek(p, 0L, 0) #endif void clearerr(FILE *); #ifndef __NO_STDIO_DEFINES #define clearerr(p) ((p)->_flag &= ~(_IOERR | _IOEOF)) #endif int feof(FILE *); #ifndef __NO_STDIO_DEFINES #define feof(p) (((p)->_flag & _IOEOF) != 0) #endif int ferror(FILE *); #ifndef __NO_STDIO_DEFINES #define ferror(p) (((p)->_flag & _IOERR) != 0) #endif void perror(const char *); /* * Prototypes for Non-ANSI functions. */ int fcloseall(void); FILE *fdopen(int, const char *); int fgetchar(void); int fileno(FILE *); int flushall(void); void fmode(FILE *, int); int __stdargs _writes(char *); int _tinyprintf(char *, ...); int fputchar(int); int setnbf(FILE *); int __flushbuff(int, FILE *); FILE *fopene(const char *, const char *,char *); FILE *popen(const char *,const char *); int pclose(FILE *); extern int sys_nerr; extern const char *sys_errlist[]; #undef unlink int unlink(const char *); #ifndef __NO_STDIO_DEFINES #define unlink remove #endif char *mktemp(char *s); short fputw(int,FILE *); long fputl(long,FILE *); short fgetw(FILE *); long fgetl(FILE *); #ifndef __NO_STDIO_DEFINES #define clrerr clearerr #define fileno(p) ((p)->_file) #define _flsbf __flushbuff #define _getbf __getbuff #endif int _getbf(FILE *); extern int __fmask; extern int __fmode; extern int _bufsiz; /* default file buffer size */ #ifndef NULL #define NULL __NULL #endif #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: osbind.h,v 1.7 1993/11/14 14:43:52 AGK Rel $ * * Interface to GEMDOS/BIOS/XBIOS * * Copyright (c) 1989, 1992, 1993 HiSoft **/ #ifndef _OSBIND_H #define _OSBIND_H /* GEMDOS bindings */ long *__ngv(int); long __lgc(int,const char *); long __lgcc(int,const char *,const char *); long __lgcs(int,const char *,int); long __lgcss(int,const char *,int,int); long __lgds(int,char *,int); long __lgdss(int,char *,int,int); long __lgl(int,long); long __lglss(int,long,int,int); long __lgn(int,long *); long __lgns(int,long *,int); long __lgp(int,void *); long __lgpl(int,void *,long); long __lgrss(int,short *,int,int); long __lgs(int,int); long __lgscc(int,int,const char *,const char *); long __lgsccc(int,int,const char *,const char *,const char *); long __lgscp(int,int,const char *,void *); long __lgsdc(int,int,char *,const char *); long __lgsl(int,int,long); long __lgsld(int,int,long,char *); long __lgsll(int,int,long,long); long __lgslp(int,int,long,void *); long __lgslq(int,int,long,const void *); long __lgsls(int,int,long,int); long __lgsn(int,int,long *); long __lgspl(int,int,void *,long); long __lgsqp(int,int,const void *,void *); long __lgss(int,int,int); long __lgssl(int,int,int,long); long __lgssn(int,int,int,long *); long __lgssll(int,int,int,long,long); long __lgsss(int,int,int,int); long __lgu(int,unsigned int); long __lgv(int); long __sgunnn(int,unsigned,long *,long *,long *); short __sgr(int,short *); short __sgs(int,int); short __sgsl(int,int,long); short __sgsls(int,int,long,int); short __sgss(int,int,int); short __sgv(int); unsigned short __ugv(int); void (*__stdargs __ggsg(int,int,void (*__stdargs)(long)))(long); void *__pgl(int,long); void *__pgls(int,long,int); void *__pgp(int,void *); void *__pgs(int,int); void *__pgv(int); void __vgc(int,const char *); void __vgls(int,long,int); void __vgp(int,void *); void __vgs(int,int); void __vgv(int); #define _GEMDOS {register d2,a2; "4e41";} #pragma inline __vgc((short),) _GEMDOS #pragma inline __vgls((short),,(short)) _GEMDOS #pragma inline __vgp((short),) _GEMDOS #pragma inline __vgs((short),(short)) _GEMDOS #pragma inline __vgv((short)) _GEMDOS #pragma inline d0=__ggsg((short),(short),) _GEMDOS #pragma inline d0=__lgc((short),) _GEMDOS #pragma inline d0=__lgcc((short),,) _GEMDOS #pragma inline d0=__lgcs((short),,(short)) _GEMDOS #pragma inline d0=__lgcss((short),,(short),(short)) _GEMDOS #pragma inline d0=__lgds((short),,(short)) _GEMDOS #pragma inline d0=__lgdss((short),,(short),(short)) _GEMDOS #pragma inline d0=__lgl((short),) _GEMDOS #pragma inline d0=__lglss((short),,(short),(short)) _GEMDOS #pragma inline d0=__lgn((short),) _GEMDOS #pragma inline d0=__lgns((short),,(short)) _GEMDOS #pragma inline d0=__lgp((short),) _GEMDOS #pragma inline d0=__lgpl((short),,) _GEMDOS #pragma inline d0=__lgrss((short),,(short),(short)) _GEMDOS #pragma inline d0=__lgs((short),(short)) _GEMDOS #pragma inline d0=__lgscc((short),(short),,) _GEMDOS #pragma inline d0=__lgsccc((short),(short),,,) _GEMDOS #pragma inline d0=__lgscp((short),(short),,) _GEMDOS #pragma inline d0=__lgsdc((short),(short),,) _GEMDOS #pragma inline d0=__lgsl((short),(short),) _GEMDOS #pragma inline d0=__lgsld((short),(short),,) _GEMDOS #pragma inline d0=__lgsll((short),(short),,) _GEMDOS #pragma inline d0=__lgslp((short),(short),,) _GEMDOS #pragma inline d0=__lgslq((short),(short),,) _GEMDOS #pragma inline d0=__lgsls((short),(short),,(short)) _GEMDOS #pragma inline d0=__lgsn((short),(short),) _GEMDOS #pragma inline d0=__lgspl((short),(short),,) _GEMDOS #pragma inline d0=__lgsqp((short),(short),,) _GEMDOS #pragma inline d0=__lgss((short),(short),(short)) _GEMDOS #pragma inline d0=__lgssl((short),(short),(short),) _GEMDOS #pragma inline d0=__lgssn((short),(short),(short),) _GEMDOS #pragma inline d0=__lgssll((short),(short),(short),,) _GEMDOS #pragma inline d0=__lgsss((short),(short),(short),(short)) _GEMDOS #pragma inline d0=__lgu((short),(short)) _GEMDOS #pragma inline d0=__lgv((short)) _GEMDOS #pragma inline d0=__ngv((short)) _GEMDOS #pragma inline d0=__pgl((short),) _GEMDOS #pragma inline d0=__pgls((short),,(short)) _GEMDOS #pragma inline d0=__pgp((short),) _GEMDOS #pragma inline d0=__pgs((short),(short)) _GEMDOS #pragma inline d0=__pgv((short)) _GEMDOS #pragma inline d0=__sgr((short),) _GEMDOS #pragma inline d0=__sgs((short),(short)) _GEMDOS #pragma inline d0=__sgsl((short),(short),) _GEMDOS #pragma inline d0=__sgsls((short),(short),,(short)) _GEMDOS #pragma inline d0=__sgss((short),(short),(short)) _GEMDOS #pragma inline d0=__sgunnn((short),(short),,,) _GEMDOS #pragma inline d0=__sgv((short)) _GEMDOS #pragma inline d0=__ugv((short)) _GEMDOS #define Pterm0() __vgv(0x0) #define Cconin() __lgv(0x1) #define Cconout(a) __vgs(0x2,a) #define Cauxin() __sgv(0x3) #define Cauxout(a) __vgs(0x4,a) #define Cprnout(a) __lgs(0x5,a) #define Crawio(a) __lgs(0x6,a) #define Crawcin() __lgv(0x7) #define Cnecin() __lgv(0x8) #define Cconws(a) __vgc(0x9,a) #define Cconrs(a) __vgp(0x0a,a) #define Cconis() __sgv(0x0b) #define Dsetdrv(a) __lgs(0x0e,a) #define Cconos() __sgv(0x10) #define Cprnos() __sgv(0x11) #define Cauxis() __sgv(0x12) #define Cauxos() __sgv(0x13) #define Maddalt(a,b) __lgpl(0x14,a,b) #define Srealloc(a) __pgl(0x15,a) #define Dgetdrv() __sgv(0x19) #define Fsetdta(a) __vgp(0x1a,a) #define Super(a) __pgp(0x20,a) #define Tgetdate() __ugv(0x2a) #define Tsetdate(a) __lgu(0x2b,a) #define Tgettime() __ugv(0x2c) #define Tsettime(a) __lgu(0x2d,a) #define Fgetdta() __pgv(0x2f) #define Sversion() __ugv(0x30) #define Ptermres(a,b) __vgls(0x31,a,b) #define Dfree(a,b) __lgns(0x36,a,b) #define Dcreate(a) __lgc(0x39,a) #define Ddelete(a) __lgc(0x3a,a) #define Dsetpath(a) __lgc(0x3b,a) #define Fcreate(a,b) __lgcs(0x3c,a,b) #define Fopen(a,b) __lgcs(0x3d,a,b) #define Fclose(a) __lgs(0x3e,a) #define Fread(a,b,c) __lgslp(0x3f,a,b,c) #define Fwrite(a,b,c) __lgslq(0x40,a,b,c) #define Fdelete(a) __lgc(0x41,a) #define Fseek(a,b,c) __lglss(0x42,a,b,c) #define Fattrib(a,b,c) __lgcss(0x43,a,b,c) #define Mxalloc(a,b) __pgls(0x44,a,b) #define Fdup(a) __lgs(0x45,a) #define Fforce(a,b) __lgss(0x46,a,b) #define Dgetpath(a,b) __lgds(0x47,a,b) #define Malloc(a) __pgl(0x48,a) #define Mfree(a) __lgp(0x49,a) #define Mshrink(a,b) __lgspl(0x4a,0,a,b) #define Pexec(a,b,c,d) __lgsccc(0x4b,a,b,c,d) #define Pterm(a) __vgs(0x4c,a) #define Fsfirst(a,b) __lgcs(0x4e,a,b) #define Fsnext() __lgv(0x4f) #define Frename(a,b,c) __lgscc(0x56,a,b,c) #define Fdatime(a,b,c) __lgrss(0x57,a,b,c) #define Flock(a,b,c,d) __lgssll(0x5c,a,b,c,d) /* BIOS bindings */ long *__nbv(int); long __lbs(int,int); long __lbspsss(int,int,void *,int,int,int); long __lbspsssl(int,int,void *,int,int,int,long); long __lbss(int,int,int); long __lbv(int); unsigned long __mbv(int); void (*__fbsf(int,int,void (*)()))(); void *__pbs(int,int); void __vbp(int,void *); #define _BIOS {register d2,a2; "4e4d";} #pragma inline __vbp((short),) _BIOS #pragma inline d0=__fbsf((short),(short),) _BIOS #pragma inline d0=__lbs((short),(short)) _BIOS #pragma inline d0=__lbspsss((short),(short),,(short),(short),(short)) _BIOS #pragma inline d0=__lbspsssl((short),(short),,(short),(short),(short),) _BIOS #pragma inline d0=__lbss((short),(short),(short)) _BIOS #pragma inline d0=__lbv((short)) _BIOS #pragma inline d0=__mbv((short)) _BIOS #pragma inline d0=__nbv((short)) _BIOS #pragma inline d0=__pbs((short),(short)) _BIOS #define Getmpb(a) __vbp(0,a) #define Bconstat(a) __lbs(1,a) #define Bconin(a) __lbs(2,a) #define Bconout(a,b) __lbss(3,a,b) #define Rwabs(a,b,c,d,e) __lbspsss(4,a,b,c,d,e) #define Lrwabs(a,b,c,d,e) __lbspsssl(4,a,b,c,-1,d,e) #define Setexc(a,b) __fbsf(5,a,b) #define Tickcal() __lbv(6) #define Getbpb(a) __pbs(7,a) #define Bcostat(a) __lbs(8,a) #define Mediach(a) __lbs(9,a) #define Drvmap() __mbv(10) #define Kbshift(a) __lbs(11,a) /* XBIOS bindings */ char **__exccc(int,const char *,const char *,const char *); long *__nxv(int); long __lxcp(int, const char *, void *); long __lxg(int,long (*)(void)); long __lxlsps(int,long,int,void *,int); long __lxn(int,long *); long __lxp(int,void *); long __lxs(int,int); long __lxs(int,int); long __lxsl(int,int,long); long __lxsll(int,short,long,long); long __lxsp(int,int,void *); long __lxspls(int,int,void *,long,int); long __lxspp(int,int,void *,void *); long __lxsqls(int,int,void *,long,int); long __lxss(int,int,int); long __lxss(int,int,int); long __lxssc(int,int,int,const char *); long __lxssp(int,int,int,void *); long __lxssss(int,int,int,int,int); long __lxsssss(int,int,int,int,int,int); long __lxsssss(int,int,int,int,int,int); long __lxv(int); short __sxcs(int, const char *, int); short __sxcsp(int, const char *, int, void *); short __sxll(int, long, long); short __sxp(int,void *); short __sxppss(int,void *,void *,int,int); short __sxppsssss(int,void *,void *,int,int,int,int,int); short __sxprsssssls(int,void *,short *,int,int,int,int,int,long,int); short __sxqls(int, const void *, long, int); short __sxs(int,int); short __sxsp(int,int,void *); short __sxss(int,int,int); short __sxsssd(int,int,int,int,char *); short __sxv(int); unsigned char bxv(int); unsigned long __mxssssss(int,int,int,int,int,int,int); unsigned long __mxv(int); void **__rxv(int); void *__pxs(int,int); void *__pxv(int); void __vxc(int,const char *); void __vxcldl(int, unsigned const char *, long, unsigned char *, long); void __vxfg(int, void (*__stdargs)(long), long (*)(void)); void __vxllqp(int, long, long, const void *, void *); void __vxm(int,unsigned long); void __vxnn(int, long *, long *); void __vxp(int,void *); void __vxplln(int, void *, long, long, long *); void __vxplss(int,void *,long,int,int); void __vxpps(int,void *,void *,int); void __vxqlln(int, const void *, long, long, long *); void __vxqlpl(int, const void *, long, void *, long); void __vxolnl(int, const long *, long, long *, long); void __vxlls(int, long, long, int); void __vxqls(int, const void *, long, int); void __vxqpllln(int, const void *, void *, long, long, long, long *); void __vxs(int,int); void __vxsc(int,int,const char *); void __vxsf(int,int,void (*)(void)); void __vxsl(int,int,long); void __vxsp(int,int,void *); void __vxssl(int,int,int,long); void __vxspf(int,int,void *,void (*)()); void __vxssn(int, int, int, long *); void __vxsso(int, int, int, const long *); void __vxssr(int,int,int,short *); void __vxsss(int, int, int, int); void __vxsssf(int,int,int,int,void (*)()); void __vxtlrl(int, const short *, long, short *, long); void __vxv(int); #define _XBIOS {register d2,a2; "4e4e";} #pragma inline __vxc((short),) _XBIOS #pragma inline __vxcldl((short),,,,) _XBIOS #pragma inline __vxfg((short),,) _XBIOS #pragma inline __vxllqp((short),,,,) _XBIOS #pragma inline __vxm((short),) _XBIOS #pragma inline __vxnn((short),,) _XBIOS #pragma inline __vxp((short),) _XBIOS #pragma inline __vxplln((short),,,,) _XBIOS #pragma inline __vxplss((short),,,(short),(short)) _XBIOS #pragma inline __vxpps((short),,,(short)) _XBIOS #pragma inline __vxqlln((short),,,,) _XBIOS #pragma inline __vxqlpl((short),,,,) _XBIOS #pragma inline __vxolnl((short),,,,) _XBIOS #pragma inline __vxlls((short),,,(short)) _XBIOS #pragma inline __vxqls((short),,,(short)) _XBIOS #pragma inline __vxqpllln((short),,,,,,) _XBIOS #pragma inline __vxs((short),(short)) _XBIOS #pragma inline __vxsc((short),(short),) _XBIOS #pragma inline __vxsf((short),(short),) _XBIOS #pragma inline __vxsl((short),(short),) _XBIOS #pragma inline __vxsp((short),(short),) _XBIOS #pragma inline __vxssl((short),(short),(short),) _XBIOS #pragma inline __vxspf((short),(short),,) _XBIOS #pragma inline __vxssn((short),(short),(short),) _XBIOS #pragma inline __vxsso((short),(short),(short),) _XBIOS #pragma inline __vxssr((short),(short),(short),) _XBIOS #pragma inline __vxsss((short),(short),(short)) _XBIOS #pragma inline __vxsssf((short),(short),(short),(short),) _XBIOS #pragma inline __vxtlrl((short),,,,) _XBIOS #pragma inline __vxv((short)) _XBIOS #pragma inline d0=__bxv((short)) _XBIOS #pragma inline d0=__exccc((short),,,) _XBIOS #pragma inline d0=__lxcp((short),,) _XBIOS #pragma inline d0=__lxg((short),) _XBIOS #pragma inline d0=__lxlsps((short),,(short),,(short)) _XBIOS #pragma inline d0=__lxn((short),) _XBIOS #pragma inline d0=__lxp((short),) _XBIOS #pragma inline d0=__lxs((short),(short)) _XBIOS #pragma inline d0=__lxsl((short),(short),) _XBIOS #pragma inline d0=__lxsll((short),(short),,) _XBIOS #pragma inline d0=__lxsp((short),(short),) _XBIOS #pragma inline d0=__lxspls((short),(short),,,(short)) _XBIOS #pragma inline d0=__lxspp((short),(short),,) _XBIOS #pragma inline d0=__lxsqls((short),(short),,,(short)) _XBIOS #pragma inline d0=__lxss((short),(short),(short)) _XBIOS #pragma inline d0=__lxss((short),(short),(short)) _XBIOS #pragma inline d0=__lxssc((short),(short),(short),) _XBIOS #pragma inline d0=__lxssp((short),(short),(short),) _XBIOS #pragma inline d0=__lxssss((short),(short),(short),(short),(short)) _XBIOS #pragma inline d0=__lxsssss((short),(short),(short),(short),(short),(short)) _XBIOS #pragma inline d0=__lxsssss((short),(short),(short),(short),(short),(short)) _XBIOS #pragma inline d0=__lxv((short)) _XBIOS #pragma inline d0=__mxssssss((short),(short),(short),(short),(short),(short),(short)) _XBIOS #pragma inline d0=__mxv((short)) _XBIOS #pragma inline d0=__nxv((short)) _XBIOS #pragma inline d0=__pxs((short),(short)) _XBIOS #pragma inline d0=__pxv((short)) _XBIOS #pragma inline d0=__rxv((short)) _XBIOS #pragma inline d0=__sxcs((short),,(short)) _XBIOS #pragma inline d0=__sxcsp((short),,(short),) _XBIOS #pragma inline d0=__sxll((short),,) _XBIOS #pragma inline d0=__sxp((short),) _XBIOS #pragma inline d0=__sxppss((short),,,(short),(short)) _XBIOS #pragma inline d0=__sxppsssss((short),,,(short),(short),(short),(short),(short)) _XBIOS #pragma inline d0=__sxprsssssls((short),,,(short),(short),(short),(short),(short),,(short)) _XBIOS #pragma inline d0=__sxqls((short),,,(short)) _XBIOS #pragma inline d0=__sxs((short),(short)) _XBIOS #pragma inline d0=__sxsp((short),(short),) _XBIOS #pragma inline d0=__sxss((short),(short),(short)) _XBIOS #pragma inline d0=__sxsssd((short),(short),(short),(short),) _XBIOS #pragma inline d0=__sxv((short)) _XBIOS #define Initmous(a,b,c) __vxspf(0,a,b,c) #define Ssbrk(a) __lxs(1,a) #define Physbase() __pxv(2) #define Logbase() __pxv(3) #define Getrez() __sxv(4) #define Setscreen(a,b,c) __vxpps(5,a,b,c) #define Setpallete(a) __vxp(6,a) #define Setpalette(a) __vxp(6,a) #define Setcolor(a,b) __sxss(7,a,b) #define Floprd(a,b,c,d,e,f,g) __sxppsssss(8,a,b,c,d,e,f,g) #define Flopwr(a,b,c,d,e,f,g) __sxppsssss(9,a,b,c,d,e,f,g) #define Flopfmt(a,b,c,d,e,f,g,h,i) __sxprsssssls(10,a,b,c,d,e,f,g,h,i) #define Dbmsg(a,b,c) __vxssl(11,a,b,c) #define Midiws(a,b) __vxsc(12,a,b) #define Mfpint(a,b) __vxsf(13,a,b) #define Iorec(a) __pxs(14,a) #define Rsconf(a,b,c,d,e,f) __mxssssss(15,a,b,c,d,e,f) #define Keytbl(a,b,c) __exccc(16,a,b,c) #define Random() __lxv(17) #define Protobt(a,b,c,d) __vxplss(18,a,b,c,d) #define Flopver(a,b,c,d,e,f,g) __sxppsssss(19,a,b,c,d,e,f,g) #define Scrdmp() __vxv(20) #define Cursconf(a,b) __sxss(21,a,b) #define Settime(a) __vxm(22,a) #define Gettime() __mxv(23) #define Bioskeys() __vxv(24) #define Ikbdws(a,b) __vxsc(25,a,b) #define Jdisint(a) __vxs(26,a) #define Jenabint(a) __vxs(27,a) #define Giaccess(a,b) __sxss(28,a,b) #define Offgibit(a) __vxs(29,a) #define Ongibit(a) __vxs(30,a) #define Xbtimer(a,b,c,d) __vxsssf(31,a,b,c,d) #define Dosound(a) __vxc(32,a) #define Setprt(a) __sxs(33,a) #define Kbdvbase() __rxv(34) #define Kbrate(a,b) __sxss(35,a,b) #define Prtblk(a) __sxp(36,a) #define Vsync() __vxv(37) #define Supexec(a) __lxg(38,a) #define Puntaes() __vxv(39) #define Floprate(a,b) __sxss(41,a,b) #define DMAread(a,b,c,d) __lxlsps(42,a,b,c,d) #define DMAwrite(a,b,c,d) __lxlsps(43,a,b,c,d) #define Bconmap(a) __lxs(44,a) #define NVMaccess(a,b,c,d) __sxsssd(46,a,b,c,d) #define Metainit(a) __vxp(48,a) #define Minit(a) __vxp(48,a) #define Mopen(a,b) __sxsp(49,a,b) #define Mclose(a) __sxs(50,a) #define Mread(a,b,c,d) __lxspls(51,a,b,c,d) #define Mwrite(a,b,c,d) __lxsqls(51,a,b,c,d) #define Mseek(a,b) __lxsl(53,a,b) #define Mstatus(a,b) __lxsp(54,a,b) #define Blitmode(a) __sxs(64,a) #define EsetShift(a) __sxs(80,a) #define EgetShift() __sxv(81) #define EsetBank(a) __sxs(82,a) #define EsetColor(a,b) __sxss(83,a,b) #define EsetPalette(a,b,c) __vxssr(84,a,b,c) #define EgetPalette(a,b,c) __vxssr(85,a,b,c) #define EsetGray(a) __sxs(86,a) #define EsetSmear(a) __sxs(87,a) #define VsetScreen(a,b,c,d) __sxppss(5,a,b,c,d) #define Vsetmode(a) __sxs(88,a) #define Montype() __sxv(89) #define VgetMonitor() __sxv(89) #define VsetSync(a) __vxs(90,a) #define VgetSize(a) __lxs(91,a) #define VsetRGB(a,b,c) __vxsso(93,a,b,c) #define VgetRGB(a,b,c) __vxssn(94,a,b,c) #define Dsp_DoBlock(a,b,c,d) __vxqlpl(96,a,b,c,d) #define Dsp_BlkHandShake(a,b,c,d) __vxqlpl(97,a,b,c,d) #define Dsp_BlkUnpacked(a,b,c,d) __vxolnl(98,a,b,c,d) #define Dsp_InStream(a,b,c,d) __vxqlln(99,a,b,c,d) #define Dsp_OutStream(a,b,c,d) __vxqlln(100,a,b,c,d) #define Dsp_IOStream(a,b,c,d,e,f) __vxqpllln(101,a,b,c,d,e,f) #define Dsp_RemoveInterrupts(a) __vxs(102,a) #define Dsp_GetWordSize() __sxv(103) #define Dsp_Lock() __sxv(104) #define Dsp_Unlock() __vxv(105) #define Dsp_Available(a,b) __vxnn(106,a,b) #define Dsp_Reserve(a,b) __sxll(107,a,b) #define Dsp_LoadProg(a,b,c) __sxcsp(108,a,b,c) #define Dsp_ExecProg(a,b,c) __vxqls(109,a,b,c) #define Dsp_ExecBoot(a,b,c) __vxqls(110,a,b,c) #define Dsp_LodToBinary(a,b) __lxcp(111,a,b) #define Dsp_TriggerHC(a) __vxs(112,a) #define Dsp_RequestUniqueAbility() __sxv(113) #define Dsp_GetProgAbility() __sxv(114) #define Dsp_FlushSubroutines() __vxv(115) #define Dsp_LoadSubroutine(a,b,c) __sxqls(116,a,b,c) #define Dsp_InqSubrAbility(a) __sxs(117,a) #define Dsp_RunSubroutine(a) __sxs(118,a) #define Dsp_Hf0(a) __sxs(119,a) #define Dsp_Hf1(a) __sxs(120,a) #define Dsp_Hf2() __sxv(121) #define Dsp_Hf3() __sxv(122) #define Dsp_BlkWords(a,b,c,d) __vxtlrl(123,a,b,c,d) #define Dsp_BlkBytes(a,b,c,d) __vxcldl(124,a,b,c,d) #define Dsp_HStat() __bxv(125) #define Dsp_SetVectors(a,b) __vxfg(126,a,b) #define Dsp_MultBlocks(a,b,c,d) __vxllqp(127,a,b,c,d) #define Locksnd() __lxv(128) #define Unlocksnd() __lxv(129) #define Soundcmd(a,b) __lxss(130,a,b) #define Setbuffer(a,b,c) __lxspp(131,a,b,c) #define Setmode(a) __lxs(132,a) #define Settrack(a,b) __lxss(133,a,b) #define Setmontrack(a) __lxs(134,a) #define Setinterrupt(a,b) __lxss(135,a,b) #define Buffoper(a) __lxs(136,a) #define Dsptristate(a,b) __lxss(137,a,b) #define Gpio(a,b) __lxss(138,a,b) #define Devconnect(a,b,c,d,e) __lxsssss(139,a,b,c,d,e) #define Sndstatus(a) __lxs(140,a) #define Buffptr(a) __lxn(141,a) #define VsetMask(a,b,c) __vxlls(150,a,b,c) int _mediach(int); /* force GEMDOS media change */ #endif ndif */ #ifndef _FCNTL_H #define _FCNTL_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef __MODES_H #include <__modes.h> #endif #ifndef _SIZE_T #define _SIZE_T typedef unsigned long int size_t; #endif #ifndef _SSIZE_T #define _SSIZE_T typedef signed long ssize_t; #endif /* * * The following symbols are used for the "open" and "creat" functions. * They are generally UNIX-compatible, except for O_APPEND under MSDOS, * which has been moved in order to accomodate the file sharing flags * defined in MSDOS Version 3. * */ #define O_RDONLY 0 /* Read-only value (right byte of mode word) */ #define O_WRONLY 1 /* Write-only value */ #define O_RDWR 2 /* Read-write value */ #define O_NDELAY 0 /* Non-blocking I/O flag (N/A) */ #define O_APPEND 8 /* Append mode flag */ #define O_SYNC 0 /* Sync after writes (N/A) */ #define O_SDRW 0x10 /* Share mode: deny read/write */ #define O_SDW 0x20 //** * $Id: dirent.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * POSIX directory entry manipulation * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _DIRENT_H #define _DIRENT_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef __LIMITS_H #include <__limits.h> #endif struct dirent { __ino_t d_ino; __off_t d_off; short d_reclen; char d_name[__POSIX_NAME_MAX + 1]; }; typedef struct __dir DIR; DIR *opendir(const char *); struct dirent *readdir(DIR *); void rewinddir(DIR *); int closedir(DIR *); #if !defined(_POSIX_SOURCE) __off_t telldir(DIR *); void seekdir(DIR *, __off_t); #endif #endif */ #define F_DUPFD 0 /* Duplicate fildes */ #define F_GETFD 1 /* Get fildes flags */ #define F_SETFD 2 /* Set fildes flags */ #define F_GETFL 3 /* Get file flags */ #define F_SETFL 4 /* Set file flags */ #define F_GETLK 5 /* Get file lock */ #define F_SETLK 6 /* Set file lock */ #define F_SETLKW 7 /* Get/Set file lock */ struct flock { #define F_RDLCK O_RDONL/** * $Id: fcntl.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Level 1 I/O interface file * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _FCNTL_H #define _FCNTL_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef __MODES_H #include <__modes.h> #endif #ifndef _SIZE_T #define _SIZE_T typedef unsigned long int size_t; #endif #ifndef _SSIZE_T #define _SSIZE_T typedef signed long ssize_t; #endif /* * * The following symbols are used for the "open" and "creat" functions. * They are generally UNIX-compatible, except for O_APPEND under MSDOS, * which has been moved in order to accomodate the file sharing flags * defined in MSDOS Version 3. * */ #define O_RDONLY 0 /* Read-only value (right byte of mode word) */ #define O_WRONLY 1 /* Write-only value */ #define O_RDWR 2 /* Read-write value */ #define O_NDELAY 0 /* Non-blocking I/O flag (N/A) */ #define O_APPEND 8 /* Append mode flag */ #define O_SYNC 0 /* Sync after writes (N/A) */ #define O_SDRW 0x10 /* Share mode: deny read/write */ #define O_SDW 0x20 /* Share mode: deny write */ #define O_SDR 0x30 /* Share mode: deny read */ #define O_SDN 0x40 /* Share mode: deny none */ #define O_PVT 0x80 /* Private file (not passed to child) */ #define O_CREAT 0x0100 /* File creation flag */ #define O_TRUNC 0x0200 /* File truncation flag */ #define O_EXCL 0x0400 /* Exclusive access flag */ #define O_RAW 0x8000 /* Raw I/O flag (Lattice feature) */ #define O_BINARY O_RAW /* popular synonym */ #ifndef SEEK_SET #define SEEK_SET __SEEK_SET #endif #ifndef SEEK_CUR #define SEEK_CUR __SEEK_CUR #endif #ifndef SEEK_END #define SEEK_END __SEEK_END #endif /* * flags for fcntl() */ #define F_DUPFD 0 /* Duplicate fildes */ #define F_GETFD 1 /* Get fildes flags */ #define F_SETFD 2 /* Set fildes flags */ #define F_GETFL 3 /* Get file flags */ #define F_SETFL 4 /* Set file flags */ #define F_GETLK 5 /* Get file lock */ #define F_SETLK 6 /* Set file lock */ #define F_SETLKW 7 /* Get/Set file lock */ struct flock { #define F_RDLCK O_RDONLY #define F_WRLCK O_WRONLY #define F_UNLCK 3 short l_type; short l_whence; long l_start; long l_len; short l_pid; }; /* * External definitions */ int open(const char *, int, ...); int opene(const char *, int, int, char *); int creat(const char *, int); int fcntl(int,int,void *); #define creat(name, prot) open(name,O_WRONLY|O_TRUNC|O_CREAT|(prot & O_RAW),(prot & ~O_RAW)) #endif > indeterminate */ #define __SINGLE_MANT_DIG 24 /* # radix digits in float mantissa */ #define __DOUBLE_MANT_DIG 53 /* # radix digits in double mantissa */ #define __EXTEND_MANT_DIG 53 /* # radix digits in long double mant. */ #define __SINGLE_DIG 7 /* max decimal digits for float */ #define __DOUBLE_DIG 16 /* max decimal digits for double */ #define __EXTEND_DIG 16 /* max decimal digits for long double */ #define __SINGLE_MIN_EXP -126 /* min radix exponent for float */ #define __DOUBLE_MIN_EXP -1022 /* min radix ex/** * $Id: tos.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Turbo C compatability file * * (c) Copyright 1990, 1993 HiSoft **/ #ifndef _TOS_H #define _TOS_H #include typedef struct { char d_reserved[21]; char d_attrib; short d_time; short d_date; long d_length; char d_fname[14]; } DTA; #endif __SINGLE_MAX_EXP 128 /* max radix exponent for float */ #define __DOUBLE_MAX_EXP 1024 /* max radix exponent for double */ #define __EXTEND_MAX_EXP 1024 /* max radix exponent for double long */ #define __SINGLE_MAX_10_EXP 38 /* max decimal exponent for float */ #define __DOUBLE_MAX_10_EXP 308 /* max decimal exponent for double */ #define __EXTEND_MAX_10_EXP 308 /* max decimal exponent for long double */ #define __SINGLE_MAX 3.40282347E+38 #define __DOUBLE_MAX 1.797693134862317E+308 #define __EXTEND_MAX 1.797693134862317E+308 #define __SINGLE_EPSILON 1.19209290E-07 #define __DOUBLE_EPSILON 2.2204460492503147E-16 #define __EXTEND_EPSILON 2.2204460492503147E/** * $Id: error.h,v 1.2 1993/11/14 14:51:16 AGK Rel $ * * Defunct header file for backward compatability * * (c) Copyright 1989, 1993 HiSoft **/ #include IG __SINGLE_MANT_DIG #define DBL_MANT_DIG __SINGLE_MANT_DIG #define LDBL_MANT_DIG __SINGLE_MANT_DIG #define FLT_DIG __SINGLE_DIG #define DBL_DIG __SINGLE_DIG #define LDBL_DIG __SINGLE_DIG #define FLT_MIN_EXP __SINGLE_MIN_EXP #define DBL_MIN_EXP __SINGLE_MIN_EXP #define LDBL_MIN_EXP __SINGLE_MIN_EXP #define FLT_MIN_10_EXP __SINGLE_MIN_10_EXP #define DBL_MIN_10_EXP __SINGLE_MIN_10_EXP #define LDBL_MIN_10_EXP __SINGLE_MIN_10_EXP #define FLT_MAX_EXP __SINGLE_MAX_EXP #define DBL_MAX_EXP __SINGLE_MAX_EXP #define LDBL_MAX_EXP __SINGLE_MAX_EXP #define FLT_MAX_10_EXP __SINGLE_MAX_10_EXP #define DBL_MAX_10_EXP __SINGLE_MAX_10_EXP #define LDBL_MAX_10_EXP __SINGLE_MAX_10_EXP #define FLT_MAX __SINGLE_MAX #define DBL_MAX __SINGLE_MAX #define LDBL_MAX __SINGLE_MAX #define FLT_EPSILON __SINGLE_EPSIL/** * $Id: acc.h,v 1.1 1993/11/14 14:42:42 AGK Rel $ * * Desk Accessory support definitions * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _ACC_H #define _ACC_H #ifndef _SIZE_T #define _SIZE_T typedef unsigned long int size_t; #endif /* * STACK macro - define a size and storage area for a DA's stack; must be used * globally (it will fail if a local attempt is made) */ #define STACK(x) size_t __far _STACK_HEAP[(x + sizeof(size_t) - 1) / sizeof(size_t)]; \ extern size_t _STACK = sizeof(_STACK_HEAP) void _addheap(void *,size_t); #endif N_10_EXP #define DBL_MIN_10_EXP __DOUBLE_MIN_10_EXP #define LDBL_MIN_10_EXP __DOUBLE_MIN_10_EXP #define FLT_MAX_EXP __DOUBLE_MAX_EXP #define DBL_MAX_EXP __DOUBLE_MAX_EXP #define LDBL_MAX_EXP __DOUBLE_MAX_EXP #define FLT_MAX_10_EXP __DOUBLE_MAX_10_EXP #define DBL_MAX_10_EXP __DOUBLE_MAX_10_EXP #define LDBL_MAX_10_EXP __DOUBLE_MAX_10_EXP #define FLT_MAX __DOUBLE_MAX #define DBL_MAX __DOUBLE_MAX #define LDBL_MAX __DOUBLE_/** * $Id: cpx.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * XControl extension definitions * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _CPX_H #define _CPX_H #include typedef struct { short x; short y; short buttons; short kstate; } MRETS; #ifndef _MFORM_T #define _MFORM_T typedef struct mfstr { short mf_xhot; short mf_yhot; short mf_nplanes; short mf_fg; short mf_bg; short mf_mask[16]; short mf_data[16]; } MFORM; #endif typedef struct { short handle; short booting; short version; short SkipRshFix; char *reserve1; char *reserve2; void (* __stdargs rsh_fix)(short,short,short,short,OBJECT *,TEDINFO *, char *,ICONBLK *,BITBLK *,long *,long *,long *,void *); void (* __stdargs rsh_obfix)(OBJECT *,short); short (* __stdargs Popup)(char *[],short,short,short,GRECT *, GRECT *); void (* __stdargs Sl_size)(OBJECT *,short,short,short,short,short,short); void (* __stdargs Sl_x)(OBJECT *,short,short,short,short,short,void (* __saveds)(void)); void (* __stdargs Sl_y)(OBJECT *,short,short,short,short,short,void (* __saveds)(void)); void (* __stdargs Sl_arrow)(OBJECT *,short,short,short,short,short,short,short *,short,void (* __saveds)(void)); void (* __stdargs Sl_dragx)(OBJECT *,short,short,short,short,short *,void (* __saveds)(void)); void (* __stdargs Sl_dragy)(OBJECT *,short,short,short,short,short *,void (* __saveds)(void)); short (* __stdargs Xform_do)(OBJECT *,short,short *); GRECT *(* __stdargs GetFirstRect)(GRECT *); GRECT *(* __stdargs GetNextRext)(void); void (* __stdargs Set_Evnt_Mask)(short,MOBLK *,MOBLK *,long); #define SAVE_DEFAULTS 0 #define MEM_ERR 1 #define FILE_ERR 2 #define FILE_NOT_FOUND 3 short (* __stdargs XGen_Alert)(short); short (* __stdargs CPX_Save)(void *,long); void *(* __stdargs Get_Buffer)(void); short (* __stdargs getcookie)(long cookie,long *p_value); short Country_Code; #define MFSAVE 1 #define MFRESTORE 0 void (* __stdargs MFsave)(short saveit,MFORM *mf); } XCPB; typedef struct { short (* __saveds __stdargs cpx_call)(GRECT *); void (* __saveds __stdargs cpx_draw)(GRECT *); void (* __saveds __stdargs cpx_wmove)(GRECT *); void (* __saveds __stdargs cpx_timer)(short *); void (* __saveds __stdargs cpx_key)(short,short,short *); void (* __saveds __stdargs cpx_button)(MRETS *,short,short *); void (* __saveds __stdargs cpx_m1)(MRETS *,short *); void (* __saveds __stdargs cpx_m2)(MRETS *mrets,short *); short (* __saveds __stdargs cpx_hook)(short,short *,MRETS *,short *,short *); void (* __saveds __stdargs cpx_close)(short); } CPXINFO; /* CPX header */ typedef struct _cpxhead { #define CPXMAGIC 100 /* magic number */ unsigned short magic; #define CPX_RESIDENT 4 /* RAM resident flag */ #define CPX_BOOTINIT 2 /* boot initialization flag */ #define CPX_SETONLY 1 /* set only CPX flag */ short flags; long cpx_id; /* CPX ID value */ unsigned short cpx_version; /* CPX version number */ char i_text[14]; /* icon text */ unsigned short sm_icon[48]; /* icon bitmap - 32x24 pixels */ unsigned short i_color; /* icon colour */ char title_txt[18]; /* title for CPX entry */ unsigned short t_color; /* tedinfo field for colour */ char buffer[64]; /* buffer for RAM storage */ char reserved[306]; /* reserved for expansion */ } CPXHEAD; #endif n_max(int,int); #define max(a,b) __builtin_max(a,b) #endif int rc_intersect(const GRECT *,GRECT *); #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: cookie.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * BIOS cookie interface header file * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _COOKIE_H #define _COOKIE_H /* structure definition for user cookie access */ typedef struct { long cookie; long value; } COOKIE; #ifndef _p_cookies #define _p_cookies (*(COOKIE **)0x5a0) #endif extern long __cookie; /* cookie number of matching cookie from getcookie */ /* standard system cookies */ #define _CPU 0x5f435055 #define _VDO 0x5f56444f #define _SND 0x5f534e44 #define _MCH 0x5f4d4348 #define _SWI 0x5f535749 #define _FRB 0x5f465242 #define _FPU 0x5f465055 #define _FDC 0x5f464443 #define _FLK 0x5f464c4b #define _NET 0x5f4e4554 int (getcookie)(long, long *); int (putcookie)(long, long); #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: varargs.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * UNIX variable argument mechanism * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _VARARGS_H #define _VARARGS_H #ifndef _VA_LIST #define _VA_LIST typedef char *va_list; #endif #define va_dcl va_list va_alist; #define va_start(a) a=(va_list)&va_alist #define va_arg(a,b) ((b *)(a+=sizeof(b)))[-1] #define va_end(ap) #endif va_arg(a,b) ((b *)(a+=sizeof(b)))[-1] #define va_end(ap) #endif #endif ions */ long g_ssize[GEMNSEG]; /* size of sections */ long g_reserved; /* zero */ #define GF_FAST 1 /* fastload bit */ #define GF_TTMALLOC 2 /* Malloc from TT RAM */ #define GF_LOAD 4 /* load into TT RAM */ #define GF_TPASHIFT 28 /* bits to shift for TPA size field */ long g_flags; /* loadbits */ short g_relflag; /* non-zero if no relocation */ }; /* * GEMDOS symbol */ struct gemsym { char gs_name[8]; /* name */ #define GS_HISOFT 0x0048 /* HiSoft extended */ #define GS_ARCHIVE 0x0040 //** * $Id: gemlib.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Lattice 3 compatability file (obsolete) * * (c) Copyright 1989, 1993 HiSoft **/ #include #include rnal */ #define GS_EQREG 0x1000 /* equated register */ #define GS_GLOBL 0x2000 /* global */ #define GS_EQU 0x4000 /* equated */ #define GS_DEF 0x8000 /* defined */ unsigned short gs_type; /* type */ long gs_value; /* value */ }; /* * GEMDOS executable relocation types */ #define GR_ABS 0 /* absolute */ #define GR_DATA 1 /* data relative */ #define GR_TEXT 2 /* text relative */ #define GR_BSS 3 /* BSS relative */ #define GR_SYM 4 /* symbol */ #define GR_LONG 5 /* first word of longword fixup */ #define GR_PC 6 /* pc relative */ #define GR_INST 7 /* first word of instruction */ #define GR_MASK 7 /* mask of relocation types */ #define GR_SHIFT 3 /* amount to shift */ /* * GEMDOS archive format */ #define GEMAMAGIC 0xff65 struct gemahdr { char ga_n/** * $Id: ctype.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Character typing macros * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _CTYPE_H #define _CTYPE_H #include /* * * This header file defines various ASCII character manipulation macros, * as follows: * * isalpha(c) non-zero if c is alpha * isupper(c) non-zero if c is upper case * islower(c) non-zero if c is lower case * isdigit(c) non-zero if c is a digit (0 to 9) * isxdigit(c) non-zero if c is a hexadecimal digit (0 to 9, A to F, * a to f) * isspace(c) non-zero if c is white space * ispunct(c) non-zero if c is punctuation * isalnum(c) non-zero if c is alpha or digit * isprint(c) non-zero if c is printable (including blank) * isgraph(c) non-zero if c is graphic (excluding blank) * iscntrl(c) non-zero if c is control character * isascii(c) non-zero if c is ASCII * iscsym(c) non-zero if valid character for C symbols * iscsymf(c) non-zero if valid first character for C symbols * */ #define _U 1 /* upper case flag */ #define _L 2 /* lower case flag */ #define _N 4 /* number flag */ #define _S 8 /* space flag */ #define _P 16 /* punctuation flag */ #define _C 32 /* control character flag */ #define _B 64 /* blank flag */ #define _X 128 /* hexadecimal flag */ extern char __ctype[257]; /* character type table */ #define isalnum(c) (__ctype[(c)+1]&(_U|_L|_N)) #define isalpha(c) (__ctype[(c)+1]&(_U|_L)) #define iscntrl(c) (__ctype[(c)+1]&_C) #define isdigit(c) (__ctype[(c)+1]&_N) #define isgraph(c) (__ctype[(c)+1]&(_P|_U|_L|_N)) #define islower(c) (__ctype[(c)+1]&_L) #define isprint(c) (__ctype[(c)+1]&(_P|_U|_L|_N|_B)) #define ispunct(c) (__ctype[(c)+1]&_P) #define isspace(c) (__ctype[(c)+1]&_S) #define isupper(c) (__ctype[(c)+1]&_U) #define isxdigit(c) (__ctype[(c)+1]&_X) #ifndef _ANSI #define isascii(c) ((unsigned)(c)<=127) #define iscsym(c) (isalnum(c)||(((c)&127)==0x5f)) #define iscsymf(c) (isalpha(c)||(((c)&127)==0x5f)) #define _toupper(c) ((c)-'a'+'A') #define _tolower(c) ((c)+'a'-'A') #define toascii(c) ((c)&127) #endif #endif ((c)&127) #endif #endif X_INEX FP_X_INEX2 /* inexact operation (accrued) */ FP_X_INEX1 = 0x0100 /* inexact decimal input */ } fp_except; fp_except fpgetmask(void); fp_except fpsetmask(fp_except); fp_except fpgetsticky(void); fp_except fpsetsticky(fp_except); #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: portab.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Various portability definitions * * (c) Copyright 1989, 1991, 1993 HiSoft **/ #ifndef _PORTAB_H #define _PORTAB_H #ifndef __TYPES_H #include <__types.h> #endif #if defined(_UNSIGNEDCHAR) #define UCHARA 1 #else #undef UCHARA #endif #define PORTAB_TYPEDEFS 1 #define ANSI_C 1 #define STDARGS __stdargs __saveds #define HIBIT_1ST 1 typedef signed char BYTE; typedef unsigned char UBYTE; #ifndef _WORD_T #define _WORD_T typedef signed short WORD; #endif typedef unsigned short UWORD; typedef signed long LONG; typedef unsigned long ULONG; typedef void VOID; typedef int BOOLEAN; typedef void *VOIDP; #undef __PROTO #ifndef __NOPROTO #define __PROTO(a) a #else #define __PROTO(a) () #endif typedef int (*CMPFUNC)(const void *,const void *); typedef void (*VOIDFUNC)(void); #define REG register #define LOCAL auto #define EXTERN extern #define MLOCAL static #define GLOBAL /* */ #define TRUE (!0) #define FALSE (0) #define YES TRUE #define NO FALSE #define SUCCESS TRUE #define FAILURE FALSE #define EOF (-1) #define NULLPTR NULL #define NULLFUNC ((void(*)(void))0) #ifndef NULL #define NULL __NULL #endif #endif )0) #ifndef NULL #define NULL __NULL #endif #endif a file being accessed via the level 1 I/O functions. */ struct UFB { short ufbflg; /* flags */ short ufbfh; /* file handle */ }; #define NUFBS 32 /* number of UFBs defined */ /* * * UFB.ufbflg definitions * */ #define UFB_RA 1 /* reading is allowed */ #define UFB_WA 2 /* writing is allowed */ #define UFB_NC 4 /* no close */ #define UFB_FH 16 /* file handle */ /* * * External definitions * */ extern struct UFB _ufbs[NUFBS]; extern int _iomode,_nufbs,__umask; struct UFB *chkufb(int); #endif öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: __limits.h,v 1.1 1993/11/14 14:42:42 AGK Rel $ * * Library limit definitions * * (c) Copyright 1992 HiSoft **/ #define __LIMITS_H /* POSIX types */ #define __POSIX_NAME_MAX 31 4; 1.4 date 92.08.03.12.12.22; author AGK; state Exp; branches; next 1.3; 1.3 date 92.07.01.10.30.12; author AGK; state Exp; branches; next 1.2; 1.2 date 92.04.23.10.56.42; author AGK; state Exp; branches; next 1.1; 1.1 date 92.03.26.15.25.32; author AGK; state Exp; branches; next ; desc @Interface to MiNT @ 1.6 log @Updated for 0.98, 0.99 kernels @ text @/** * $Header: D:\LC\HEADERS\mintbind.h,v 1.5 1992/08/07 11:35:18 AGK Rel $ * * Interface to MiNT * * Copyright (c) 1992 HiSoft **/ #ifndef _MINTBIND_H #define _MINTBIND_H #include #define Syield() __sgv(0xff) #define Fpipe(a) __sgr(0x100,a) #define Fcntl(a,b,c) __sgsls(0x104,a,b,c) #define Finstat(a) __lgs(0x105,a) #define Foutstat(a) __lgs(0x106,a) #define Fgetchar(a,b) __lgss(/** * $Id: __modes.h,v 1.1 1993/11/14 14:42:42 AGK Rel $ * * File mode bits * * (c) Copyright 1992, 1993 HiSoft **/ #define __MODE_H #define _S_IFMT 0170000 /* mask to select file type */ #define _S_IFDIR 0040000 /* directory file */ #define _S_IFCHR 0020000 /* BIOS special file */ #define _S_IFREG 0100000 /* regular file */ #define _S_IFBLK 0060000 /* block special file */ #define _S_IFIFO 0120000 /* FIFO */ #if !defined(_POSIX_SOURCE) \ || defined(_BSD) #define _S_IMEM 0140000 /* memory region or process */ #define _S_IFLNK 0160000 /* symbolic link */ #define _S_IFSOCK 0140000 /* socket */ #define S_IFMT _S_IFMT #define S_IFDIR _S_IFDIR #define S_IFCHR _S_IFCHR #define S_IFREG _S_IFREG #define S_IFIFO _S_IFIFO #define S_IFBLK _S_IFBLK #define S_IMEM _S_IMEM #define S_IFLNK _S_IFLNK #define S_IFSOCK _S_IFSOCK #endif #define S_ISDIR(f) (((f) & _S_IFMT) == S_IFDIR) #define S_ISCHR(f) (((f) & _S_IFMT) == S_IFCHR) #define S_ISBLK(f) (((f) & _S_IFMT) == S_IFBLK) #define S_ISREG(f) (((f) & _S_IFMT) == S_IFREG) #define S_ISFIFO(f) (((f) & _S_IFMT) == S_IFIFO) #if !defined(_POSIX_SOURCE) \ || defined(_BSD) #define S_ISLNK(f) (((f) & _S_IFMT) == S_IFLNK) #define S_ISMEM(f) (((f) & _S_IFMT) == S_IFMEM) #define S_ISSOCK(f) (((f) & _S_IFMT) == S_IFSOCK) #endif /* special bits: setuid, setgid, sticky bit */ #define S_ISUID 04000 #define S_ISGID 02000 #if !defined(_POSIX_SOURCE) \ || defined(_V7) #define S_ISVTX 01000 #endif /* file access modes for user, group, and other*/ #define S_IRWXU 0700 #define S_IRUSR 0400 #define S_IWUSR 0200 #define S_IXUSR 0100 #define S_IRWXG 0070 #define S_IRGRP 0040 #define S_IWGRP 0020 #define S_IXGRP 0010 #define S_IRWXO 0007 #define S_IROTH 0004 #define S_IWOTH 0002 #define S_IXOTH 0001 #if !defined(_POSIX_SOURCE) \ || defined(_LATTICE) #define S_IREAD S_IRUSR #define S_IWRITE S_IWUSR #define S_IEXEC S_IXUSR #endif e Dgetcwd(a,b,c) __lgdss(0x13b,a,b,c) #define Salert(a) __lgc(0x13c,a) #def/** * $Id: __types.h,v 1.1 1993/11/14 14:42:42 AGK Rel $ * * Library type definitions * * (c) Copyright 1992, 1993 HiSoft **/ #define __TYPES_H /* ANSI X3.159-1989 types */ typedef long __clock_t; typedef long int __ptrdiff_t; typedef unsigned long __size_t; typedef long __time_t; typedef unsigned char __wchar_t; typedef char *__va_list; #define __NULL ((void *) 0) #define __SEEK_SET (0) #define __SEEK_CUR (1) #define __SEEK_END (2) #define __EOF (-1) /* ISO/IEC 9945-1:1990 types */ typedef long __off_t; typedef short __nlink_t; typedef short __pid_t; typedef signed long __ssize_t; typedef unsigned short __dev_t; typedef unsigned short __gid_t; typedef unsigned short __mode_t; typedef unsigned short __uid_t; typedef unsigned long __ino_t; typedef unsigned long __sigset_t; uid(a) __sgs(0x110,a) #define Pkill(a,b) __sgss(0x111,a,b) d31 3 a33 3 #define Pvfork() __sgv(0x113) #define Pgetgid() __sgv(0x114) #define Psetgid(a) __sgs(0x115,a) d36 2 a37 2 #defi/** * $Id: aes.h,v 1.2 1993/11/14 14:26:10 AGK Rel $ * * AES interface header file * * (c) Copyright 1992 HiSoft **/ #ifndef _AES_H #define _AES_H #ifndef __TYPES_H #include <__types.h> #endif extern void *_AESpb[6]; extern short _AEScontrol[5]; extern short _AESglobal[15]; extern short _AESintin[16]; extern short _AESintout[7]; extern void *_AESaddrin[3]; extern void *_AESaddrout[1]; /* Application library definitions */ typedef struct { long ap_event; long ap_value; } EVNTREC; int appl_init(void); int appl_read(int,int,void *); int appl_write(int,int,void *); int appl_find(const char *); int appl_tplay(const void *,int,int); int appl_trecord(void *,int); int appl_search(int,char *,short *,short *); int appl_exit(void); int appl_getinfo(int, short *, short *, short *, short *); /* Event library definitions */ #define MU_KEYBD 0x0001 #define MU_BUTTON 0x0002 #define MU_M1 0x0004 #define MU_M2 0x0008 #define MU_MESAG 0x0010 #define MU_TIMER 0x0020 #define K_RSHIFT 0x0001 #define K_LSHIFT 0x0002 #define K_CTRL 0x0004 #define K_ALT 0x0008 #define MN_SELECTED 10 #define WM_REDRAW 20 #define WM_TOPPED 21 #define WM_CLOSED 22 #define WM_FULLED 23 #define WM_ARROWED 24 #define WM_HSLID 25 #define WM_VSLID 26 #define WM_SIZED 27 #define WM_MOVED 28 #define WM_NEWTOP 29 #define WM_UNTOPPED 30 #define WM_ONTOP 31 #define WM_BOTTOM 33 #define WM_ICONIFY 34 #define WM_UNICONIFY 35 #define WM_ALLICONIFY 36 #define WM_TOOLBAR 37 #define AC_OPEN 40 #define AC_CLOSE 41 #define AP_TERM 50 #define AP_TFAIL 51 #define AP_RESCHG 57 #define SHUT_COMPLETED 60 #define RESCH_COMPLETED 61 #define AP_DRAGDROP 63 #define SH_WDRAW 72 #define CH_EXIT 80 #define CT_NEWTOP 52 #define CT_KEY 53 #define WA_UPPAGE 0 #define WA_DNPAGE 1 #define WA_UPLINE 2 #define WA_DNLINE 3 #define WA_LFPAGE 4 #define WA_RTPAGE 5 #define WA_LFLINE 6 #define WA_RTLINE 7 typedef struct moblk { short m_out; short m_x; short m_y; /** * $Id: fctype.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Define function forms of "is" and "to" operations (obsolete) * * (c) Copyright 1990, 1993 HiSoft **/ #ifndef _FCTYPE_H #define _FCTYPE_H #undef isalnum #undef isalpha #undef iscntrl #undef isdigit #undef isgraph #undef islower #undef isprint #undef ispunct #undef isspace #undef isupper #undef isxdigit #undef tolower #undef toupper int isalnum(int); int isalpha(int); int iscntrl(int); int isdigit(int); int isgraph(int); int islower(int); int isprint(int); int ispunct(int); int isspace(int); int isupper(int); int isxdigit(int); int tolower(int); int toupper(int); #ifndef _ANSI /* * Extensions to the ANSI standard. */ #undef isascii #undef iscsym #undef iscsymf #undef toascii int isascii(int); int iscsym(int); int iscsymf(int); int toascii(int); #endif #endif { long ld_resvd1; struct la_font *ld_cur_font; /* pointer to current font header */ short ld_resvd2[23]; short ld_/** * $Id: vdi.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * VDI interface header file * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _VDI_H #define _VDI_H extern short *_VDIpb[5]; extern short _VDIcontrl[]; /* default 11 */ extern short _VDIintin[]; /* default 256 */ extern short _VDIintout[]; /* default 128 */ extern short _VDIptsin[]; /* default 8 */ extern short _VDIptsout[]; /* default 10 */ /** * Speedo type definitions **/ typedef signed char fix7; typedef unsigned char ufix8; typedef short fix15; typedef unsigned short ufix16; typedef long fix31; typedef unsigned long ufix32; typedef struct fdbstr { void *fd_addr; short fd_w; short fd_h; short fd_wdwidth; short fd_stand; short fd_nplanes; short fd_r1; short fd_r2; short fd_r3; } MFDB, FDB; /* Control library definitions */ void v_opnwk(short *,short *,short *); void v_clswk(int); void v_opnvwk(short *,short *,short *); void v_clsvwk(int); void v_clrwk(int); void v_updwk(int); int vst_load_fonts(int,int); void vst_unload_fonts(int,int); void vs_clip(int,int,short *); int v_bez_con(int,int); void v_bez_qual(int,int,short *); void v_set_app_buff(void *,int); int v_flushcache(int); int v_loadcache(int,const char *,int); int v_savecache(int,const char *); void v_getoutline(int, int, short *, char *, int, short *); void vst_scratch(int,int); void vst_error(int,int,short *); int v_bez_on(int); int v_bez_off(int); void v_xopnwk(short *, short *, short *, int, int, void **); void v_xupdwk(int, void **, int, short *); void v_opnbm(short *, MFDB *, short *, short *); void v_clsbm(int); /* Output library definitions */ void v_pline(int,int,short *); void v_pmarker(int,int,short *); void v_gtext(int,int,int,const char *); void v_ftext(int,int,int,const char *); void v_fillarea(int,int,short *); void v_cellarray(int,short *,int,int,int,int,short *); void v_contourfill(int,int,int,int); void vr_recfl(int,short *); void v_bar(int,short *); void v_arc(int,int,int,int,int,int); void v_pieslice(int,int,int,int,int,int); void v_circle(int,int,int,int); void v_ellarc(int,int,int,int,int,int,int); void v_ellpie(int,int,int,int,int,int,int); void v_ellipse(int,int,int,int,int); void v_rbox(int,short *); void v_rfbox(int,short *); void v_justified(int,int,int,const char *,int,int,int); void v_bez(int,int,const short *,const char *,short *,short *,short *); void v_bez_fill(int,int,const short *,const char *,short *,short *,short *); void v_ftext_offset(int, int, int, const char *, const short *); void v_wc_ftext(int, int, int, const short *); void v_wc_ftext_offset(int, int, int, const short *, const short *); void v_wc_gtext(int, int, int, const short *); void v_wc_justified(int, int, int, const short *, int, int, int); void v_ftext16(int, int, int, const short *); void v_ftext_offset16(int, int, int, const short *, const short *); void v_gtext16(int, int, int, const short *); void v_justified16(int, int, int, const short *, int, int, int); /* Attribute library definitions */ #define MD_REPLACE 1 #define MD_TRANS 2 #define MD_XOR 3 #define MD_ERASE 4 #define FIS_HOLLOW 0 #define HOLLOW FIS_HOLLOW #define FIS_SOLID 1 #define SOLID FIS_SOLID #define FIS_PATTERN 2 #define PATTERN FIS_PATTERN #define FIS_HATCH 3 #define HATCH FIS_HATCH #define FIS_USER 4 #define UDFILLSTYLE FIS_USER #define ALL_WHITE 0 /* bit blt rules */ #define S_AND_D 1 #define S_AND_NOTD 2 #define S_ONLY 3 #define NOTS_AND_D 4 #define D_ONLY 5 #define S_XOR_D 6 #define S_OR_D 7 #define NOT_SORD 8 #define NOT_SXORD 9 #define NOT_D 10 #define S_OR_NOTD 11 #define NOT_S 12 #define NOTS_OR_D 13 #define NOT_SANDD 14 #define ALL_BLACK 15 /*#define SOLID 1*/ /* polyline line styles */ #define LDASHED 2 #define LONGDASH LDASHED #define DOTTED 3 #define DOT DOTTED #define DASHDOT 4 #define DASHED 5 #define DASH DASHED #define DASHDOTDOT 6 #define DASH2DOT DASHDOTDOT #define USERLINE 7 #define SQUARE 0 #define SQUARED SQUARE #define ARROWED 1 #define ROUND 2 #define ROUNDED ROUND #define DOTS 3 /* fill patterns */ #define GRID 6 #define BRICKS 9 #define WEAVE 16 #define THICKENED 0x0001 /* text effects */ #define SHADED 0x0002 #define SKEWED 0x0004 #define UNDERLINED 0x0008 #define OUTLINE 0x0010 #define SHADOW 0x0020 int vswr_mode(int,int); void vs_color(int,int,const short *); int vsl_type(int,int); void vsl_udsty(int,int); int vsl_width(int,int); int vsl_color(int,int); void vsl_ends(int,int,int); int vsm_type(int,int); int vsm_height(int,int); int vsm_color(int,int); void vst_height(int,int,short *,short *,short *,short *); int vst_point(int,int,short *,short *,short *,short *); int vst_rotation(int,int); int vst_font(int,int); int vst_color(int,int); int vst_effects(int,int); void vst_alignment(int,int,int,short *,short *); int vsf_interior(int,int); int vsf_style(int,int); int vsf_color(int,int); int vsf_perimeter(int,int); void vsf_udpat(int,const void *,int); int vst_arbpt(int,int,short *,short *,short *,short *); int vst_setsize(int,int,short *,short *,short *,short *); int vst_skew(int,int); fix31 vst_arbpt32(int, fix31, short *, short *, short *, short *); fix31 vst_setsize32(int, fix31, short *, short *, short *, short *); void vst_charmap(int, int); void vst_kern(int, int, int, short *, short *); /* Raster library definitions */ void vro_cpyfm(int,int,short *,MFDB *,MFDB *); void vrt_cpyfm(int,int,short *,MFDB *,MFDB *,short *); void vr_trnfm(int,MFDB *,MFDB *); void v_get_pixel(int,int,int,short *,short *); /* Input library definitions */ #ifndef _MFORM_T #define _MFORM_T typedef struct mfstr { short mf_xhot; short mf_yhot; short mf_nplanes; short mf_fg; short mf_bg; short mf_mask[16]; short mf_data[16]; } MFORM; #endif int vsin_mode(int,int,int); void vrq_locator(int,int,int,short *,short *,short *); int vsm_locator(int,int,int,short *,short *,short *); void vrq_valuator(int,int,short *,short *); void vsm_valuator(int,int,short *,short *,short *); void vrq_choice(int,int,short *); int vsm_choice(int,short *); void vrq_string(int,int,int,short *,char *); int vsm_string(int,int,int,short *,char *); void vsc_form(int,MFORM *); void vex_timv(int,int (*)(void),int (**)(void),short *); void v_show_c(int,int); void v_hide_c(int); void vq_mouse(int,short *,short *,short *); void vex_butv(int,int (*__regargs)(short),int (**__regargs)(short)); void vex_motv(int,int (*__regargs)(short,short),int (**__regargs)(short,short)); void vex_curv(int,int (*__regargs)(short,short),int (**__regargs)(short,short)); void vq_key_s(int,short *); /* Inquire library definitions */ void vq_extnd(int,int,short *); void vq_color(int,int,int,short *); void vql_attributes(int,short *); void vqm_attributes(int,short *); void vqf_attributes(int,short *); void vqt_attributes(int,short *); void vqt_extent(int,const char *,short[8]); void vqt_f_extent(int, const char *, short[8]); int vqt_width(int,int,short *,short *,short *); int vqt_name(int,int,char *); int vqt_f_name(int,int,char *,short *); void vq_cellarray(int,short *,int,int,short *,short *,short *,short *); void vqin_mode(int,int,short *); void vqt_fontinfo(int,short *,short *,short *,short *,short *); void vqt_advance(int,int,short *,short *,short *,short *); void vqt_cachesize(int,int,long *); void vqt_devinfo(int,int,short *,char *); void vqt_get_table(int,short **); void v_getbitmap_info(int, int, fix31 *, fix31 *, fix31 *, fix31 *, short *, short *, short **); void vqt_advance32(int, int, fix31 *, fix31 *); void vqt_fontheader(int, void *, char *); void vqt_pairkern(int, int, int, fix31 *, fix31 *); void vqt_trackkern(int, fix31 *, fix31 *); void vqt_wc_extent(int, const short *, short *); void vqt_wc_f_extent(int, const short *, short *); void vqt_extent16(int, const short *, short *); void vqt_f_extent16(int, const short *, short *); void vq_xextnd(int, int, short *, int, int); void vq_scrninfo(int, short *); /* Escape library definitions */ void vq_chcells(int,short *,short *); void v_exit_cur(int); void v_enter_cur(int); void v_curup(int); void v_curdown(int); void v_curright(int); void v_curleft(int); void v_curhome(int); void v_eeos(int); void v_eeol(int); void vs_curaddress(int,int,int); void v_curtext(int,const char *); void v_rvon(int); void v_rvoff(int); void vq_curaddress(int,short *,short *); int vq_tabstatus(int); void v_hardcopy(int); void v_dspcur(int,int,int); void v_rmcur(int); void v_form_adv(int); void v_output_window(int,short *); void v_clear_disp_list(int); void v_bit_image(int,const char *,int,int,int,int,int,short *); void vq_scan(int,short *,short *,short *,short *,short *); void v_alpha_text(int,const char *); int vs_palette(int,int); void vqp_films(int,char *); void vqp_state(int,short *,short *,short *,short *,short *,short *); void vsp_state(int,int,int,int,int,int,const short *); void vsp_save(int); void vsp_message(int); int vqp_error(int); void v_meta_extents(int,int,int,int,int); void v_write_meta(int,int,short *,int,short *); void vm_filename(int,const char *); void v_pgcount(int,int); /* Metafile sub-opcodes for GEM output */ void vm_pagesize(int,int,int); void vm_coords(int,int,int,int,int); /* Atari specific escape library defintions */ void v_offset(int,int); void v_font(int,void *); /* GDOS detection functions */ int vq_gdos(void); #define GDOS_NONE 0xfffffffe /* no GDOS */ #define GDOS_FSM 0x5f46534d /* _FSM */ #define GDOS_FNT 0x5f464e54 /* _FNT */ unsigned long vq_vgdos(void); #ifndef __NO_VDI_DEFINES #pragma inline d0=vq_vgdos() {register d2,a2; "70fe4e42";} #ifdef _SHORTINT #pragma inline d0=vq_gdos() {register d2,a2; "70fe4e42548056c0";} #else #pragma inline d0=vq_gdos() {register d2,a2; "70fe4e425480";} #endif #endif #endif ->ld_fnt_wr #define V_X_MAX ((LA_EXT *)la_info.li_a0-1)->ld_x_max #define V_OFF_AD ((LA_EXT *)la_info.li_a0-1)->ld_off_ad #define V_STATUS ((LA_EXT *)la_info.li_a0-1)->ld_status #define V_Y_MAX ((LA_EXT *)la_info.li_a0-1)->ld_y_max #define BYTES_LIN ((LA_EXT *)la_info.li_a0-1)->/** * $Id: stdarg.h,v 1.2 1993/11/14 14:43:52 AGK Rel $ * * ANSI variable argument mechanism * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _STDARG_H #define _STDARG_H #ifndef __TYPES_H #include <__types.h> #endif typedef __va_list va_list; #define __va(a) ((sizeof(a) + 1) & ~1ul) #define va_start(a,b) ((void)((a) = (va_list)&(b) + __va(b))) #define va_arg(a,b) (*(b *)(((a) += __va(b)) - __va(b))) #define va_end(a) ((void)0) #endif (void)0) #endif void); void lineaa(void); void lineab(void); void lineac(void *); void linead(int,int,LA_SPRITE *,void *); void lineae(void); void lineaf(void); #pragma inline linea1() {register a2,d2; "a001";} #pragma inline d0=linea2() {register a2,d2; "a002";} #pragma inline linea3() {register a2,d2; "a003";} #pragma inline linea4() {register a2,d2; "a004";} #pragma inline linea5() {register a2,d2; "a005";} #pragma inline linea6() {register a2,d2; "a006";} #pragma inline linea7(a6) {register a2,d2; "a007";} #pragma inline linea8(/** * $Id: string.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * String and memory operations interface file * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _STRING_H #define _STRING_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef _SIZE_T #define _SIZE_T typedef unsigned long int size_t; #endif extern char _SLASH; /* path separator character */ /* * * External definitions for string services * */ char *strcat(char *, const char *); char *strchr(const char *, int); int strcmp(const char *, const char *); char *strcpy(char *, const char *); size_t strcspn(const char *, const char *); size_t strspn(const char *, const char *); size_t strlen(const char *); char *strncat(char *, const char *, size_t); int strncmp(const char *, const char *, size_t); char *strncpy(char *, const char *, size_t); char *strpbrk(const char *, const char *); char *strrchr(const char *, int); char *strstr(const char *, const char *); char *strtok(char *, const char *); char *strerror(int); int strcoll(const char *, const char *); size_t strxfrm(char *, const char *, size_t); size_t __builtin_strlen(const char *); char *__builtin_strcpy(char *, const char *); int __builtin_strcmp(const char *, const char *); #define strlen(x) __builtin_strlen(x) #define strcpy(x,y) __builtin_strcpy(x,y) #define strcmp(x,y) __builtin_strcmp(x,y) #ifndef _ANSI size_t stcarg(const char *, const char *); size_t stccpy(char *to, const char *from, size_t length); char *stpcpy(char *, const char *); char *strdup(const char *); void strins(char *, const char *); char *strnset(char *, int, size_t); char *strrev(char *); size_t stcis(const char *, const char *); size_t stcisn(const char *, const char *); size_t stcpm(const char *, const char *, char **); size_t stcpma(const char *, const char *); char *stpblk(const char *); char *stpbrk(const char *, const char *); char *stpchr(const char *, int); char *stpsym(const char *, char *, size_t); char *stpchrn(const char *, int); char *stptok(const char *, char *, size_t, const char *); long strbpl(char **, size_t, const char *); int stcgfe(char *, const char *); int stcgfn(char *, const char *); int stcd_i(const char *, int *); int stcd_l(const char *, long *); int stch_i(const char *, int *); int stch_l(const char *, long *); int stco_i(const char *, int *); int stco_l(const char *, long *); int stci_d(char *, int); int stci_h(char *, int); int stci_o(char *, int); int stcl_d(char *, long); int stcl_h(char *, long); int stcl_o(char *, long); int stcsma(char *, char *); int stcu_d(char *, unsigned); int stcul_d(char *, unsigned long); size_t stclen(const char *); #define stclen(a) strlen(a) char *stpdate(char *, int, const char *); char *stptime(char *, int, const char *); int strmid(const char *, char *, size_t, size_t); char *strlwr(char *); void strmfe(char *, const char *, const char *); void strmfn(char *, const char *, const char *, const char *, const char *); void strmfp(char *, const char *, const char *); int stcgfp(char *, const char *); int strnicmp(const char *, const char *, size_t); int stricmp(const char *, const char *); char *strset(char *, int); void strsfn(const char *, char *, char *, char *, char *); char *strupr(char *); int stspfp(char *, int *); void strsrt(char *[], size_t); #define strcmpi stricmp /* For Microsoft compatibility */ char *index(const char *, int); char *rindex(const char *, int); void swab(const void *,void *,size_t); #endif /* * * External definitions for memory block services * */ void *memchr(const void *, int, size_t); int memcmp(const void *, const void *, size_t); void *memcpy(void *, const void *, size_t); void *memmove(void *, const void *, size_t); void *memset(void *, int, size_t); void *__builtin_memset(void *, int, size_t); int __builtin_memcmp(const void *, const void *, size_t); void *__builtin_memcpy(void *, const void *, size_t); #define memset(x,y,z) __builtin_memset(x,y,z) #define memcmp(x,y,z) __builtin_memcmp(x,y,z) #define memcpy(x,y,z) __builtin_memcpy(x,y,z) #ifndef _ANSI void bzero(void *, size_t); void bcopy(const void *, void *, size_t); int bcmp(const void *, const void *, size_t); #define bzero(x,y) __builtin_memset(x,0,y) #define bcopy(x,y,z) __builtin_memcpy(y,x,z) #define bcmp(x,y,z) __builtin_memcmp(y,x,z) void *memccpy(void *, const void *, int, size_t); void *memswp(void *, void *, size_t); void *memrep(void *, const void *, size_t, size_t); void setmem(void *, unsigned, int); void movmem(const void *, void *, unsigned); void repmem(const void *, void *, unsigned, unsigned); void swmem(void *, void *, unsigned); #endif #ifndef NULL #define NULL __NULL #endif #endif NULL __NULL #endif #endif locale, stored in lclerror */ #define LCLNAME 1 /* pathname for locale file too long */ #define LCLOPEN 2 /* Unable to open locale file */ #define LCLCOLL 3 /* multiple collate spec */ #define LCLCTYPE 4 /* multiple c types spec */ #define LCLNUMERIC 5 /* mu short m_w; short m_h; } MOBLK; int evnt_keybd(void); int evnt_button(int,int,int,short *,short *,short *,short *); int evnt_mouse(int,int,int,int,int,short *,short *,short *,short *); int evnt_mesag(short *); int evnt_timer(int,int); int evnt_multi(int,int,int,int,int,int,int,int,int,int,int,int,int,int,short *,int,int,short *,short *,short *,short *,short *,short *); int evnt_dclick(int,int); /* Object library definitions */ #define ROOT 0 #define NIL -1 #define MAX_DEPTH 8 /* max depth of search or draw */ #define IP_HOLLOW 0 /* inside patterns */ #define IP_1PATT 1 #define IP_2PATT 2 #define IP_3PATT 3 #define IP_4PATT 4 #define IP_5PATT 5 #define IP_6PATT 6 #define IP_SOLID 7 #define GDOS_PROP 0 /* font types */ #define GDOS_MONO 1 #define GDOS_BITM 2 #define IBM 3 #define SMALL 5 #define G_BOX 20 /* Graphic types of obs */ #define G_TEXT 21 #define G_BOXTEXT 22 #define G_IMAGE 23 #define G_PROGDEF 24 #define G_USERDEF G_PROGDEF #define G_IBOX 25 #define G_BUTTON 26 #define G_BOXCHAR 27 #define G_STRING 28 #define G_FTEXT 29 #define G_FBOXTEXT 30 #define G_ICON 31 #define G_TITLE 32 #define G_CICON 33 #define NONE 0x0000 /* Object flags */ #define SELECTABLE 0x0001 #define DEFAULT 0x0002 #define EXIT 0x0004 #define EDITABLE 0x0008 #define RBUTTON 0x0010 #define LASTOB 0x0020 #define TOUCHEXIT 0x0040 #define HIDETREE 0x0080 #define INDIRECT 0x0100 #define FL3DMASK 0x0600 #define FL3DNONE 0x0000 #define FL3DIND 0x0200 #define FL3DBAK 0x0400 #define FL3DACT 0x0600 #define SUBMENU 0x0800 #define NORMAL 0x0000 /* Object states */ #define SELECTED 0x0001 #define CROSSED 0x0002 #define CHECKED 0x0004 #define DISABLED 0x0008 #define OUTLINED 0x0010 #define SHADOWED 0x0020 #define SPECIAL 0x0040 /* user defined object state */ #define WHITE 0 /* Object colors */ #define BLACK 1 #define RED 2 #define GREEN 3 #define BLUE 4 #define CYAN 5 #define YELLOW 6 #define MAGENTA 7 #define LWHITE 8 #define LBLACK 9 #define LRED 10 #define LGREEN 11 #define LBLUE 12 #define LCYAN 13 #define LYELLOW 14 #define LMAGENTA 15 #define TE_LEFT 0 /* editable text justification */ #define TE_RIGHT 1 #define TE_CNTR 2 typedef struct text_edinfo { char *te_ptext; char *te_ptmplt; char *te_pvalid; short te_font; short te_fontid; short te_just; #ifdef __TE_COLOR __TE_COLOR te_color; #else short te_color; #endif short te_fontsize; short te_thickness; short te_txtlen; short te_tmplen; } TEDINFO; typedef struct icon_block { short *ib_pmask; short *ib_pdata; char *ib_ptext; short ib_char; short ib_xchar; short ib_ychar; short ib_xicon; short ib_yicon; short ib_wicon; short ib_hicon; short ib_xtext; short ib_ytext; short ib_wtext; short ib_htext; } ICONBLK; typedef struct cicon_data { short num_planes; short *col_data; short *col_mask; short *sel_data; short *sel_mask; struct cicon_data *next_res; } CICON; typedef struct cicon_blk { ICONBLK monoblk; CICON *mainlist; } CICONBLK; typedef struct bit_block { short *bi_pdata; short bi_wb; short bi_hl; short bi_x; short bi_y; short bi_color; } BITBLK; typedef struct parm_blk { struct object *pb_tree; short pb_obj; short pb_prevstate; short pb_currstate; short pb_x; short pb_y; short pb_w; short pb_h; short pb_xc; short pb_yc; short pb_wc; short pb_hc; long pb_parm; } PARMBLK; /* Lattice 3 flavour */ typedef struct user_blk { int (*__stdargs ub_code)(PARMBLK *); long ub_parm; } USERBLK; /* Rest of the world flavour */ typedef struct appl_blk { int (*__stdargs ab_code)(PARMBLK *); long ab_parm; } APPLBLK; typedef struct object { short ob_next; short ob_head; short ob_tail; unsigned short ob_type; unsigned short ob_flags; unsigned short ob_state; #ifdef __OB_SPEC __OB_SPEC ob_spec; #else void *ob_spec; #endif short ob_x; short ob_y; short ob_width; short ob_height; } OBJECT; typedef struct grect { short g_x; short g_y; short g_w; short g_h; } GRECT; #define LK3DIND 1 #define LK3DACT 2 #define INDBUTCOL 3 #define ACTBUTCOL 4 #define BACKGRCOL 5 #define AD3DVALUE 6 int objc_add(OBJECT *,int,int); int objc_delete(OBJECT *,int); int objc_draw(OBJECT *,int,int,int,int,int,int); int objc_find(OBJECT *,int,int,int,int); int objc_offset(OBJECT *,int,short *,short *); int objc_order(OBJECT *,int,int); int objc_edit(OBJECT *,int,int,short *,int); int objc_change(OBJECT *,int,int,int,int,int,int,int,int); int objc_sysvar(int,int,int,int,short *,short *); /* HiSoft extras */ int objc_xywh(OBJECT *,int,GRECT *); void objc_walk(OBJECT *,int,int,int,int (*)(OBJECT *,int)); /* Menu library definitions */ typedef struct _menu { OBJECT *mn_tree; /* the object tree of the menu */ short mn_menu; /* the parent object of the menu items */ short mn_item; /* the starting menu item */ short mn_scroll; /* the scroll field status of the menu */ short mn_keystate; /* CTRL, ALT, SHIFT */ } MENU; typedef struct _mn_set { long Display; /* the submenu display delay */ long Drag; /* the submenu drag delay */ long Delay; /* the single-click scroll delay */ long Speed; /* the continuous scroll delay */ long Height; /* the menu scroll height */ } MN_SET; #define ME_INQUIRE 0 #define ME_ATTACH 1 #define ME_REMOVE 2 int menu_bar(OBJECT *, int); int menu_icheck(OBJECT *,int,int); int menu_ienable(OBJECT *,int,int); int menu_tnormal(OBJECT *,int,int); int menu_text(OBJECT *,int,const char *); int menu_register(int,const char *); int menu_popup(MENU *,int,int,MENU *); int menu_attach(int,OBJECT *,int,MENU *); int menu_istart(int,OBJECT *,int,int); int menu_settings(int, MN_SET *); /* Form library definitions */ #define ED_START 0 /* editable text field definitions */ #define EDSTART ED_START #define ED_INIT 1 #define EDINIT ED_INIT #define ED_CHAR 2 #define EDCHAR ED_CHAR #define ED_END 3 #define EDEND ED_END #define FMD_START 0 #define FMD_GROW 1 #define FMD_SHRINK 2 #define FMD_FINISH 3 int form_do(OBJECT *,int); int form_dial(int,int,int,int,int,int,int,int,int); int form_alert(int,const char *); int form_error(int); int form_center(OBJECT *,short *,short *,short *,short *); int form_keybd(OBJECT *,int,int,int,short *,short *); int form_button(OBJECT *,int,int,short *); /* Graphics library definitions */ #define ARROW 0 #define TEXT_CRSR 1 #define HOURGLASS 2 #define BUSYBEE HOURGLASS #define BUSY_BEE HOURGLASS #define POINT_HAND 3 #define FLAT_HAND 4 #define THIN_CROSS 5 #define THICK_CROSS 6 #define OUTLN_CROSS 7 #define USER_DEF 255 #define M_OFF 256 #define M_ON 257 #define M_SAVE 258 #define M_RESTORE 259 #define M_PREVIOUS 260 #define VERTICAL 0 #define HORIZONTAL 1 int graf_rubberbox(int,int,int,int,short *,short *); int graf_dragbox(int,int,int,int,int,int,int,int,short *,short *); int graf_movebox(int,int,int,int,int,int); int graf_growbox(int,int,int,int,int,int,int,int); int graf_shrinkbox(int,int,int,int,int,int,int,int); int graf_watchbox(OBJECT *,int,int,int); int graf_slidebox(OBJECT *,int,int,int); int graf_handle(short *,short *,short *,short *); int graf_mouse(int,const void *); int graf_mkstate(short *,short *,short *,short *); /* Scrap library definitions */ int scrp_read(char *); int scrp_write(const char *); /* File selector library definitions */ int fsel_input(char *,char *,short *); int fsel_exinput(char *,char *,short *,const char *); /* Window library definitions */ #define NAME 0x0001 #define CLOSE 0x0002 #define CLOSER CLOSE #define FULL 0x0004 #define FULLER FULL #define MOVE 0x0008 #define MOVER MOVE #define INFO 0x0010 #define SIZE 0x0020 #define SIZER SIZE #define UPARROW 0x0040 #define DNARROW 0x0080 #define VSLIDE 0x0100 #define LFARROW 0x0200 #define RTARROW 0x0400 #define HSLIDE 0x0800 #define SMALLER 0x4000 #define WF_KIND 1 #define WF_NAME 2 #define WF_INFO 3 #define WF_WXYWH 4 #define WF_WORKXYWH WF_WXYWH #define WF_CXYWH 5 #define WF_CURRXYWH WF_CXYWH #define WF_PXYWH 6 #define WF_PREVXYWH WF_PXYWH #define WF_FXYWH 7 #define WF_FULLXYWH WF_FXYWH #define WF_HSLIDE 8 #define WF_VSLIDE 9 #define WF_TOP 10 #define WF_FIRSTXYWH 11 #define WF_NEXTXYWH 12 #define WF_IGNORE 13 #define WF_NEWDESK 14 #define WF_HSLSIZE 15 #define WF_HSLSIZ WF_HSLSIZE #define WF_VSLSIZE 16 #define WF_VSLSIZ WF_VSLSIZE #define WF_SCREEN 17 #define WF_COLOR 18 #define WF_DCOLOR 19 #define WF_OWNER 20 #define WF_BEVENT 24 #define WF_BOTTOM 25 #define WF_ICONIFY 26 #define WF_UNICONIFY 27 #define WF_UNICONIFYXYWH 28 #define WF_TOOLBAR 30 #define WF_FTOOLBAR 31 #define WF_NTOOLBAR 32 #define END_UPDATE 0 #define BEG_UPDATE 1 #define END_MCTRL 2 #define BEG_MCTRL 3 #define WC_BORDER 0 #define WC_WORK 1 #define DESK 0 #define W_BOX 0 #define W_TITLE 1 #define W_CLOSER 2 #define W_NAME 3 #define W_FULLER 4 #define W_INFO 5 #define W_DATA 6 #define W_WORK 7 #define W_SIZER 8 #define W_VBAR 9 #define W_UPARROW 10 #define W_DNARROW 11 #define W_VSLIDE 12 #define W_VELEV 13 #define W_HBAR 14 #define W_LFARROW 15 #define W_RTARROW 16 #define W_HSLIDE 17 #define W_HELEV 18 int wind_create(int,int,int,int,int); int wind_open(int,int,int,int,int); int wind_close(int); int wind_delete(int); int wind_get(int,int,short *,short *,short *,short *); int wind_set(int,int,...); int wind_find(int,int); int wind_update(int); int wind_calc(int,int,int,int,int,int,short *,short *,short *,short *); int wind_new(void); /* HiSoft extras */ int wind_newdesk(OBJECT *,int); int wind_info(int,const char *); int wind_title(int,const char *); int wind_redraw(int,GRECT *,int (*)(int,GRECT *)); /* Resource library definitions */ #define R_TREE 0 #define R_OBJECT 1 #define R_TEDINFO 2 #define R_ICONBLK 3 #define R_BITBLK 4 #define R_STRING 5 /* gets pointer to free strings */ #define R_IMAGEDATA 6 /* gets pointer to free images */ #define R_OBSPEC 7 #define R_TEPTEXT 8 /* sub ptrs in TEDINFO */ #define R_TEPTMPLT 9 #define R_TEPVALID 10 #define R_IBPMASK 11 /* sub ptrs in ICONBLK */ #define R_IBPDATA 12 #define R_IBPTEXT 13 #define R_BIPDATA 14 /* sub ptrs in BITBLK */ #define R_FRSTR 15 /* gets addr of ptr to free strings */ #define R_FRIMG 16 /* gets addr of ptr to free images */ typedef struct { short rsh_vrsn; /* RCS version no. */ unsigned short rsh_object; /* offset to object[] */ unsigned short rsh_tedinfo; /* offset to tedinfo[] */ unsigned short rsh_iconblk; /* offset to iconblk[] */ unsigned short rsh_bitblk; /* offset to bitblk[] */ unsigned short rsh_frstr; /* offset to free string index */ unsigned short rsh_string; /* offset to first string */ unsigned short rsh_imdata; /* offset to image data */ unsigned short rsh_frimg; /* offset to free image index */ unsigned short rsh_trindex; /* offset to object tree index */ unsigned short rsh_nobs; /* number of objects */ unsigned short rsh_ntree; /* number of trees */ unsigned short rsh_nted; /* number of tedinfos */ unsigned short rsh_nib; /* number of icon blocks */ unsigned short rsh_nbb; /* number of blt blocks */ unsigned short rsh_nstring; /* number of free strings */ unsigned short rsh_nimages; /* number of free images */ unsigned short rsh_rssize; /* total bytes in resource */ } RSHDR; int rsrc_load(const char *); int rsrc_free(void); int rsrc_gaddr(int,int,void *); int rsrc_saddr(int,int,void *); int rsrc_obfix(OBJECT *,int); int rsrc_rcfix(RSHDR *rc_header); /* Shell library definitions */ int shel_read(char *,char *); int shel_write(int,int,int,const char *,const char *); int shel_get(char *,int); int shel_put(const char *,int); int shel_find(char *); int shel_envrn(char **, const char *); /* Rectangle manipulation definitions */ void rc_constrain(const GRECT *,GRECT *); void rc_copy(const GRECT *,GRECT *); int rc_equal(const GRECT *,const GRECT *); int __builtin_memcmp(const void *, const void *, unsigned long); #define rc_equal(p1,p2) (!__builtin_memcmp(p1,p2,sizeof(GRECT))) int rc_intersect(const GRECT *,GRECT *); int rc_inside(int,int,const GRECT *); void rc_union(const GRECT *,GRECT *); void rc_center(const GRECT *,GRECT *); /* Macro for Lattice 3 compatability */ #ifdef _SHORTINT #define ADDR(a) (a) #else #define ADDR(a) ((long)(a)>>16),((long)(a)) #endif /* Useful AES functions */ #ifndef min int min(int,int); int __builtin_min(int,int); #define min(a,b) __builtin_min(a,b) #endif #ifndef max int max(int,int); int __builtin_max(int,int); #define max(a,b) __builtin_max(a,b) #endif unsigned short umul_div(unsigned int,unsigned int,unsigned int); #pragma inline d0=umul_div(d0,d1,d2) {"c0c180c2";} /* macros to pass parameters */ #ifndef PTRS #define PTRS(r) (r)->g_x, (r)->g_y, (r)->g_w, (r)->g_h #endif #ifndef ELTS #define ELTS(r) (r).g_x, (r).g_y, (r).g_w, (r).g_h #endif #ifndef NULL #define NULL __NULL #endif #endif ng,int); long __lxspp(int,int,void *,void *); /** * $Id: assert.h,v 1.4 1993/11/14 14:42:42 AGK Rel $ * * ANSI macros and prototypes for assertion validation * * (c) Copyright 1992, 1993 HiSoft **/ #undef assert #ifndef NDEBUG #define _STR(x) _VAL(x) #define _VAL(x) #x void __assert(const char *); #define assert(x) ((x)?(void)0:(__assert)(__FILE__ ":" _STR(__LINE__) "(" #x ")")) #else #define assert(x) ((void)0) #endif (void)0) #endif , long); short __sxp(int,void *); short __sxppss(int,void *,void *,int,int); short __sxppsssss(int,void *,void *,int,int,int,int,int); short __sxprsssssls(int,void *,short *,int,int,int,int,int,long,int); short __sxqls(int, const void *, long, int); short __sxs(int,int); short __sxsp(int,int,void *); short __sxss(int,int,int); short __sxsssd(int,int,int,int,char *); short __sxv(int); unsigned char bxv(int); unsigned long __mxssssss(int,int,int,int,int,int,int); unsigned long __mxv(int); void **__rxv(int); void *__pxs(int,int); void *__pxv(int); void __vxc(int,const char *); void /** * $Id: basepage.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * GEMDOS base page structure * * (c) Copyright 1989, 1990, 1993 HiSoft **/ #ifndef _BASEPAGE_H #define _BASEPAGE_H typedef struct _base BASEPAGE; struct _base { void *p_lowtpa; /* pointer to bottom of TPA */ void *p_hitpa; /* pointer to top of TPA + 1 */ void *p_tbase; /* base of text segment */ long p_tlen; /* length of text segment */ void *p_dbase; /* base of data segment */ long p_dlen; /* length of data segment */ void *p_bbase; /* base of BSS segment */ long p_blen; /* length of BSS segment */ void *p_dta; /* pointer to current DTA */ BASEPAGE *p_parent; /* pointer to parent's basepage */ long p_flags; /* memory usage flags */ char *p_env; /* pointer to environment strings */ long p_undef[20]; char p_cmdlin[128]; /* command line image */ }; extern BASEPAGE *_pbase, *_PBASE; #endif nt, int, int, int); void __vxsssf(int,int,int,int,void (*)()); void __vxtl/** * $Id: cdbind.h,v 1.3 1993/11/14 14:43:52 AGK Rel $ * * Interface to MetaDOS CD I/O * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _CDBIND_H #define _CDBIND_H #include #define CDread_aud(a,b,c,d) __lxspls(58,a,b,c,d) #define CDstart_aud(a,b,c) __lxssc(59,a,b,c) #define CDstop_aud(a) __lxs(60,a) #define CDset_songtime(a,b,c,d) __lxssss(61,a,b,c,d) #define CDget_toc(a,b,c) __lxssp(62,a,b,c) #define CDdisc_info(a,b) __lxsp(63,a,b) #endif (63,a,b) #endif #pragma inline __vxpps((short),,,(short)) _XBIOS #pragma inline __vxqlln((short),,,,) _XBIOS #pragma inline __vxqlpl((short),,,,) _XBIOS #pragma inline __vxqls((short),,,(short)) _XBIOS #pragma inline __vxqpllln((short),,,,,,) _XBIOS #pragma inline __vxs((short),(short)) _XBIOS #pragma inline __vxsc((short),(short),) _XBIOS #pragma inline __vxsf((short),(short),) _XBIOS #pragma inline __vxsl((short),(short),) _XBIOS #pragma inline __vxsp((short),(short),) _XBIOS #pragma inline __vxspf((short),(short),,) _X/** * $Id: conio.h,v 1.2 1993/11/14 14:43:52 AGK Rel $ * * Console I/O declarations * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _CONIO_H #define _CONIO_H int cget(void); int cgetc(void); char *cgets(char *); int cputc(int); int cputs(const char *); int cprintf(const char *, ...); int cscanf(const char *, ...); int getch(void); int getche(void); int kbhit(void); int iskbhit(void); int putch(int); int ungetch(int); #endif _XBIOS #pragma inline d0=__lxcp((short),,) _XBIOS #pragma inline d0=__lxg((short),) _XBIOS #pragma inline d0=__lxlsps((short),,(short),,(short)) _XBIOS #pragma inline d0=__lxn((short),) _XBIOS #pragma inline d0=__lxp((short),) _XBIOS #pragma inline d0=__lxs((short),(short)) _XBIOS #pragma inline d0=__lxsl((short),(short),) _XBIOS #pragma inline d0=__lxsll((short),(short),,) _XBIOS #pragma inline d0=__lxsp((short),(short),) _XBIOS #pragma inline d0=__lxspls((short),(short),,,(short)) _XBIOS #pragma inline d0=__lxspp((short),(short),,) _XBIOS #pra/** * $Id: dos.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Interface between compiler and OS * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _DOS_H #define _DOS_H #include #include #include #ifndef _SIZE_T #define _SIZE_T typedef unsigned long int size_t; #endif /* * OS specific definitions */ extern short _tos; /* tos version number */ extern enum {USA,FRG,FRA,GBR,SPA,ITA,SWE,SWF,SWG,TUR,FIN,NOR,DEN,SAU,HOL,CZE,HUN} _country; /* * The following symbols define the sizes of file names and node names. */ #define FNSIZE 13 /* maximum file node size */ #define FMSIZE 128 /* maximum file name size */ #define FESIZE 4 /* maximum file extension size */ /* * This structure contains disk size information returned by the getdfs * function. */ struct DISKINFO { unsigned long free; /* number of free clusters */ unsigned long cpd; /* clusters per drive */ unsigned long bps; /* bytes per sector */ unsigned long spc; /* sectors per cluster */ }; /* * The following structure is used by the dfind and dnext functions to * hold file information. */ struct FILEINFO { char resv[21]; /* reserved */ char attr; /* actual file attribute */ long time; /* file time and date */ long size; /* file size in bytes */ char name[14]; /* file name */ }; /* * Structure used by Getbpb() */ typedef struct { short recsiz; short clsiz; short clsizb; short rdlen; short fsiz; short fatrec; short datrec; short numcl; short bflags; } BPB; /* * Structure used by Initmous() */ typedef struct param { char topmode; char buttons; char xparam; char yparam; short xmax; short ymax; short xinitial; short yinitial; } MOUSE; /* * Structure used by Iorec() */ typedef struct iorec { char *ibuf; short ibufsiz; short ibufhd; short ibuftl; short ibuflow; short ibufhi; } IOREC; /* * Structure used by Kbdvbase() */ typedef struct kbdvecs { void (*__asm midivec)(register __d0 unsigned char); void (*vkbderr)(void); void (*vmiderr)(void); void (*__asm statvec)(register __a0 void *); void (*__asm mousevec)(register __a0 void *); void (*__asm clockvec)(register __a0 void *); void (*__asm joyvec)(register __a0 void *); void (*midisys)(void); void (*ikbdsys)(void); char kstate; } KBDVBASE; /* * Structure used by Keytbl() */ typedef struct keytab { char *unshift; char *shift; char *capslock; } KEYTAB; /* * Structure used by Prtblk() */ typedef struct prtarg { char *scrptr; unsigned short offset; unsigned short width; unsigned short height; unsigned short left; unsigned short right; unsigned short srcres; unsigned short dstres; unsigned short *colpal; unsigned short type; unsigned short port; char *masks; } PBDEF; /* * Structures used by Bconmap() */ typedef struct maptab { long (*Bconstat)(int); long (*Bconin)(short); long (*Bcostat)(int); long (*Bconout)(int,int); unsigned long (*Rsconf)(int,int,int,int,int,int); IOREC *iorec; } MAPTAB; typedef struct bconmap { MAPTAB *maptab; short maptabsize; } BCONMAP; /* * ROM configuration structure (0x4f2) */ typedef struct _osheader { unsigned short os_entry; /* $00 BRA to reset handler */ unsigned short os_version; /* $02 TOS version number */ void (*reseth)(void); /* $04 -> reset handler */ struct _osheader *os_beg; /* $08 -> base of OS */ void *os_end; /* $0c -> end BIOS/GEMDOS/VDI ram usage */ void *os_rsv1; /* $10 << unused,reserved >> */ long *os_magic; /* $14 -> GEM memory usage parm. block */ long os_date; /* $18 Date of system build ($DDMMYYYY) */ unsigned short os_conf; /* $1c OS configuration bits */ unsigned short os_dosdate; /* $1e DOS-format date of system build */ /* The next three fields are only available in TOS versions 1.2 and greater */ void **p_root; /* $20 -> base of OS pool */ unsigned char *pkbshift; /* $24 -> keyboard shift state variable */ BASEPAGE **p_run; /* $28 -> GEMDOS PID of current process */ void *p_rsv2; /* $2c << unused, reserved >> */ } OSHEADER; extern size_t _MSTEP; extern long _MNEED; /* * Ctrl-C checking master switch variable */ extern int __chkabort; /* defaults to 0, i.e. OFF */ /* * I/O services */ /* hidden by #defines */ long _dclose(int); long _dcreat(const char *, int); long _dopen(const char *, int); int getcd(int, char *); int getfa(const char *); int chgfa(const char *, int); int getdsk(void); long __regargs _CXCERR(long); /* always __regargs for efficiency */ long __regargs _CXCERZ(long); /* always __regargs for efficiency */ long _dcreatx(const char *, int); long _dread(int, void *, long); long _dwrite(int, const void *, long); long _dseek(int, long, int); int _disatty(int); int _ddup(int); int _ddup2(int, int); unsigned long chgdsk(int); void chgdta(struct FILEINFO *); struct FILEINFO *getdta(void); int dfind(struct FILEINFO *, const char *, int); int dnext(struct FILEINFO *); int getdfs(int,struct DISKINFO *); long getft(int); int chgft(int, long); /* * Attributes for Fcreate()/Fsfirst() */ #define FA_READONLY 0x01 #define FA_HIDDEN 0x02 #define FA_SYSTEM 0x04 #define FA_VOLUME 0x08 #define FA_SUBDIR 0x10 #define FA_ARCHIVE 0x20 /* * Fopen() modes */ #define FO_READ 0 #define FO_WRITE 1 #define FO_RW 2 /* * Fseek() modes */ #define FSEEK_SET 0 #define FSEEK_CUR 1 #define FSEEK_END 2 /* * * Miscellaneous external definitions * */ long ftpack(const char *); void ftunpk(long, char *); int getpf(char *,const char *); int getpfe(char *,const char *); void __stdargs _stub(void); void __stdargs _xcovf(void); void getclk(unsigned char *); int chgclk(unsigned const char *); int onbreak(int (*)()); void onerror(int); int poserr(const char *); extern long volatile _oserr; extern long volatile _OSERR; extern unsigned long int _STACK; #define geta4 __builtin_geta4 extern void geta4(void); #define getreg __builtin_getreg extern long getreg(int); #define putreg __builtin_putreg extern void putreg(int, long); #define __emit __builtin_emit extern void __emit(int); #define REG_D0 0 #define REG_D1 1 #define REG_D2 2 #define REG_D3 3 #define REG_D4 4 #define REG_D5 5 #define REG_D6 6 #define REG_D7 7 #define REG_A0 8 #define REG_A1 9 #define REG_A2 10 #define REG_A3 11 #define REG_A4 12 #define REG_A5 13 #define REG_A6 14 #define REG_A7 15 #endif xn(141,a) #define VsetMask(a,b,c) __vxsss(150,a,b,c) int _mediach(int); /* force GEMDOS media change */ #endif @ 1.5 log @Added new macros for Falcon, also Midiws, Keytbl, Ikbdws & Giaccess mods @ text @d2 1 a2 1 * $Header: D:\LC\HEADERS\osbind.h,v 1.4 1992/08/12 13:14:28 AGK Exp AGK $ d407 16 d432 58 @ 1.4 log @Updated for rev 5 sound XBIOS @ text @d2 1 a2 1 * $Header: D:\LC\HEADERS\osbind.h,v 1.3 1992/07/22 14:48:30 AGK Rel $ d19 1 d43 1 d81 1 d105 1 d143 1 d221 1 a221 1 char **__rxccc(int,const char *,c/** * $Id: dragdrop.h,v 1.2 1993/11/14 14:43:52 AGK Rel $ * * GEM AES Drag'n'Drop protocol * * (c) Copyright 1992, 1993 Atari Corp. * (c) Copyright 1993 HiSoft **/ #ifndef _DRAGDROP_H #define _DRAGDROP_H #define DD_OK 0 #define DD_NAK 1 #define DD_EXT 2 #define DD_LEN 3 #define DD_TRASH 4 #define DD_PRINTER 5 #define DD_CLIPBOARD 6 /* timeout in milliseconds */ #define DD_TIMEOUT 4000 /* number of bytes of "preferred extensions" sent by receipient during * open */ #define DD_NUMEXTS 8 #define DD_EXTSIZE 32L /* max size of a drag'n'drop item name */ #define DD_NAMEMAX 128 /* max length of a drag'n'drop header */ #define DD_HDRMAX (8 + DD_NAMEMAX) #endif NAMEMAX) #endif #define Ikbdws(a,b) __vxsl(25,a,b) d390 1 a390 1 #define Giaccess(a,b) __dxss(28,a,b) @ 1.3 log @Updated for Falcon sound hardware (sndbind.h) @ text @d2 1 a2 1 * $Header: D:\LC\HEADERS\osbind.h,v 1.2 1992/07/01 10:29:08 AGK Exp $ d225 1 d299 1 @ 1.2 log @/** * $Id: dspbind.h,v 1.4 1993/11/14 14:43:52 AGK Rel $ * * Interface to Motorola DSP5600x * * Copyright (c) 1992, 1993 HiSoft **/ #ifndef _DSPBIND_H #define _DSPBIND_H #include struct dspblock { short blocktype; long blocksize; void *blockaddr; }; #endif ddr; }; #endif 1.1 log @Initial revision @ text @d2 1 a2 1 * $Header$ a5 1 * $Log$ d21 1 a33 1 long __lgssll(int,int,int,long,long); d39 1 d41 1 a45 1 long __vgn(int,long *); d65 1 a65 50 #pragma inline __vgc((short),) {register d2,a2; "4e41";} #pragma inline __vgls((short),,(short)) {register d2,a2; "4e41";} #pragma inline __vgn((short),) {register d2,a2; "4e41";} #pragma inline __vgp((short),) {register d2,a2; "4e41";} #pragma inline __vgs((short),(short)) {register d2,a2; "4e41";} #pragma inline __vgv((short)) {register d2,a2; "4e41";} #pragma inline d0=__ggsg((short),(short),) {register d2,a2; "4e41";} #pragma inline d0=__lgc((short),) {register d2,a2; "4e41";} #pragma inline d0=_/** * $Id: errno.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Define errors and error symbols * * (c) Copyright 1993 HiSoft **/ #ifndef _ERRNO_H #define _ERRNO_H #define EOSERR -1 /* Operating system error */ #define EPERM 1 /* User is not owner */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Arg list is too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No child process */ #define EAGAIN 11 /* No more processes allowed */ #define ENOMEM 12 /* No memory available */ #define EACCES 13 /* Access denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Bulk device required */ #define EBUSY 16 /* Resource is busy */ #define EEXIST 17 /* File already exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* No more files (units) allowed */ #define EMFILE 24 /* No more files (units) allowed for this process */ #define ENOTTY 25 /* Not a terminal */ #define ETXTBSY 26 /* Text file is busy */ #define EFBIG 27 /* File is too large */ #define ENOSPC 28 /* No space left */ #define ESPIPE 29 /* Seek issued to pipe */ #define EROFS 30 /* Read-only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Math function argument error */ #define ERANGE 34 /* Math function result is out of range */ #define EDEADLK 35 /* Record locking deadlock */ extern int errno; #endif ort),(short)) {register d2,a2; "4e41";} #pragma inline d0=__lgu((short),(short)) {register d2,a2; "4e41";} #pragma inline d0=__lgv((short)) {register d2,a2; "4e41";} #pragma inline d0=__ngv((short)) {register d2,a2; "4e41";} #pr/** * $Id: ext.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Turbo C compatability definitions * * (c) Copyright 1990, 1993 HiSoft **/ #ifndef _EXT_H #define _EXT_H #include #include #include #include #ifndef _SSIZE_T #define _SSIZE_T typedef signed long ssize_t; #endif #define FA_UPDATE 0x00 #define FA_RDONLY FA_READONLY #define FA_LABEL FA_VOLUME #define FA_DIREC FA_SUBDIR #define FA_ARCH FA_ARCHIVE #define MAXPATH FMSIZE #define MAXDRIVE 3 #define MAXDIR FMSIZE #define MAXFILE (FNSIZE-FESIZE-1) #define MAXEXT (FESIZE+2) struct ffblk { char ff_reserved[21]; char ff_attrib; short ff_ftime; short ff_fdate; long ff_fsize; char ff_name[14]; }; int findfirst(const char *,struct ffblk *,int); int findnext(struct ffblk *); #define findfirst(a,b,c) dfind((struct FILEINFO *)(b),(a),(c)) #define findnext(a) dnext((struct FILEINFO *)(a)) struct date { short da_year; char da_day; char da_mon; }; void getdate(struct date *); void setdate(struct date *); struct time { unsigned char ti_min; unsigned char ti_hour; unsigned char ti_hund; unsigned char ti_sec; }; void gettime(struct time *); void settime(struct time *); struct ftime { unsigned ft_hour:5; unsigned ft_min:6; unsigned ft_tsec:5; unsigned ft_year:7; unsigned ft_month:4; unsigned ft_day:5; }; long __regargs _CXCERR(long); /* always __regargs for efficiency */ int getftime(int,struct ftime *); int setftime(int,struct ftime *); #define getftime(a,b) ((int)_CXCERR(Fdatime((short *)(b),(a),0))) #define setftime(a,b) ((int)_CXCERR(Fdatime((short *)(b),(a),1))) struct tm *ftimtotm(struct ftime *); struct dfree { unsigned long df_avail; unsigned long df_total; unsigned long df_bsec; unsigned long df_sclus; }; void getdfree(int,struct dfree *); #define getdfree(a,b) getdfs((a),(struct DISKINFO *)(b)) int getdisk(void); #define getdisk getdsk int setdisk(int); #define setdisk chgdsk int getcurdir(int,char *); #define getcurdir getcd size_t coreleft(void); #define coreleft() ((size_t)Malloc(-1)) void delay(size_t); /* milliseconds */ void sleep(size_t); /* seconds */ int chdir(const char *); int isatty(int); ssize_t filelength(int); char *getcwd(char *,int); #endif ,int,long); long *__nxv(int); short __sxsp(int,int,void *); long __lxspls(int,int,void *,long,int); long __lxsqls(int,int,void *,long,int); long __lxsp(int,int,void *); long __lxssc(int,int,int,const char *); long __lxs(int,int); long __lxssss(int,int,int,int,int); long __lxssp(int,int,int,void *); d269 52 a320 41 #pragma inline d0=__sxsp((short),(short),) {register d2,a2; "4e4e";} #pragma inline d0=__lxspls((short),(short),,,(short)) {register d2,a2; "4e4e";} #pragma inline d0=__lxsqls((short),(short),,,(short)) {register d2,a2; "4e4e";} #pragma inline d0=__lxsp((short),(short),) {register d2,a2; "4e4e";} #pragma inline d0=__lxssc((short),(short),(short),) {register d2,a2; "4e4e";} #pragma inline d0=__l/** * $Id: float.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Floating point limit definitions required by ANSI * * (c) Copyright 1990, 1993 HiSoft **/ #ifndef _FLOAT_H #define _FLOAT_H /* * The following symbols are specified in the ANSI C standard for the * floating point number system. */ #define FLT_RADIX 2 /* radix of exponent */ #define FLT_ROUNDS 1 /* rounding mode during translation */ /* 0 => chop */ /* 1 => round */ /* 2 => indeterminate */ #define __SINGLE_MANT_DIG 24 /* # radix digits in float mantissa */ #define __DOUBLE_MANT_DIG 53 /* # radix digits in double mantissa */ #define __EXTEND_MANT_DIG 53 /* # radix digits in long double mant. */ #define __SINGLE_DIG 7 /* max decimal digits for float */ #define __DOUBLE_DIG 16 /* max decimal digits for double */ #define __EXTEND_DIG 16 /* max decimal digits for long double */ #define __SINGLE_MIN_EXP -126 /* min radix exponent for float */ #define __DOUBLE_MIN_EXP -1022 /* min radix exponent for double */ #define __EXTEND_MIN_EXP -1022 /* min radix exponent for long double */ #define __SINGLE_MIN_10_EXP -38 /* min decimal exponent for float */ #define __DOUBLE_MIN_10_EXP -308 /* min decimal exponent for double */ #define __EXTEND_MIN_10_EXP -308 /* min decimal exponent for long double */ #define __SINGLE_MAX_EXP 128 /* max radix exponent for float */ #define __DOUBLE_MAX_EXP 1024 /* max radix exponent for double */ #define __EXTEND_MAX_EXP 1024 /* max radix exponent for double long */ #define __SINGLE_MAX_10_EXP 38 /* max decimal exponent for float */ #define __DOUBLE_MAX_10_EXP 308 /* max decimal exponent for double */ #define __EXTEND_MAX_10_EXP 308 /* max decimal exponent for long double */ #define __SINGLE_MAX 3.40282347E+38 #define __DOUBLE_MAX 1.797693134862317E+308 #define __EXTEND_MAX 1.797693134862317E+308 #define __SINGLE_EPSILON 1.19209290E-07 #define __DOUBLE_EPSILON 2.2204460492503147E-16 #define __EXTEND_EPSILON 2.2204460492503147E-16 #define __SINGLE_MIN 3.40282347E-38 #define __DOUBLE_MIN 1.797693134862316E-308 #define __EXTEND_MIN 1.797693134862316E-308 #if defined(_MSINGLE) #define FLT_MANT_DIG __SINGLE_MANT_DIG #define DBL_MANT_DIG __SINGLE_MANT_DIG #define LDBL_MANT_DIG __SINGLE_MANT_DIG #define FLT_DIG __SINGLE_DIG #define DBL_DIG __SINGLE_DIG #define LDBL_DIG __SINGLE_DIG #define FLT_MIN_EXP __SINGLE_MIN_EXP #define DBL_MIN_EXP __SINGLE_MIN_EXP #define LDBL_MIN_EXP __SINGLE_MIN_EXP #define FLT_MIN_10_EXP __SINGLE_MIN_10_EXP #define DBL_MIN_10_EXP __SINGLE_MIN_10_EXP #define LDBL_MIN_10_EXP __SINGLE_MIN_10_EXP #define FLT_MAX_EXP __SINGLE_MAX_EXP #define DBL_MAX_EXP __SINGLE_MAX_EXP #define LDBL_MAX_EXP __SINGLE_MAX_EXP #define FLT_MAX_10_EXP __SINGLE_MAX_10_EXP #define DBL_MAX_10_EXP __SINGLE_MAX_10_EXP #define LDBL_MAX_10_EXP __SINGLE_MAX_10_EXP #define FLT_MAX __SINGLE_MAX #define DBL_MAX __SINGLE_MAX #define LDBL_MAX/** * $Id: signal.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * ANSI/POSIX.1 macros and functions for signal handling * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _SIGNAL_H #define _SIGNAL_H #define SIGINT 2 /* sent by ^C */ #define SIGILL 4 /* illegal instruction */ #define SIGABRT 6 /* abort signal */ #define SIGFPE 8 /* divide by zero */ #define SIGSEGV 11 /* illegal memory reference */ #define SIGTERM 15 /* software termination signal */ typedef void (*__sigfunc_t)(int); #define SIG_DFL ((__sigfunc_t)0) /* default action */ #define SIG_IGN ((__sigfunc_t)1) /* ignore the signal */ #define SIG_ERR ((__sigfunc_t)-1) /* error return */ __sigfunc_t signal(int, __sigfunc_t); int raise(int); typedef long sig_atomic_t; #if !defined(_ANSI) \ || defined(_POSIX_SOURCE) \ || defined(_BSD) #define SIGNULL 0 /* not really a signal */ #define SIGHUP 1 /* hangup signal */ #define SIGQUIT 3 /* quit signal */ #define SIGTRAP 5 /* trace trap */ #define SIGPRIV 7 /* privilege violation */ #define SIGKILL 9 /* cannot be ignored */ #define SIGBUS 10 /* bus error */ #define SIGSYS 12 /* bad argument to a system call */ #define SIGPIPE 13 /* broken pipe */ #define SIGALRM 14 /* alarm clock */ #define SIGURG 16 /* urgent condition on I/O channel */ #define SIGSTOP 17 /* stop signal not from terminal */ #define SIGTSTP 18 /* stop signal from terminal */ #define SIGCONT 19 /* continue stopped process */ #define SIGCHLD 20 /* child stopped or exited */ #define SIGTTIN 21 /* read by background process */ #define SIGTTOU 22 /* write by background process */ #define SIGIO 23 /* I/O possible on a descriptor */ #define SIGXCPU 24 /* CPU time exhausted */ #define SIGXFSZ 25 /* file size limited exceeded */ #define SIGVTALRM 26 /* virtual timer alarm */ #define SIGPROF 27 /* profiling timer expired */ #define SIGWINCH 28 /* window size changed */ #define SIGUSR1 29 /* user signal 1 */ #define SIGUSR2 30 /* user signal 2 */ #if !defined(_POSIX_SOURCE) \ || defined(_BSD) #define NSIG 31 /* number of signals recognised */ #endif #ifndef __TYPES_H #include <__types.h> #endif int kill(__pid_t, int); typedef __sigset_t sigset_t; struct sigaction { __sigfunc_t sa_handler; sigset_t sa_mask; #define SA_NOCLDSTOP 1 int sa_flags; }; int sigaddset(sigset_t *, int); #define sigaddset(s, n) ((*(s) |= (sigset_t)1 << (n)), 0) int sigdelset(sigset_t *, int); #define sigdelset(s, n) ((*(s) &= ~((sigset_t)1 << (n))), 0) int sigemptyset(sigset_t *); #define sigemptyset(s, n) ((*(s) = 0), 0) int sigfillset(sigset_t *); #define sigfillset(s, n) ((*(s) = ~(sigset_t)0), 0) int sigismember(const sigset_t *,int); #define sigismember(s, n) (!!(*(s) & ((sigset_t)1 << (n)))) int sigaction(int, const struct sigaction *, struct sigaction *); int sigpending(sigset_t *); #define SIG_BLOCK 0 #define SIG_UNBLOCK 1 #define SIG_SETMASK 2 int sigprocmask(int, const sigset_t *, sigset_t *); int sigsuspend(const sigset_t *); #if !defined(_POSIX_SOURCE) \ || defined(_BSD) int sigpause(long); long sigsetmask(long); long sigblock(long); int killpg(int,int); #endif #endif #endif öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö __SINGLE_MAX #define FLT_EPSILON __SINGLE_EPSILON #define DBL_EPSILON __SINGLE_EPSILON #define LDBL_EPSILON __SINGLE_EPSILON #define FLT_MIN __SINGLE_MIN #define DBL_MIN __SINGLE_MIN #define LDBL_MIN __SINGLE_MIN #elif defined(_MDOUBL) #define FLT_MANT_DIG __DOUBLE_MANT_DIG #define DBL_MANT_DIG __DOUBLE_MANT_DIG #define LDBL_MANT_DIG __DOUBLE_MANT_DIG #define FLT_DIG __DOUBLE_DIG #define DBL_DIG __DOUBLE_DIG #define LDBL_DIG __DOUBLE_DIG #define FLT_MIN_EXP __DOUBLE_MIN_EXP #define DBL_MIN_EXP __DOUBLE_MIN_EXP #define LDBL_MIN_EXP __DOUBLE_MIN_EXP #define FLT_MIN_10_EXP __DOUBLE_MIN_10_EXP #define DBL_MIN_10_EXP __DOUBLE_MIN_10_EXP #define LDBL_MIN_10_EXP __DOUBLE_MIN_10_EXP #define FLT_MAX_EXP __DOUBLE_MAX_EXP #define DBL_MAX_EXP __DOUBLE_MAX_EXP #define LDBL_MAX_EXP __DOUBLE_MAX_EXP #define FLT_MAX_10_EXP __DOUBLE_MAX_10_EXP #define DBL_MAX_10_EXP __DOUBLE_MAX_10_EXP #define LDBL_MAX_10_EXP __DOUBLE_MAX_10_EXP #define FLT_MAX __DOUBLE_MAX #define DBL_MAX __DOUBLE_MAX #define LDBL_MAX __DOUBLE_MAX #define FLT_EPSILON __DOUBLE_EPSILON #define DBL_EPSILON __DOUBLE_EPSILON #define LDBL_EPSILON __DOUBLE_EPSILON #define FLT_MIN __DOUBLE_MIN #define DBL_MIN __DOUBLE_MIN #define LDBL_MIN __DOUBLE_MIN #else #define FLT_MANT_DIG __SINGLE_MANT_DIG #define DBL_MANT_DIG __DOUBLE_MANT_DIG #define LDBL_MANT_DIG __EXTEND_MANT_DIG #define FLT_DIG __SINGLE_DIG #define DBL_DIG __DOUBLE_DIG #define LDBL_DIG __EXTEND_DIG #define FLT_MIN_EXP __SINGLE_MIN_EXP #define DBL_MIN_EXP __DOUBLE_MIN_EXP #define LDBL_MIN_EXP __EXTEND_MIN_EXP #define FLT_MIN_10_EXP __SINGLE_MIN_10_EXP #define DBL_MIN_10_EXP __DOUBLE_MIN_10_EXP #define LDBL_MIN_10_EXP __EXTEND_MIN_10_EXP #define FLT_MAX_EXP __SINGLE_MAX_EXP #define DBL_MAX_EXP __DOUBLE_MAX_EXP #define LDBL_MAX_EXP __EXTEND_MAX_EXP #define FLT_MAX_10_EXP __SINGLE_MAX_10_EXP #define DBL_MAX_10_EXP __DOUBLE_MAX_10_EXP #define LDBL_MAX_10_EXP __EXTEND_MAX_10_EXP #define FLT_MAX __SINGLE_MAX #define DBL_MAX __DOUBLE_MAX #define LDBL_MAX __EXTEND_MAX #define FLT_EPSILON __SINGLE_EPSILON #define DBL_EPSILON __DOUBLE_EPSILON #define LDBL_EPSILON __EXTEND_EPSILON #define FLT_MIN __SINGLE_MIN #define DBL_MIN __DOUBLE_MIN #define LDBL_MIN __EXTEND_MIN #endif #ifndef _ANSI #define FLT_GUARD 0 /* guard digits during multiplication */ /* 0 => No */ /* 1 => Yes */ #define FLT_NORMALIZE 1 /* normalization required */ /* 0 => No */ /* 1 => Yes */ #ifndef HUGE_VAL #define HUGE_VAL 1.797693134862317E+308 /* huge double value */ #endif #endif #endif /* Record locking deadlock */ extern int errno; #endif 26 /* virtual timer alarm */ #define SIGPROF 27 /* profiling timer expired */ #define SIGWINCH 28 /* window size changed */ #define SIGUSR1 29 /* user signal 1 */ #define SIGUSR2 30 /* user signal 2 */ #if !defined(_POSIX_SOURCE) \ || defined(_BSD) #define NSIG 31 /*/** * $Id: gemextra.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Lattice 3 compatability file (obsolete) * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _GEMEXTRA_H #define _GEMEXTRA_H #ifndef min int min(int,int); int __builtin_min(int,int); #define min(a,b) __builtin_min(a,b) #endif #ifndef max int max(int,int); int __builtin_max(int,int); #define max(a,b) __builtin_max(a,b) #endif int rc_intersect(const GRECT *,GRECT *); #endif et(sigset_t *); #define sigemptyset(s, n) ((*(s) = 0), 0) int sigfillset(sigset_t *); #define sigfillset(s, n) ((*(s) = ~(sigset_t)0), 0) int sigismember(const sigset_t *,int); #define sigismember(s, n) (!!(*(s) & ((sigset_t)1 << (n)))) int sigaction(int, const struct sigaction *, struct sigaction *); int sigpending(sigset_t *); #define SIG_BLOCK 0 #define SIG_UNBLOCK 1 #define SIG_SETMASK 2 int sigprocmask(int, const sigset_t *, sigset_t *); int sigsuspend(const sigset_t *); #if !defined(_POSIX_SOURCE) \ || defined(_BSD) int sigpau/** * $Id: ios1.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Level 1 I/O interface file * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _IOS1_H #define _IOS1_H /* * The following structure is a UNIX file block that retains information * about a file being accessed via the level 1 I/O functions. */ struct UFB { short ufbflg; /* flags */ short ufbfh; /* file handle */ }; #define NUFBS 32 /* number of UFBs defined */ /* * * UFB.ufbflg definitions * */ #define UFB_RA 1 /* reading is allowed */ #define UFB_WA 2 /* writing is allowed */ #define UFB_NC 4 /* no close */ #define UFB_FH 16 /* file handle */ /* * * External definitions * */ extern struct UFB _ufbs[NUFBS]; extern int _iomode,_nufbs,__umask; struct UFB *chkufb(int); #endif uct UFB *chkufb(int); #endif öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: stdlib.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * General utilities and defines * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _STDLIB_H #define _STDLIB_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef _SIZE_T #define _SIZE_T typedef unsigned long int size_t; #endif #ifndef _WCHAR_T #define _WCHAR_T typedef unsigned char wchar_t; #endif #define MB_CUR_MAX __mb_cur_max extern char __mb_cur_max; typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; void *malloc(size_t); void *calloc(size_t,size_t); void *realloc(void *, size_t); void free(void *); void *getml(size_t); int rlsml(void *, size_t); size_t sizmem(void); size_t chkml(void); void *getmem(unsigned); int rlsmem(void *, unsigned); void *alloca(size_t); extern size_t _stkdelta; /* stack/data area separation chicken factor */ void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); void dqsort(double *,size_t); void fqsort(float *,size_t); void lqsort(long *,size_t); void sqsort(short *,size_t); void tqsort(char **,size_t); int mblen(const char *,size_t); size_t mbstowcs(wchar_t *, const char *, size_t); int mbtowc(wchar_t *, const char *, size_t); size_t wcstombs(char *, const wchar_t *, size_t); int wctomb(char *, wchar_t); void exit(int); void abort(void); int atoi(const char *); double atof(const char *); long int atol(const char *); char *getenv(const char *); void _exit(int); void _XCEXIT(int); char *argopt(int, const char *[], const char *, int *, char *); void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); void *lsearch(const void *, void *, size_t *, size_t, int (*)(const void *, const void *)); void *lfind(const void *, const void *, const size_t *, size_t, int (*)(const void *, const void *)); int system(const char *); size_t _hash(const char *); #undef abs int abs(int); int __builtin_abs(int); #define abs(i) __builtin_abs(i) #undef iabs int iabs(int); int __builtin_abs(int); #define iabs(i) __builtin_abs(i) #undef labs long labs(long); long __builtin_labs(long); #define labs(i) __builtin_labs(i) #ifndef min int min(int,int); int __builtin_min(int,int); #define min(a,b) __builtin_min(a,b) #endif #ifndef max int max(int,int); int __builtin_max(int,int); #define max(a,b) __builtin_max(a,b) #endif char *ecvt(double, int, int *, int *); char *fcvt(double, int, int *, int *); char *gcvt(double, int, char *); long getfnl(const char *, char *, size_t, int); int onexit(int(*)(int)); int putenv(char *); int rand(void); int rmvenv(const char *); void srand(unsigned int); double strtod(const char *, char **); long int strtol(const char *, char **, int); unsigned long int strtoul(const char *,char **,int); long int utpack(const char *); void utunpk(long int, char *); int atexit(void (* )(void)); div_t div(int, int); ldiv_t ldiv(long int, long int); unsigned long _lrotl(unsigned long,int); #pragma inline d0=_lrotl(D0,D1) {"e3b8";} unsigned short _rotl(unsigned int,int); #pragma inline d0=_rotl(D0,D1) {"e378";} unsigned long _lrotr(unsigned long,int); #pragma inline d0=_lrotr(D0,D1) {"e2b8";} unsigned short _rotr(unsigned int,int); #pragma inline d0=_rotr(D0,D1) {"e278";} extern char *optarg; extern int optopt; extern int optind; extern int opterr; int getopt(int, char *const *, const char *); #define EXIT_SUCCESS 0 #define EXIT_FAILURE 3 #define RAND_MAX 32767 #ifndef NULL #define NULL __NULL #endif #endif NULL __NULL #endif #endif */ #define FH_SFVNR 22 /* U Source Font Version Number 2 bytes */ #define FH_FNTNM 24 /* U Source Font Name 70 bytes */ #define FH_MDATE 94 /* U Manufacturing Date 10 bytes */ #define FH_LAYNM 104 /* U Layout Name 70 bytes */ #define FH_CPYRT 174 /* U Copyright Notice 78 bytes */ #define FH_NCHRL 252 /* U Number of Chars in Layout 2 bytes */ #define FH_NCHRF 25/** * $Id: strings.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * BSD style string header file * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _STRINGS_H #define _STRINGS_H #include #endif S 260 /* U Number of kerning pairs in font 2 bytes */ #define FH_FLAGS 262 /* U Font flags 1 byte: */ /* Bit 0: Extended font */ /* Bit 1: not used */ /* Bit 2: not used */ /* Bit 3: not used */ /* Bit 4: not used */ /* Bit 5: not used */ /* Bit 6: not used */ /* Bit 7: not used */ #define FH_CLFGS 263 /* U Classification flags 1 byte: */ /* Bit 0: Italic */ /* Bit 1: Monospace */ /* Bit 2: Serif */ /* Bit 3: Display */ /* Bit 4: not used */ /* Bit 5: not used */ /* Bit 6: not used */ /* Bit 7: not used */ #define FH_FAMCLDRAGDROPH 2‰oĻŹMATH H M‰oé” LOCALE H I‰oķ BASEPAGEH )‰oÅ“MACROS H L‰oólFTW H <‰očŃ__TYPES H #‰o£;IO H C‰ołŃASSERT H (‰oÄ’MEMORY H O‰oų‡GEMOUT H A‰oņ“ IEEEFP H B‰oöÜTADDR H i‰ožcMINTBINDH P‰o’õ LINEA H G‰ośæ=AES H %‰o¤Ń;OSERR H V‰oĶDSPBIND H 4‰oŠ*__MODES H !‰o”±UTIME H o‰o¬]EXT H 7‰oÓ& PROCESS H X‰oMTIME H j‰o§!FLOAT H :‰oÖ¬UNISTD H m‰o©“ MODE H Q‰oM68881 H K‰oSETJMP H Z‰oSNDBIND H \‰o» SPEEDOHDH `‰o_/** * $Id: ftw.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * File tree walking definitions * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _FTW_H #define _FTW_H #include #include #define FTW_F 0 /* normal file */ #define FTW_D 1 /* directory */ #define FTW_DNR 2 /* unreadable directory */ #define FTW_NS 3 /* unreadable file info */ int ftw(const char *,int (*)(const char *,struct stat *,int),int); #endif f(a) + 1) & ~1ul) #define va_start(a,b) ((void)((a) = (va_list)&(b) + __va(b))) #define va_arg(a,b) (*(b *)(((a) += __va(b)) - __va(b))) #define va_end(a) ((void)0) #endif @ _ITANG 328 /* U Italic angle 2 bytes (1/256th deg) */ #define FH_ORUPM 330 /* U Number of ORUs per em 2 bytes */ #define FH_WDWTH 332 /* U Width of Wordspace 2 bytes */ #define FH_EMWTH 334 /* U Width of Emspace 2 bytes */ #define FH_ENWTH 336 /* U Width of Enspace 2 bytes */ #define FH_TNWTH 338 /* U Width of Thinspace 2 bytes /** * $Id: math.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Math header file * * (c) Copyright 1989, 1992, 1993 HiSoft **/ #ifndef _MATH_H #define _MATH_H #ifndef HUGE_VAL #define HUGE_VAL 1.797693134862317E+308 #endif #ifndef EDOM #define EDOM 33 /* Math function argument error */ #endif #ifndef ERANGE #define ERANGE 34 /* Math function result is out of range */ #endif /* * ANSI functions */ double acos(double); double asin(double); double atan(double); double cos(double); double cosh(double); double exp(double); double fabs(double); double log(double); double log10(double); double sin(double); double sinh(double); double sqrt(double); double tan(double); double atan2(double, double); double frexp(double, int *); double ldexp(double, int); double modf(double, double *); double pow(double, double); double ceil(double); double floor(double); double fmod(double, double); double tanh(double); #ifndef _ANSI double pow2(double); #endif #include #ifndef _ANSI /* * Structure to hold information about math exceptions */ struct exception { int type; /* error type */ const char *name; /* math function name */ double arg1, arg2; /* function arguments */ double retval; /* proposed return value */ }; /* * Exception type codes, found exception.type */ #define DOMAIN 1 /* domain error */ #define SING 2 /* singularity */ #define OVERFLOW 3 /* overflow */ #define UNDERFLOW 4 /* underflow */ #define TLOSS 5 /* total loss of significance */ #define PLOSS 6 /* partial loss of significance */ #define RANGE 7 /* range error */ /* * Error codes generated by basic arithmetic operations (+ - * /) */ #define FPEUND 1 /* underflow */ #define FPEOVF 2 /* overflow */ #define FPEZDV 3 /* zero divisor */ #define FPENAN 4 /* not a number (invalid operation) */ #define FPECOM 5 /* not comparable */ void __stdargs _CXFERR(int); /* * Floating point constants */ #define PI 3.14159265358979323846 #define PID2 1.57079632679489661923 /* PI/2 */ #define PID4 0.78539816339744830962 /* PI/4 */ #define I_PI 0.31830988618379067154 /* 1/PI */ #define I_PID2 0.63661977236758134308 /* 1/(PI/2) */ #define HUGE HUGE_VAL #define TINY 2.2e-308 #define LOGHUGE 709.778 #define LOGTINY -708.396 typedef struct complex { double re; double im; } COMPLEX; /* * Lattice functions (Non-ANSI) */ double cabs(COMPLEX *); COMPLEX *cadd(COMPLEX *,COMPLEX *,COMPLEX *); COMPLEX *cdiv(COMPLEX *,COMPLEX *,COMPLEX *); COMPLEX *cmul(COMPLEX *,COMPLEX *,COMPLEX *); COMPLEX *csub(COMPLEX *,COMPLEX *,COMPLEX *); double cot(double); double drand48(void); double erand48(unsigned short *); char *ecvt(double, int, int *, int *); char *fcvt(double, int, int *, int *); char *gcvt(double, int, char *); long jrand48(unsigned short *); void lcong48(unsigned short *); long lrand48(void); double except(int, const char *, double, double, double); int matherr(struct exception *); long mrand48(void); long nrand48(unsigned short *); unsigned short *seed48(unsigned short *); void srand48(long); extern int _FPERR; #endif #endif #include <__types.h> #endif #ifndef NULL #define NULL __NULL #endif #define offsetof(type, memb) ((size_t)&((type *)0)->memb) typedef __ptrdiff_t ptrdiff_t; #ifndef _SIZE_T #define _SIZE_T typedef __size_t size_t; #endif #ifndef _WCHAR_T #define _WCHAR_T typedef __wchar_t wchar_t; #endif #endif öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: locale.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Localisation functions and macros * * (c) Copyright 1989, 1993 HiSoft **/ #ifndef _LOCALE_H #define _LOCALE_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef _SIZE_T #define _SIZE_T typedef unsigned long size_t; #endif #ifndef _WCHAR_T #define _WCHAR_T typedef unsigned char wchar_t; #endif #define LC_COLLATE 0 #define LC_CTYPE 1 #define LC_NUMERIC 2 #define LC_TIME 3 #define LC_MONETARY 4 #define LC_ALL 5 struct lconv { const char *decimal_point; const char *thousands_sep; const char *grouping; #define LCONVM int_curr_symbol const char *int_curr_symbol; const char *currency_symbol; const char *mon_decimal_point; const char *mon_thousands_sep; const char *mon_grouping; const char *positive_sign; const char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; }; struct __lconvn /* lconv from LC_NUMERIC */ { const char *decimal_point; const char *thousands_sep; const char *grouping; }; struct __lconvm /* lconv from LC_MONETARY */ { const char *int_curr_symbol; const char *currency_symbol; const char *mon_decimal_point; const char *mon_thousands_sep; const char *mon_grouping; const char *positive_sign; const char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; }; struct __locale { struct __locale *nxtlc; /* next locale pointer */ const char *lcname; /* locale name LC_ALL */ const char **abswday; /* abbreviated weekday nam LC_TIME */ const char **swday; /* full weekday names LC_TIME */ const char **absmon; /* abbrev. month names LC_TIME */ const char **smon; /* full month names LC_TIME */ const char **sampm; /* names for am. and pm. LC_TIME */ const char *stzone; /* name for timezone LC_TIME */ const int *lccomp; /* collating sequenc LC_COLLATE? */ const int *ixfrm; /* translate table LC_COLLATE */ char decpt; /* decimal point char LC_NUMERIC */ char mb_cur_max; /* max bytes in wide character LC_CTYPE */ char mb_state; /* flag for state-dep mappings LC_CTYPE */ /* mblen function LC_CTYPE */ int (*mblen)(const char *, size_t); int mblen_state; /* mblen shift state LC_CTYPE */ /* mbtowc function LC_CTYPE */ int (*mbtowc)(wchar_t *,const char *, size_t); int mbtowc_state; /* mbtowc shift state LC_CTYPE */ /* wctomb function LC_CTYPE */ int (*wctomb)(char *, wchar_t); int wctomb_state; /* wctomb shift state LC_CTYPE */ /* mbstowcs function LC_CTYPE */ size_t (*mbstowcs)(wchar_t *,const char *, size_t); int mbstowcs_state; /* mbstowcs shift state LC_CTYPE */ /* wcstombs function LC_CTYPE */ size_t (*wcstombs)(char *, const wchar_t *,size_t); int wcstombs_state; /* wcstombs shift state LC_CTYPE */ struct __lconvn *lconvn; /* structure for lconv LC_NUMERIC */ struct __lconvm *lconvm; /* structure for lconv LC_MONETARY */ }; extern struct __locale *__clocale[]; /* current locale for each category */ extern struct lconv __clconv; /* current lconv array */ extern char __decpt; /* current decimal point character */ #define DECPT __decpt extern char __mb_cur_max; extern struct __locale *__flocale; /* first locale in list ("C") */ extern struct __locale *__llocale; /* last locale in list */ char *setlocale(int, const char *); struct lconv *localeconv(void); struct __locale *readlocale(const char *); /* * Error messages when reading a locale, stored in lclerror */ #define LCLNAME 1 /* pathname for locale file too long */ #define LCLOPEN 2 /* Unable to open locale file */ #define LCLCOLL 3 /* multiple collate spec */ #define LCLCTYPE 4 /* multiple c types spec */ #define LCLNUMERIC 5 /* multiple numeric spec */ #define LCLTIME 6 /* multiple time spec */ #define LCLMONETARY 7 /* multiple monetary spec */ #define LCLREAD 8 /* Error reading locale file */ #define LCLEND 9 /* Missing END record */ extern int __lclerror; #ifndef NULL #define NULL __NULL #endif #endif ULL __NULL #endif #endif E *, long int, int); int fsetpos(FILE *, const fpos_t *); long int ftell(FILE *); void rewind(FILE *); #ifndef __NO_STDIO_DEFINES #define rewind(p) fseek(p, 0L, 0) #endif void clearerr(FILE *); #ifndef __NO_STDIO_DEFINES #define clearerr(p) ((p)->_flag &= ~(_IOERR | _IOEOF)) #endif int feof(FILE *); #ifndef __NO_STDIO_DEFINES #define feof(p) (((p)->_flag & _IOEOF) != 0) #endif int ferror(FILE *); #ifndef __NO_STDIO_DEFINES #define ferror(p) (((p)->_flag & _IOERR) != 0) #endif void perror(const char *); /* * Prototypes for Non-ANSI functions. */ int fcloseall(void); FILE *fdopen(int, const char *); int fgetchar(void); int fileno(FILE *); int flushall(void); void fmode(FILE *, int); int/** * $Id: gemout.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * GEMDOS file format definitions (aka a.out.h) * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _GEMOUT_H #define _GEMOUT_H /* * GEMDOS object header */ struct gemohdr { #define GEMOMAGIC 0x601a /* executable magic number */ short g_magic; /* magic number */ #define GO_TEXT 0 /* text section */ #define GO_DATA 1 /* data section */ #define GO_BSS 2 /* BSS */ #define GO_SYM 3 /* symbol table */ #define GEMNSEG 4 /* number of sections */ long g_ssize[GEMNSEG]; /* size of sections */ long g_reserved; /* zero */ #define GF_FAST 0x01 /* fastload bit */ #define GF_TTMALLOC 0x02 /* Malloc from TT RAM */ #define GF_LOAD 0x04 /* load into TT RAM */ #define GF_PROT_P 0x00 #define GF_PROT_G 0x10 #define GF_PROT_S 0x20 #define GF_PROT_PR 0x30 #define GF_SHTEXT 0x800 #define GF_TPASHIFT 28 /* bits to shift for TPA size field */ long g_flags; /* loadbits */ short g_relflag; /* non-zero i/** * $Id: macros.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Common macros * * (c) Copyright 1992 HiSoft **/ #ifndef _MACROS_H #define _MACROS_H int __builtin_abs(int); #define abs(i) __builtin_abs(i) int __builtin_min(int,int); #define min(a,b) __builtin_min(a,b) int __builtin_max(int,int); #define max(a,b) __builtin_max(a,b) #endif efine _WCHAR_T typedef unsigned char wchar_t; #endif #define MB_CUR_MAX __mb_cur_max extern char __mb_cur_max; typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; void *malloc(size_t); void *calloc(size_t,size_t); void *realloc(void *, size_t); void free(void *); void *getml(size_t); int rlsml(void *, size_t); size_t sizmem(void); size_t chkml(void); void *getmem(unsigned); int rlsmem(void *, unsigned); void *alloca(size_t); extern size_t _stkdelta; /* stack/data area separation chicken factor */ void qsort(void *, size_t, size_t, int (*)(const void *, conf no relocation */ }; /* * GEMDOS symbol */ struct gemsym { char gs_name[8]; /* name */ #define GS_HISOFT 0x0048 /* HiSoft extended */ #define GS_ARCHIVE 0x0040 /* archive */ #define GS_FILE 0x0080 /* file */ #define GS_BSS 0x0100 /* bss */ #define GS_TEXT 0x0200 /* text */ #define GS_DATA 0x0400 /* data */ #define GS_EXT 0x0800 /* external */ #define GS_EQREG 0x1000 /* equated register */ #define GS_GLOBL 0x2000 /* global */ #define GS_EQU 0x4000 /* equated */ #define GS_DEF 0x8000 /* defined */ unsigned short gs_type; /* type */ long gs_value; /* value */ }; /* * GEMDOS executable relocation types */ #define GR_ABS 0 /* absolute */ #define GR_DATA 1 /* data relative */ #define GR_TEXT 2 /* text relative */ #define GR_BSS 3 /* BSS relative */ #define GR_SYM 4 /* symbol */ #define GR_LONG 5 /* first word of longword fixup */ #define GR_PC 6 /* pc relative */ #define GR_INST 7 /* first word of instruction */ #define GR_MASK 7 /* mask of relocation types */ #define GR_SHIFT 3 /* amount to shift */ /* * GEMDOS archive format */ #define GEMAMAGIC 0xff65 struct gemahdr { char ga_name[14]; /* file name */ long ga_date; /* last modified time */ char ga_uid; /* not used */ char ga_gid; /* not used */ short ga_mode; /* mode word */ long ga_size; /* size in bytes */ short ga_fill; /* zero */ }; #endif OF (-1) /* ISO/IEC 9945-1:1990 types */ typedef long __off_t; typedef short __nlink_t; typedef short __pid_t; typedef signed long __ssize_t; typedef unsigned short __dev_t; typedef unsigned short __gid_t; typedef unsigned short __mode_t; typedef unsigned short __uid_t; typedef unsigned long __ino_t; typedef unsigned long __sigset_t; strtol(const char *, char **, int); unsigned long int strtoul(const char *,char **,int); long int utpack(const char *); void utunpk(long int, char *); int atexit(void (* )(void)); div_t div(int, int); ldiv_t ldiv(long int, long int/** * $Id: ieeefp.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Lattice FPU math control * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _IEEEFP_H #define _IEEEFP_H long __getfpcr(void); long __getfpsr(void); void __setfpcr(long); void __setfpsr(long); extern int _FPCmode; extern long _FPCfpcr; typedef enum fp_rnd { FP_RN = 0x0000, /* round to nearest */ FP_RZ = 0x0010, /* round toward zero */ FP_RM = 0x0020, /* round toward minus infinity */ FP_RP = 0x0030 /* round toward minus infinity */ } fp_rnd; fp_rnd fpgetround(void); fp_rnd fpsetround(fp_rnd); typedef enum fp_prec { FP_PX = 0x0000, /* extended precision */ FP_PS = 0x0040, /* single precision */ FP_PD = 0x0080 /* double precision */ } fp_prec; fp_prec fpgetprecision(void); fp_prec fpsetprecision(fp_prec); typedef enum fp_except { FP_X_BSUN = 0x8000, /* branch/set on unordered */ FP_X_SNAN = 0x4000, /* signalling not a number */ FP_X_OPERR = 0x2000, /* operand error */ #define FP_X_IOP FP_X_OPERR /* invalid operation (accrued) */ FP_X_OVFL = 0x1000, /* overflow */ FP_X_UNFL = 0x0800, /* underflow */ FP_X_DZ = 0x0400, /* divide by zero */ FP_X_INEX2 = 0x0200, /* inexact operation */ #define FP_X_INEX FP_X_INEX2 /* inexact operation (accrued) */ FP_X_INEX1 = 0x0100 /* inexact decimal input */ } fp_except; fp_except fpgetmask(void); fp_except fpsetmask(fp_except); fp_except fpgetsticky(void); fp_except fpsetsticky(fp_except); #endif har *strcat(char *, const char *); char *strchr(const char *, int); int strcmp(const char *, const char *); char *strcpy(char *, const char *); size_t strcspn(const char *, const char *); size_t strspn(const char *, const char *); size_t strlen(const char *); char *strncat(char *, const char *, size_t); int strncmp(const char *, const char *, size_t); char *strncpy(char *, const char *, size_t); char *strpbrk(const char *, const char *); char *strrchr(const char *, int); char *strstr(const char *, const char *); char *strtok(char/** * $Id: memory.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Memory allocation declarations * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _MEMORY_H #define _MEMORY_H #ifndef _SIZE_T #define _SIZE_T typedef unsigned long int size_t; #endif void *malloc(size_t); void *calloc(size_t,size_t); void *realloc(void *, size_t); void free(void *); void *getml(size_t); int rlsml(void *, size_t); size_t sizmem(void); size_t chkml(void); int bldmem(int); void *getmem(unsigned); int rlsmem(void *, unsigned); void *alloca(size_t); extern size_t _stkdelta; void *sbrk(unsigned); void *lsbrk(long); #endif size_t); char *strrev(char *); size_t stcis(const char *, const char *); size_t stcisn(const char *, const char *); size_t stcpm(const char *, const char *, char **); size_t stcpma(const char *, const char *); char *stpblk(const char *); char *stpbrk(const char *, const char *); char *stpchr(const char *, int); char *stpsym(const char *, char *, size_t); char *stpc/** * $Id: io.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Microsoft C compatability definitions * * (c) Copyright 1991, 1993 HiSoft **/ #include #include #include MOMAGIC 0x601a /* executable magic number */ short g_magic; /* magic number */ #define GO_TEXT 0 /* text section */ #define GO_DATA 1 /* data section */ #define GO_BSS 2 /* BSS */ #define GO_SYM 3 /* symbol table */ #define GEMNSEG 4 /* number of sections */ long g_ssize[GEMNSEG]; /* size of sections */ long g_reserved; /* zero */ #define GF_FAST 1 /* fastload bit */ #define GF_TTMALLOC 2 /* Malloc from TT RAM */ #define GF_LOAD 4 /* load into TT RAM */ #define GF_TPASHIFT 28 /* bits to shift for TPA size field */ long g_flags; /* loadbits */ short g_relflag; /* non-zero if no relocation */ }; /* * GEMDOS symbol */ struct gemsym { char gs_name[8]; /* name */ #define GS_HISOFT 0x0048 /* HiSoft extended */ #define GS_ARCHIVE 0x0040 //** * $Id: linea.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Line-A VDI primitives interface file * * (c) Copyright 1989-1993 HiSoft **/ #ifndef _LINEA_H #define _LINEA_H typedef struct la_data { short ld_vplanes; /* number of video planes */ short ld_vwrap; /* number of bytes/video line */ short *ld_contrl; /* pointer to CONTRL array */ short *ld_intin; /* pointer to INTIN array */ short *ld_ptsin; /* pointer to PTSIN array */ short *ld_intout; /* pointer to INTOUT array */ short *ld_ptsout; /* pointer to PTSOUT array */ short ld_colbit[4]; /* colour bit-plane[i] value */ short ld_lstlin; /* plot last pixel flag */ short ld_lnmask; /* line-style mask */ short ld_wmode; /* writing mode 0:replace, 1:transparent, 2:exclusive OR, 3:inverse transparent */ short ld_x1; /* X1 coordinate */ short ld_y1; /* Y1 coordinate */ short ld_x2; /* X2 coordinate */ short ld_y2; /* Y2 coordinate */ short *ld_patptr; /* fill pattern pointer */ short ld_patmsk; /* fill pattern mask */ short ld_mfill; /* multi-plane fill flag */ short ld_clip; /* clipping flag */ short ld_xmincl; /* minimum X clipping value */ short ld_ymincl; /* minimum Y clipping value */ short ld_xmaxcl; /* maximum X clipping value */ short ld_ymaxcl; /* maximum Y clipping value */ short ld_xdda; /* accumulator for textblt dda */ short ld_ddainc; /* fixed point scale factor */ short ld_scaldir; /* scale direction flag */ short ld_mono; /* current font is monospaced */ short ld_srcx; /* X coord of character in font */ short ld_srcy; /* Y coord of character in font */ short ld_dstx; /* X coord of character on screen */ short ld_dsty; /* Y coord of character on screen */ short ld_delx; /* width of character */ short ld_dely; /* height of character */ void *ld_fbase; /* pointer to start of font form */ short ld_fwidth; /* width of font form */ short ld_style; /* textblt special effects flags */ short ld_litemsk; /* lightening mask */ short ld_skewmsk; /* skewing mask */ short ld_weight; /* thickening factor */ short ld_roff; /* skew offset above baseline */ short ld_loff; /* skew offset below baseline */ short ld_scale; /* scaling flag */ short ld_chup; /* character rotation vector */ short ld_textfg; /* text foreground colour */ void *ld_scrtchp; /* text special effects buffer */ short ld_scrpt2; /* offset to scaling buffer from above */ short ld_textbg; /* text background colour */ short ld_copytran; /* copy raster form type flag */ int (*ld_seedabort)(void); /* seedfill end detect function */ } LA_DATA; typedef struct la_font { short font_id; /* face identifier */ short font_size; /* font size in points */ char font_name[32]; /* face name */ short font_low_ade; /* lowest ASCII value in face */ short font_hi_ade; /* highest ASCII value in face */ short font_top_dst; /* top line distance */ short font_ascent_dst; /* ascent line distance */ short font_half_dst; /* half line distance */ short font_descent_dst; /* descent line distance */ short font_bottom_dist; /* bottom line distance */ short font_fatest; /* width of widest char in font */ short font_fat_cell; /* width of widest char cell in font */ short font_left_off; /* left offset */ short font_right_off; /* right offset */ short font_thickening; /* no. of pixels to widen chars */ short font_underline; /* width in pixels of underline */ short font_lightening; /* mask used to drop pixels out */ short font_skewing; /* mask used to determine skewing */ short font_flags; /* font flags */ short *font_horiz_off; /* pointer to horizontal offset table */ short *font_char_off; /* pointer to char offset table */ void *font_data; /* pointer to font data */ short font_width; /* font width */ short font_height; /* font height */ struct la_font *font_next; /* pointer to next font */ } LA_FONT; typedef struct la_ext { long ld_resvd1; struct la_font *ld_cur_font; /* pointer to current font head/** * $Id: taddr.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Macros for object access * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _TADDR_H #define _TADDR_H #define OB_NEXT(x) (tree[x]->ob_next) #define OB_HEAD(x) (tree[x]->ob_head) #define OB_TAIL(x) (tree[x]->ob_tail) #define OB_TYPE(x) (tree[x]->ob_type) #define OB_FLAGS(x) (tree[x]->ob_flags) #define OB_STATE(x) (tree[x]->ob_state) #define OB_SPEC(x) (tree[x]->ob_spec) #define OB_X(x) (tree[x]->ob_x) #define OB_Y(x) (tree[x]->ob_y) #define OB_WIDTH(x) (tree[x]->ob_width) #define OB_HEIGHT(x) (tree[x]->ob_height) #endif ; int tm_isdst; }; clock_t (clock)(void); double (difftime)(time_t, time_t); time_t (mktime)(struct tm *); time_t (time)(time_t *); char *(asctime)(const struct tm *); char *(ctime)(const time_t *); struct tm *(gmtime)(const time_t *); struct tm *(localtime)(const time_t *); size_t (strftime)(char *, size_t, const char *, const struct tm *); extern char *__tzname[2]; extern int __daylight; /** * $Id: mintbind.h,v 1.7 1993/11/14 14:43:52 AGK Rel $ * * Interface to MiNT * * Copyright (c) 1992, 1993 HiSoft **/ #ifndef _MINTBIND_H #define _MINTBIND_H #include #define Syield() __vgv(0xff) #define Fpipe(a) __sgr(0x100,a) #define Fcntl(a,b,c) __lgsls(0x104,a,b,c) #define Finstat(a) __lgs(0x105,a) #define Foutstat(a) __lgs(0x106,a) #define Fgetchar(a,b) __lgss(0x107,a,b) #define Fputchar(a,b,c) __lgsls(0x108,a,b,c) #define Pwait() __lgv(0x109) #define Pnice(a) __sgs(0x10a,a) #define Pgetpid() __sgv(0x10b) #define Pgetppid() __sgv(0x10c) #define Pgetpgrp() __sgv(0x10d) #define Psetpgrp(a,b) __sgss(0x010e,a,b) #define Pgetuid() __sgv(0x10f) #define Psetuid(a) __sgs(0x110,a) #define Pkill(a,b) __sgss(0x111,a,b) #define Psignal(a,b) __ggsg(0x112,a,b) #define Pvfork() __sgv(0x113) #define Pgetgid() __sgv(0x114) #define Psetgid(a) __sgs(0x115,a) #define Psigblock(a) __lgl(0x116,a) #define Psigsetmask(a) __lgl(0x117,a) #define Pusrval(a) __lgl(0x118,a) #define Pdomain(a) __sgs(0x119,a) #define Psigreturn() __lgv(0x11a) #define Pfork() __lgv(0x11b) #define Pwait3(a,b) __lgsn(0x11c,a,b) #define Fselect(a,b,c,d) __sgunnn(0x11d,a,b,c,d) #define Prusage(a) __lgn(0x11e,a) #define Psetlimit(a,b) __lgsl(0x11f,a,b) #define Talarm(a) __lgl(0x120,a) #define Pause() __vgv(0x121) #define Sysconf(a) __lgs(0x122,a) #define Psigpending() __lgv(0x123) #define Dpathconf(a,b) __lgcs(0x124,a,b) #define Pmsg(a,b,c) __lgslp(0x125,a,b,c) #define Fmidipipe(a,b,c) __lgsss(0x126,a,b,c) #define Prenice(a,b) __sgss(0x127,a,b) #define Dopendir(a,b) __lgcs(0x128,a,b) #define Dreaddir(a,b,c) __lgslp(0x129,a,b,c) #define Drewinddir(a) __lgl(0x12a,a) #define Dclosedir(a) __lgl(0x12b,a) #define Fxattr(a,b,c) __lgscp(0x12c,a,b,c) #define Flink(a,b) __lgcc(0x12d,a,b) #define Fsymlink(a,b) __lgcc(0x12e,a,b) #define Freadlink(a,b,c) __lgsdc(0x12f,a,b,c) #define Dcntl(a,b,c) __lgscp(0x130,a,b,c) #define Fchown(a,b,c) __lgcss(0x131,a,b,c) #define Fchmod(a,b) __lgcs(0x132,a,b) #define Pumask(a) __lgu(0x133,a) #define Psemaphore(a,b,c) __lgsll(0x134,a,b,c) #define Dlock(a,b) __lgss(0x135,a,b) #define Psigpause(a) __lgl(0x136, a) #define Psigaction(a,b,c) __lgsqp(0x137,a,b,c) #define Pgeteuid() __sgv(0x138) #define Pgetegid() __sgv(0x139) #define Pwaitpid(a,b,c) __lgssn(0x13a,a,b,c) #define Dgetcwd(a,b,c) __lgdss(0x13b,a,b,c) #define Salert(a) __lgc(0x13c,a) #define Dos_tab() __ngv(-1) #define Bios_tab() __nbv(-1) #define Xbios_tab() __nxv(-1) #endif 1) #endif g of file */ #endif #ifndef SEEK_CUR #define SEEK_CUR 1 /* Seek from current file position */ #endif #ifndef SEEK_END #define SEEK_END 2 /* Seek from end of file */ #endif #define STDIN_FILENO 0 #define STDOUT_FILENO 1 #define STDERR_FILENO 2 #define F_OK 0 #define X_OK 1 #define W_OK 2 #define R_OK 4 #define _POSIX_VDISABLE 0 #define _POSIX_JOB_CONTROL #define _POSIX_CHOWN_RESTRICTED 0 __pid_t (getpid)(void); __pid_t (getppid)(void); __uid_t (getuid)(void); __uid_t (geteuid)er */ short ld_resvd2[23]; short ld_m_pos_hx; /* mouse x hot spot */ short ld_m_pos_hy; /* mouse y hot spot */ short ld_m_planes; /* writing mode for mouse */ short ld_m_cdb_bg; /* mouse background colour */ short ld_m_cdb_fg; /* mouse foreground colour */ short ld_mask_form[32]; /* mouse mask and form */ short ld_inq_tab[45]; /* vq_extnd information */ short ld_dev_tab[45]; /* v_opnwk information */ short ld_gcurx; /* current mouse x position */ short ld_gcury; /* current mouse x position */ short ld_m_hid_ct; /* mouse hide count */ short ld_mouse_bt; /* mouse button status */ short ld_req_col[3][16]; /* internal vq_color lookup */ short ld_siz_tab[15]; /* current text, line and marker sizes */ short ld_resvd3; short ld_resvd4; short *ld_cur_work; /* current vwork attributes */ struct la_font *ld_def_font; /* default font header */ struct la_font *ld_font_ring[4];/* vdi font ring */ short ld_font_count; /* number of fonts in font ring */ short ld_resvd5[45]; unsigned char ld_cur_ms_stat; /* mouse status */ char ld_resvd6; short ld_v_hid_cnt; /* cursor hide count */ short ld_cur_x; /* mouse x position */ short ld_cur_y; /* mouse y position */ char ld_cur_flag; /* mouse draw status */ char ld_mouse_flag; /* mouse processing enabled */ long ld_resvd7; short ld_v_sav_xy[2]; /* saved cursor xy position */ short ld_save_len; /* height of saved form */ short *ld_save_addr; /* screen address of saved form */ short ld_save_stat; /* save status */ long ld_save_area[4][16]; /* form save area */ void (*ld_user_tim)(); /* user timer vector */ void (*ld_next_tim)(); /* next timer vector */ void (*ld_user_but)(); /* user button vector */ void (*ld_user_cur)(); /* user cursor vector */ void (*ld_user_mot)(); /* user motion vector */ short ld_cel_ht; /* cell height */ short ld_cel_mx; /* max x cells */ short ld_cel_my; /* max y cells */ short ld_cel_wr; /* displacement to next vertical cell */ short ld_col_bg; /* background colour index */ short ld_col_fg; /* foreground colour index */ void *ld_cur_ad; /* cursor address */ short ld_cur_off; /* offset to first cell */ short ld_cur_xy[2]; /* cursor xy position */ char ld_cur_cnt; /* cursor flash period */ char ld_cur_tim; /* cursor flash countdown */ void *ld_fnt_ad; /* address of font data */ short ld_fnt_nd; /* last ade in font */ short ld_fnt_st; /* first ade in font */ short ld_fnt_wr; /* font form width */ short ld_x_max; /* horizontal pixel resolution */ void *ld_off_ad; /* pointer to font offset table */ short ld_status; /* cursor status */ short ld_y_max; /* vertical pixel resolution */ short ld_bytes_lin; /* width of destination form */ } LA_EXT; typedef struct la_blk { short bl_xmin; /* minimum x */ short bl_ymin; /* minimum y */ short *bl_form; /* word aligned memory form */ short bl_nxwd; /* offset to next word in line */ short bl_nxln; /* offset to next line in plane */ short bl_nxpl; /* offset to next plane */ } LA_BLK; typedef struct la_blit { short bb_b_wd; /* width of block in pixels */ short bb_b_ht; /* height of block in pixels */ short bb_plane_ct; /* number of planes to blit */ short bb_fg_col; /* foreground colour */ short bb_bg_col; /* background colour */ char bb_op_tab[4]; /* Logic for fg x bg combination */ struct la_blk bb_s; /* source info block */ struct la_blk bb_d; /* destination info block */ short *bb_p_addr; /* pattern buffer address */ short bb_p_nxln; /* offset to next line in pattern */ short bb_p_nxpl; /* offset to next plane in pattern */ short bb_p_mask; /* pattern index mask */ char bb_fill[24]; /* work space */ } LA_BLIT; typedef struct la_sprite { short ls_xhot; /* X hot spot offset */ short ls_yhot; /* Y hot spot offset */ short ls_form; /* 1 for VDI, -1 for XOR */ short ls_bgcol; /* background colour index */ short ls_fgcol; /* foreground colour index */ short ls_image[32]; /* background/foreground interleaved image */ } LA_SPRITE; /* Lattice 3 flavour */ typedef struct linea_info { long li_d0; /* linea data structure pointer */ struct la_data *li_a0; /* linea data structure pointer */ struct la_font **li_a1; /* system font vector */ long (*li_a2)(); /* linea function vector */ } LINEA_INFO; extern struct linea_info la_info; /* Mark Williams flavour */ struct linea_init { long li_d0; /* linea data structure pointer */ struct la_data *li_a0; /* linea data structure pointer */ struct la_font **li_a1; /* system font vector */ long (*li_a2)(); /* linea function vector */ }; extern struct linea_init la_init; /* Lattice 3 compatability macros */ #define VPLANES la_info.li_a0->ld_vplanes #define VWRAP la_info.li_a0->ld_vwrap #define CONTRL la_info.li_a0->ld_contrl #define INTIN la_info.li_a0->ld_intin #define PTSIN la_info.li_a0->ld_ptsin #define INTOUT la_info.li_a0->ld_intout #define PTSOUT la_info.li_a0->ld_ptsout #define COLBIT0 la_info.li_a0->ld_colbit[0] #define COLBIT1 la_info.li_a0->ld_colbit[1] #define COLBIT2 la_info.li_a0->ld_colbit[2] #define COLBIT3 la_info.li_a0->ld_colbit[3] #define LSTLIN la_info.li_a0->ld_lstlin #define LNMASK la_info.li_a0->ld_lnmask #define WMODE la_info.li_a0->ld_wmode #define X1 la_info.li_a0->ld_x1 #define Y1 la_info.li_a0->ld_y1 #define X2 la_info.li_a0->ld_x2 #define Y2 la_info.li_a0->ld_y2 #define PATPTR la_info.li_a0->ld_patptr #define PATMSK la_info.li_a0->ld_patmsk #define MFILL la_info.li_a0->ld_mfill #define CLIP la_info.li_a0->ld_clip #define XMINCL la_info.li_a0->ld_xmincl #define YMINCL la_info.li_a0->ld_ymincl #define XMAXCL la_info.li_a0->ld_xmaxcl #define YMAXCL la_info.li_a0->ld_ymaxcl #define XDDA la_info.li_a0->ld_xdda #define DDAINC la_info.li_a0->ld_ddainc #define SCALDIR la_info.li_a0->ld_scaldir #define MONO la_info.li_a0->ld_mono #define SRCX la_info.li_a0->ld_srcx #define SRCY la_info.li_a0->ld_srcy #define DSTX la_info.li_a0->ld_dstx #define DSTY la_info.li_a0->ld_dsty #define DELX la_info.li_a0->ld_delx #define DELY la_info.li_a0->ld_dely #define FBASE la_info.li_a0->ld_fbase #define FWIDTH la_info.li_a0->ld_fwidth #define STYLE la_info.li_a0->ld_style #define LITEMSK la_info.li_a0->ld_litemsk #define SKEWMSK la_info.li_a0->ld_skewmsk #define WEIGHT la_info.li_a0->ld_weight #define ROFF la_info.li_a0->ld_roff #define LOFF la_info.li_a0->ld_loff #define SCALE la_info.li_a0->ld_scale #define CHUP la_info.li_a0->ld_chup #define TEXTFG la_info.li_a0->ld_textfg #define SCRTCHP la_info.li_a0->ld_scrtchp #define SCRPT2 la_info.li_a0->ld_scrpt2 #define TEXTBG la_info.li_a0->ld_textbg #define COPYTRAN la_info.li_a0->ld_copytran #define SEEDABORT la_info.li_a0->ld_seedabort #define V_CUR_FONT ((LA_EXT *)la_info.li_a0-1)->ld_cur_font #define V_M_POS_HX ((LA_EXT *)la_info.li_a0-1)->ld_m_pos_hx #define V_M_POS_HY ((LA_EXT *)la_info.li_a0-1)->ld_m_pos_hy #define V_M_PLANES ((LA_EXT *)la_info.li_a0-1)->ld_m_planes #define V_M_CDB_BG ((LA_EXT *)la_info.li_a0-1)->ld_m_cdb_bg #define V_M_CDB_FG ((LA_EXT *)la_info.li_a0-1)->ld_m_cdb_fg #define V_MASK_FORM ((LA_EXT *)la_info.li_a0-1)->ld_mask_form #define V_INQ_TAB ((LA_EXT *)la_info.li_a0-1)->ld_inq_tab #define V_DEV_TAB ((LA_EXT *)la_info.li_a0-1)->ld_dev_tab #define V_GCURX ((LA_EXT *)la_info.li_a0-1)->ld_gcurx #define V_GCURY ((LA_EXT *)la_info.li_a0-1)->ld_gcury #define V_M_HID_CT ((LA_EXT *)la_info.li_a0-1)->ld_m_hid_ct #define V_MOUSE_BT ((LA_EXT *)la_info.li_a0-1)->ld_mouse_bt #define V_REQ_COL ((LA_EXT *)la_info.li_a0-1)->ld_req_col #define V_SIZ_TAB ((LA_EXT *)la_info.li_a0-1)->ld_siz_tab #define V_CUR_WORK ((LA_EXT *)la_info.li_a0-1)->ld_cur_work #define V_DEF_FONT ((LA_EXT *)la_info.li_a0-1)->ld_def_font #define V_FONT_RING ((LA_EXT *)la_info.li_a0-1)->ld_font_ring #define V_FONT_COUNT ((LA_EXT *)la_info.li_a0-1)->ld_font_count #define V_CUR_MS_STAT ((LA_EXT *)la_info.li_a0-1)->ld_cur_ms_stat #define V_V_HID_CNT ((LA_EXT *)la_info.li_a0-1)->ld_v_hid_cnt #define V_CUR_X ((LA_EXT *)la_info.li_a0-1)->ld_cur_x #define V_CUR_Y ((LA_EXT *)la_info.li_a0-1)->ld_cur_y #define V_CUR_FLAG ((LA_EXT *)la_info.li_a0-1)->ld_cur_flag #define V_MOUSE_FLAG ((LA_EXT *)la_info.li_a0-1)->ld_mouse_flag #define V_V_SAV_XY ((LA_EXT *)la_info.li_a0-1)->ld_v_sav_xy #define V_SAVE_LEN ((LA_EXT *)la_info.li_a0-1)->ld_save_len #define V_SAVE_ADDR ((LA_EXT *)la_info.li_a0-1)->ld_save_addr #define V_SAVE_STAT ((LA_EXT *)la_info.li_a0-1)->ld_save_stat #define V_SAVE_AREA ((LA_EXT *)la_info.li_a0-1)->ld_save_area #define V_USER_TIM ((LA_EXT *)la_info.li_a0-1)->ld_user_tim #define V_NEXT_TIM ((LA_EXT *)la_info.li_a0-1)->ld_next_tim #define V_USER_BUT ((LA_EXT *)la_info.li_a0-1)->ld_user_but #define V_USER_CUR ((LA_EXT *)la_info.li_a0-1)->ld_user_cur #define V_USER_MOT ((LA_EXT *)la_info.li_a0-1)->ld_user_mot #define V_CEL_HT ((LA_EXT *)la_info.li_a0-1)->ld_cel_ht #define V_CEL_MX ((LA_EXT *)la_info.li_a0-1)->ld_cel_mx #define V_CEL_MY ((LA_EXT *)la_info.li_a0-1)->ld_cel_my #define V_CEL_WR ((LA_EXT *)la_info.li_a0-1)->ld_cel_wr #define V_COL_BG ((LA_EXT *)la_info.li_a0-1)->ld_col_bg #define V_COL_FG ((LA_EXT *)la_info.li_a0-1)->ld_col_fg #define V_CUR_AD ((LA_EXT *)la_info.li_a0-1)->ld_cur_ad #define V_CUR_OFF ((LA_EXT *)la_info.li_a0-1)->ld_cur_off #define V_CUR_CX ((LA_EXT *)la_info.li_a0-1)->ld_cur_xy[0] #define V_CUR_CY ((LA_EXT *)la_info.li_a0-1)->ld_cur_xy[1] #define V_CUR_CNT ((LA_EXT *)la_info.li_a0-1)->ld_cur_cnt #define V_CUR_TIM ((LA_EXT *)la_info.li_a0-1)->ld_cur_tim #define V_FNT_AD ((LA_EXT *)la_info.li_a0-1)->ld_fnt_ad #define V_FNT_ND ((LA_EXT *)la_info.li_a0-1)->ld_fnt_nd #define V_FNT_ST ((LA_EXT *)la_info.li_a0-1)->ld_fnt_st #define V_FNT_WR ((LA_EXT *)la_info.li_a0-1)->ld_fnt_wr #define V_X_MAX ((LA_EXT *)la_info.li_a0-1)->ld_x_max #define V_OFF_AD ((LA_EXT *)la_info.li_a0-1)->ld_off_ad #define V_STATUS ((LA_EXT *)la_info.li_a0-1)->ld_status #define V_Y_MAX ((LA_EXT *)la_info.li_a0-1)->ld_y_max #define BYTES_LIN ((LA_EXT *)la_info.li_a0-1)->ld_bytes_lin #define putpixel(x,y,v) ((PTSIN[0]=(x)),(PTSIN[1]=(y)),(INTIN[0]=(v)),linea1()) #define getpixel(x,y) ((PTSIN[0]=(x)),(PTSIN[1]=(y)),linea2()) #define showmouse(show) (INTIN[0]=show,linea9()) #define hidemouse() lineaa() #define mousehidden (V_M_HID_CT) struct la_data *linea0(void); void linea1(void); short linea2(void); void linea3(void); void linea4(void); void linea5(void); void linea6(void); void linea7(LA_BLIT *); void linea8(void); void linea9(void); void lineaa(void); void lineab(void); void lineac(void *); void linead(int,int,LA_SPRITE *,void *); void lineae(void); void lineaf(void); #pragma inline linea1() {register a2,d2; "a001";} #pragma inline d0=linea2() {register a2,d2; "a002";} #pragma inline linea3() {register a2,d2; "a003";} #pragma inline linea4() {register a2,d2; "a004";} #pragma inline linea5() {register a2,d2; "a005";} #pragma inline linea6() {register a2,d2; "a006";} #pragma inline linea7(a6) {register a2,d2; "a007";} #pragma inline linea8() {register a2,d2; "a008";} #pragma inline linea9() {register a2,d2; "a009";} #pragma inline lineaa() {register a2,d2; "a00a";} #pragma inline lineab() {register a2,d2; "a00b";} #pragma inline lineac(a2) {register d2,a6; "a00c";} #pragma inline linead(d0,d1,a0,a2) {register d2,a6; "a00d";} #pragma inline lineae() {register a2,d2; "a00e";} #pragma inline lineaf() {register a2,d2; "a00f";} #endif -1)->ld_m_hid_ct #define V_MOUSE_BT ((LA_EXT *)la_info.li_a0-1)->ld_mouse_bt #define V_REQ_COL ((LA_EXT *)la_info.li_a0-1)->ld_req_col #define V_SIZ_TAB ((LA_EXT *)la_info.li_a0-1)->ld_siz_tab #define V_CUR_WORK ((LA_EXT *)la_info.li_a0-1)->ld_cur_work #define V_DEF_FONT ((LA_EXT *)la_info.li_a0-1)->ld_def_font #define V_FONT_RING ((LA_EXT *)la_info.li_a0-1)->ld_font_ring #define V_FONT_COUNT ((LA_EXT *)la_info.li_a0-1)->ld_font_count #define V_CUR_MS_STAT ((LA_EXT *)la_info.li_a0-1)->ld_cur_ms_stat #define V_V_HID_CNT ((LA_EXT *)la_info.li_a0-1)->ld_v_hid_cnt /** * $Id: m68881.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Inline 68881 interface file * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _M68881_H #define _M68881_H #ifdef _M881 double __builtin_fpc(int, double); #define acos(d) __builtin_fpc(0x001C,d) #define asin(d) __builtin_fpc(0x000C,d) #define atan(d) __builtin_fpc(0x000A,d) #define cos(d) __builtin_fpc(0x001D,d) #define cosh(d) __builtin_fpc(0x0019,d) #define exp(d) __builtin_fpc(0x0010,d) #define fabs(d) __builtin_fpc(0x0018,d) #define log(d) __builtin_fpc(0x0014,d) #define log10(d) __builtin_fpc(0x0015,d) #define sin(d) __builtin_fpc(0x000E,d) #define sinh(d) __builtin_fpc(0x0002,d) #define sqrt(d) __builtin_fpc(0x0004,d) #define tan(d) __builtin_fpc(0x000F,d) #define tanh(d) __builtin_fpc(0x0009,d) #ifndef _ANSI #define pow2(d) __builtin_fpc(0x0011,d) #define fintrz(d) __builtin_fpc(0x0003,d) #define flognp1(d) __builtin_fpc(0x0006,d) #define fetoxm1(d) __builtin_fpc(0x0008,d) #define fatanh(d) __builtin_fpc(0x000D,d) #define fgetexp(d) __builtin_fpc(0x001E,d) #define ftentox(d) __builtin_fpc(0x0012,d) #define flog2(d) __builtin_fpc(0x0016,d) #define fneg(d) __builtin_fpc(0x001A,d) #define fgetman(d) __builtin_fpc(0x001F,d) #endif #endif #endif li_a0-1)->ld_cur_off #define V_CUR_CX ((LA_EXT *)la_info.li_a0-1)->ld_cur_xy[0] #define V_CUR_CY ((LA_EXT *)la_info.li_a0-1)->ld_cur_xy[1] #define V_CUR_CNT ((LA_EXT *)la_info.li_a0-1)->ld_cur_cnt #define V_CUR_TIM ((LA_EXT *)la_info.li_a0-1)->ld_cur_tim #define V_FNT_AD ((LA_EXT *)la_info.li_a0-1)->ld_fnt_ad #define V_FNT_ND ((LA_EXT *)la_info.li_a0-1)->ld_fnt_nd #define V_FNT_ST ((LA_EXT *)la_info.li_a0-1)->ld_fnt_st #define V_FNT_WR ((LA_EXT *)la_info.li_a0-1)->ld_fnt_wr #define V_X_MAX ((LA_EXT *)la_info.li_a0-1)->ld_x_max #define V_OFF_AD ((LA_EXT *)la_info.li_a0-1)->ld_off_ad #define V_STATUS ((LA_EXT *)la_info.li_a0-1)->ld_status #define V_Y_MAX ((LA_EXT *)la_info.li_a0-1)->ld_y_max #define BYTES_LIN ((LA_EXT *)la_info.li_a0-1)->/** * $Id: mode.h,v 1.3 1993/11/14 14:43:52 AGK Rel $ * * Interface to Falcon video hardware * * (c) Copyright 1992 Atari Corp. * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _MODE_H #define _MODE_H /** * Vsetmode() flags **/ #define VERTFLAG 0x100 /* double-line/interlace */ #define STMODES 0x80 #define OVERSCAN 0x40 #define PAL 0x20 /* PAL if set, else NTSC */ #define VGA 0x10 /* VGA if set, else TV mode */ #define COL80 0x8 #define NUMCOLS 7 #define BPS16 4 #define BPS8 3 #define BPS4 2 #define BPS2 1 #define BPS1 0 /** * Montype() values **/ #define STmono 0 #define STcolor 1 #define VGAcolor 2 #define TVcolor 3 /** * VsetSync() flags **/ #define VID_CLOCK 1 #define VID_VSYNC 2 #define VID_HSYNC 4 #endif _HSYNC 4 #endif inline linea4() {register a2,d2; "a004";} #pragma inline linea5() {register a2,d2; "a005";} #pragma inline linea6() {register a2,d2; "a006";} #pragma inline linea7(a6) {register a2,d2; "a007";} #pragma inline linea8(/** * $Id: oserr.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * TOS specific error code information * * (c) Copyright 1991, 1993 HiSoft **/ #ifndef _OSERR_H #define _OSERR_H #define E_OK 0 #define ERROR 1 #define EDRVNR 2 #define EUNCMD 3 #define E_CRC 4 #define EBADRQ 5 #define E_SEEK 6 #define EMEDIA 7 #define ESECNF 8 #define EPAPER 9 #define EWRITF 10 #define EREADF 11 #define EWRPRO 13 #define E_CHNG 14 #define EUNDEV 15 #define EBADSF 16 #define EOTHER 17 #define EDISC 18 #define EDEVNRS 19 #define EHARD 20 #define EINVFN 32 #define EFILNF 33 #define EPTHNF 34 #define ENHNDL 35 #define EACCDN 36 #define EIHNDL 37 #define ENSMEM 39 #define EIMBA 40 #define EDRIVE 46 #define ENSAME 48 #define ENMFIL 49 #define ELOCKED 58 #define ENSLOCK 59 #define E_RANGE 64 #define EINTRN 65 #define EPLFMT 66 #define EGSBF 67 extern long volatile _OSERR; extern int os_nerr; extern const char *os_errlist[]; #endif TS] &= ~(1 << ((n) % NFDBITS))) #define FD_ISSET(n/** * $Id: process.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Process control definitions * * (c) Copyright 1990, 1991, 1993 HiSoft **/ #ifndef _PROCESS_H #define _PROCESS_H #include int exec(const char *,const char *,const char *,int *); #define exec(a,b,c,d) (*(d)=(int)Pexec(0,(a),(b),(c))) #define P_WAIT 0 #define P_NOWAIT 1 #define P_OVERLAY 2 int spawnl(int,const char *,...); int spawnle(int,const char *,...); int spawnlp(int,const char *,...); int spawnlpe(int,const char *,...); int spawnv(int,const char *,const char **); int spawnve(int,const char *,const char **,const char **); int spawnvp(int,const char *,const char **); int spawnvpe(int,const char *,const char **,const char **); int forkl(const char *,...); int forkle(const char *,...); int forklp(const char *,...); int forklpe(const char *,...); int forkv(const char *,const char **); int forkve(const char *,const char **,const char **); int forkvp(const char *,const char **); int forkvpe(const char *,const char **,const char **); int system(const char *); #endif ECTED 10 #define WM_REDRAW 20 #define WM_TOPPED 21 #define WM_CLOSED 22 #define WM_FULLED 23 #define WM_ARROWED 24 #define WM_HSLID 25 #define WM_VSLID 26 #define WM_SIZED 27 #define WM_MOVED 28 #define WM_NEWTOP 29 #define WM_UNTOPPED 30 #define WM_ONTOP 31 #define WM_BOTTOM 33 #define WM_ICONIFY 34 #define WM_UNICONIFY 35 #define WM_ALLICONIFY 36 #define WM_TOOLBAR 37 #define AC_OPEN 40 #define AC_CLOSE 41 #define AP_TERM 50 #define AP_TFAIL 51 #define AP_RESCHG 57 #define SHUT_COMPLETED 60 #define RESCH_COMPLETED 61 #define AP_DRAGDROP 63 #define SH_WDRAW 72 #define CH_EXIT 80 #define CT_NEWTOP 52 #define CT_KEY 53 #define WA_UPPAGE 0 #define WA_DNPAGE 1 #define WA_UPLINE 2 #define WA_DNLINE 3 #define WA_LFPAGE 4 #define WA_RTPAGE 5 #define WA_LFLINE 6 #define WA_RTLINE 7 typedef struct moblk { short m_out; short m_x; short m_y; short m_w; short m_h; } MOBLK; /** * $Id: setjmp.h,v 1.2 1993/11/14 14:43:52 AGK Rel $ * * ANSI/POSIX.1 non-local jumps * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _SETJMP_H #define _SETJMP_H #ifdef _M881 #define _JMP_BUF 37 #else #define _JMP_BUF 13 #endif typedef struct {long __jmp_buf[_JMP_BUF];} jmp_buf[1]; void (longjmp)(jmp_buf,int); int (setjmp)(jmp_buf); #define setjmp(a) ((setjmp)(a)) #if !defined(_ANSI) \ || defined(_POSIX_SOURCE) #ifndef __TYPES_H #include <__types.h> #endif #define _SIGJMP_BUF _JMP_BUF + (sizeof(__sigset_t) / sizeof(long)) typedef struct {long __sigjmp_buf[_SIGJMP_BUF];} sigjmp_buf[1]; void (siglongjmp)(sigjmp_buf, int); int (sigsetjmp)(sigjmp_buf, int); #define sigsetjmp(a, b) ((sigsetjmp)(a, b)) #endif #endif #endif #endif MALL 5 #define G_BOX 20 /* Graphic types of obs */ #define G_TEXT 21 #define G_BOXTEXT 22 #define G_IMAGE 23 #define G_PROGDEF 24 #define G_USERDEF G_PROGDEF #define G_IBOX 25 #define G_BUTTON 26 #define G_BOXCHAR /** * $Id: sndbind.h,v 1.6 1993/11/14 14:43:52 AGK Rel $ * * Interface to Falcon sound hardware * * (c) Copyright 1992 Atari Corp. * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _SNDBIND_H #define _SNDBIND_H #include /** * Setbuffer() reg parameter values **/ #define PLAY 0 #define RECORD 1 /** * Soundcmd() mode parameter values **/ #define INQUIRE -1 #define LTATTEN 0 #define RTATTEN 1 #define LTGAIN 2 #define RTGAIN 3 #define ADDERIN 4 #define ADCINPUT 5 #define SETPRESCALE 6 /** * Sound BIOS errors **/ #define SNDNOTLOCK -128 #define SNDLOCKED -129 /** * ADDERIN bit masks **/ #define ADDERIN_ADC 1 #define ADDERIN_MATRIX 2 /** * SETPRESCALE values **/ #define STE_6K 0 /* Invalid... won't do 6.25khz samples */ #define STE_12K 1 /* 12.5KHz STE/TT compatible */ #define STE_25K 2 /* 25KHz STE/TT compatible */ #define STE_50K 3 /* 50KHz STE/TT compatible */ /** * Setmode() parameter values **/ #define STEREO8 0 #define STEREO16 1 #define MONO8 2 /** * Buffoper parameter values **/ #define PLAY_ENABLE 0x1 #define PLAY_REPEAT 0x2 #define RECORD_ENABLE 0x4 #define RECORD_REPEAT 0x8 /** * Dsptristate() parameter values **/ #define ENABLE 1 #define TRISTATE 0 /** * Devconnect() source device parameter values **/ #define DMAPLAY 0 /* DMA playback */ #define DSPXMIT 1 /* DSP transmit */ #define EXTINP 2 /* External input */ #define ADC 3 /* Microphone/PSG, see Soundcmd(ADCINPUT) */ /** * Devconnect() destination device parameter values **/ #define DMAREC 1 /* DMA record */ #define DSPRECV 2 /* DSP receive */ #define EXTOUT 4 /* External output */ #define DAC 8 /* Headphone, internal speaker, monitor */ /** * Devconnect() clock input parameter values **/ #define CLK25M 0 /* internal 25.175 MHz clock */ #define CLKEXT 1 /* external clock */ #define CLK32M 2 /* internal 32 MHz */ /** * Devconnect() clock prescale parameter values **/ #define CLK_OLD 0 /* STE/TT prescale values */ #define CLK50K 1 /* 49170Hz */ #define CLK33K 2 /* 33880Hz */ #define CLK25K 3 /* 24585Hz */ #define CLK20K 4 /* 20770Hz */ #define CLK16K 5 /* 16490Hz */ #define CLK12K 7 /* 12292Hz */ #define CLK10K 9 /* 9834Hz */ #define CLK8K 11 /* 8195Hz */ #define ACT_CLK50K 49170 #define ACT_CLK33K 33880 #define ACT_CLK25K 24585 #define ACT_CLK20K 20770 #define ACT_CLK16K 16490 #define ACT_CLK12K 12292 #define ACT_CLK10K 9834 #define ACT_CLK8K 8195 /** * Devconnect() protocol parameter values **/ #define NO_SHAKE 1 #define HANDSHAKE 0 typedef struct SndBufPtr { const char *play; char *record; long reserve1; long reserve2; } SndBufPtr; #endif dBufPtr; #endif short ob_head; short ob_tail; unsigned short ob_type; unsigned short ob_flags; unsigned short ob_state; #ifdef __OB_SPEC __OB_SPEC ob_spec; #else void *ob_spec; #endif short ob_x; short ob_y; short ob_width; short ob_height; } OBJECT; typedef struct grect { short g_x; short /** * $Id: speedohd.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * Speedo public font header offset constants * * (c) Copyright 1989-1991, Bitstream Inc., Cambridge, MA. * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _SPEEDOHD_H #define _SPEEDOHD_H #define FH_FMVER 0 /* U D4.0 CR LF NULL NULL 8 bytes */ #define FH_FNTSZ 8 /* U Font size (bytes) 4 bytes */ #define FH_FBFSZ 12 /* U Min font buffer size (bytes) 4 bytes */ #define FH_CBFSZ 16 /* U Min char buffer size (bytes) 2 bytes */ #define FH_HEDSZ 18 /* U Header size (bytes) 2 bytes */ #define FH_FNTID 20 /* U Source Font ID 2 bytes */ #define FH_SFVNR 22 /* U Source Font Version Number 2 bytes */ #define FH_FNTNM 24 /* U Source Font Name 70 bytes */ #define FH_MDATE 94 /* U Manufacturing Date 10 bytes */ #define FH_LAYNM 104 /* U Layout Name 70 bytes */ #define FH_CPYRT 174 /* U Copyright Notice 78 bytes */ #define FH_NCHRL 252 /* U Number of Chars in Layout 2 bytes */ #define FH_NCHRF 254 /* U Total Number of Chars in Font 2 bytes */ #define FH_FCHRF 256 /* U Index of first char in Font 2 bytes */ #define FH_NKTKS 258 /* U Number of kerning tracks in font 2 bytes */ #define FH_NKPRS 260 /* U Number of kerning pairs in font 2 bytes */ #define FH_FLAGS 262 /* U Font flags 1 byte: */ /* Bit 0: Extended font */ /* Bit 1: not used */ /* Bit 2: not used */ /* Bit 3: not used */ /* Bit 4: not used */ /* Bit 5: not used */ /* Bit 6: not used */ /* Bit 7: not used */ #define FH_CLFGS 263 /* U Classification flags 1 byte: */ /* Bit 0: Italic */ /* Bit 1: Monospace */ /* Bit 2: Serif */ /* Bit 3: Display */ /* Bit 4: not used */ /* Bit 5: not used */ /* Bit 6: not used */ /* Bit 7: not used */ #define FH_FAMCL 264 /* U Family Classification 1 byte: */ /* 0: Don't care */ /* 1: Serif */ /* 2: Sans serif */ /* 3: Monospace */ /* 4: Script or calligraphic */ /* 5: Decorative */ /* 6-255: not used */ #define FH_FRMCL 265 /* U Font form Classification 1 byte: */ /* Bits 0-3 (width type): */ /* 0-3: not used */ /* 4: Condensed */ /* 5: not used */ /* 6: Semi-condensed */ /* 7: not used */ /* 8: Normal */ /* 9: not used */ /* 10: Semi-expanded */ /* 11: not used */ /* 12: Expanded */ /* 13-15: not used */ /* Bits 4-7 (Weight): */ /* 0: not used */ /* 1: Thin */ /* 2: Ultralight */ /* 3: Extralight */ /* 4: Light */ /* 5: Book */ /* 6: Normal */ /* 7: Medium */ /* 8: Semibold */ /* 9: Demibold */ /* 10: Bold */ /* 11: Extrabold */ /* 12: Ultrabold */ /* 13: Heavy */ /* 14: Black */ /* 15-16: not used */ #define FH_SFNTN 266 /* U Short Font Name 32 bytes */ #define FH_SFACN 298 /* U Short Face Name 16 bytes */ #define FH_FNTFM 314 /* U Font form 14 bytes */ #define FH_ITANG 328 /* U Italic angle 2 bytes (1/256th deg) */ #define FH_ORUPM 330 /* U Number of ORUs per em 2 bytes */ #define FH_WDWTH 332 /* U Width of Wordspace 2 bytes */ #define FH_EMWTH 334 /* U Width of Emspace 2 bytes */ #define FH_ENWTH 336 /* U Width of Enspace 2 bytes */ #define FH_TNWTH 338 /* U Width of Thinspace 2 bytes */ #define FH_FGWTH 340 /* U Width of Figspace 2 bytes */ #define FH_FXMIN 342 /* U Font-wide min X value 2 bytes */ #define FH_FYMIN 344 /* U Font-wide min Y value 2 bytes */ #define FH_FXMAX 346 /* U Font-wide max X value 2 bytes */ #define FH_FYMAX 348 /* U Font-wide max Y value 2 bytes */ #define FH_ULPOS 350 /* U Underline position 2 bytes */ #define FH_ULTHK 352 /* U Underline thickness 2 bytes */ #define FH_SMCTR 354 /* U Small caps transformation 6 bytes */ #define FH_DPSTR 360 /* U Display sups transformation 6 bytes */ #define FH_FNSTR 366 /* U Footnote sups transformation 6 bytes */ #define FH_ALSTR 372 /* U Alpha sups transformation 6 bytes */ #define FH_CMITR 378 /* U Chemical infs transformation 6 bytes */ #define FH_SNMTR 384 /* U Small nums transformation 6 bytes */ #define FH_SDNTR 390 /* U Small denoms transformation 6 bytes */ #define FH_MNMTR 396 /* U Medium nums transformation 6 bytes */ #define FH_MDNTR 402 /* U Medium denoms transformation 6 bytes */ #define FH_LNMTR 408 /* U Large nums transformation 6 bytes */ #define FH_LDNTR 414 /* U Large denoms transformation 6 bytes */ /* Transformation data format: */ /* Y position 2 bytes */ /* X scale 2 bytes (1/4096ths) */ /* Y scale 2 bytes (1/4096ths) */ #define SIZE_FW FH_LDNTR + 6 /* size of nominal font header */ #define EXP_FH_METRES SIZE_FW /* offset to expansion field metric resolution (optional) */ #endif ar *); int wind_title(int,const char *); int wind_redraw(int,GRECT *,int (*)(int,GRECT *)); /* Resource library definitions */ #define R_TREE 0 #define R_OBJECT 1 #define R_TEDINFO 2 #define R_ICONBLK 3 #define R_BITBLK 4 #define R_STRING 5 /* gets pointer to free strings */ #define R_IMAGEDATA 6 /* gets pointer to free images */ #define R_OBSPEC 7 #define R_TEPTEXT 8 /* sub ptrs in TEDINFO */ #def. “–Ė.. RAMINST PRG yčBRAMINST RSC V00’ HRAMDSK PRG Š‰3|`@†e\Nł>ÜNV’¼Hkb/<".0+’@e&??7@ nt4+"ŃĮ¼ 02R@QÉ’Ž".RA7A0+$.2°Ab nt4+"ŃĮB0+`&_N^ _ßüNŠNVpN¹+d/ Gł¢ž n//./././. /.<NŗžŠ7@&_N^ _ßüNŠN¹+dN¹+dN¹+dN¹+dN¹+dN¹+dRkSkN¹+dN¹+d\:/NV’ź/ Gł£=|2’ö=|’ų=|’ś=|’üBn’ž=n’ģ/<’’’’Hn Hn’źHn’ģHy£Hn’öN¹@0.’ź`&_N^ _\NŠNV’ā/ Gł£=|3’ö=| ’ų=|’śBn’üBn’ž.@’=@’ä=n’ę=n’č=n’ź=n’ģ=n’ī=n ’š=n ’ņ=n’ō/<’’’’/<’’’’Hn’āHn’äHy£Hn’öN¹@0.’ā`&_N^ _ßüNŠNV’ępN¹+d/ Gł£=|4’ö=|’ų=|’ś=|’üBn’ž=n’ģ-n’ę/<’’’’Hn’ęHn’źHn’ģHy£Hn’öN¹@0.’ź`&_N^ _ßüNŠNV’ā/ Gł£=|6’öBn’ų=|’ś=|’üBn’ž/<’’’’HnHn’āHn’ģHy£Hn’öN¹@ n0®’ä n0®’ę n 0®’č n0®’ź&_N^ _ßüNŠNV’°pN¹+d/ Gł£Bn’īr2.’ī$&. “ƒbL np0.’ī,ŃĘD’p @’øg, n<’īd" nt4.’ī"ŃĮx8.’ī"D˜°Rn’ī`¤r2.’ī AB6ˆ°=|n’öBn’ų=|’ś=|’üBn’žAī’°-H’š/<’’’’Hn’šHn’īHn’ōHy£Hn’öN¹@0.’ī`&_N^ _ßü NŠNV’ņ/ Gł£=|o’öBn’ų=|’śBn’üBn’ž/<’’’’/<’’’’Hn’ņHn’ōHy£Hn’öN¹@0.’ņ`&_N^NuNV’š/ Gł£=|p’ö=|’ų=|’śBn’ü=|’ž.@’=@’ņ=n ’ō/./<’’’’Hn’šHn’ņHy£Hn’öN¹@0.’š`&_N^ _PNŠNV’č/ Gł£=|*’ö=|’ų=|’ś=|’üBn’ž=n’ź=n’ģ=n’ī=n ’š=n ’ņ=n’ō/<’’’’HnHn’čHn’źHy£Hn’öN¹@0.’č`&_N^ _ßüNŠNV’ą/ Gł£=|N’ö=|’ų=|’ś=|’üBn’ž=n ’ę/<’’’’HnHn’ąHn’ęHy£Hn’öN¹@0.’ą`&_N^ _\NŠNV’Ģ/ Gł£=| ’öBn’ų=|’śBn’üBn’ž/<’’’’/<’’’’Hn’ĢHn’ĪHy£Hn’öN¹@0.’Ģ`&_N^NuN¹+dN¹+dN¹+dNV’Ģ/ Gł£=|’öBn’ų=|’śBn’üBn’ž/<’’’’/<’’’’Hn’ĢHn’ĪHy£Hn’öN¹@0.’Ģ`&_N^NuAļ" <ČNB _OļNŠAļ"psNB _OļNŠNVpN¹+dJnf(?< n//. /.Nŗū„=@pAśN¹+¢N^ _ßüNŠNV’|Hk/</<Hn’~/<€/<N¹;œ=@’|?.’|HyÜ/<5/<6Nŗ’tN^NuNV’žpN¹+drp??=@’ž nt4.’ž"ŃĮ6+ 0 Rk 02R@QÉ’ÖN^ _ßü NŠNV’ž/ Gł£$Nŗž27@ k’’f,?<Hy/<*/<+Nŗśœ7@ pAśN¹+¢Aī"|rpN¹)šf Nŗ’ `AīCė"Ų"ŲBk k b^2+ 3@’t.B’°gF8+ 3@C’z E’¶g.0+ 3F’p@’¼g0+ 2+ ³ Rk `šHy@/</<NŗžĘ0+ B3 Hn’žAė //</<<N¹:Jf2rp??7@ 0+ t4+ BŃü„\³ 02R@QÉ’Ś`Hn’ž<N¹%ĀAł„\//<€/<NŗśF?HyF/<2/<3Nŗż˜&_N^ _PNŠ[1][AESSupport could not read application name][Oh No][1][Could not initialize application][Oops].RSC[1][AESSupport could not find resource file][Oh no]vpNś¶vpNś®vpNś¦vpNśžvpNś–vpNśŽvpNś†vpNś~vpNśvvp Nśnvp Nśfvp NśjvpNśVvpNśZvpNśRvpNśJvpNśBvpNś.vpNś&vp*Nśvp+Nśvp,Nśvp-Nśvp/Nśžvp0Nśövp1Nśīvp6Nśęvp9NśŽvp:NśÖvp;NśĪvpNś¶v p?Nś®v p@Nś¦vpANśžvpBNś–vpCNśŽvpENś†vpFNś~vpGNśvvpHNśnvpINśfv pJNś^ _6 "$// ////??<KNAOļ,_&_NuvpLNś.v $?//pNNśvpONśv pVNś vpWNś(_?NAßĆTNŌ(_?NA@ßĆTNŌNVžš/ Gł£F n’’f Nŗž˜=@ ndp?.N¹.ŖJ@f`\Nŗž¢-@žšHn’zNŗžn |)\Cīžų~"ŲQĻ’üŲ0.Š|A@žų9)bHnžųNŗ’@HĄ-@’ü?.N¹.Ę-@žō/.žšNŗž$&_N^ _TNŠNV nRˆ@’t:B’°f(U nN¹)ŗA’0|A?Nŗ’$` ?<’’Nŗ’N^ _ßü NŠNV’üB®’ü .’ü"$. ²‚dl&.’ü(*.ø…b\ nŃī’üF’p@’¼gB$nÕī’ü@’r A’°g(U nŃī’üN¹)ŗ nŃī’ü‚R®’ü`† nŃī’üBN^ _ßüNŠNV’®pN¹+d/ Gł£F/././. Hn’®/<P/<QNŗ’6.’±@’rA’°fPrp??7@Aī’®6+åCHĆ"CÓü@ CŃrpN¹)šf0+D@ n0€pX`ž02R@QÉ’øHn’®/<P/<QNŗžj.@’rA’°f?<Hn’®NŗüĀ7@`r.A’0?Hn’®Nŗü®7@JklR.@’rA’°f>?<Hn’®Nŗüz7@Jkm&?+Nŗüv7@.A’0?Hn’®NŗüV7@Jkm6 n0«Bk n2HABAHA AŃĖB(ō n2HABAHA AŃĖB(Ą0+D@`&_N^ _ßüNŠNV’ž neä n2bŚ2.åAHĮ A ³’’’’ˆōgÄ/9@Ž4.åBHĀ B sˆō#Č@Ž=n’žJn’žcx*y@Ž0-24²Be@Hmr2 /?.Nŗū˜'@*y@ŽBmJ«l +D€7@#ß@Ž`z n t*y@Ž4-"B˜R® Sn’žRm`‚*y@Ž|#ß@ŽBkp0.'@`2Bk/. r2. /?.Nŗū '@J«l +D€7@N^ _PNŠNV’ž neB n2b82.åAHĮ A ³’’’’ˆōg"/9@Ž4.åBHĀ B sˆō#Č@Ž=n’žJn’žcā*y@Ž0-24-²Be¦Hmr2 /?.Nŗśf'@*y@ŽBmJ«l& +D€7@r2. AŃĖ|ō#ß@Ž`d +t*y@Ž4"°UĆz:. EŃĖCōBm +;@Jmf0.n’žH@B@H@'@#ß@Ž`r*y@Ž2- A"n µˆR® Sn’žRm`’#ß@ŽBkp0.'@`ŠBk n2bjt4. BŃĖ(ĄJgVr2. AŃĖB(Ąr2. A"n ŃĖØ( . R€/4.SBHBBBHB"/?.Nŗł6'@J«mR«`/. r2. /?.Nŗł '@J«l +D€7@r2. AŃĖ|ō`J«WĄt4. BŃĖ@ōN^ _PNŠNV/ Gł£F n 0 @€c` n 0 @eŚ n 4 B2bĢ n :åEHÅ E ³’’’’ˆōg“/9@Ž n 4åBHĀ B sˆō#Č@Ž*y@ŽJmcZ-JgP.JgFHmr2- / n 4?Nŗų '@*y@ŽBmJ«l +D€7@#ß@Ž`^ n 2åAHĮ AHsˆō*y@Ž8PDHDBDHD&/N¹4ź#ß@Ž n 2?Nŗ÷ŖHĄ'@J«l +D€7@`Bk&_N^ _\NŠNV/ Gł£F?./.?. NŗüˆJkf + n0€` n0¼’’&_N^ _ßü NŠNV/ Gł£F?./.?. NŗūJkf + n0€` n0¼’’&_N^ _ßü NŠN¹+dN¹+dN¹+dNVżų/ Gł£F?<?. /.Nŗöā'@r2. AŃĖB(ōJ«l +D€7@`Bk k@g`¶?. Nŗø-@’ü?<?. /.’üNŗöŒ'@2<’p??=@żśpt4.żś BŃĪ@żü02R@QÉ’ą .’ü"$.²‚d^ .®’ü €b .®’ü=@żś`=|żś?. Hnżü?.żśHnżųNŗž¾Jkg` .’üt4.żś"Š-@’ü`”&_N^ _\NŠNV’ü/ Gł£F?<?./<NŗõĢ-@’ü?<?./<Nŗõ¶'@J«l +D€7@p`"`?<?./.’üNŗõ†-@’ü +`&_N^ _TNŠGł£Fr-p??7@2+åAHĮ A'¼’’’’ˆō02R@QÉ’ŽNu@:*.*’HĄĮNu>p0ĮĮĮ2’@0Nu0/lD@?@ _TNŠ _0@€NŠS@g¾VČ’ųf JAgmJ`JNu¾Nu _ am zn߇NŠH@B@H@€ĮNu>p0€ĮĄĮ2’@0NuNŗĪFŒĢĘQČ’šNś(NŗīQČ’śNśNŗŽĻQČ’śNśNŗĪFĻQČ’ųNśö @g,Nŗ¶¾VČ’śf _.I¾NŠ! R€ÓĄ _.IFĪfSNŠNŗŠ¾fąR‰Nś’Ō Am~>ęG¾@l7xARAć'drNśr _ߥgRNŠ”A _Nŗ RAQŹ’ųNŠ Am$~>ę‡¾@l??0<€ā`7x02Nup _Hy@FNś°gR€AļCšS€¼¼NuAļCšS€Nu @lpNu"_.HNŃ PNŠ Am¬~>ę‡¾@l¢??0<€ā`FĮ7x02Nu€g @ŃĪ0(’ü` @ŃĪ (’ų"P$_gR€ÓĄ €(OŸĄgS€!QČ’ü NŅOļ ¹’’’’@gNśz @oJ$//?< NAOļHy@o?< NAOļ Nŗ:Hy@v?< NAOļ2<č0<ŠQČ’žQÉ’ö2 _?<LNA _p Hy@9Nś’Ž/H@Nŗ NŗNu?ą@Nŗ 0NŗNučNŗ NŗNu l0NśW??<NAOļNu /lD€/@ _XNŠ//Nŗf"Nŗ "ĮANu//Nŗz"Nŗ*"ĮANu.ĄĮHA/ĪĮHGBGŠ‡.HGHAĪĮHGBGŠ‡Nu.ĄĮHA/ĪĮHGBGŠ‡.HGHAĪĮHGBGŠ‡Nu lD €lD€`NŗD€Nu €lD€`ģHA AfHA.B@H@€ĮH@HG>HGŽĮ0NuHA°e8B‡?<eRFāˆā—`ōŠeććQĪ’ö`eņććQĪ’ņ< S€NupNu#Į¤¢"(²€gT} €g" €gD€°opHy@ |Nśżņ "_.@!@/ ˆ//?<?<JNAOļ Nś"_.@/ Nu o0 @f #Č@NśL @f#ü’’’’@Nś8 @f !y@Nś& @f0( WNśżŚ"y@#H3@ iNŠ _OļNŠ _ @€NŠæł¤¢n _p Hy@_NśżŽ-@-y@~’ü ®’’’’’üg6 .’ü n "°b&.’ü n’üXˆ(ք n ,¶†d n’ü-P’ü`Ą ®’’’’’üf`t n’üŃü 'P'|’’’’'|’’’’ n $&+“ƒc'k 'k k'P`Ų n 'P kXˆ ® k « n Š®$&+“ƒf" . kXˆ"Š kXˆ € k"k" «’’’’f n’üŃü «`R n $+ kXˆ&Ōƒ°‚f0 kXˆ  kXˆ$Š‚ kXˆ € k"k"'k` k « n Š® n’üPˆ$°‚fN n "n’üP‰" +"$+²‚f'k  «’’’’f n’üŃü ¼’’’’` k ¼’’’’ n ¼’’’’&_N^ _PNŠGł¤®Aś`/ Gł¤®Nŗż°&_Nu'H'|żčNu Out of memoryNV’ž/ Gł¤Č9@‚Jg.AėN¹+4`.A’0?Nŗę &_N^ _TNŠ/ Gł¤Č< Nŗ’®< Nŗ’¦&_NuNVBkŽ2+ŽHĮ$&. “ƒo`B n6+ŽHĆ$ŃĀ@’xD’°f` n6+ŽHĆ$ŃĀNŗ’JRkŽ`ŖN^ _ßü NŠNVpN¹+d/ Gł¤Č/./. /.Nŗ’t&_N^ _ßü NŠN¹+dGł¤Čp@ Nu NV’üpN¹+dp(N¹+d/ Gł„\Bn’ž n,0&.$4°BbŽ8.’ž,. :øEb~ n("n,0H@B@H@ŃĄ@’rA’°gZ n("n,:HEBEHE(ŃÄB’p;@’“g4 n("n,4HBBBHB"ŃĮ"n|<.’ž*ÓŐRn’ž n,RP`’dJn’žfp`ņ n("n,6HCBCHC$ŃĀ@’z;E’°f n,RP n6.’žSCHCBCHC$ŃĀ@’x\D’°g nt4.’ž"ŃĮ¼\`Sn’žBn’üRn’ž0.’ü$.2°AbX n|<.’ü*ŃÅC’p@’¶g80.’ž". °Ad* nt4.’ü"ŃĮ"nz:.’ž(ÓĐRn’žRn’ü`š nt4.’ž"ŃĮBp`&_N^ _ßü(NŠNV’xpN¹+d/ Gł„\/. n//./. .Nŗę¦J@f<".p’@e*??=@’| nt4.’|"ŃĮ6.’|002R@QÉ’Śp` Bn’xB.’~Hy;”/</<Hn’~/<€/<N¹< Jf6Hy;–/</<Hn’~/<€/<N¹< Jfp`¢Bn’xt4.’x BŃĪ(’~@’vC’°gzHn’xAī’~//<€/< n//./. Hk/<€/<NŗżJfp` īøNŠ _> ļøNŠ _> ī NŠ _ B@H@NŠ _ H@B@H@NŠAś‘ü?Ž#Č@† <- "<„āN¹-xN¹84N¹6öN¹),N¹ŽpAśN¹+¢0123456789ABCDEFCONAUXPRN’’’’not enough memory to runOut of rangeSet element out of rangestack overflow near ’’’’.ZL( ‚T4 F°"<Ō Z j,  $4   H$ B  N*   H"4 *  0*F ˆų> 4„ō:: p "@ "2 :¦ "2 F X ": 2  2 B.6 H ˆ8$  & Bš4T X, ~.,F $ōL@BHB tļ".j.H( €> ( Ö2&Š$¼h" "Ī>$.<& (zh ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö^¾^^¾$¾^ Ž" ’m:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXm:12345678.123______________XXXXXXXXXXXXXXMDrive: _:a0500Disk Size: ____K99991234Dir Entries: ____9999LOAD012345678901234567890123456789Save as: ______________________________PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPSAVEClear FilesCopied Files/Directories:EXITHiSoft Reset Proof Ramdisk 1.8LOAD DRIVERLoad info$3B€’’Q`o€’’~œ€’’«ŗÉ€’’Ųēö€’’#€’’2AP€’’_n}€’’Œ›Ŗ€’’¹Č×€’’ęõ€’’"1€’’@O^€’’m|‹€’’š©ø€’’ĒÖ倒’ō€’’!0?€’’N]l€’’{Š™€’’ØŖ“€’’ ¶»Ģ€’’ŃÖ耒’ņ9€’’(’’!9’’’’¾’’’’Ś’’’’ö ’’’’ ’’’’. ’’’’J ’’’’f  ’’’’‚ ’’’’ž ’’’’ŗ ’’’’Ö ’’’’ņ’’’’ ’’’’* ’’’’F ’’’’b ’’’’~ ’’’’š’’’’¶’’’’Ņ’’’’ī' ’’’’ $’’’’&$ ’’’’ķ’’’’B'’’’’X ’’’’]& ’’’’i’’’’ƒ+ ’1 $’’’’ˆ!’’’’§ ’’’’%³& ^öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö`. Hz?< NA\(z’*,"oCé€Jg4ztB0m“| nŚ…&Ś…Ś…ŚƒŚ‚`ā)’’Kg fv ē­B§?< NA\`B¹ ByF yņ h.PNŠģŽ#Ő0,3ĄŒĄ÷ąHĄų 9’’’#ĄŹ€"`#ĄĘ":žZ0,HĄŁĄ#Ģ”’€č3Į˜&x.HzF/<NM/@.¼Eś(NMPO Kø¼bfV"HAč 0<Caž I°Øf’Haj`XxJxžfPO/JNs6/Cš¶| g6OļT>ƒ/JBoNs6Oļ`ģ 86…kCł†Óü°‰e a9Šf x.4(“|l¤:śAĄĪ?<NATAĄĻHzę?<NA\>9˜SGkl"y”?/ KłŅIłā)°<:g łĻü:`:Łp\°fRIĄBW/ a *_JGf?</ ?<NNAPJ€f(aī"_>CéQĻ’ž x.1|B§?< NA\BgNA/ ?< NA\Hzž?< NA\`Ä~?/ ?<NNAPJ€m2:@°<.g:-ßøfAś p6ŲQČ’üRG¾g ?<ONAT`ŹNu LŻfü*HSˆ$IŁg"°<\fBHēĄ*La–Lß<\KčĄ`ŚB&yŹx:<Ča’v?/SGkž/ &zĢ ŒS@ LIśģŲQČ’ü$°<\fRŒ"LAė,+ŲfüMśŹ/?< NA\Hz1?< NA\Bg/?<=NAP:/9Ę/??<?NAOļ ??<>NAX?¹ĪBg/?<NAX?¹ĪBg/?<=NAP2:?<?Hk?<WNAOļ ??<>NAXGė,QĻ’*(_,_>NuHz4?< NA\O?<NATO`ž"NVüTaHIī’ÄCśaaž†GīüTxzaž4AīüTJGg$/ /AčŲfü?Kī’Äa’Ę> _*_Ač,SGfÜN^Nu?¹Ī/ ?<9NA\0€NuHzš?< NA\`ż“p  pRamdisk Full!q Press any key pFile not found!q Not enough RAM \*.*Ńü NŠ (:žž*…„&@€(@ 86…!Ģ.!Ą6av0<’CśD L0ŁQČ’üpAģCś0ŁQČ’üzž² |žŃĢ ‹ LAč <Ca“)@`śfReset Proof Ramdisc 1.9 ½ HiSoft 1988-90 09ŒS@čHR@3ĄŚ ąˆāˆ?ļł×śTāˆ"ą‰RĮü3ĮÜ$R‚3ĀŽŅ‚ŅyŚ3ĮąA3Ąāį‰ć‰"KSp"ĄQÉ’üAśH"KrŲQÉ’üNuHē@@"Cčx D€Cčd‘CčL‘`Š˜QÉ’üLßNuHiSoftBBBp* bAśv øvAśb!ČvAśR ø~Aś>!Č~Aś* ørAś!Čr 8Ā:’ČĄ!ĄĀNu:’¼°/gNłAśŗ Nu:’¤°/gNłpNu:’°/gNł"o0/ S@r2/ į‰ŅAMP! A/gĆH/ fNr"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"Ų"ŲQÉ’¾QČ’øpNu2<’ŲQÉ’üQČ’ōpNu @~   ”  ör"&°Ź  öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. ›–Ė6.. DAVE AVR Qe·7ÉDOGS AVR Re·?œ<GUNSHOT AVR Ue·O\02BITDave’’’’0åIIźäėēéééēźėķėėķķģīšļņōõ÷śśüżž’’ "$$%%'&%$$"#!!"#%$%#!!  ’żųõņšīģźėźčååäįąąŻŽŚŁ××ŲÕÖŲŁÜßćéķņłž  ’žüūłõōšėėėėģļīńńōųśż’  !"""!"!! ’ž’’’žżžžżłłōóšķėēćąßÜŁÖÖŌŌÓŌÕÕŲŪŁŪŽßįąāåęčģļņõ÷łū’ !#)./37:;=@?>=<951,)%  ū÷ōšėę湎ÜŪŲŁŚŪŻßāćęźķńōöłüž’żūśöõóņīļļķģėėźéēéęčēęęęēččźźėīšņņó÷łū’ $%'*-/0111/-+'($"  žśųōńššīķīļšņõųłüž ’’żü÷ōóšķźččęåęćäåęåęčēęēęēéģģīļńńšóö÷łüż’   žłłööóóōóööö÷łłśüż’ !  ’ż÷ōīźēäąÜŲÖÕÖÕÕÕÓÓÓŅÕףŚŪßįäęęźķīļóöųüž  #&)*,/02143220,'# ’ū÷ōōóņńńššńššńņņņõō÷łüž   ’üłöńķķėēåä湯ŽŻŪŚŪŪŚŚŚŻąįįäęčźīńõ īē2*%&-@@<<1!% õźģéīžóéļōčćīšīõż÷õķĄŁ .' ņļų   ųųūõ’öšž ōś÷żķ÷õęņł ųūžõł ’ųņ  üžūž ’’ūöõśś÷šęčźåćććäćāéīńö÷ųž !%$'-*$+- !üł÷ļńļéēķėćāāąßŽŚŲ׊ŹŠÓĻÓŌĪŠŪßāļóļś"(*4<7579<@>74-()& ’öķēććāÜÕĪĖŹĖĻŅĶĖŹŹĻ×ÕŃŅŁįčīīņó÷ %/6786139;80# żųńķšōł’ūńģšś÷īēēģņģåŻŪćš÷ųśūż +22/,' ųéįߎŚĻĀ¼½ĮÉŌÜąöųč’%,(<;.  ūńóžōāįń’ ūńņżō振čņųłöņł ÷ģēąŽäāŽßŪÜįęņ&%(26AEIH8’óŪĄÆ¢ŸØ¦™˜žŖÅį÷0F`wypaL8 üļ÷ųŻ¼Æ­®°Ø¬·µØÆĆą÷É»ą’ūļęéšå×Ō×ę’%09VtyeVLBHI7!  ÷ķéčåŻŃÅ»¼Į»±ŖšœŖ»ŗæÄĻō'9RRHPXj|lM9*ūķŽŅ»„ œž³ÉŲŽåö8K]d]TONOL:$ōšźŪĻĆ³¤¢µĀĀ½øæÓŚÜęčāäēęõ!ŠĒó(H6ł 93)üEfvaHNd|f=žśėą×½®ĀÜõžščõ  óąŁÜŁŲŅø„ØŖ²¹Æ§®“»ŠÖŁń4M>-)9VgX3’’īÓ¶ŖµĢŻŽÓČŠó199>J_owym^SUbbQ7&!! žļäćßąāŪĖĀÅŅŚĶ¹Æ²¹ĄĮæ¾ŗ¾äķĆ«ŗĪż+ 䌣ę 5*&ßźJnsS-6`|ze6šńš÷÷Ņ“½Ų÷’ ī×ĒĄĘĒŗ„•‘™«¶µ±¶ĮĻįö #Hc_L=9DY\OC/'$ōų" (:<31-0DL<(  üķćįćąŅĀµÆ°³°£Ÿ£§«³µ“¶¼æÅĖĶĶÖćōžõ3 Aqa>;?IoscZD "JXS9 2C=/’ɳÆÆø²”€†¤ĒįīęäōķŁÓŅÕ×Ģ½¼Ē×éõūż /8>>GXhmbRIOYXOG. ś×ÅĢÄĄŹĘ³³¶“ÅŌŌÕŻäšżž÷ż žöś÷÷ųšńõū  ! žśó1Ń¬Č AIīÓŚ.<%śĄž¼’(,éóIQ@īŠĻāźäĘØØÖ(1(&0G`cO5 šŁćóż ļźģ÷ūīŻäž żēäõ žōäćńłūīŅĆĘĻÖŲ×׌āšż )2:?@?@EA5* žņģģźčåŽ×ŌĻĶĶĶŹĢĖČÉĖĪŅŅĖÉÓŪŲßė÷7Fų[aB,-WkqMżU[M;ANK3ŚæĄĢĒ±š†­ÄŠŌĘĒÜńżźŁŁčīīēÖŌčł 1H@4;>Rx|dP@>LWQ9"łūõīąæ³¼½æŗŖ £°ø»ĆÄŹŲēóūżõ÷żžūž ! śńīšöōšėßćęćģöļźčķ ü)ķģżPB#'#(4=öėē612 ALHF#ļŁŪēĶ“¤›»ßéóõņ’!’ļŻåšęŽÓÅŠŽāéčąčļų 9E9-!)8?;1* žßÓÜŚŠĘŗ½ŹŌĢĻŪäņ’ (.+" žłöņļķźįŚŚÜįįąćäčėåéųóńņķõ+72E\7>djOI::KGOG ž) "ńŽÉ“ƤŒ€‚šØ­¹ÄŃŽčīīčߊĪŅĖĘÄæČĻĪŲŻįļóóž)=53807GA;:1').)łščšóēŪÜįčšóõż üõóóōōņīķļźćāēļóšéēīų’ "'3ED?=?LQKRTK3C\[;#!(ķŽäå÷žģćįčńķēÜÉĄ± Ÿš‡€€„›§§“ĆŌčń÷żżłóō÷ņėźźėōööž",09LJDCAFRTOD;/ źÜŽŪÓĢĒĒĢÉĀĖŁåźėńś’ ’÷šōū ł üōų $#)1.#$ėćāŁļöčīńķõüūžōąĪÄĄ¹§›—ž²ĆĘĪćō  ’ż    /((("*550)$ ÷÷ź××ÕĻŅŃĖĻŪ߯āéėö &*/,#  ł÷÷ļźīśłāĻŃć÷łäÓÓŲŽįėõóēįī  ż#99)&/.2< 0,*& &ļÜȶ®œŒ„€…—œ¢±¼ŹÕŽėīėźāćčäēꎎŪćšņų’ž ,9MQQY`qz|yrtseb`WD. õēąŻŪÖĢĶŃŲŻąäźńö÷łžżłżžü÷šģģēāŽāåāŽÜįēčäåėīóóńńōųž$&!$03131@J("3HDōūųęšéĒĀÅĘŚŚŹČČĪŪÓĒĮŗ¶³©°“¤„«Ø¾ÕÖāļų!()-522-#&' "0;;22>JPJ@50/*"ūķźęŽŲÕŌÓŌŲŻāčļöü   ’ūųųłųóņóų’ūöõņņõłżśšļļņö÷õ÷÷öńõżńźī ļŲé’!!’óņėīņķūļÖÓč ż üńīķęčćēö’ $&-30-% ’÷õźäįŚŚŽÕŃÕŅŪņ÷óõż#$&$÷ńōõóīćŽāåčķöū’ "(.4==7201.& ’õėēåįŪÖŅŌÓŠĖĖŅŌÖÖÕ×ßåįćźģł 8E( 8WB&( +żųłś õńčŪÜÕĘÅĆ¼ŗ½ČŌŁŻāēł   žłõõōńōóģīłüüž’ $*.33.$ ųōīäįÜףįåēčļū %-,*+151)#"üõóņģē乎ŁĻÉĘČĢĒĮ滹»»¹ĮĒĶĶŹÖėųżžž&?O5*=?G=5005, üčÖŃĀøµ®«±±³¹¾ÅŠŌÜįåšōō÷÷ū žž -;999>DE=62/! śōå×ÓŅĪĻĶĖŅŚįčõ’  üóšóöóģęčļķéźėėļóńģćßąģķåēääļ÷öół 0<3,-*-93,2-!żōéį׊ųƭ¤””ž„¬°·¾Č××Üēéķųū’ !'")/3AJKOPTY[^ZRNH>8-$ žōčāŻŪŁŪŚÖŲąęģó÷łžżü’łöōńīšģččėēźļļńųł÷żžüżüżūöžżż üōž   ū÷öōżžńņōń÷óńļźćŻ×׊ĒÉĖĶÖŚ×ßėóż  #%$%%%! žśųõ÷ś’   łčāÜŌĻĻŠĶĶÓŁįķóų’#(036;=;75.( żūūłõšńńņšņńīšņėāääćīńéåēģśóó2<,".:EB;3'%*-/* ’ūņėąŌŹĀ“Æ­ØŖ«©ŖƵ½ĮÅÉĻÖŚÖŻäēń÷ō÷’ %015=CEDJQRNC9983*żūņäŲŃĢĶŃÖÕŁŽįčóż’  ’śõļēāįāąććāåźķšł’    üüžüūųł’śöōņīģéåāäåęļööś żųöõļīėēćįŻŪßߎąāåėņū&-05821110( üųńšóņōśž %%  śōšéąŻÜŪŁÕŅ׹åčéčéšõõōö÷śüžü÷ųūųł #&&’÷ėåēēįÖŠĶĢŌŁŚŪįęķõū  śōó÷÷ńļīčźšōś%((%$!üõėāŻÕŠĪĻŅÕŻāź÷!-7AJPSWVPMKG?3%õģęććäįŽŚŁŪŽćäŪŁŚÜßāįćäŻŌ׹ė÷łėęó!)2@NSSOLKQRJ;)’ńßĖĄŗŗ¶ÆŖ¦£¦®°Æ®®°·¾ÄĒŹŹÉĶŌÜŽŁŚßčō%:O]eims|~vhZMA4öįÓĒæø±Æ³ŗĮŹŌŻēń’ !&),2342.$ żņēććęēęęćēīöüžž’ üļńż ž÷÷ś$381(&+24(üśõšēÜÓŠŌŲŽįįąįåīņööšš÷÷ūūöļģėéēāßÜ×ÖŚÜŻąāćėō'0>94-$" śņššķēįŪ׌ŪŁÖŠĪĻĪĶĻÕÖŌ×ÜŽįåéšö÷ś$(,..130-.,++(# ūōģčćąÜŚŲŁŁÕ×ŪŪŪŚŁŚŪŁŚŁŲŪŽŽąęźģķķķōś’ "'*,/0101-+((&))$ żųōńķéį×ĶČÅĆæ»»·µø¾ĀĘÉĖĖĶŃÖŚåėšōł’ !%$',02750.-+++(%"  żūūłöōļéččåāāįߎŪąääåéģļņõ÷łüż’   ’ūõō÷õ÷öņńóóōöööóōööōõōõ÷ųü  üö÷öóšźåāŻŚŪŻŻÜŚŲŲŚŚŚŪßāāäźš÷ž %),013443354542.*''&%! żųōšģźēēćįŻŁ×ÖŌŌŅÓÓŃŃŠŃÕ׌ŁŪßąįäčķņōöųūž !!"$%),+)&""  ’’’žžžž’žžüūųõņīėėźéēåäāāįāāäęčéķšņöłłūž’žž’’’’’žžūūųłłłūśłśūżž’  ’žżśüūśżżūū’’’’żūūłśųųłśūłśżž  žłöńļķīīķģźėķķļńóõ÷÷łüüūżžżł÷ö÷öōõöö÷õõłśüūżüżż’   ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö2BITDogs’’’’0å<<łłśśśłłłśłłłųųłłśūūüüżżüüüüūśśśūż’žüüżüūūż’’’’ž’’  łųłł÷ś žż’żųöū ’žżü"üųöņģš’ ū’öņłłöś%#śņóšåąė÷šóņźäéų ž $/ūėöōŲÓīėĶŌėóćÜė üż"=6 äźÓŗÕ%󼼎šŻĻć +ūł)<=. čåöśßĶāꬬĻęįŽö";ņž2]K3  ÷ĪĆą+ŗ§½ŽŽ×čNEł'aT@Ó¾ä+%įž°ĆģčŪģ^E B]J. óļśŽ¤¶ČļņėBoW(M@ ģŃ×āĢ¶½Śöüół  -cn\K/š»¬Ņ 0Ś­½Źäāēū+[bZTC0 żŃž«ļ,朮¼ĪÖé5oiZ$ī.3õ ŗ.šž°ĄģäÓęnX( ,0źļķŅą’ŲØ”³ÄŲ ęōdxe2ė+D ÆÄūD&²øĘÜūŻīniR%4:ćŲ ŚŃ&®§·ĘÖłņńEm]ėį=Jń½Ś7CįøÉŲļćf^Kń÷F3žæé2Ś×­²ĀŠąéōj{fJāN-ĻĒ>śÆĄĪķįöCq[ ę-H/ץ7ģļįعĒÓßėü/|n]ä@@·ß<ż¦·ČåVÅęPF÷¾ąI<Šā.ųÜŗ£²ĮĻÜģhhT;ÉéN2öĘłŻ°ÄÕž`BÓĀŻB’ĆŁU>(ƕ©·ÄŅä&nU@õ·ĪöD.©²ĮŪ×ßīmdT9.+”¬Ā=&»„µĮĪŽņfo\K6ńöęĀÓ/ó¦“ĀĻŻķM}fXB0(öńĪ”©¹ĢMÄÜ:AŻÉį3YE5*ņ¢³¾É×åö>v`LżĘīłŲē)iQ.ĄČÕŽęīü-~hW?0"÷¢¢¾9'·žÆ½ĢŻögWH1ńß żśüĮŠŸÆĀ NĻ×9śŅé3A-ņĖ“¤³ĀÖ^OC5%ó„­Ć@2­²ĀŲ8NåČŽSŅņRM0äé&µŖ·ĀŌ#=[J8Ą°¾×MA­øÅŪ$(ū÷6* ÷ĢŌü Į°¼Éį7[M>-õ¾ÄŽåįó$=&Ö¼Ź×čNr]I%ßŲö ą¬¼ŹŻ/W8ŚŻ'Eś½ÕN:"ÅƾŹŁę÷-nbLE5"ųĢŹķ»»ĢķEVŅĻīGR< õĻ¤°½ŹŁō#h]N*ŁÓéāŃą\D¶½ĘŃķ329A;(žæµÄŚų 1“ŖøÅŽMI:ĄČöŲ®¾ÕJķö+ ’Śš§¶Ź W.šō,:’¼¾å.D3 «Æ½ČÕāó*tdV%ŲęķŹÕäkYN6Ö²ĄŹŌŻēü8udWĮÖČŅEøČÕ BŲŅJBėā'?,ģĘčåĪŚÕæĶŁķšüeykė!L7ĖĻÄĀĻŻ R0:ŌŲłGR, ,ÓĶśɬ¾Ņųęčō^l[:)+ģĮŅžāƼŹćž<2žč9B, ꏹ!ę±µĘÓŠÜķ;edSó#ōŃč&#ߛ©µÅĻŪė>HFLC&öłēĮÅó*č³ø××ĆĪßüō $))@^R:ūīĆӿߤ²ĆßõßčżBbłYP:šē'š¶ÅĪ°ĀŁ üŻėA,&ōPYH1ņÉŖ³ŌśöŪŪī žCT8 IG7ęŲšśŠ­¼éńĢŁü&ņś C6&%öŌŻõłåźF:ŪŅķ÷ÖČŪ*#óŌŲņ# ž ųččīéąāņöīō  żüü÷ōöłśūżžųóōž! ’śņėīśõīńųõģčīū ’÷óņų '0żģļńąĻÓéž’ųž$ü ż žśųóīīó÷ü  öī÷ ūņłżļéņżžśž ūü’ōņł!#’üōēßęõżūž’śū żłōņņõ÷śžżūūž  ’ł÷ųųņģėļńšģėļöūłö÷śśśū’żżżłóšõłųõśōčėóšäŽč÷ż÷śõėģóųõņõśüłõõ÷÷õö÷öõöūžüūūųū’üśöņńńļļļōłüżžžž żüūłųśż  ū÷śū÷ōõūüūž’’’’’’’żüūśśśż’’ūōó÷öóšņ÷ł÷ö÷üžūöõöłśłū’śųõóóõųłłłūüśų÷ųłżłōō÷öņńóöųöōōööóļšōłł÷ųūž’żūūłõō÷śüśłūžžüüżž’’ł÷ųł÷ōōöśüž’ž’ūśž ’ų÷łž  ’ž  ’üüż’żżž’žž’żż’’’žžž’’’žüūüżżüüżž’’         ’žüżž’ž’’żūüžžüūūžžśųłłłųųśüüūüż’’žūūüžżūūż’’’žž’žüżž’’’žžžüüž ’’’žžž’’žüüüüūüżžżśłłųłśūüżżżüūūśūż’žśųų÷öńļńõööõųūū÷ōōö÷öõõ÷ų÷ö÷ųłłų÷÷÷÷ööųųłų÷öõö÷÷÷ö÷ųłłłśüżżžżū÷õö÷öõõųśśų÷ųśśöõ÷ūžžž’’üśūüżüūż’žüūüżżüūüž’žž’žżżüūłłūżżżž’ž’’’ž’’’’żž’żśųłüżüüž’üłłśśłśż’žžżūłłłųööųłłųśü’üõņóōōńšōśśöóöūżųņņöł÷õõśżžś÷÷łłų÷÷÷÷öõöłüü÷÷łöšķńś’ż÷ų’õńõśūööü’’üųųśūü’ žūüśöōū  śöö÷ųųü ’ žųś’üūżžūū ,*łņż ųóņłžäįōśś .,żü÷ģņóķłųāÜčóóļõ 6A īąśāĻč&ÜßųÜĆŠńšō -180 āįüłŠŅž-$šŠÜōęĆĆÜūš @aN*īāż āÖģ/śęāÕææÓļ’żų 7b]H ćī īŌä:,ćŅĘ»ČŲõ üūUkW)čńäÅÜD,żÜŚĪŗĒÕī ü*ghTą <ĄČńF;ÉĹя×å  %clX ŠžH¾ĆäE<·³ŃŁŹŲåž 0e[OśĘöCøÅļI6Ø±ĘŚĶŪēž1MVVE1ŁČüĄµĻ)>-ŠŖŗÉÖÖāńagVF1’ÜßÓ³øŻ4<(Ę®½ĒÖÜéż8pcR<"öĖ©µŌ; ɬ¼ČÖßė’:pcR:%Ó°ŗå%ź°¼ČÖņó÷WiU4 äŅßłōĮŗÉŌął1TZL2 žõčʤ³ÅŽ*IąŁģ’&PS@, įČŚĆ½ŹÕįļ _vbDäņG8ĪŗŹäJC#üėĮ¼ÉÖīńš [q^LģĮ»ČÜŲāķq^)ŅļD3×ĒėD=,äƦµĮĶÜ3XO>- ÷ųĢ”¶ģ: ²¾ĶōVÅÓžXCģĘõF5śõŪصÅŅā0E_P8ūŃ«æō8"æĄĶāöåņ&o^):?'Ī±Ī.ń»¶ĮĪŪī’ćŸ«»ŠTB,Ū²ĄŹŲēõhtaMéÄŃāB]GĮĀĪŲē6GZPB5% Ń ¢®½ĖŲé9hT9ķāķ×ĢąVM<(ę­¹ÄŅö<1UD1ļµ¶¾ĖŽfLŻÓāYĻź5^G" Ėœ«½ĢŚė4mXCõĶ½Ķą ZD+!ıĮĻä10üVG6ńēÅ­øÕģÕāńmaŽ÷4*ŽŪ%F/Ö©øÄŅš,bO,éŪņüģńī­øÄÓ HH9ßøĀć%Ö§¶ĆĻŻ bUC)ö­ “Ż"ūĘČŌąó(^W0', īéśłķÜ°¼ĖÖę"eYD4,ōÓĢŪū łÄ»ĖŲé%ZJ"ūõ%觵ÄŃŻė\r^N0Ž°·Ēąö 3_P&ĆĀĖŌąīelZH+Š«¶×4ĀÄĶÖąķ[fB<4÷ėčŪŹ½æ°¶ĆĻÜņž3cdR+ šŃ×ģžūāĒƹÉÕßčō[jYL-ē»æź ĀØøĘŲßč8VC*2A1źęā­¢Į0½©øÄĶŲįīdbR? Š§²Ī4ę½­»ÉÖįó.X^J5 ą„­Ź1 ūÕ”®½ÉÕßė’EsaQóČ®ÄB.Ę¼øĮĪÜīž1q`L÷ę-)Į³Ę@,üąīÄ°ĮĻÜłńėVnZH$ ūŻ½æā!9(’·­»ÅŠŚē!:icO1śÜÜŲŌé4"żÆ¤µÄĢŲćņ8 L^H0óÅŌęģ ¾–„“ČĶŪźTAžDE* ųōżžćŃŪķŻÆØ»ÖāŻé3C54 (ńźłĘ¼ŁńŽÄĪķ÷ł+ö÷'żņūūž99÷īś÷Ņ»Éķ ųś%ļęóū $,ūšąčžžģļü):1 õėņ  -' öś üņ’ śżž žų& ūīšü &+"żšęźūüōśżł üóńų  śņķńū’žüöų ’łśžüłžųōōų’  żüž’’ ’ž           žśśüžžüżżüü’’žżūśśśśüžžüüśūüżüūūśłłłü’žś÷ōóņńńōųūśśūüüūśłśśśų÷÷÷ųłłųųųłśśūžżł÷ųų÷öö÷ų÷öųüžüūśł÷÷łśś÷ōōöśž łöųüżūśūżżūųõōöū ś÷÷ų÷õöųłųųöōņńõū’žüūž’ś÷õńšņõöööö÷÷ųś’ūśłųõóņóö÷ųłųōģčėóųõīģļņńņōōńļš÷žżłųų÷õóķęćęķńėćąēó łķīōōģåįāéīėāŪßźų’ųļēēļųö误čų ųņķīóņźäéōłņ棎šńēė÷ ņŻÜéõšąŚāņżūšźīū żķźšöīŻ×āü0$łÓÖņņļņśóŽÜń(żįÜęōłņ÷7,ōÄĖļ łłžśõžóćō(ŃŹā 2@6īĶŌš õļś ēŲą)2 ×Å׳!<8īČĢģģéū’ęÜē’üŪčN;÷ČąēŻŲŪļõÉŃ÷žC;¾ŗé ēĪŅßķūčÜģ -JD.Ś¹Ö śąŻŪÜńģŌč29B=&Ś³Šśą×ĻŠę óśBRE(ēĮ× ( ßĪÓŽī!'%EL)ŚĄŃųH?%ɽĪķ "& ÜĻß’$NR?ęĮŃé2J. ŽŠš%0÷Ü÷3ZFźäõ)- ńŁā EL ŠÖź![U:ųĻä2ģŲć3L.ļŌå LT@ŚĒŻ NįŽóū ūäė P_K7ķŗĘß *õäįļ )4(ž2P;ņ“Åó0&óÉČÓā):KT@äصŃóŽŻåöDNēņ8_KæĖģ: ÖŃŻļ7VaW<$"-ā©“Éöēęū ,T_4ēą\I0ĶÄ× ęįķõ [vb<ńó0F2ę“ĆŅó .éźBc,éųESA»Ź÷)ūŅÜč÷Hf]>.:<+śø°æŪīļōūöõ%9 \UCæÕŠĀĢÕąó>[T9),(ūČ­µČÉĮĖ×ę÷ )^iX=żķ  śŻ³“ĆŠŻš’PbP8žöėź÷śŌ·ĀĻßö÷2o`QÅŽ+?Ų“ĮĪŁäņžHhYG)’éįŻÜäķßĮĢŚźś^_JæĢ >Ź¶ĮĖŻł 4GLB-ųįŪēåÄ“ĄĢŁėGj\GŚė.Ė«¹ĘÓņ 5LL8šå÷ į²øÅŅé*^XEŹå.9Ć°½Éźīčü,9=+ūŲŻüśÉ²»Īååßö;]IÅŅ1±­øÄćüŚÜņ?OA* ÷ųöŌ›šŖæėļŅŚL=ö½ĪA$ɹÄÓM;ž¼Čź03žÜõ(ż³›¬ÄŹŹÖė’õńż >d_S<÷ėŻĢÅÅĶŁŽäõéź&#šĻÖö2J(ļĪŽ,ŚĮŪ2Ų²„³æŹÖįėūHdT@ üņšļܾøÅĆ¼Ź×ćņ5CHPI;)ćÕÜ·œ­Įś&揹>óŠŪń!'BB/Ł·ČššŹ×÷OC5õÆæęšÉÉŅŪęńž*a^P1- Վ« ŚŠ•£°½ÉŌāś-QWH5 ČßśŹÆĖŁ“¼ČÕßēų.GD@@/!Ģåńžœ¬Å&2ŚµÄŽ3ÉŹÜM?/ųĆ»ŠÉĄŠģHL@+Ķ“ĄĢŲäļHlZA(,#ś«ŖŁ,š °æĖÕßźś'ZgZJ;. ė·œ¹éü½¶ÄŃŽķū3ogZH#%#Ē¢øŌĒČŅÜęń.jn_L=1#åŠäūĻž©¶ÄÓąń YgTC/  ņ×Ķāļø¬»ÅÕķ(8BRH7šŁŃÖč’*"ī«øÄĻÜéż@u_Q1öĢ·Ų) ¼æĖÜ)Tż&>$ęÉč+ Ē ¢³¼ĖŁåóak\M='¼¬¹ĒÕä_` ŁųV>ŃĻį^H7$ °¤µĮĢ×ē odT8#Ē©ŗŃ%C3Ņ®ĄĖŲźLd\N=%ųĢ¹¶Ėś% ÖŚęņS{^$DG6"ęŌū·²ĀĻŻš+0(ūėõā®ĮŠßżf^ŻSM"ĻÕż>XA,ņ¹ÉÖćļ’/s|fO5ņøĮĶŚļ÷’)·Ŗ·ĀĻŽōApZI/·¬½ŻA6ąĄĢÖŪēü@c ō&eQ7 Ą–¦°½ĶŽ`S.*)ĄµŚ śĮ­¼ŹäBFóŹõ<9ĻŁā¤¬øÄŅācTH9 ź¾¬Ąäü%ÄƾÉŌāöZ_N=-üøš©µøÄĻß <<<4ĒĘßB0Õ±æŪĻ¢©¶ĆŃŽźł0j^N2 śÖČŲļńŽĶĪĘŹŌŽž<ī’=^K)Ļ©ŗęö¹­·ĮĪŚč÷"hfYG*(Īœ¬Ā.ņÕ“¾ÉÕźś÷ ?oeQ&,¾¤øßū*ŚŖøĒÕŁćīü0McXG2łµØ»ō2ŻĄĒĒ½ÉÕäśYhXD! Ö£©ĪüüŁÜŠ°æĶāäķū0'.VWD/Ž×ž»ŖĀ+źÆĄģęĒŅß :ūčIUB+ ņĄ©»ą÷äßüóĒĆą’óŲāō%=żü'02/ū÷ßŖ®ÜÕĮŲūūäė ń2\J#2%źĄĢõųéłߣłįÜūóń81 šóśų÷48,ū÷ńäßäķõü -% ż’šäķ &*-,üéļüūīķõüļõžśņś'# ’’śó÷'-(śīŪŪķ žķļüū  żō÷ūóčēō  ż żūżńīōśłöū    ś÷ł’     &!                 ž  žż’ ’’ żśūüžžžżż’üūż’žžžž’ž’’ž’ žüüż’žüśśüżž’’żżżżżžżžžüūśłśłöõöś’žüūśł÷ųśž’üśłų÷õóņóõõóóöłśųöö÷÷öóóóńīģķļšńōłžžśōńńóõööõņļīīļšņóõōóńššńńššļīģźėīšļģźėģķķķļńóōōņšīīļšņóņšļļšņōõōóōōōöųłłųöóńļļļšó÷öōņņņņņņóōööõö÷ųųųśśūüżüū÷ōóõųūüž’žūśłśüžżūśśł÷õõ÷śüžžüł÷ųūžżüūüśų÷łüžżüżžüūūśų÷ųłśüžžüūūüüüūüüüūūśł÷öõōóõųśłłśųöõõöųłłłśūł÷ö÷÷÷ųų÷ö÷ųśūśłłśśųõōöųųłųłśūś÷ōņņņóņņō÷śłõóóōōōóõųśüüüūł÷ö÷ųų÷öųüżūūżüłųłłūżüūśśłłū’üūüžžüśūżžžž’                            žž žżżüł÷ųūüūśū’’üüž’žžüżžžüł÷÷ųśśśü’łööõņļšōśüł÷üųšš÷łóļņūžüūž’üųųūžüų÷łž  łśž’ųņóśż÷ų łś’ūųü  üõõż ūžżõņł ųō÷ūž’  žūüüł÷ł  ž÷ųųóźęīū’ ļåéóų÷ų  žžńåäķųż +' ģåšöåŠŃčśõōŚŲēóņīö żļń÷ńćąģ ųźćŽ×ÕŽš’ ćÓŚėųüū üģņ 1<"ūéō ńßęłõćéåÜźżüż"ö 3K>óģśüēŅŲš’čćō’źäļ%'AC.žßķ Ņ¶Ī)žĘÅęõßé62HXG3ļģņļÜĖŅźüóŚÓŽźģėõ &/ "MYG6üŽųČ³ĪŹ±ĮÓģčéż!;0+UO>!ķģõĘÆĆļåČĢŽßŃŚåś ,Z]N;÷ Ł«±ŽüĦ¶ÅŪāćš@M?ERA.ńÕ¬¶āėĮ“ČāŻŌįī 2go_N .!å ŖäŅÆæĢŽóéöQkWA@3 łźśćĄĘķēŖعČŪāķ÷ `vg^J!)Š¬Ćž&å“ĮĢŁåó#Aco]P=ūŠŖøź &ņ¹¼ČÓßéóž!kqbT?#!Ә¦É Ę¾ĢÖąė’6H]YG7' ō鬜™“īęµ¾ĖÖįģśbo^Q>,¼‘”ĖńŅƾĢŲćī8eeXH7* ņŃ°›£ÉģŹ©¹ÉÕąźł(ni\M:,!ŗ“Æåģ³½ĢŲäń/cl^K=.ęŪčŚ¼ĄŌ½“ÄŃßģłfscUA/#ĀœĢ“ŗĘŌćń7pdK@?1# ļķžņȶ¶Ø¹É×åöMznbQ>2&ø»ĒŖ»ĒÕå"^pR=LH6 ž©”¦·Éę9?/=4ä½Ó?3$÷£«¼ČÕāņro_K3&Ś§½åB3ģµĆŠÜé6I.5`VG4ż žµŒ °ĀŪ;VF/ūŗ§Ā7) Ż”¦“ĮĻßõ6ufXG6ń·±ĒHæ¼Ź×ģ/:# HXG5ņž#½“¦¶ĒŽ@R>"%Ń£¼żA,Ą³ÅŃŽü2':gTC*éę&å²ŗČÖčq[ ń$[G$ŪĪö17#ņŖ¶ÅŅćD6,T^J6ÅĶ"²µÄŌņ\[CÜŅšKM ĢŲN@+ć©ŗĒŌä+XsbQ; æ³»ĆĻŻóHjUĀĻß ūWbL8 ń„žŖøŹķVPG:'¶˜¬¾įLC/!Ž“£²æĪŽöIp\SB/$ Ŗ”®»ÉÖāó=r\O öĀÄŻ"VD6+昤°¼ČךDfWN>,Ą”µåöŗĒÖęfX1ńź9*»™¬ŗÖ (ķż91įž¬»ŹŻ`TH;+Ī¦²Ā×/7ńŲŲäļżNdi_RC3įÖŌæ«ŗÉ×čMl\L-"õźš ¹’§·ĘŌķKVLC<,Ü»ÉģłŖ¬¹ĒÖāš hh\N, Ī§Įõ÷¼ĆŅŻčó WoJ1/šłš”–¦ĆäĘŌćū= ņ BjR2DD5$śńŻˆ”®¼ŹŚķ&gD#HB&$ū¢“¤²ĢßÜŽźü"@NH :5(ŽŸŸ«µĄŹŚAH3.1"éÖĹĖū0)ķĢæŖ«ŗÉå 4?%åČÕō(I<% ¹†š«Ö饏ė:IŚźåāž(>?<.ź¢ŹĶ¶ČŁ O ×é)U(Ü×:3ś·¤µĢęģōGFėēžāĻā 0)*(ņ»¼Ö’  ūšåŪŪēł-O`PBīķņĒ³ĆŲ1ż $äŁī &@A&ņŹČŠÓŌßõ8QN4ŻęūęĮÅįD-  Ņ¶Ćß 9<óŪŌĪÉŠę)F= ŽÄŪü÷ÖÕö+4äī żČĄŁ (ż74Ł×ģīŁŅć6:ōÜćö÷ąÕå #ōķīĢŃńž1*ļņżńŚÓßņž &1/ųźóśéęś óčšńźö (&żł’ņčė÷ %30łõēćłõģż’ļś $ ūķóüü ,)üżģēōųšżüåėž"śųōčėų’ż"*( łõü’łšó’öłōāåł "  łóś’ųöłśōļō&$üõżüģčó ū śīļś ūüžüūūłłśż #'"ž÷źķž ųųńšż '#ü’ūžżūóóü’ž ’ū   żüž’üūž’ūś’  ūśśöļģņžłśśņóś ’üų÷śüüüūüūśłłų÷łż ž’łóōśžü÷öśžżłłžüūżžüłłüž’žüśų÷ųųųłż żśüżłśż’üū  žžżüūüž’żżüūüżūöóōųśų÷łż’żśśü’žśłūüūłųłśśśśśų÷÷ųśśł÷öōōōöųłłśüżüł÷õōōöųųłłų÷ööööōóōö÷öōōōõōóņōö÷öö÷ųų÷÷÷łśśūüżżüśųöõōōõõōōõ÷ųłśūüūüžžüüūłōóõłūł÷÷śüüśūż’žüūūüśłųłüžžżžžżüż’ üśśūūśłū’’’’žżżž’žüśśūüżžž’’’żüśłśśśūżžżūśśūüūśūüżżüüüūł÷õõōóōöłūśłłśśł÷÷ųśüż’’žūųõōōõ÷łśż’’’žüśųųłü’żūłśūü’’žüłśü’’ž’’  ’ž’’žž’żüž’žžżżžž’’žžž’’         ’’’’žž’’’’’żüžžžüüžżüüüüūūüżžżüüżžžžż’’žžž’üūüžžžž’žżūūüžžžž’’žżüüż’žżüśų÷÷ųłśūüżžżžżūśśśśłųųųų÷ööõōóōö÷ųųųśūśųųūüūłų÷÷÷÷÷÷÷öö÷÷ųłśūżżüüüżüś÷ö÷ųųłśūüśłłśūśłśüżżżžžżūųųųśśłłłūüüüżžżżżž’žżüüüūüž’’žž’’’’’žūūü’’’žūüžžżūūüžžüūūüüżž’’żüśśśłśūżžżśųųųųųųśüżżüśłłśūūūł÷ųśśłöõõ÷÷õōõųśłų÷÷÷öõöųłłųłśūūłöōōōöö÷ųłśśśų÷ö÷ųłśśśśł÷öõõ÷łł÷ö÷ųśśų÷ųśūūłųłūüūłųųųųų÷ųūž’’’żūśūżž’žžžžžž’žž’  ’’’’’ž’žžž’żüüüž’’’’żüüüżžžžżüž’’’’’’       žž’žżż’žüżž’žżžżüüżž’żüūūūżżūūżžžžž’žūūż ’ūüż’   żžžūłųśž  ’üūśł÷÷÷ųśüüūłū żžüōķėšł’ūųśüśüžžżū÷ōõśžūōļņ÷ūūśś  ūģčš÷ł÷ų÷ńķņūżųõł üōńńšģģ÷ łéģł śķģõśöļńū ÷óņóõśņåńüśüś öņü öķšų   ųų ÷óōōõż  ż÷żėėų %! ōšż üōšõ łų’żōõ36!ūąßīųśųöōšóž ųńņōļčźū76źÜčłłźŻįńķī -(öĖĻš ųīėčēīōīąÜéž %(ęŠ×éöü õęāäćŽćü(F7 čėūłźåéćŚćż šäźśIN<’Ōē$ ńå깎ęńżšęńIKÉŹó&$&üģńśŁĖŻ;H6ŪŪšóččīģāčż’LXI9'ēĄ»Ō5'ܬĄī%ōŹÓį &S_7 4 ÷äģņŠ»Čļ%žąģ/Į¾Ģå#-óčIS8ńŚ0Ū“É>0Ō©²ĄĶŁģž 'Sf[;ēŲ=(Ż„¼’8$ņĀ¹²¼ÉÕź š7b^P=ēųņĀ²Ō%0Ģ§øĀČŌį÷@8SZF*ĮĆ 3ź«¹ŪB5 »®¼ĒÓįó6Kōś4nYEŃŹ;į“ČīQ>#··ÓÕĻŻéś/UbdTAöøź>°øĶF7«“ĮĢŲäń-jufX1÷3ÆÆĘA0õ©µĮŹ×įķżfyfUģß1F.Ę¹ĻI6«²½ĒŌąķ’:ueV6ć <#Ą©¼ąH3ج¹ÅŌščļ\m\K+Žšó°·ē>,ź”±¾ŹÕāł.h`T@ĖŲ źĶŽķ°“ĄŹÖćõ.maVD!Å«Ņļ¢ØµĮĶŪņ"]dTA!żļüą™ Æ¾ĢŲćō%gm^M9'ł ģœŖøČÖćö/tn_F  Ųš«»Ź×āņ 8mj\L8# ž  яŸÆ½ĢÜģQyfWD0ńōä©«»ĢģH;ŻŅā 8//OM9& ņš”£°æĻē#lVG$Ž3¤­¾ÜOI4¼ÆæÉŚąšteVÕ+?%Ć©·ÄŅįū\^P#Ķź1 ĀŹ I3$µ—صÄ×LWJ:) ŃČĪĶŽ ÓŗÉŲö^V Ńą^J2Ųč!6ׄµĮĶŁčKvbQ5ųųę³µĒן@_JäŹė='źī+I2 µŗĪ ĪŻģžDq[Q%  Ū³¼Ö8ĘŌāń)oZ"ū#Q=*Āœ­ŗÉÜcZ-ĪŅį `T$ęņ9F2嬟®¼ĢÜīmm]N:*ģšŖŗĢK:%¼°½ÉŲńīū-tqaO:(­¢Æ»ŹŻ'^L;ļµćAž°ĀÖ"K<+Ģ©·ĄŹÕāųVn[N=šūĖž®¼Ėā,^N>¹»źŚŅ M9%ŠØĪłĮÉÖāõAkUG8' “£²ĘI5Ģ³ĆŌüīō/nXI6Ų¤¶ĆŅįļ `r\Lżļ6„µÅÖ`M?/ÓØŗÅŃŻź’Px_N-,ž Ŗ¹ÅÓćnYM¾×,ģÅÕėIWK:ō®ŗĘŠÜåń VyfV@ÓĢæŗÄĻę 2bPŹÖ’;×ērh9?, ©ØĶöÅĘŪŁßźõ#ł^|kXż>(Ķ¤²ĆĘĻŲćś190-GD4$×Øį!Ó£“Äų.ĪŠÜéA-üö^TC2Éŗč<¬¹Čé%ÓÖćö:d^L;+¹ĢĶŽ °æŌāāõ+^U7,+ ēÅĢäئ¶ÄÓįī?Z: ž 1LJ:)ģĖńąšØµĄĶŁźC87Y@/%łÓŹœ™ØøĖćÜč Wc5ū’'$óę9'֞Ŗ“¾ŹÕćõMf\Eöšųśīęų$2ę°³ŠŽĪŌßļ#PG%üŽßü<^J)äļ,(ńž©ŗģłŅŪź'@žę/+öė 4881"曧ŅķĮÅÓå$2ż'K.ģŻ4/õÓ±Āīéßł īļ ńąńA3żüā×č ēéžļćŽŪŽģ0M@%ßÅęļ¬²Ēł'ßč 揌! %ōÓÖčāÅĄŌö,38(śĪĶźśŚĄĶ÷&(żōĀÅŲ  śėģéÕČŅģ &CH,ōĪÕ÷ öÓŠī& ņšųńŽŻó#'ņńņēŚŪķ (:7ņÜåśžēÕā žś śßć)żō ųßÜéū"&/2#żßąó÷ēź ōīü ņģśž ģäļżśų ($ ģåóöäćłžōõŚŻóśžü  öóžöōūž *(õśōęėž ņõšģū  ųüöļņł  ! ūųõęęųž ł  !  ’÷÷ż#%žü õņžóšž  žüżżłōõśżž    łóņóóšķļó÷łū  žöśūū  ö÷ü’üśü’ūóļóś ūõł’ūļēėöüöņł  śų    ūöłżžūśžüż     žųūż÷ų’ž ż     ’žżžžüūż   ’żüüłõ÷ž ’łūūųś’ūü’žūśüżśõņńóöśüżž’ūśüžžūöóöśū÷ļėźōöņńųūųūüųōó÷śśłżżłųłś÷õöśżūųöö÷÷ööö÷łü’žż’žųųžżöņõłłņīóü’żöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö2BITGun-shot’’’’0å/Ü/܀‚€€€Š€€€€€Ž€€€€€€Æ9Ön $€€Æ7€€Æ8€Čżūōšóņļļłōīźń’ńŻŽ$üąęņüłüżŁÖ%ąķ @+ķĮ½Šų*T?ł ŚęŪķżņąžłš! žóżśł üūõōž żéŚŻ-H1ė/Ū£„ęTpBĖ¤Ķ4ŹØµ’Vqpi8ę£¤§ŖĶU3ŃÓ÷Qk5Ż„¦©¬­Ó2ps_'ļÅø¶¬®°±·ć$ĢÓ0;ēĄ÷2^b7ķīA]aÖ%MÅÓؘ¶Ė÷.EÕ¾­Ÿ¢ę>1šĒžVfCóĒČ\ZÆĆ&S ū>`_<é WYŅŸ•²V%$*ś1Ē“•¼ņĶĄ¢Ä5WĶ¬·å=cbaa6āÉęćĮ ź2Õ+ź¦²U #/_.Ą™ę'ĄšĘ1;Ü“õīØÆ T,Š øžWfecc6įøŁßĢÉß-baP[\\\H¼ŖÖŌ ™›ĀąšŚŽ#``^^Kō˜•×8)Ū«ŹįŗŲ9`&ų颩łZaYęš£S`a#ÄæżĻŸÆ±ØÉUdd/ Ł¼§Ē*bIÕ® ]7ŹŸŌFb`»¦śXOŽ„æ 4HX\HžĖ錬„Ń&^^^(ČØö$Ō±÷;?@9ߛ•˜āą¢°ŲžRdbb"ČŻ<^^ ®œęD]VM$撘Öīž&’÷6 Śü8[^¾ś³—Ä;\+¶”žQ:2=D&ʓ­8÷ŗÉ';$9*8 ų ųå8WØ„ T)³’Ę,Gļ®Äā#“—“[Cö¶­żURö½ńQOłö="¼˜ŲāŗķKGė›™éU^SżŖ³T°µłą!]]EüĶś1ōĄīMZ2Žę ŪŌµ˜±[Bį™˜Ķ;^^/óøĶń£›Ķ6`aDGü©©ü8ķŠ Y[*ÅæX[¤¬W+ŲÄ”šć<ōĒ˜¬*Ó£Ļ7_CāęL^ ±Ā:X\¤Æ 4¶æņ% 8č¼„Ņ3\\Z7ńœ”™ķęæĢ$^]]'ÖŹļ0Ć¼Ģśż F[Nńå1X,Ż±ĮSY²’ R#»œ³Ō2\%¾³ä%6ńž (żžµØąA\ZIćÖÕÅų8XZ÷§Ō+ĄšŗZZŠP8Ž»ĻB·Č6XÉō:­—ŃIY1Ņ”–Ź1!ĮšÅ*[GM8Ū˜¢Ęé>#Ļ˜šĶ6__R’¤ ėR^TŚ± Y9ļååIR@/: Ŗ—åž×“Ä=YV%żæ””™Ō6\\ šżNXVü±”­ū9JG5’³¦Ŗ›» U]łŠØĘ'ZQįŸŠ9[©–ė(ź·ŚŅ½ę(Y^Sś¦ŖļR]\*Å”Š"XZXZ÷™”×=XRćœŅ$Æ«ź%Ź™œŅAX؛Ģ9_aš¼ @õųåÄ·«Ų-^^¹ÄY\[YIī¾ŃPW0ŠŌņÉ+Ö¤ÉĘĖ+Y+Óē<>ņĆĄšžśļ°Ā!N.%@YC.8 ł ó)÷®Į7ļ¢Æ ł4VXŅ’‘Ź9V.Ą•ŗŌRXR*ō’–ą9ĘĶܶņ9 ŲSZ@ēŅśRY Ś+O63朎’Ś'(Š”–Å$ Ź²Ė¹Ś3O ŽüA_Ž/[\¶Ē!XXZė”Į4 ń9ų‘³ū%W[żĮüņ§ ł0÷I9֘É4/ā¢² !#Z[*»·÷ULŽ–»’ŁōR[5’±–¶DTA=²–™ßI^IņĮŠ ÓžæžŁą8`_Xź¬ \]6Ł<ū£¦YY÷“ø§¹!^<ŌÓ:GīĒLW²• 5ćŅ"\Wōź/Į˜ØóV^^%¼«Y°×J].Į”—ÜL]^¤•¶Ł Y]PųŻ¾œŚO^ņÆŲ2\OŚ§Öé"Z[\+½“–Ś=Oļ½ģ½ÆļS_^,»—·#^^SG •”[Aɤ-į£³[^^©Ø[NŪĄ!Z"²šć0W\Ŗ”Óś¾Ģ-]^„–ŻM:ķ÷$U\ø”–ļV_A9óĒ O ŗ¤śČ«ėB@)S\-ćŗ§ÄPZYY:ʐæ)WCӒ”0֟Ź,Z:įŚĖ¬X_¹éĘāE\]£™ķTZ 7V6Ł”•ćO\­„ŹĶüT[ZQĄ”—Ćéö.X?čœ¢ķ׬ŁÜĀņ!2:^^ZūÆŖķU\WīŻūīOV%Ī”–šõ-LLž”—ŽI]6ŹÉ ļŌĀüW\\īŲ-ø“TZSö™“¹!ÕS[*ø”Å7D¾™¾[\]'Ź——£ćJ^^TT°“¬VÅß F;Ł˜ Y?Ō¢Õ3*ÖŚ4[OōŖÓšøĢ0>ņ¦›Å#^^WńĖ)įŹG[Rž§–õW](:C©’ø*>󦗛óI;?UE·”—É9`¬˜Ó'K]_"Ļ ¢Õ6]\<RY Ą”³XDųƟōP'Żń,$Ō”–„Z4Ř®¹Ö)__@ä ¢šS^KՙĖ<^¶­W]4Į—Ē8]'½±äć[^²šŲ8\AŅĒ*M“˜’Y]4؛Ą]^_©˜œō@]_¬°ĶōŁä/žĖQ%ĶŽ(ĀÆŻłX^_ Ķ—™Ä ^^_©—Ÿ\_ƹU\Eļ¾ĄY[!ŲĶ¹ėŃÕ3RĀķ÷ĆéLIāŸ–ŗ\]DŲ™™ĮZ]_ł™Ł&Y\Nż©—§ūY\[ī¤Į.[CõEWX; 嗒–ĶŽ ćż?\Kóš˜Ģ7]5ĶšžéõG^^!»œ×B]\8Į•«Z^ ؙó)豊ęĒņU_Hžō,' ! ž$śӔ”šęM]^ £–­\\JĻ–øY[](敘Ē B$ÜŗĖR\CŻķBWW ¬“²ųø›čEN ŪžŁ&\^_óĮäŚńA\^ §˜” ZPŻ›«XKīœœ¬]7Ź Ķ6XĆ ®õYa`K槔Ģ"__^Eą™šŃA^Nߚ›Ķ(]_4ŪĖ²® Z`Qõ„š£M\;’ļņī “›žō)ōąłDbc ėZ]]'½–»Z[] ¦•æYZZ?Ķ”–Õ-YZY •¾ .#!ī˜œåŅ˜šÕ)Z\M’ø˜²U\^­œŚI]&É°Bķ-O1Š“–Ä.į™Ä-a`)æš“[`^EŌ™¶\]^«¢å3X¾Ü:[Oõæß#H$ĕ¬X]£˜å AA °–™Ć#]_®˜¹[]\¦™āP^YźžōT_B,ņµÅüŚ«ŗä$^^OļŌ U"Žō=H&7H“‘–É2Z-¼–™ĆX]8ܘ™œļQ`©š“ : Ž³²Äå J`^]\PśĪ²ā#(īؘø X\EāÅ^R蝚± _b·ĖĻć:IšĒĪłßĪō$4ĶĖL_;Ł¶ć=]\^ ½š¼Z[Yš˜•¬ Y\Sī˜–›Z`£˜²\= üłšēø›£ś >_* !(S]Ėą=T/Ł„”§X\”–šķR\_ž—½O\Zžž—›ēJ^Xń›™®W_9Ź Ś+K$ā±©ĢQ_#ĀœŹņČÅ XaKꝞ¼&aa+øœ­ė5`b1ĻœžÄ+ba8ʜ®’Yaaō¤+łźįåģö Ś“Ęąś(O^Dü®œµ]cb/Ä Ó6a`a¬˜· ^`-¼˜›Č*__Iܙ›¾^_Ył”š¦L^^Ąøż40łµœ©Ś$^b$ęÄ£¶Qa=לČ+aa&“œČģ1`a)¾šžéRaP垞²ńSbbƝē76׎%^aįčźÖĖŽ =\Gų”™ŪH`` Ķ¢Õ9``6ƘœļVa'²š»ĶĖ`b%“œ¾%_aHĀœ±ćż:Ļ©Ļ0ba=Ń­åG_^Qē»åŅæūJ\-č£›£\`Ćæ²³õW`,Āœ±_bŗ·ö’šū żĮŸ£š?+īŲßļ5Eba`^U BNS<ė—–šßž±¢Šø³öA0čøĶ`caB×É.O]^/斢ė0GµšŽģȬȚŻŁCScdĄ«ß8a`Hß®Ķó+X^H³˜°’X^HŪ®īģQ[Rī˜—ŁCX “·åŅ±¾ßėģŠØ±ŠĒÜ źō9gfd@+) <\\PŽš¹V]ÉÅĶŖ¤Ļ A.߬Ā Z__Ęé; ßÜOT&7^?&TY\ģ)TVH°Ž’Ļ+±–š÷P9ךœ¬“ļ (ģ” ÖTZ Ź ¢©ļOee'ģū*O`CŠ ķT_RļÆ­ÕX_LؙĢ>`.¹Ÿ/ęÄüICļŸ” _BĻžß6Ø”Ä3]¹”¤é0O"ģÕŚ8 Ć¼ēZgfH汣8cbYźÉö2^`@:½•™ÜG_3¹˜ķ%ܟžŌ6Pś¤ŸÕ NGÖ¹®„±ōOff-÷ę,$łó-^_a ®™­ĒX_b„šž[b"¬›ŪĻøė17ó¦ Č:df’¤Č7R„ŸŪGe¹µå@B892¶›Ø÷=OL>:CĀ—šĀ^aM蝚žĻ>b`ų œĆ/be®Ą%;ģ¹Ņ"],Ā įOb>ū TCź›™Ģ'^]üØ£Ģé<_:ŁŹN@žžšžĘ%G-ē Ÿ¢Ē0d?Ī”ŅDd6ѦßSeŻ^a5ÄÆ7ó·£”²Y[<Ź½źŚØ¤É->8ö·ŖåEfe<Ļ¹ ]\ž¦¤õDSII7ü¦™Ä/b>ŹœČ ą Y9ć¦Ÿ¾aef °© B®ŸĄ Red0ɟŠ,abPų¢›¹^a?ĪŖģNb­›ŸżYb+Źŗ½¢¹$JØ”«Pff%½ž¦3Ś„®ģ@`IMabbAūÕČ­¹ūS`_:×½ń3C§™Āū#&Ūž·žT`¬ž”õ\f/ŗ­é÷2daž¤žÄcde ŖœäJ4 Ya4Ē˜®\`FŲ™›āD_bęžĪ„å Ļ”Ÿ¢ŗ\ecY÷®ŽöĄĒ’Ų§¢¹`gf»Ó"H_-ą§Ÿ¦Õ1edUܵ^a6äŲ¼©šN<ß”¢šPbbGįęŪ¢ ²ń:> ʤ¢Ź$dd%ź#^Hł3½›”Ö:ccŖÜFc4֞ž¶"b+ĖÓ'_],$5Ż½³ÅMK µš”ļMbb3řœīU[¤œ” `e¦žČ.cf³ĪćŪ\T³ž¤ćBdcPé ©^T ó±Øķ<^Y±œÓ#U.ĪŸŅHņ īųĢ­Š!bdR» ŠXcd)ɜŸĢ,cc'»«źIaIņ„›ØģGba]÷œ›ćRb2Īš äFbd©œ°_JīŸž¢Ü bd’#!%$՛¤ķ0]bAꟜ­]bd¬›“^aRą× éĆ“ÖĮŹ`dKõ”žĶ9cPģ¤ ¤Ż=edd*ŲØ ¼^d7ē” ¤³¹÷Yg^ų­¶\f¬”Ū8ŲņłÄŹģų=gfCL#Ą¬ \9ķĪ·¤Ą`cbAŌœžŻ@bO® ¹^ca(Śžžŗac=Ņœ WGü©Ÿē÷ĘŠBdcc/¾š½J@õ£ž§ÕĖŲ"ded(ÄŠ%^b9Ś›œ Ąé$ac/źś7ZO#ߝ›žŪ3<š§ ®żUe@G_,N^8Š–˜©\`¢šžźS`Sē›œ¬śN`b!½š”ōZacž”œ·$`aKģœ›ŸīNbc§›Ÿ Z4ĝ½÷śūā]cc:әœµabIŽ›Š?c\束¢ĀYedd/曟Ō.cd!³œ”īJccBꝝ”ę*_d/ĮĒ5D42ěžØė3O=H=čĒ Ø^c5Źž¢ķScbGŻž±ģLbaLźž£^a` »I@󣞔Õ%bcc?ļ¢œ ¬Ž0ddGÓØ \d&Ą«ō/½Ÿ¢¤ĻegedR;±›ž»acOŌ„ź:=>^M®™œ¤čOaa4Ąš·QP> øš Ļ(bc9ĪœŸį>`b\!Ó ¤į@baV’®Øź08«ž”Ö.ø›ž®šYcWėŸµ#`åI ­”Ū [aĪ«Ÿ ¦ä*^dcPĢ›¦Y`¶ž”Ń/dddż¢žŃ'^cbN ·šž”“\cbJ垞­^bc@ķ œ Ć+bd¬žŲHY ÜéŃ½ē.Z[AŲ¢„¾¹Ēł+3ĖÅžń“ŗśRf'Ę¢¹Yfe_ń¢ĖéĪ^c(ğ¦Ų-ccc(¾œ ÓSbSĀŸĆ`caV÷ ›·QaYƚĻJXW=ų¤š«_d"ɝ ėF<Ł«Ž=c,Īž Ņ1ddFŌžÄWbbRĀš Ā_bd&ĜŸŠKaaX Ķ› · \bb6ž°œØ¹«ŗM,C]ZQ,įžœŗŅŹĒź3bccBā ©ķ:SĢ  «ā6ccd%ĆØć%$1*š³ž øīŖ™ÅZbE䠞¦ā=cbc;Ņœ¢Ų)_<įØ»ŃŁ;`ba`ĢÆĢšč­¢¤ØµĖ E,’[ecbTėž S;Ż ”Ųüšż:b3ąėB`Pō”œ ąGbaIėŸ ­ūQcab5āœ £ćAcb[1锝 £ęMde ½ “Ydc\ø›Ÿ¢į,`cdI¬›ž”Åadd@ŁœžŁId°ŸŚ$1JJ:$Ų ›Ÿ¢©ĖęafdcQ餦Ž9aaW«›ž¢Ż=cbc.Ł ¦īNdbUł„ Ż>cbc%Ģœž¢žJ8ł$Š­·±«æżTgedHņ£”¤¾üTgedJõ” Å&cdTž„ž”õ<ųGcf ­œĖ _bb?įš›»óžŃƹę2ddc=Š›žäNcVŖœ Ī)ccc?󣜠Ä_cd/ț¤6ģ¹ąAbb3Ī›ž¹^bZ3ģ؜Ÿ¢„ļQdcIģ”Ÿ¢ąDddP8ĶžŸ¢¦Ö'cdcV期£ī>`OģźŪ§¢“OdcB妟£ēMdd0ņŅ®©ļ3ü¾āBcdµœŸÉadd:ś„œŸĪ#Za?ļĄŸŸ¢ÆŲ#dfdcW Ŗ›ŸėSd2žĄžŸÉUddJŠž”²żRde=żł󾟔„Ō]edH ļ"Ž œ£Ó HbbYɛœÆśQbH ģ²œ“ź:WXB%ļ®š¤Ü%_bc0ėēŻÅ¼Čē8C.÷øŸŖÓMbN0½›ŸŚ)XO1#Ū„”§ÓbeeDš£ž¾TP4åŚōß©”²ņDeec-ß”Ÿ»QeDą»µĖõ#?@3ė؟¢“Ę¾Źü@hhg*į¬¢Ø×,eZ#&čĢĮĘįž(6;A>&ŻŅūHVŹ²Ś>[]O6µ•™æŠŹŠ÷4X<ł¾°Äīū¼¢­ä&.-$,I^FÓÜ;R\_`:ö¬˜ŗŽī&;8ĶšœŸ£į(K4śĻŁļŤ¦²ļ6ghNó½¢µłIgDżĮĆū-CE/Ļ“¹¾“Āš$HSO7ÖĻäīāŲč 0FA%ūĆ ¢Ę Ka`S+Ż££ŌK> (ŌæŃģ 2VaG$ўž”¼ō(/Ȥøą 8S=ßéõŚ®¦Ķ&O! ćŗÄŁē īåīłéĻę&XegT+öĖÜōŲģ(VDŚóōåå5TV/üäŚČĮĘĆĘļ¼£„«é!GH90ć©£§ŃDD;ą¶Ä÷GigR,:ĢŖÅ Ra7 .3ŻĢęõ侟”„Łß×āśEG)Ņ“Åņ źø¹ē" ńüńąćł&bkiRÜĄĆņ5L:7*ļ³Øø×UbA%Ż¦”ÄšEW?)ó“Ÿ¢Ģ;=53ܤ £Ė&c:$3ß¹ÜŪĶŻņśįĮ¼Īų-PE-,)żĄŗč2żüĆŹ V]&žšō3N>æ°ŲųĪ¦²DĘ¼S?ņĶš"ż7(š“°į1fh1źÕńłšņųžęÜń:2õ°£Ļ(eU%&ū° ÖōĘØŖŲK<ņ¶ČK:čųėĒ²ŗŁüßź%RI''Offg> ėŲÓš ƦÅŅį öŹĮČå# 鏮¦©Ī#g:īūKj3Óµļ čń(ND1åŖ¢¹ż8<$$5OM3,éĖŽ 31’» ¾?@AG6ļńšŹ«¤¤„§Ē@J"łįŚĒ¶Åń żż śÅØæżLklP!.G\K'ż¾£ģ7XG®„ēōėÅĆį#/ąÕŹøÄę÷õĻ¼ę#TM žż/ej6ć³Ėö .ag<öŁąÓ䎲§ĢŻ×öīŌŁŲč+dRļé ė¹¼ģ"UhH(!żįČŃóņĆ¦ØµŃ03 ćę)ī½Źööą@cHž ė·¾ćŚÖdl5åÜē9ŌŪżóįŲŹā#@łéü"*äֹܟ #:BĻ£Æņ>S ž#ö³¢§Ė2Č°č:f^< Ą¤¼ż1XU׏ī;hDęĮļ,NS2ž¾ ¢Ś+Z6čÖ Ś“¦¬Ś62 $4 Ę£„ĀźŲČŅŲõCg1å³¾ūWonC’āėŻÕLOľņ3fiMø¢¶ń&FN!ŻĮĻč "Ļ”¤ć+Ė«Éč >N# äøĢ6)Ā±ē/ūžś*bjiiVƦµŚ3&ļ 2FJ+ę²¾Ž÷0žóåŗ¢©Ō 95ķ¾Ų ķŌŹ®Ø«Ź ž1T'ęĖŪ Dlld(ėß % Ö®¹ź&;/š·Å\>īå6<ē¬”§äėźōÓ²æŁółÕÓōÓ¹ćüóKM+ ž/=%ė“¦ĀśJmllCō±¬éE?’(=HWW.䔜ŖėęĀĪVg\6 Ā Āž×Ļßś %&ūč¶½ī)U;ī»ÓčöśóHVH'öł Ö¤¤ØĢTj4ā­·šGkl0Ņ¤ŗWiTūø½ę=L=OQĪ±·æį$LiSņŽ­¢±ē@i2įų. ĢÄń7eg^"ŠŸ «ZBś÷īóūķ×Ć¾Ų#PS¾®Óćõž%+=W!Ūīā¬¶ķ'OX1ć¦ŖÉŻ 3$ ūķž'Ż±Åż,Nhf%Ū©°ńKCģŅ@C æ§ŗµ®É0"  דĆå/NVF(é ELæŠD¼²šęÉéżÜä(CĒ„ŗŽż 5HB0Ž³ÆĶ:_i]6 ł ųŲćś /.D'Ō“ē÷¹Ä B.ēŚÖĪÓųūɧµńłēÜöņß@A15H,äŗŚ&#"!$ ’ēŌķ&F.łßļõ+0+ßĀÜäÄĀßāŁč ųö ė¶¤“Ž łWPKBŠ× BWD1# ļÓ® £Éōō=B'õŅŁū#Od;å«Ėžóöźķ= ¾¢²ÕżļĖĒÖłļĻį żõóū=NA0$üĢŁ?&éā*OųŽ#åÜóŠ©Ø“Š XlW3šįŠæÅĢņDkXļōāŽ*%!ūō1 Ū¢¢Ī// Ó£¤¹š CI%į¬¦±Ü>_V.óŠŲō õĘ®¾é8:\jjŅĮé0Q,ųķ$ļŅĢēüųŽäśÓČė ×מ 3H$ܧ·ÜÖąAŌČķ ’Ū¬£¦©ÄŚÜēņś2ߊē!`nR"Chigh/śüį„ ¾äõū÷8BʦĶ*"0@3ĘÆŲģæ°ÕBCõ÷Ż©³/ąÜ’>5ēĖ58éļ B(ūŠĶŽŃī:>+0ßÅĒź.GŽ’./ōÖĄÅĖĒŹĘø»Łü’ęĘÓ 6Ql[%@^3āÕPŠŲžä½Āģ śåēēźõŲ¹æõKmiŪNM ēE#Ņ“ę;b+ĢŸÆö:2ķ¼É÷$ܲ¹ā>F!ż&ģŪń50ó»Čļ!0óķģŅŹßŚĮĆä?D Ā¹ī8]>#_4椔øY6ęŲķÖŹ¾Õöž@2š’čĮĘģ( "<* üļčŲŠź$^N ąż!2Ó»š%ŗ„ĒŚŹŅ =)śģūöčłõö9C5 ;N1ōĢā$[Z0ÕŗĒųé°£æåśłūŠØŖĢõŚ¶­Ēóüż+GL,9cjTäó"AFEDŚŸœ ć17Ģ­£„Ņ'!Š©ĘģžśüīƬĄīłų:GB< HH!žķų(YggQįŻåģīčŽÖŁĒ„¤ĄĘæģģ÷żńėó (HW? źķ÷ōü0+ ž +RV8& ŻÖ;_dIóļ×¹°“Ó$ü¬ £äÓ§ØÖ6ńō ×ƳŽ  EQ, )cfŃŌZh3ܧ±Źō>fUųŪŖ©ŅĮ¦§Ü"L%Ź£¦ŃB&ą©¬Ü’ŚĆā$ ,ZeEī3[bOE:ĄŸŽ8ńÆ­Ü)P2Ū§Čżśź2B ²”Źé¼Ćļśō ļŌŪóšē2=62*-"ńų *ajDü/F9ųÕŅ÷ÓئŅ -5 į¦¢ĄH*5Ź¢£Ķ&cDūÉ·Ķ JOĆ£³ģäŠ÷>_WF*üŗ¢„±ß4Y#ų !) ņŹĖŽų-’ÓÄģųŃĆāMhNĪ¤§ē1?¹«½× -DBߌč÷02ķ,ź#O0#/D[aB’Śė÷Ȭ¹Ä¬¶×Į¶ÜH>õĮæż>3ļÆ«Ü,hSčŻAN׏ģ <@ćĘĖå .6ŻĢąųśó½“õ1!’ņōßæ×ķęI<»¤®Ńż#?XR-šĮĢö%" ėŪćéņ !%Ūė ōō żõ׏ŚėżļĮøßHTC&öŗ¬Ż7RŚåó÷IWCåŌ÷ :-óČÖõ×Õį " ļÜą$# śöÓĶįčääŪŌčąŗµÄä>ŲŗŁü9K6 ļę >^ECGŪĒĪž*+: ęĆŻķ²”¤§Čų.b^ Ę£Ąż20’Ų×ŁÕŁńé¼Ŗ­ß,or<īĢŚPn?öĪĖģ,^Q#ń³£¦Ē78ūŚ»«»ź+\Tōõ!;bZ īīõó-(ü愶Ł 6(ź“µŚ/ üĢŖĄŪĻ^TĀŻ*a?ōŠģ+ūóÕ½Ķ$/Egk=žćņüĢ¼½³Ŗ¬Ź Qa*åŲ-B:×µøÄÉė ęµČN[L į»ŃNEģė77åĻąś’26Õģ*-äÓŌįÜ÷(<6!śČ“Ćö2#Ö®Ī`MŻŽÜ6B+ž $߶Š9 ó@B)ųł謞¬ßC=ŻÄĮ׿śŻäéĀĻó:.ņ (ąŃčķö79öŅŵŖ¾š/gkLņ¼Õ+>" łÖĘÜüņÖÕå"2&īĪÜ ö '#%öęō:FŽÓŃÖž/ROʟµåłżōŻŲ ;!ŻĢ7D7'ĮØŌ!žŚé$ä²Ų+$×°Ų'WCßĆĒķżųŽĪāžķāėł "ńŽķ69(*1żäŹĢó+P?żńņ’Ö³”¤ŗ #śōäĪó0^VŪ½Ćę'[S"šŁÜéīéš ģŻŁŚę" ü 0:üšōļĘĮņēŁš.$ śåČ¾Ö7>!%G4žéūųöHaFŅ”ž©Ņēģ÷ +ķ®¢„Ø­ė;_6ķ©¦ÖA/ū¾±Ś$ßå9QI#öŠĢš*QJśņś$B'å­ŖĖ;RGĮ¹åōńųśīģóéÕŚö #,2-āÉÓė ūłōńÓضė /B3ųŃŅż.Q>Śń čō)5 ėäŪė-* Ģ¦¾=R: Ó³Ć’7"ńś*>"öĪ¦„³ü7O4ÜĆ·Äķ’ēŻÖķżõś:*öĀ¾Ļ×ó%A$&4ėŲĮ±Ī Ec]9ü #!ō¹øņ9;/GQ9ŚÅź*0 ×øĘįł ģŪóīßŃ·æéõ½Ąū9QA& Ž©¤Ø×!\Z.żåčö&67īīż īŠ·Ļ&:6¾­ŹÜč÷ņ×Ü6%ź®ØŠ[_4Ģøā+K0ÜĖĻęNjk6łćö "%ķĄ¦¢„ØŪ$\dO2½ £Ń 7ó½Ū(Y@üöŗ¢­ē&;99éŅßāš$ZfE'õ¾Ÿ¢„ĮJ?õŲ¾Äī'OR;ņų éĒÜ.źŽģšö łāŁž+'żĶ“ŹB^R* ųŁŹŹÅĶÓČÜ@ęĻź66' ųB)ß·Ö?LQćń'JN9#Ķ„®å&HD īä’ +..9%łī Ś©ØŃJC¬ž¢Ł4G ¹¢¤«ś(-9B1ÉĄė &ö澎ū#J[Z:ł¹øń5^HÓćJH. &/"ī­›µų%ߦ”¤ĄZVņčķžŚ©¤§Ö2dAÖĢåLhe3ļÖÓāŖŖč8_3įŖ¾LhUķćļŲ®¦ØŖŠ )WkTėćżŠØ°Šü1M3öåęōŹĢś:gi_'šŠæøĘć /.ü  ŽŠ÷,8ńĀÅ’1,#-3(čęž ņåäźįŌÕćū>BüųżóŽŅŪłęĄÄų6dg5ųČĆģ(=ōēēźńł,łö,(ńāåėåŽåéąĢŗĮŁž*8 &óõöšžėĻĒ׳#AE7ć»¾ź"0ŹÆĶTa;éž'@2ÖÄŗŗį!1ž»­Ń5=Ä”¤Ś$N7śÓ­ØŹ7WO. Ü沫¼ź-hl]ŗ£ÅKi^)ļ³¢§ā!MU>õĒؤ¬ŁEf_?$ɤ³éöńż!ļÜĻĆŗÄŅę :^`M9./(Ō°©ŗ×ō źÅĄęF[]CęĖČę Qfg^-ꤝ¢ß C@Ż©¢¹×öšēęŪĪŻ5HH8$ õŠ¼ĢņCX]YF č·”«ÕIfV äŗ¼ą33öķåĶ°«Ęö&/żäą-MM. ńķųńĪ­£¬ÖRe>  ż÷ķåī ö! źŅŌź8?Ō®Ä÷$, īšųüżćŁõ;D;*įŹŅī !襮·ŲAR?!öīīščŅĄÅŲéļł  ÷āź# '/łäęķõ(žėŻŻŽŌöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. §–Ė\.. __LIB ؖĖ]M «–Ė_G ³–ĖeC Ļ–Ėv. ©–Ė].. ¦–Ė\CX H ÖXi^?/** * $Header: e:/src/include/__lib\cx.h,v 1.1 1993/11/09 10:14:22 AGK Exp $ * * Private CX error definitions for runtime library * * (c) Copyright 1993 HiSoft **/ #ifndef ___CX_H #define ___CX_H void __regargs _CXRTE(const char *); void __stdargs _CXOVF(void); void __stdargs _CXSTUB(void); #endif ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. ¬–Ė_.. ¦–Ė\MATHERR C œ[i`Č_CXFPE C r[ibź_CXFERR C r[icK_FPCFPCRC [idö/* Copyright Lattice, INC. 1989, ALL RIGHTS RESERVED */ #include "errno.h" #include "math.h" /** * * name matherr -- math error handler * * synopsis action = matherr(x); * int action; non-zero if new value supplied * struct exception *x; * * description This function is called by functions in the math library * when an error occurs. The exception vector contains * information about the function that encountered the * error, including the error type, function name, first * two arguments, and proposed default value. * * Normally, matherr translates the error type into a code * that is placed into "errno". Then, matherr signals * the caller to simply use the proposed default. Other * actions are possible if the user replaces or enhances * this function with application-specific code. **/ matherr(x) struct exception *x; { switch(x->type) { case DOMAIN: case SING: errno = EDOM; break; default: errno = ERANGE; } return(0); } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/math/fn\_cxfpe.c,v 1.2 1993/10/27 10:14:56 AGK Exp $ * * Low-level floating point error handler * * (c) Copyright 1989 Lattice, Inc. * (c) Copyright 1989, 1993 HiSoft **/ #include #include #include extern int _FPERR; void (_CXFPE)(int sig) { switch (_FPERR) { case FPEUND: case FPEOVF: case FPEZDV: errno = ERANGE; break; case FPENAN: case FPECOM: errno = EDOM; break; } } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/math/fn\_cxferr.c,v 1.2 1993/10/27 10:14:56 AGK Exp $ * * Low-level floating point error trap * * (c) Copyright 1989 Lattice, Inc. * (c) Copyright 1989, 1993 HiSoft **/ #include extern int _FPERR; void __stdargs (_CXFERR)(int code) { _FPERR = code; raise(SIGFPE); } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/math/fpc\_fpcfpcr.c,v 1.1 1993/10/27 10:05:26 AGK Exp $ * * Startup time maths co-processor control register value * * (c) Copyright 1990, 1993 HiSoft **/ #include long _FPCfpcr = FP_RN | FP_PX; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. “–Ėe.. ¦–Ė\_VDIIF S yZif—_VDIPTSOC yZigæ_VDIPTSIC xZih¼_VDIPB C xZii_VDIINTOC xZijŹ_VDIINTIC xZikČ_VDICTRLC xZilĄ_AESIF S WZimk_CXRTE C PZin„_AESPB C PZio_AESINTOC OZipĻ_AESINTIC OZiqĪ_AESGLOBC OZirČ_AESCONTC OZisÉ_AESADRIC OZitĪ_AESADDRC OZiuŠ** ** $Header: e:/src/gem/vdi/util\_vdiif.s,v 1.4 1993/04/06 12:53:02 AGK Exp $ ** ** VDI interface stub ** ** (c) Copyright 1989, 1993 HiSoft ** TEXT XDEF @_VDIif XREF __VDIpb @_VDIif: IFD NOBASER lea __VDIpb,a0 ELSE lea __VDIpb(a4),a0 ENDC move.l (a0),a1 move.l d1,(a1) move.w d0,6(a1) swap d0 move.w d0,12(a1) move.l a0,d1 moveq #115,d0 trap #2 rts END ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/vdi/util\_vdiptso.c,v 1.2 1993/04/06 12:53:02 AGK Exp $ * * VDI output point array definition * * (c) Copyright 1993 HiSoft **/ short _VDIptsout[10]; ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/vdi/util\_vdiptsi.c,v 1.2 1993/04/06 12:53:02 AGK Exp $ * * VDI input point array definition * * (c) Copyright 1993 HiSoft **/ short _VDIptsin[8]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/vdi/util\_vdipb.c,v 1.3 1993/04/06 12:53:02 AGK Exp $ * * VDI parameter array definition * * (c) Copyright 1989, 1991, 1993 HiSoft **/ #include short *_VDIpb[5] = {_VDIcontrl, _VDIintin, _VDIptsin, _VDIintout, _VDIptsout}; ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/vdi/util\_vdiinto.c,v 1.2 1993/04/06 12:53:02 AGK Exp $ * * VDI output parameter array definition * * (c) Copyright 1989, 1993 HiSoft **/ short _VDIintout[128]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/vdi/util\_vdiinti.c,v 1.2 1993/04/06 12:53:02 AGK Exp $ * * VDI input parameter array definition * * (c) Copyright 1989, 1993 HiSoft **/ short _VDIintin[256]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/vdi/util\_vdictrl.c,v 1.2 1993/04/06 12:53:02 AGK Exp $ * * VDI control array definition * * (c) Copyright 1989, 1993 HiSoft **/ short _VDIcontrl[11]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö** ** $Header: e:/src/gem/aes/util\_aesif.s,v 1.7 1993/04/02 10:54:00 AGK Exp $ ** ** AES binding stub ** ** (c) Copyright 1989, 1993 HiSoft ** TEXT XDEF @_AESif XREF __AESpb,__AESintout,__AEScontrol @_AESif movem.l d2/a2,-(a7) IFD NOBASER lea __AEScontrol,a0 ELSE lea __AEScontrol(a4),a0 ENDC movep.l d0,1(a0) IFD NOBASER move.l #__AESpb,d1 ELSE lea __AESpb(a4),a0 move.l a0,d1 ENDC move.w #200,d0 trap #2 IFD NOBASER move.w __AESintout,d0 ELSE move.w __AESintout(a4),d0 ENDC IFND SHORTINT ext.l d0 ENDC movem.l (a7)+,d2/a2 rts END ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_cxrte.c,v 1.2 1993/04/12 16:43:20 AGK Exp $ * * Run time error handler (GEM AES version) * * (c) Copyright 1993 HiSoft **/ #include #include #include void __regargs (_CXRTE)(const char *s) { extern int __mint; static char rte[45]; char *p; memcpy(&rte[0], "[3][", strlen("[3][")); p = &rte[strlen("[3][")]; while (*p++ = *s++) ; memcpy(&p[-1], "][ Abort ]", strlen("][ Abort ]")); if (_AESglobal[0] >= 0x400 && __mint >= 98) Salert(rte); else { appl_init(); form_alert(1, rte); appl_exit(); } if (__mint) Pkill(Pgetpid(), 6); Pterm(-39); } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_aespb.c,v 1.2 1993/04/01 15:28:06 AGK Exp $ * * AES parameter block * * (c) Copyright 1989, 1993 HiSoft **/ #include void *_AESpb[6] = { _AEScontrol, _AESglobal, _AESintin, _AESintout, _AESaddrin, _AESaddrout }; ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_aesinto.c,v 1.2 1993/04/01 15:28:06 AGK Exp $ * * AES integer output array * * (c) Copyright 1989, 1993 HiSoft **/ #include short _AESintout[7]; ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_aesinti.c,v 1.2 1993/04/01 15:28:06 AGK Exp $ * * AES integer input array * * (c) Copyright 1989, 1993 HiSoft **/ #include short _AESintin[16]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_aesglob.c,v 1.2 1993/04/01 15:28:06 AGK Exp $ * * AES global array * * (c) Copyright 1989, 1993 HiSoft **/ #include short _AESglobal[15]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_aescont.c,v 1.2 1993/04/01 15:28:06 AGK Exp $ * * AES control array * * (c) Copyright 1989, 1993 HiSoft **/ #include short _AEScontrol[5]; ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_aesadri.c,v 1.2 1993/04/01 15:28:06 AGK Exp $ * * AES address input array * * (c) Copyright 1989, 1993 HiSoft **/ #include void *_AESaddrin[3]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/gem/aes/util\_aesaddr.c,v 1.2 1993/04/01 15:28:06 AGK Exp $ * * AES address output array * * (c) Copyright 1989, 1993 HiSoft **/ #include void *_AESaddrout[1]; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö. Š–Ėv.. ¦–Ė\_CXSTUB C ­Xiw_CXOVF C ­XixGEMDOS I ¦Qiy SYSVAR I -Qi|“SYSERR C ,Qi~wOSERR C ,Qi€X _STACK C Qiƒ+_IOB C õPi„"BASEPAGEI "Oi…ĘC S Oi†U<_SETARGVC Oi– _MAIN C Oiš:_CXRTE C õNi¦ASSERT C ŲNiž/** * $Header: e:/src/lib/internal\_cxstub.c,v 1.1 1993/11/05 11:12:40 AGK Exp $ * * Routine called for undefined functions * * (c) Copyright 1992, 1993 HiSoft **/ #include <__lib/cx.h> void __stdargs _CXSTUB(void) { _CXRTE("Undefined function call"); } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/lib/internal\_cxovf.c,v 1.4 1993/11/05 11:12:10 AGK Exp $ * * Function called when stack is exhausted * * (c) Copyright 1992, 1993 HiSoft **/ #include <__lib/cx.h> void __stdargs _CXOVF(void) { _CXRTE("Stack space exhausted"); } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö** ** $Header: e:/src/i\gemdos.i,v 1.1 1993/11/09 10:13:02 AGK Exp $ ** ** GEMDOS magic numbers ** ** (c) Copyright 1989, 1992, 1993 HiSoft ** IFND __GEMDOS_I __GEMDOS_I EQU 1 p_term0 equ $00 c_conin equ $01 c_conout equ $02 c_auxin equ $03 c_auxout equ $04 c_prnout equ $05 c_rawio equ $06 c_rawcin equ $07 c_necin equ $08 c_conws equ $09 c_conrs equ $0a c_conis equ $0b d_setdrv equ $0e c_conos equ $10 c_prnos equ $11 c_auxis equ $12 c_auxos equ $13 d_getdrv equ $19 f_setdta equ $1a super equ $20 t_getdate equ $2a t_setdate equ $2b t_gettime equ $2c t_settime equ $2d f_getdta equ $2f s_version equ $30 p_termres equ $31 d_free equ $36 d_create equ $39 d_delete equ $3a d_setpath equ $3b f_create equ $3c f_open equ $3d f_close equ $3e f_read equ $3f f_write equ $40 f_delete equ $41 f_seek equ $42 f_attrib equ $43 m_xalloc equ $44 f_dup equ $45 f_force equ $46 d_getpath equ $47 m_alloc equ $48 m_free equ $49 m_shrink equ $4a p_exec equ $4b p_term equ $4c f_sfirst equ $4e f_snext equ $4f f_rename equ $56 f_datime equ $57 f_lock equ $5c ; MiNT kernel calls s_yield equ $ff f_pipe equ $100 f_cntl equ $104 f_instat equ $105 f_outstat equ $106 f_getchar equ $107 f_putchar equ $108 p_wait equ $109 p_nice equ $10a p_getpid equ $10b p_getppid equ $10c p_getpgrp equ $10d p_setpgrp equ $10e p_getuid equ $10f p_setuid equ $110 p_kill equ $111 p_signal equ $112 p_vfork equ $113 p_getgid equ $114 p_setgid equ $115 p_sigblock equ $116 p_sigsetmask equ $117 p_usrval equ $118 p_domain equ $119 p_sigreturn equ $11a p_fork equ $11b p_wait3 equ $11c f_select equ $11d p_rusage equ $11e p_setlimit equ $11f t_alarm equ $120 p_ause equ $121 s_ysconf equ $122 p_sigpending equ $123 d_pathconf equ $124 p_msg equ $125 f_midipipe equ $126 p_renice equ $127 d_opendir equ $128 d_readdir equ $129 d_rewinddir equ $12a d_closedir equ $12b f_xattr equ $12c f_link equ $12d f_symlink equ $12e f_readlink equ $12f d_cntl equ $130 f_chown equ $131 f_chmod equ $132 p_umask equ $133 p_semaphore equ $134 d_lock equ $135 p_sigpause equ $136 p_sigaction equ $137 p_geteuid equ $138 p_getegid equ $139 p_waitpid equ $13a d_getcwd equ $13b s_alert equ $13c EINVFN equ -32 EFILNF equ -33 EPTHNF equ -34 ENHNDL equ -35 EACCDN equ -36 EIHNDL equ -37 ENSMEM equ -39 EIMBA equ -40 EDRIVE equ -46 ENSNAME equ -48 ENMFIL equ -49 ERANGE equ -64 EINTRN equ -65 EPLFMT equ -66 EGSBF equ -67 ENDC ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö** ** sysvar.i - Atari ST system variables ** ** $Log: sysvar.i,v $ ** Revision 1.2 1991/08/05 10:23:32 AGK ** Updated for new TT/STE system variables. ** ** Revision 1.1 1991/08/05 10:21:26 AGK ** Initial revision ** ** Copyright (c) 1989 HiSoft ** offset $400 etv_timer ds.l 1 $400 etv_critic ds.l 1 $404 etv_term ds.l 1 $408 etv_xtra ds.l 5 $40c memvalid ds.l 1 $420 memcntlr ds.b 1 $424 ds.b 1 resvalid ds.l 1 $426 resvector ds.l 1 $42a phystop ds.l 1 $42e _membot ds.l 1 $432 _memtop ds.l 1 $436 memval2 ds.l 1 $43a flock ds.w 1 $43e seekrate ds.w 1 $440 _timr_ms ds.w 1 $442 _fverify ds.w 1 $444 _bootdev ds.w 1 $446 palmode ds.w 1 $448 defshiftmd ds.b 1 $44a ds.b 1 sshiftmd ds.w 1 $44c _v_bas_ad ds.l 1 $44e vblsem ds.w 1 $452 nvbls ds.w 1 $454 _vblqueue ds.l 1 $456 colorptr ds.l 1 $45a screenpt ds.l 1 $45e _vbclock ds.l 1 $462 _frclock ds.l 1 $466 hdv_init ds.l 1 $46a swv_vec ds.l 1 $46e hdv_bpb ds.l 1 $472 hdv_rw ds.l 1 $476 hdv_boot ds.l 1 $47a hdv_mediach ds.l 1 $47e _cmdload ds.w 1 $482 conterm ds.b 1 $484 ds.b 1 trp14ret ds.l 1 $486 criticret ds.l 1 $48a themd ds.l 4 $48e _md ds.l 1 $49e savptr ds.l 1 $4a2 _nflops ds.w 1 $4a6 con_state ds.l 1 $4a8 save_row ds.w 1 $4ac sav_context ds.l 1 $4ae _bufl ds.l 2 $4b2 _hz_200 ds.l 1 $4ba the_env ds.b 4 $4be _drvbits ds.l 1 $4c2 _dskbufp ds.l 1 $4c6 _autopath ds.l 1 $4ca _vbl_list ds.l 8 $4ce _prt_cnt ds.w 1 $4ee _prtabt ds.w 1 $4f0 _sysbase ds.l 1 $4f2 _shell_p ds.l 1 $4f6 end_os ds.l 1 $4fa exec_os ds.l 1 $4fe scr_dump ds.l 1 $502 prv_lsto ds.l 1 $506 prv_lst ds.l 1 $50a prv_auxo ds.l 1 $50e prv_aux ds.l 1 $512 pun_ptr ds.l 1 $516 memval3 ds.l 1 $51a xconstat ds.l 8 $51e xconin ds.l 8 $53e xcostat ds.l 8 $55e xconout ds.l 8 $57e _longframe ds.w 1 $59e _p_cookies ds.l 1 $5a0 fmemtop ds.l 1 $5a4 fmemvalid ds.l 1 $5a8 bell_hook ds.l 1 $5ac kcl_hook ds.l 1 $5b0 öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * syserr.c - define errno error text * * $Log: syserr.c,v $ * Revision 1.2 1991/12/10 16:23:18 AGK * Added MetaDOS(tm) and Network GEMDOS error codes * * Revision 1.1 1991/06/17 12:48:08 AGK * Initial revision * * Copyright (c) 1991 HiSoft */ #include const char *sys_errlist[] = { "Unknown error code", /* EPERM 1 */ "User is not owner", /* ENOENT 2 */ "No such file or directory", /* ESRCH 3 */ "No such process", /* EINTR 4 */ "Interrupted system call", /* EIO 5 */ "I/O error", /* ENXIO 6 */ "No such device or address", /* E2BIG 7 */ "Arg list is too long", /* ENOEXEC 8 */ "Exec format error", /* EBADF 9 */ "Bad file number", /* ECHILD 10 */ "No child process", /* EAGAIN 11 */ "No more processes allowed", /* ENOMEM 12 */ "No memory available", /* EACCES 13 */ "Access denied", /* EFAULT 14 */ "Bad address", /* ENOTBLK 15 */ "Bulk device required", /* EBUSY 16 */ "Resource is busy", /* EEXIST 17 */ "File already exists", /* EXDEV 18 */ "Cross-device link", /* ENODEV 19 */ "No such device", /* ENOTDIR 20 */ "Not a directory", /* EISDIR 21 */ "Is a directory", /* EINVAL 22 */ "Invalid argument", /* ENFILE 23 */ "No more files (units) allowed", /* EMFILE 24 */ "No more files (units) allowed for this process", /* ENOTTY 25 */ "Not a terminal", /* ETXTBSY 26 */ "Text file is busy", /* EFBIG 27 */ "File is too large", /* ENOSPC 28 */ "No space left", /* ESPIPE 29 */ "Seek issued to pipe", /* EROFS 30 */ "Read-only file system", /* EMLINK 31 */ "Too many links", /* EPIPE 32 */ "Broken pipe", /* EDOM 33 */ "Math function argument error", /* ERANGE 34 */ "Math function result is out of range", /* EDEADLK 35 */ "Record locking deadlock", }; /* Highest valid error number */ int sys_nerr = sizeof(sys_errlist)/sizeof(sys_errlist[0]); ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * oserr.c - define _OSERR error text * * $Log: oserr.c,v $ * Revision 1.3 1991/12/10 16:23:18 AGK * Added MetaDOS(tm) and Network GEMDOS error codes * * Revision 1.2 1991/11/23 15:52:56 AGK * Added network GEMDOS error codes * * Revision 1.1 1991/06/17 12:48:08 AGK * Initial revision * * Copyright (c) 1991 HiSoft */ const char *os_errlist[] = { "Unknown error code", /* 01 */ "General failure", /* 02 */ "Drive not ready", /* 03 */ "Unknown command", /* 04 */ "Data error", /* 05 */ "Bad request structure length", /* 06 */ "Seek error", /* 07 */ "Unknown media type", /* 08 */ "Sector not found", /* 09 */ "Printer paper alarm", /* 10 */ "Write fault", /* 11 */ "Read fault", /* 12 */ "Error 12", /* 13 */ "Can't write on protected device", /* 14 */ "Invalid disk change", /* 15 */ "Unknown unit", /* 16 */ "Bad sectors on format", /* 17 */ "Insert other disk", /* 18 */ "Insert disc", /* 19 */ "Device not responding", /* 20 */ "Hardware error", /* 21 */ "Error 21", /* 22 */ "Error 22", /* 23 */ "Error 23", /* 24 */ "Error 24", /* 25 */ "Error 25", /* 26 */ "Error 26", /* 27 */ "Error 27", /* 28 */ "Error 28", /* 29 */ "Error 29", /* 30 */ "Error 30", /* 31 */ "Error 31", /* 32 */ "Invalid function number", /* 33 */ "File not found", /* 34 */ "Path not found", /* 35 */ "Too many files opened", /* 36 */ "Access denied", /* 37 */ "Invalid handle", /* 38 */ "Error 38", /* 39 */ "Insufficient memory", /* 40 */ "Invalid memory block address", /* 41 */ "Error 41", /* 42 */ "Error 42", /* 43 */ "Error 43", /* 44 */ "Error 44", /* 45 */ "Error 45", /* 46 */ "Invalid drive code", /* 47 */ "Error 47", /* 48 */ "Not same device", /* 49 */ "No more files", /* 50 */ "Error 50", /* 51 */ "Error 51", /* 52 */ "Error 52", /* 53 */ "Error 53", /* 54 */ "Error 54", /* 55 */ "Error 55", /* 56 */ "Error 56", /* 57 */ "Error 57", /* 58 */ "Record is locked", /* 59 */ "Matching lock not found", /* 60 */ "Error 60", /* 61 */ "Error 61", /* 62 */ "Error 62", /* 63 */ "Error 63", /* 64 */ "Range error", /* 65 */ "GEMDOS internal error", /* 66 */ "Invalid program load format", /* 67 */ "Memory growth failure", }; /* Highest valid error number */ int os_nerr = sizeof(os_errlist)/sizeof(os_errlist[0]); öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * _stack.c - set stack size for program * * Started 15/9/89 Alex G. Kiernan * * $Log: _stack.c,v $ * Revision 1.1 1991/06/17 12:48:08 AGK * Initial revision * * Copyright (c) 1989 HiSoft */ #include unsigned long int _STACK = 4096; /* 4K default size */ ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * _iob.c - define standard I/O control control blocks * * $Log: _iob.c,v $ * Revision 1.1 1991/06/16 09:41:02 AGK * Initial revision * * Copyright (c) 1991 HiSoft */ #include struct _iobuf _iob[5] = { {&_iob[1]}, {&_iob[2]}, {&_iob[3]}, {&_iob[4]} }; öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö** ** $Header: e:/src/i\basepage.i,v 1.1 1993/11/09 09:56:48 AGK Exp $ ** ** Format of GEMDOS basepage ** ** (c) Copyright 1992 HiSoft ** IFND __BASEPAGE_I __BASEPAGE_I EQU 1 OFFSET 0 p_lowtpa DS.L 1 p_hitpa DS.L 1 p_tbase DS.L 1 p_tlen DS.L 1 p_dbase DS.L 1 p_dlen DS.L 1 p_bbase DS.L 1 p_blen DS.L 1 p_dta DS.L 1 p_parent DS.L 1 p_reserved DS.L 1 p_env DS.L 1 DS.L 20 p_cmdlin DS.B 128 p_sizeof DS.B 0 ENDC öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö** ** c.s - Lattice C 5 startup routine ** ** Started 19/8/89 Alex G. Kiernan ** ** $Log: c.s,v $ ** Revision 1.9 1993/11/05 11:05:34 AGK ** Auto init & FPU changes ** ** Revision 1.8 1992/06/11 17:42:58 AGK ** Removed various NOBASERs ** ** Revision 1.7 1992/01/08 10:16:58 AGK ** Merged stack checking code into startup ** ** Revision 1.6 1991/11/25 17:24:18 AGK ** Removed __AESpb initialisation; we perform this via relocation now ** ** Revision 1.5 1991/11/25 13:57:54 AGK ** Removed redundant __VDIinit() call ** ** Revision 1.4 1991/11/19 14:50:00 AGK ** Moved _LinkerDB load position for Desk Accessories ** ** Revision 1.3 1991/11/11 14:33:12 AGK ** Upgraded DA startup to use default common block stack unless overridden by ** user-definition ** ** Revision 1.2 1991/10/27 17:03:04 AGK ** Replaced NOALVS symbol with NOPCREL symbol ** ** Revision 1.1 1991/06/17 17:49:00 AGK ** Initial revision ** ** Copyright (c) 1990 HiSoft ** IFND AUTO AUTO equ 0 Auto-detect program type ENDC IFND CPX CPX equ 0 CPX-style startup ENDC IFND DA DA EQU 0 Desk Accessory ENDC IFND GST GST equ 0 GST Format mods ENDC IFND NOPCREL NOPCREL equ 0 Use no external PC-relative code ENDC IFND NOBASER NOBASER equ 0 Use no base-relative code ENDC IFND REGARGS REGARGS equ 0 Use register calling conventions ENDC IFND RESIDENT RESIDENT equ 0 Allow program to be resident ENDC IFND SHORTINT SHORTINT equ 0 Use default short integers ENDC include basepage.i include gemdos.i include sysvar.i xdef ___start xref __STACK,__STKDELTA,__BLKSIZ xref @_setargv,__MSTEP,__MemHeap xref __CXSTI,__CXSTD,__FPCinit xref __ENEED,__MNEED IFNE RESIDENT xref __DATALEN,__BSSLEN,__DATABAS,__RESBASE ENDC IFNE DA comm __STACK_HEAP,4096 ENDC IFEQ CPX xdef __pbase,__PBASE,__base ENDC xdef __tos,__clkstart xdef __oserr,__OSERR,__country xdef __saveD2A2,__savePC xdef __msiz,__mblk,__maxblk IFNE AUTO xdef __XMODE xref __AESpb,__AESintout IFNE REGARGS xref @appl_exit ELSE xref _appl_exit ENDC ENDC xdef _environ IFEQ DA!CPX xdef __ENVC,__onbrk IFNE REGARGS xref @_main ELSE xref __main ENDC ELSE IFNE DA xref __DAHeap IFNE REGARGS xref @main ELSE xref _main ENDC ELSE xref _cpx_init ENDC ENDC IFNE REGARGS xdef @_XCEXIT ELSE xdef __XCEXIT ENDC CSECT text,0 IFNE GST xdef __LinkerDB ELSE xref __LinkerDB ENDC ___start IFNE AUTO moveq #2,d4 move.l a0,a2 move.l a0,d0 bne.s isada ENDC IFEQ CPX IFNE DA lea __LinkerDB,a4 move.l #__STACK_HEAP,a7 IFNE NOBASER add.l __STACK,a7 ELSE add.l __STACK(a4),a7 ENDC move.l a0,a2 ELSE move.l 4(a7),a2 get program base page ENDC ENDC IFNE RESIDENT we're resident so we've some work to do ; moveq #4,d4 assume we are resident move.l a2,a1 lea $100(a1),a1 lea __DATABAS,a0 lea ___start(pc),a3 cmp.l a3,a1 bne.s gotram ; moveq #0,d4 until we know we're not resident add.l p_tlen(a2),a1 add size of text add.l p_dlen(a2),a1 add size of data gotram move.l a1,a3 move.l #__DATALEN,d0 copy the static data bra.s dfirst dloop move.l (a0)+,(a1)+ dfirst dbf d0,dloop zerbss move.l #__BSSLEN,d0 zero the bss moveq #0,d1 bra.s bfirst bloop move.l d1,(a1)+ bfirst dbf d0,bloop move.l (a0)+,d0 fetch the relocation word bmi.s allind move.l a3,d3 add.l d0,a3 moveq #127,d2 and step through a GEMDOS relocation table add.w d2,d2 addnxt add.l d3,(a3) relocate a longword nextb move.b (a0)+,d1 get relocation offset beq.s allind cmp.b #1,d1 check for jumps bne.s isnorm add.w d2,a3 bra.s nextb isnorm add.w d1,a3 bra.s addnxt allind move.l d3,a4 add.l #__RESBASE,a4 move.l a1,a3 ELSE IFEQ DA IFNE CPX move.l a4,-(a7) ENDC lea __LinkerDB,a4 ENDC IFNE AUTO moveq #0,d4 bra.s notada isada lea __LinkerDB,a4 move.l #isada2,a7 IFEQ CPX CPXs don't know where their stacks are ; set base of stack for auto-detector so we overwrite the startup code IFNE NOBASER move.l #___start,__base ELSE move.l #___start,__base(a4) ENDC ENDC notada ENDC IFNE DA IFNE NOBASER move.l #__STACK_HEAP,__base ELSE move.l #__STACK_HEAP,__base(a4) ENDC ENDC ENDC IFEQ CPX IFNE NOBASER move.l a2,__PBASE put it somewhere so user can get to it ELSE move.l a2,__PBASE(a4) ENDC ENDC IFNE CPX move.l a2,-(a7) ENDC pea superstart(pc) move.w #$26,-(a7) trap #14 addq.w #6,a7 IFNE CPX move.l (a7)+,a2 ENDC IFEQ DA!CPX IFNE AUTO cmp.b #2,d4 beq isada2 ENDC IFEQ RESIDENT move.l p_bbase(a2),a1 fetch bss base add.l p_blen(a2),a1 add size of bss ELSE move.l a3,a1 ENDC IFNE NOBASER move.l a1,_environ give user environ variable ELSE move.l a1,_environ(a4) ENDC lea.l p_cmdlin(a2),a0 cmp.b #$7f,(a0) Atari extended command line flag seq d7 move.l p_env(a2),a5 tst.b (a5) ;;;;; bne.s chk_env ;;;;; tst.b 1(a5) beq envread addq.w #1,a5 chk_env tst.b (a5) beq envread move.l a5,(a1)+ IFNE SHORTINT IFNE NOBASER addq.w #1,__ENVC ELSE addq.w #1,__ENVC(a4) ENDC ELSE IFNE NOBASER addq.l #1,__ENVC ELSE addq.l #1,__ENVC(a4) ENDC ENDC ; tst.b d7 ; beq nt_argv cmp.b #'A',(a5) try for a match with ARGV= bne.s nt_argv move.l a5,a3 addq.w #1,a5 cmp.b #'R',(a5)+ bne nt_pbp cmp.b #'G',(a5)+ bne nt_pbp cmp.b #'V',(a5)+ bne nt_pbp cmp.b #'=',(a5)+ bne nt_pbp moveq #0,d0 move.b d0,(a3) tie off old argv move.l d0,-4(a1) tst.b d7 beq envread jsr fixenv(pc) move.l a1,a3 ; lea 1(a0),a6 ; bsr chkstk move.l a1,d0 addq.w #8,d0 skp_arg tst.b (a5)+ bne.s skp_arg move.l a5,(a1)+ cmp.l a1,d0 first time through ? bne.s nfst move.l a5,a6 bsr chkstk move.l a6,a5 move.l a5,-4(a1) nfst tst.b (a5) bne.s skp_arg clr.l -4(a1) NULL terminate argv[] like UN*X bra go_main nt_argv cmp.b #'_',(a5)+ try for a match with _PBP= bne.s nt_pbp This isn't Atari supported either cmp.b #'P',(a5)+ but is used by Craft bne.s nt_pbp cmp.b #'B',(a5)+ bne.s nt_pbp cmp.b #'P',(a5)+ bne.s nt_pbp cmp.b #'=',(a5)+ bne.s nt_pbp subq.w #4,a1 tst.b d7 bne.s nt_pbp moveq.l #0,d1 _PBP found now check it moveq.l #0,d0 get_pbp move.b (a5)+,d0 beq.s got_pbp lsl.l #4,d1 cmp.b #'0',d0 bcs.s nt_pbp cmp.b #'9',d0 bcc.s try_af and.b #$f,d0 add.l d0,d1 bra.s get_pbp try_af cmp.b #'A',d0 bcs.s nt_pbp cmp.b #'z',d0 bcc.s nt_pbp cmp.b #'F',d0 bls.s is_af cmp.b #'a',d0 bcs.s nt_pbp is_af and.b #$f,d0 add.b #9,d0 add.l d0,d1 bra.s get_pbp got_pbp cmp.l p_parent(a2),d1 seq d7 bra chk_env nt_pbp tst.b (a5)+ bne.s nt_pbp beq chk_env envread clr.l (a1)+ jsr fixenv(pc) move.l a1,a3 no ARGV= found so do it the old way lea p_cmdlin(a2),a0 moveq #0,d0 move.b (a0)+,d0 cmp.b #125,d0 Pexec always copies 125 chars bhi.s no_null clr.b 0(a0,d0.w) if < 125 we must null term no_null move.l a0,a6 bsr chkstk IFNE NOPCREL jsr @_setargv ELSE jsr @_setargv(pc) ENDC move.l d0,a1 go_main move.l a1,d2 save a1 for argc calculation moveq #16,d0 IFNE NOBASER cmp.w #$104,__tos tos 1.4 or greater ? ELSE cmp.w #$104,__tos(a4) tos 1.4 or greater ? ENDC bcs.s ot2 moveq #64,d0 ot2 IFNE NOBASER IFNE SHORTINT move.w d0,__maxblk ELSE move.l d0,__maxblk ENDC ELSE IFNE SHORTINT move.w d0,__maxblk(a4) ELSE move.l d0,__maxblk(a4) ENDC ENDC IFNE NOBASER move.l a1,__mblk ELSE move.l a1,__mblk(a4) ENDC move.l d0,d1 bra.s fst cmb clr.l (a1)+ fst dbf d1,cmb IFNE NOBASER move.l a1,__msiz ELSE move.l a1,__msiz(a4) ENDC bra.s fmst cms clr.l (a1)+ fmst dbf d0,cms IFNE NOBASER move.l __MNEED,d0 find initial heap size ELSE move.l __MNEED(a4),d0 find initial heap size ENDC cmp.l #512,d0 minimum size ble.s nomneed addq.l #3,d0 and.w #~3,d0 cmp.l #$1fffc,d0 bge.s nomneed IFNE NOBASER move.l a1,__MemHeap setup heap pointer ELSE move.l a1,__MemHeap(a4) setup heap pointer ENDC clr.l (a1)+ no next block move.l d0,(a1)+ length available subq.l #4,d0 move.l d0,(a1)+ length free addq.w #4,a1 move.l a1,-4(a1) rover move.w #$8000,(a1)+ clr.l (a1)+ move.l d0,d1 lsr.l #2,d0 bset #15,d0 move.w d0,(a1) add.l d1,a1 nomneed IFNE NOBASER add.l __STKDELTA,a1 add on chicken factor ELSE add.l __STKDELTA(a4),a1 add on chicken factor ENDC IFNE NOBASER move.l a1,__base set up stack base ELSE move.l a1,__base(a4) set up stack base ENDC IFNE NOBASER add.l __STACK,a1 ELSE add.l __STACK(a4),a1 ENDC move.l a1,d1 longword align stack for performance on TT addq.l #3,d1 and.w #~3,d1 move.l d1,a1 cmp.l a1,a7 compare new stack with current stack bcc.s stk_ok move.w #-39,-(a7) and abort if invalid bra done stk_ok IFNE NOBASER tst.l __MSTEP automatic _mstep sizing ? ELSE tst.l __MSTEP(a4) ENDC bne.s no_amst move.l a7,d1 work out how much we are returning sub.l a1,d1 lsr.l #4,d1 set to 1/16 of returned size IFNE NOBASER cmp.w #$104,__tos tos 1.4 or greater ? ELSE cmp.w #$104,__tos(a4) tos 1.4 or greater ? ENDC bcs.s old_tos lsr.l #2,d1 use 1/64 for new tos, be less greedy old_tos addq.l #2,d1 round up (not allowing a zero value) bclr #0,d1 and word align IFNE NOBASER move.l d1,__MSTEP ELSE move.l d1,__MSTEP(a4) ENDC IFNE NOBASER move.l __BLKSIZ,d0 Resize __BLKSIZ for minimal pool spillage ELSE move.l __BLKSIZ(a4),d0 ENDC divu d0,d1 move.w d1,d0 clr.w d1 swap d1 addq.w #1,d0 IFNE NOBASER move.l __BLKSIZ,d3 ELSE move.l __BLKSIZ(a4),d3 ENDC sub.l d1,d3 divu d0,d3 swap d3 clr.w d3 swap d3 not.l d3 sub.l #27,d3 and.w #$fffc,d3 IFNE NOBASER add.l d3,__BLKSIZ ELSE add.l d3,__BLKSIZ(a4) ENDC no_amst move.l a1,a7 sub.l a3,d2 move.l a3,-(a7) char *argv[] IFNE SHORTINT lsr.w #2,d2 divide by pointer size subq.w #1,d2 subtract one to correct for NULL we added move.w d2,-(a7) int argc ELSE lsr.l #2,d2 divide by pointer size subq.l #1,d2 subtract one to correct for NULL we added move.l d2,-(a7) int argc ENDC sub.l a2,a1 calculate length we need add.l #$100,a1 add in base page move.l a1,-(a7) move.l a2,-(a7) move.w #0,-(a7) move.w #m_shrink,-(a7) release memory back to GEM trap #1 lea 12(a7),a7 ENDC IFNE AUTO or.w #3,d4 assume auto-folder TOS prog moveq #0,D0 IFNE NOBASER lea __AESpb,a0 ELSE lea __AESpb(a4),a0 ENDC move.l (a0),a1 move.l #$0a000100,d0 movep.l d0,1(a1) move.l a0,d1 move.w #200,d0 trap #2 cmp.w #200,d0 beq.s isada2 IFNE NOBASER lea __AESintout,a0 ELSE lea __AESintout(a4),a0 ENDC move.w (a0),d0 bmi.s aeserr IFNE REGARGS IFNE NOPCREL jsr @appl_exit ELSE jsr @appl_exit(pc) ENDC ELSE IFNE NOPCREL jsr _appl_exit ELSE jsr _appl_exit(pc) ENDC ENDC aeserr bclr #1,d4 mark as a regular prog dc.w $a000 tst.w -598(a0) bne.s isada2 bclr #0,d4 mark as a TOS prog isada2 IFNE SHORTINT IFNE NOBASER move.w d4,__XMODE ELSE move.w d4,__XMODE(a4) ENDC ELSE IFNE NOBASER move.l d4,__XMODE ELSE move.l d4,__XMODE(a4) ENDC ENDC ENDC IFNE NOPCREL jsr __CXSTI ; call global constructors jsr __FPCinit IFNE DA!CPX IFNE CPX move.l (a7)+,a4 jmp _cpx_init ELSE IFNE REGARGS jsr @main ELSE jsr _main ENDC ENDC ELSE IFNE REGARGS IFNE SHORTINT move.w (a7)+,d0 ELSE move.l (a7)+,d0 ENDC move.l (a7)+,a0 jsr @_main off to main program ELSE jsr __main off to main program ENDC ENDC ELSE jsr __CXSTI(pc) ; call global constructors jsr __FPCinit(pc) IFNE DA!CPX IFNE CPX move.l (a7)+,a4 bra.w _cpx_init ELSE IFNE REGARGS jsr @main(pc) ELSE jsr _main(pc) ENDC ENDC ELSE IFNE REGARGS IFNE SHORTINT move.w (a7)+,d0 ELSE move.l (a7)+,d0 ENDC move.l (a7)+,a0 jsr @_main(pc) ELSE jsr __main(pc) ENDC ENDC ENDC IFNE DA!CPX IFNE REGARGS @exit @_exit @_XCEXIT ELSE _exit __exit __XCEXIT ENDC illegal ELSE move.w d0,(a7) bra.s term IFNE REGARGS @_XCEXIT move.w d0,(a7) ELSE __XCEXIT IFNE SHORTINT addq.w #4,a7 move return code to top of stack ELSE addq.w #6,a7 ENDC ENDC term IFNE NOPCREL jsr __CXSTD ; call global destructors ELSE jsr __CXSTD(pc) ; call global destructors ENDC IFNE NOBASER move.l __onbrk,d0 ELSE move.l __onbrk(a4),d0 ENDC beq.s done move.l d0,-(a7) move.w #$102,-(a7) move.w #5,-(a7) trap #13 addq.w #8,a7 done move.w #p_term,-(a7) trap #1 illegal chkstk cmp.b #'=',(a6) stack size specification ? bne.s skp_stk addq.w #1,a6 moveq #0,d1 digit moveq #0,d2 move.b (a6)+,d2 sub.w #$30,d2 blt.s donestk cmp.w #9,d2 bgt.s donestk add.l d1,d1 move.l d1,d3 add.l d1,d1 add.l d1,d1 add.l d3,d1 add.l d2,d1 bra.s digit donestk move.b -1(a6),d2 beq.s gstk2 sub.b #' ',d2 beq.s got_stk sub.b #'K'-' ',d2 beq.s times10 sub.b #'k'-'K',d2 bne.s skp_stk times10 moveq #10,d3 lsl.l d3,d1 got_stk addq.w #1,a6 gstk2 tst.l d1 beq.s skp_stk IFNE NOBASER move.l d1,__STACK ELSE move.l d1,__STACK(a4) ENDC move.l a6,a0 skp_stk rts fixenv IFNE SHORTINT moveq #0,d0 IFNE NOBASER move.w __ENVC,d0 ELSE move.w __ENVC(a4),d0 ENDC moveq #0,d1 IFNE NOBASER move.w __ENEED,d1 ELSE move.w __ENEED(a4),d1 ENDC ELSE IFNE NOBASER move.l __ENVC,d0 ELSE move.l __ENVC(a4),d0 ENDC IFNE NOBASER move.l __ENEED,d1 ELSE move.l __ENEED(a4),d1 ENDC ENDC cmp.l d0,d1 bcs.s noteneed move.l d1,d0 noteneed add.l d0,d0 add.l d0,d0 add.l d0,a1 rts ENDC superstart IFNE NOBASER move.l (_hz_200).w,__clkstart start time for clock() ELSE move.l (_hz_200).w,__clkstart(a4) ENDC move.l (_sysbase).w,a0 get _sysbase move.l 8(a0),a0 get os_beg IFNE NOBASER move.w 2(a0),__tos fetch TOS version number ELSE move.w 2(a0),__tos(a4) fetch TOS version number ENDC move.w $1c(a0),d1 lsr.w #1,d1 IFNE NOBASER IFNE SHORTINT move.w d1,__country ELSE move.w d1,__country+2 ENDC ELSE IFNE SHORTINT move.w d1,__country(a4) ELSE move.w d1,__country+2(a4) ENDC ENDC IFEQ DA!CPX clr.l ($380).w so we can spot exceptions ENDC rts IFNE NOBASER CSECT bss,2 ELSE CSECT __MERGED,2 ENDC IFNE GST __LinkerDB ENDC _environ ds.l 1 IFEQ DA!CPX __onbrk ds.l 1 ENDC IFEQ CPX __pbase __PBASE ds.l 1 ENDC __savePC ds.l 1 __saveD2A2 ds.l 2 IFEQ CPX __base ds.l 1 ENDC __clkstart ds.l 1 __msiz ds.l 1 __mblk ds.l 1 IFNE AUTO __XMODE IFNE SHORTINT ds.w 1 ELSE ds.l 1 ENDC ENDC IFNE SHORTINT __maxblk ds.w 1 IFEQ DA!CPX __ENVC ds.w 1 ENDC ELSE __maxblk ds.l 1 IFEQ DA!CPX __ENVC ds.l 1 ENDC ENDC __OSERR __oserr ds.l 1 __tos ds.w 1 __country ds.l 1 END ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * _setargv.c - argument set up for Lattice C 5 programs run from desktop * * _setargv is called by the initial startup routine, when an ARGV * environment variable could not be located. It is up to this routine * to parse the command line, building the argv[] vector, and doing any * other environmental setup the user requires when a shell is not present. * * This module must be compiled without stack checking, this is because * _setargv is called prior to the stack base variable being * initialised, or memory being sized. Similarly it may not call any * subroutines which contravene these limitations. The subroutine itself * must use registerised parameter passing, otherwise the startup stub will * break. * * Started 20/8/89 Alex G. Kiernan * * 22/8/89 - Changed to register convention, fixed up exact types of parms * 28/8/89 - Added stderr, stdaux and stdprt support * * $Log: _setargv.c,v $ * Revision 1.4 1992/01/16 12:57:02 AGK * Killed of C/V warning * * Revision 1.3 1991/10/13 12:39:18 AGK * Corrected warnings. * * Revision 1.2 1991/10/13 12:10:52 AGK * Added closure of redirection files. This seems to be necessary on later * versions of the OS. TOS 1.0 gives EINTRN however... * * Revision 1.1 1991/06/17 17:49:00 AGK * Initial revision * * Copyright (c) 1989 HiSoft */ #include #include void __regargs __redirect(const char *infile,const char *outfile,short *old) { /* perform input redirection */ if (infile) { long fh; if ((fh=Fopen(infile,0))>=0) { if (old) old[0]=Fdup(0); Fforce(0,fh); Fclose(fh); } } /* perform output redirection */ if (outfile) { long fh; int append; if (*outfile=='>') { append=1; if (outfile[1]=='&') /* redirect stderr as well */ { fh=Fopen(outfile+2,2); outfile=NULL; /* flag to do stderr as well */ } else fh=Fopen(outfile+1,1); } else { append=0; if (*outfile=='&') /* redirect stderr as well */ { fh=Fcreate(outfile+1,0); outfile=NULL; /* flag to do stderr as well */ } else fh=Fcreate(outfile,0); } if (fh>=0) { if (append) Fseek(0,fh,2); if (old) old[1]=Fdup(1); Fforce(1,fh); if (!outfile) /* redirect stderr as well */ { if (old) old[2]=Fdup(2); Fforce(2,fh); } Fclose(fh); } } } __regargs char **_setargv(char *line, char **argv) { char *infile=NULL, *outfile=NULL; *argv++ = (char *)""; /* ANSI requirement when program name unavailable */ for (;;) { register char c; while (*line==' '||*line=='\t') line++; if (!*line) break; switch(c=*line) { case '<': infile=++line; c='\0'; break; case '>': outfile=++line; c='\0'; break; case '\'': case '"': *argv++=++line; break; default: *argv++=line; c='\0'; break; } while (*line && (c?*line!=c:(*line!=' '&&*line!='\t'))) line++; if (!*line) break; *line++='\0'; } if (_disatty(2)) Fforce(2,-1); /* point stderr to console */ __redirect(infile,outfile,NULL); *argv++=NULL; /* UNIX requirement */ return argv; /* return first free byte after argv[] */ } ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/* * _main.c - start program running under Lattice C 5 ST * * Started 28/8/89 Alex G. Kiernan, based on Lattice source * * Unlike 3.04 this module no longer performs command line parsing and * I/O redirection, which is done by _setargv. This is to allow support * for the extended command line. The TINY macro has also disappeared, * to create a similar effect, declare your main as _main. * * $Log: _main.c,v $ * Revision 1.2 1993/11/05 11:04:40 AGK * Added extra underscore * * Revision 1.1 1991/06/17 17:49:00 AGK * Initial revision * * Copyright (c) 1989 HiSoft and Lattice, Inc. */ #include #include #include #include #include #include #define prn 3 #define aux 4 extern char **environ; /* introduce prototype here to force regargs */ int main(int, char *[],char **); int _main(int argc, char *argv[]) { int i; _ufbs[0].ufbfh = 0; _ufbs[0].ufbflg = UFB_RA; stdin->_file = 0; stdin->_flag = _IOREAD; if (_disatty(0)) stdin->_flag |= _IOLBF; stdout->_file = 1; _ufbs[1].ufbfh = 1; if (_disatty(1)) { stdout->_flag |= _IORW | _IONBF; _ufbs[1].ufbflg = UFB_RA | UFB_WA; } else { stdout->_flag = _IOWRT | _IOLBF; _ufbs[1].ufbflg = UFB_WA; } stderr->_file = 2; _ufbs[2].ufbfh = 2; if (_disatty(2)) { stderr->_flag = _IORW | _IONBF; _ufbs[2].ufbflg = UFB_RA | UFB_WA; } else { stderr->_flag = _IOWRT | _IOLBF; _ufbs[2].ufbflg = UFB_WA; } for (i=0;i<=2;i++) if (!_disatty(i)) _ufbs[i].ufbflg |= UFB_FH; Fforce(aux,-2); /* create an aux: */ _ufbs[3].ufbfh = aux; _ufbs[3].ufbflg = UFB_RA | UFB_WA; _ufbs[4].ufbfh = prn; _ufbs[4].ufbflg = UFB_WA; stdaux->_file = 3; stdaux->_flag = _IORW | _IOLBF; stdprt->_file = 4; stdprt->_flag = _IOWRT | _IOLBF; if(__fmode) { _ufbs[0].ufbflg |= O_RAW; _ufbs[1].ufbflg |= O_RAW; _ufbs[2].ufbflg |= O_RAW; _ufbs[3].ufbflg |= O_RAW; _ufbs[4].ufbflg |= O_RAW; } exit(main(argc,argv,environ)); return 0; } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/lib/internal\_cxrte.c,v 1.1 1993/11/05 11:12:26 AGK Exp $ * * Run time error handler (TOS version) * * (c) Copyright 1993 HiSoft **/ #include <__lib/cx.h> #include void __regargs (_CXRTE)(const char *s) { extern int __mint; if (__mint >= 98) Salert(s); else { while (*s) Bconout(2, *s++); } if (__mint) Pkill(Pgetpid(), 6); Pterm(-39); } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Header: e:/src/lib/assert\assert.c,v 1.2 1993/08/17 11:56:26 AGK Exp $ * * Print assertion failure message * * (c) Copyright 1993 HiSoft **/ #include #include <__lib/cx.h> void (__assert)(const char *s) { _CXRTE(s); } öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö`”LŠIł”.|°ßģJ$H)|°`)JPHz?<&NN\ONŗÄNŗJü)xŗd xņ h9hx2(āI9AzNuæģ`eÖHē*H.|`  MNŗĪRF¼GoņLß ĄNuæģ`e®pAģ aČNuNV’īæģ`e˜/-H’īHn’üHn’ś?(?(?(?(-I’ņpr Aī’öCī’ųNŗ’>®’ü?.’ś?.’ųp 2.’öNŗÜOļ.JGk"  n’ņNŗ„?.’ü?.’ś?.’ų 2.’öNŗī\O .N^NuNV’ųæģ`eHī’ų?(?(?(?prAģ NŗąpN^NuNV’Śæģ`eŽHē~’pNŗZ?@a’Hn’śHn’ųprAī’ōCī’öNŗZAī’ōCģNŗŽ0/Aģ:Nŗ&POAī’ā/////p?2<Š?????????????r0Cī’äĆHĆ@NŗfOļ0,gą0.’ä@gzS@gFS@gV]@g‚@ gS@g,`ŗJGjAģ CģCažt.`¤?p ??Nŗ\O`’~’`Œ0.’ź?r ??Nŗģ\O`v9G¼0<pNŗ`9G¼0<tNŗT~’`ZAśžŖ0.’źCī’ģĆHNŗ2`F?.’ņ?.’š?.’ī?.’ģp??NŗžHl Hl?.’ņ?.’š?.’ī?.’ģpr AģCģNŗžOļgžŠAī’ā//pr Cī’ąĆHNŗųPO0.’ą°Gfž®Aī’ÜNŗ hAī’ÜNŗ „ @??(?(HlN/,.NŗĀAģCī’ģ"Ų"ŲAśżņ0.’źCī’ģĆHNŗzOļ`ž`NVHē.,:.*H&I)M„9G¼9F¾9EĄ9n Ā9n Ä9nĘ9nČ9nŹ9nĢ9nĪ9nŠ9nŅ9nŌ9nÖ9n Ų9n"Śp.9G¼9n ¾Kī TM09@Ą09@Ā09@Ä9UĘ0<|NŗLLß €N^NuNV’ü/.9G¼9|¾)HĄ0<|Nŗ$.N^NuNV’ü/.)H„9G¼0<ØNŗ.N^NuNV’ü/.9G¼)H„pdNŗč.N^NuNVHē.,*H&I9G¼9F¾0<xNŗĀ g:¬Ž g6¬ąJ®g n0¬āJ® g n 0¬ä0,ÜLß(ĄN^NuAģ)H`Aģœ)HdAģ¼)HhAģÜ)HlAģ„)HpAģ€)HtpNŗTpAśNŗ’.p$NŗDpNŗųøNu[3][Stack Space Exhausted][Abort]Aś 0Aģ`"PÉ"0<ČNBAģÜ0Nu     !"#$%&'()*+,-./0123 456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}NV’öHē.*H&I|9|¼0<„Nŗżš0<‘ČNŗś.Hn’žHn’ü r Aī’ųCī’śNŗüīPOJn’üg>Jn’žg8 MCī’ųNŗśĀJ@g Aī’ųN“,JFgHn’žHn’ü r Aī’ųCī’śNŗü¬PO`¼0<‘ČNŗłĘBl¼0<„Nŗżr Lß(ĄN^NuNV’ōHē*H&I-n ’ś nHīJg:p%¾f*°fR®` M/ / nCī’śNŗPO-@’ög-@`ĄH€ KN•`¶Lß(€N^NuHē.*H&MRS kR« €Lß(€NuNV’ų/ *nBn’ś-M’üAś’ĪHn/. Cī’śNŗ’Z n’üB0.’ś*n’ōN^NuJ€jD€JjDaDNuaD€DNuJjDaD€Nu/HA4fH@HAHB4g„Į0H@4„Į0HB2$Nu/v A€dį™QC Adé™YC A då™UCJAkć™SC4ęØHBBBęŖHC€Į604HAÄĮ‚dSCŠr2HCēøH@ĮA&$NuHē0$&HBHĀgÄĮHCHĆgĘĄŌCĄĮHBBBŠ‚Lß Nu/2H@`ŁQÉ’üQČ’ų Nu/³Čd’äŃĄÓĄ2H@`!QÉ’üQČ’ų NuHē €pr +g -fĮ0m n 4åAŅBŅAŅ@`ę$‘ß0S@JjDA2Nu0123456789abcdefH@B@H@QO"O2AūŽčˆfņ "į²‰fśQŠPONuH@B@H@NV’ō"O"AA0Įęˆfš įæÉfśQŠN^NuH@B@H@NV’ō"Or NŗžZA0ĮJ€fš įæÉfśQŠN^Nu2H@QÉ QČpNu?g ”VÉ’ųVČ’ō`”H‚04NuHē*H&MJgH€Nŗ’€RK`ī Lß(NuNV’ōHē'$*Hp,?NATO=@’žr*?NATO=@’üąHāH€@2.’üźIA0.’ü€@2.’žąIęIA0.’žźH€?@0.’ž€Š@@B-p-,Fć Įüm"HĮƒüŠA"HĮƒüdA"JAjVAäAŠAr-ŠA.HĒzp-ŗ@l HĄŠ€Aģx20HĮŽRE`ą -c8p-HĄüH@J@f&p-HĄüH@J@gp-HĄüdH@J@gR‡ rNŗüžLß$äN^NuNV’ō/ -H’ō ¬ī-@’üJlģg®’üAī’üNŗ\*@;lģ *_N^Nu/.Aģ90pg @ ` .NupaNuNV’ōHē-H’ōJ¬LgDJfüSˆ‘ī’ō. J€g2*lLJ•g*  U"n’ōNŗżĪJ@f U"HÓĒp=°f ŃĒCč `XM`ŅpLß €N^NupaNV’ōHē*HAī’ųNŗżÜ.’ł @’łAī’łNŗ .NŗFŽ¬ī g*‡ Lß €N^NuNV’ĢHē'*I&n-H’Ģ~|zp| ’ūr=A’ų=|’’’öAī’Ų@’õ@’ü=A’ģ=A’ī-H’Ō n’ĢJg<H€@ gW@gQ@gU@gW@g` ~`|`z`|’ü`|0’ūR®’Ģ`¼p* n’Ģ°f"UT•0=@’ųl ~Įü’’=@’ųR®’Ģ`Cī’ųNŗūĢ n’ĢŠĄ-H’Ģ n’Ģr.°fJn’īg0.’ī n N“Bn’īJ.’üg$.’ōrx°grX°fp0 n N“.’ōH€ n N“Sn’ųm.’ūH€ n N“`ģJn’īg 0.’ī n N“J.’üg$.’ōrx°grX°fp0 n N“.’ōH€ n N“Sn’ģm n’ŌH€-H’Ō n N“`ę .’ĢLß(äN^NuNV’śAśöNŗł-@’üfb0,z @dPŠ@0;Nū&&D&&&&&:0&&:&Aśŗ-H’ü`&Aś¶-H’ü`Aś²-H’ü`Aś®-H’ü`AśŖ-H’ü n’üPśhūhüB,żCģś)IņCčAī’śĮINŗõ°V@ n’üŠĄ0.’śHĄ"<-H’üNŗõ0)@ī n’üJgPžh’hp@9|ģ`B,žBlģAģž)HöN^NuTZCST6CET-1???-2???-3GMT0NV’īHē7-H’ņ. "<Q€Nŗóō, "<Q€Nŗóę. "<NŗóŲ9@ "<NŗóČ. rp(,SFJFopAģ<0`Ž@SF`ģp n’ņ(S@Ž@*HÅ rNŗņl*p n’ņ(Ś€ r #endif #ifndef NULL #define NULL __NULL #endif #define CLOCKS_PER_SEC (200) #ifndef _CLOCK_T #define _CLOCK_T typedef __clock_t clock_t; #endif #ifndef _TIME_T #define _TIME_T typedef __time_t time_t; #endif #ifndef _SIZE_T #define _SIZE_T typedef __size_t size_t; #endif struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; clock_t (clock)(void); double (difftime)(time_t, time_t); time_t (mktime)(struct tm *); time_t (time)(time_t *); char *(asctime)(const struct tm *); char *(ctime)(const time_t *); struct tm *(gmtime)(const time_t *); struct tm *(localtime)(const time_t *); size_t (strftime)(char *, size_t, const char *, const struct tm *); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; void (__tzset)(void); #if !defined(_ANSI) \ || defined(_POSIX_SOURCE) #define CLK_TCK CLOCKS_PER_SEC void (tzset)(void); extern char *(tzname)[2]; #endif #if !(defined(_ANSI) \ || defined(_POSIX_SOURCE)) \ || defined(_LATTICE) void (getclk)(unsigned char *); int (chgclk)(unsigned const char *); void (utunpk)(long, char *); long (utpack)(const char *); #endif #if !(defined(_ANSI) \ || defined(_SYSV)) int (stime)(const time_t *); #endif #endif el_read(char *,char *); int shel_write(int,int,int,const char *,const char *); int shel_get(char *,int); int shel_put(const char *,int); int shel_find(char *); int shel_envrn(char **, const char *); /* Rectangle manipulation definitions */ void rc_constrain(const GRECT *,GRECT *); void rc_copy(const GRECT *,GRECT *); int rc_equal(const GRECT *,const GRECT *); int __builtin_memcmp(const void *, const void *, unsigned long); #define rc_equal(p1,p2) (!__builtin_mem/** * $Id: unistd.h,v 1.2 1993/11/14 14:43:52 AGK Rel $ * * POSIX.1 miscellaneous macros and functions * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _UNISTD_H #define _UNISTD_H #ifndef __TYPES_H #include <__types.h> #endif #ifndef _SIZE_T #define _SIZE_T typedef __size_t size_t; #endif #ifndef _SSIZE_T #define _SSIZE_T typedef __ssize_t ssize_t; #endif #ifndef NULL #define NULL __NULL #endif #ifndef SEEK_SET #define SEEK_SET 0 /* Seek from beginning of file */ #endif #ifndef SEEK_CUR #define SEEK_CUR 1 /* Seek from current file position */ #endif #ifndef SEEK_END #define SEEK_END 2 /* Seek from end of file */ #endif #define STDIN_FILENO 0 #define STDOUT_FILENO 1 #define STDERR_FILENO 2 #define F_OK 0 #define X_OK 1 #define W_OK 2 #define R_OK 4 #define _POSIX_VDISABLE 0 #define _POSIX_JOB_CONTROL #define _POSIX_CHOWN_RESTRICTED 0 __pid_t (getpid)(void); __pid_t (getppid)(void); __uid_t (getuid)(void); __uid_t (geteuid)(void); __gid_t (getgid)(void); __gid_t (getegid)(void); int (setuid)(__uid_t); int (setgid)(__gid_t); int (getgroups)(int, __gid_t []); char *(getlogin)(void); __pid_t (getpgrp)(void); __pid_t (setsid)(void); int (setpgid)(__pid_t, __pid_t); #if !defined(_POSIX_SOURCE) \ || defined(_BSD) __pid_t setpgrp(__pid_t, __pid_t); __gid_t setregid(__gid_t, __gid_t); __uid_t setreuid(__uid_t, __uid_t); #endif int pause(void); void _exit(int); int access(const char *, int); int chown(const char *, __uid_t, __gid_t); int close(int); int dup(int); int dup2(int, int); int isatty(int); __off_t lseek(int, __off_t, int); int pipe(int *); ssize_t read(int, void *, size_t); ssize_t write(int, const void *, size_t); int chdir(const char *); char *getcwd(char *, int); int rmdir(const char *); #if !defined(_POSIX_SOURCE) \ || defined(_LATTICE) __off_t filelength(int); int iomode(int, int); __off_t tell(int); #endif __pid_t fork(void); int execl(const char *, ...); int execle(const char *, ...); int execlp(const char *, ...); int execlpe(const char *, ...); int execv(const char *, const char **); int execve(const char *, const char **, const char **); int execvp(const char *, const char **); int execvpe(const char *, const char **, const char **); #if !defined(_POSIX_SOURCE) \ || defined(_BSD) __pid_t vfork(void); #endif #if !defined(_POSIX_SOURCE) void *sbrk(size_t); extern char **environ; #endif #endif #endif #endif öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö/** * $Id: utime.h,v 1.1 1993/11/14 14:43:52 AGK Rel $ * * POSIX file access times * * (c) Copyright 1992, 1993 HiSoft **/ #ifndef _UTIME_H #define _UTIME_H #ifndef __TYPES_H #include <__types.h> #endif struct utimbuf { __time_t actime; __time_t modtime; }; int (utime)(const char *, const struct utimbuf *); #endif ial file */ #define _S_IFIFO 0120000 /* FIFO */ #if !defined(_POSIX_SOURCE) \ || defined(_BSD) #define _S_IMEM 0140000 /* memory region or process */ #define _S_IFLNK 0160000 /* symbolic link */ #define _S_IFSOCK 0140000 /* socket */ #define S_IFMT _S_IFMT #define S_IFDIR _S_IFDIR #define S_IFCHR _S_IFCHR #define S_IFREG _S_IFREG #define S_IFIFO _S_IFIFO #define S_IFBLK _S_IFBLK #define S_IMEM _S_IMEM #define S_IFLNK _S_IFLNK #define S_IFSOCK _S_IFSOCK #endif #define S_ISDIR(f) (((f) & _S_IFMT) == S_IFDIR) #define S_ISCHR(f) (((f) & _S_IFMT) == S_IFCHR) #define S_ISBLK(f) (((f) & _S_IFMT) == S_IFBLK) #define S_ISREG(f) (((f) & _S_IFMT) ==