mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-29 20:49:19 +00:00
1960 lines
73 KiB
Plaintext
1960 lines
73 KiB
Plaintext
; Version: 3.18
|
||
; Created: Friday, October 20, 1989 at 9:46:43 PM
|
||
;
|
||
; File Script.a
|
||
;
|
||
; Assembler Interface to the Macintosh Libraries
|
||
; Copyright Apple Computer, Inc. 1986-1992
|
||
; All Rights Reserved
|
||
;
|
||
; -----------------------------------------------------------------------------
|
||
; Script Manager equates file.
|
||
;
|
||
; This file contains all equates for the script environment, shared
|
||
; equates for the script interface systems, equates that are special for
|
||
; the Roman Interface System, and all equates for the script interface
|
||
; system package.
|
||
; -----------------------------------------------------------------------------
|
||
;
|
||
; Change History (most recent first):
|
||
;
|
||
; <54> 10/16/92 PKE For new IM: Add trap macros for new names for old routines.
|
||
; <53> 7/1/92 DCL This file is the replacement for the now obsolete ScriptEqu.a.
|
||
; Changed the 'including' name to match the new file name.
|
||
; <52> 6/23/92 SMB #1029263,<pke>: Added new flag, smsfSynchUnstyledTE, to the
|
||
; 'itlb' flags field to handle font & keyboard synchronization for
|
||
; unstyled TE.
|
||
; <51> 4/21/92 DCL #1027048 Added smCharBopomofo,
|
||
; smTransRuleBaseFormat,smTransHangulFormat,
|
||
; smTransPreDoubleByting, smTransPreLowerCasing, Itl5,
|
||
; RuleBasedTrslRecord.
|
||
; <50> 4/8/92 PKE #1026516,<cv>: Move SCxxx interfaces for some ScriptMgr routines
|
||
; from private interfaces (ScriptPriv.a) to public (here).
|
||
; <49> 4/3/92 gbm Change smKeyDisabState to a kinder, gentler spelling.
|
||
; (smKeyDisableState)
|
||
; <48> 4/3/92 PKE #1026378,<cv>: Add CharType constants smCharContextualLR and
|
||
; smCharNonContextualLR; already used for Thai and Cyrillic.
|
||
; <47> 3/30/92 PKE #1022875,<ha>: Fix previous comment - got confused by new checkin
|
||
; procedure and gave this file another file's comment.
|
||
; <46> 3/30/92 PKE #1022875,<ha>: Add smKeyRoman verb for KeyScript (to use in KSWP)
|
||
; that sets keyboard script to Roman only if other scripts are
|
||
; installed; otherwise, it does nothing, and the corresponding
|
||
; KSWP key combination is not stripped from the event queue.
|
||
; <45> 2/10/92 YS 1014691, added a flag 'smfUseAssocFontInfo' in smGenFlags.
|
||
; <44> 1/13/92 PKE 1019369, add smKeyDisabState verb for GetEnvirons to get the
|
||
; current keyboard disable state.
|
||
; <43> 12/11/91 PKE Define new public interfaces SCGetScriptRoutineAddr,
|
||
; SCSetScriptRoutineAddr, SCGetQDPatchAddr, SCSetQDPatchAddr which
|
||
; are implemented by one-byte script extension.
|
||
; <42> 11/25/91 PKE Define new smScriptFlags bit smsfUnivExt. Define new KeyScript
|
||
; verbs smKeySetDirLeftRight, smKeySetDirRightLeft.
|
||
; <41> 9/27/91 SMB For Cube-E (and Bruges) - define system direction bit,
|
||
; itlcSysDirection, for itlcSysFlags and added bit definitions,
|
||
; itlcShowIcon and itlcDualCaret, for the itlcFlags.
|
||
; <40> 9/25/91 PKE For Cube-E (and Bruges): Add itlcSysFlags field to ItlcRecord.
|
||
; <39> 8/20/91 KSM pke,#Bruges: Added a new script code smAllScripts to indicate
|
||
; meaning no preference for script code or any script code.
|
||
; <38> 8/15/91 MH correct the definition of romanFlags. Assembler operator
|
||
; precedence (+ before <<) caused the old expression to evaluate
|
||
; to 32 instead of 7. Parentheses have been added to override the
|
||
; precedence.
|
||
; <37> 8/14/91 JL Took ':' off of field names in the TogglePB record.
|
||
; <36> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to
|
||
; all uppercase (for security reasons)
|
||
; <35> 1/28/91 PKE bbm: Add constants for use with CharType and Transliterate on
|
||
; Chinese and Korean systems.
|
||
; <34> 1/10/91 PKE (csd) Change names for “ring” and “breve” constants (too
|
||
; ambiguous) to “ringMark” and “breveMark”.
|
||
; <33> 1/2/91 PKE (bbm) Updated comments and rearranged a few constants to match
|
||
; latest Inside Mac summary. Added tokenCaret as correct spelling
|
||
; for tokenCarat.
|
||
; <32> 12/15/90 PKE (KSM) Update some new constants used with 2-byte script systems.
|
||
; <31> 12/14/90 SMB (csd) I forgot the approval signature for the previous change.
|
||
; <30> 12/14/90 SMB Moving KeyScript verb, smKeyModalDialog, to ScriptPriv.a.
|
||
; <29> 9/16/90 PKE In NItl4Rec, rename ‘resHeader1’ field to ‘format’, since that
|
||
; is how we now use it.
|
||
; <28> 9/15/90 SMB (PKE) Added itl2FormatOffset constant: offset to format word in
|
||
; itl2 header. Defined format code, hdrExtensionsExist, indicating
|
||
; presence of length fields and an additional offset/length pair
|
||
; for FindScriptTable.
|
||
; <27> 9/10/90 PKE Add smCurrentScript constant. Add more FIS constants from Joel
|
||
; Cannon.
|
||
; <26> 8/23/90 PKE (per JT) Restored smFISClassXXX constants to original values
|
||
; (backed out of part of change <5>).
|
||
; <25> 8/16/90 SMB Added new KeyScript verb for ModalDialogs so that the About
|
||
; Keyboards menu item can be disabled.
|
||
; <24> 8/5/90 SMB Added new KeyScript verb to disable the keyboard menu when a
|
||
; KCHR is being moved into or out of the System file.
|
||
; <23> 8/2/90 PKE Added smSystemScript constant (meta-script code, designates the
|
||
; system script). Moved obsolete script codes to end of their section.
|
||
; Added constants for values of scriptRedraw field. Cleaned up
|
||
; negative KeyScript verbs: deleted smKeyLastScript synonym, added
|
||
; smKeyDisableKybds and smKeyEnableKybds, renumbered
|
||
; smKeyNextInputMethod and smKeySwapInputMethod. Rearranged file
|
||
; to move routine selectors and macros to end, group other parts
|
||
; more logically.
|
||
; <22> 7/17/90 PKE Changed reserved field in ItlbRecord to itlbEncoding (contains
|
||
; ID of itl5, optional char encoding resource), and changed name
|
||
; of corresponding GetScript verb. In NItl4Rec, changed
|
||
; itl4HeaderSize to nItl4HeaderSize to avoid name conflict with
|
||
; Itl4Rec. Fixed a few comments.
|
||
; <21> 6/22/90 PKE Moved language codes to a new file, LanguageEqu.a, and
|
||
; rearranged the new ones. Added smExtArabic as synonym for
|
||
; smSindhi, smEastEurRoman as synonym for smSlavic.
|
||
; <20> 6/20/90 PKE Changed tentative value for smCharFISHangul to eliminate
|
||
; conflict with Arabic/Hebrew; added smCharExtAscii and
|
||
; smCharBidirect. Added smEthiopic (synonym for smGeez) plus about
|
||
; 80 new language codes covering most languages we are likely to
|
||
; handle; also added some synonyms for existing language codes.
|
||
; Changed resLength6 field in NItl4Rec to whtSpListLength.
|
||
; <19> 6/12/90 PKE Fixed a misspelled constant name: toeknRightSingGuillemet. Added
|
||
; new calendar code calPersian, per Hani Abdelazim. Added
|
||
; smKeySwapScript as synonym for smKeyLastScript (using new
|
||
; terminology), and added several new KeyScript verbs that may be
|
||
; implemented by script systems. Still need to renumber
|
||
; smCharFISHangul, since it conflicts with Arabic/Hebrew CharType
|
||
; values. Also need to convert itl2 header offsets into a record,
|
||
; and add constant names for all characters in Roman font.
|
||
; <18> 5/31/90 PKE Added new GetScript verbs: smScriptValidStyles,
|
||
; smScriptAliasStyle. Added new fields to ItlbExtRecord:
|
||
; itlbValidStyles, itlbAliasStyle.
|
||
; <17> 5/24/90 PKE Changed selectors to account for new numer/denom scaling
|
||
; parameters in NPortionText, NDrawJust, NMeasureJust,
|
||
; NChar2Pixel, and NPixel2Char.
|
||
; <16> 5/21/90 PKE Added smfNameTagEnab constant for flag bit, enables script tag
|
||
; in Finder names.
|
||
; <15> 5/18/90 PKE Added new tokens tokenEllipsis and tokenCenterDot. Fixed
|
||
; spelling of tokenTilde. Changed truncMarkOffset to
|
||
; whtSpListOffset in NItl4Rec.
|
||
; <14> 5/11/90 PKE Added new constants smTradChinese, smSimpChinese,
|
||
; langTradChinese, langSimpChinese. Deleted smMaldivian!
|
||
; <13> 5/1/90 PKE Added constants for negative KeyScript verbs and for
|
||
; TruncText/TruncString results.
|
||
; <12> 4/27/90 gbm prevent redefinition errors by avoiding multiple inclusion
|
||
; <11> 3/23/90 PKE Deleted special roman font equates that were new for 7.0 (see
|
||
; <1.9>), since we now get this information from a resource.
|
||
; <10> 3/21/90 PKE Just corrected previous comment.
|
||
; <9> 3/21/90 PKE Added smScriptAppFondSize and smScriptHelpFondSize verbs for
|
||
; GetScript/SetScript. Added fields in ItlbExtRecord for Help Mgr
|
||
; font & size. Rearranged the length fields in NItl4Rec to be
|
||
; correct.
|
||
; <8> 3/21/90 SMB Adding ItlbExtRecord which is needed for auto initialization of
|
||
; scripts. Also added smsfAutoInit bit in smScriptFlags and
|
||
; smUprHalfCharSet. Added FindScriptTableOffset and
|
||
; FindScriptTableLen.
|
||
; <7> 3/7/90 JAL Official MPW version
|
||
; <6> 3/5/90 PKE For MPW release: Changed the selectors for TruncString and
|
||
; TruncText to have the same values as the temporary NTruncXxx
|
||
; selectors (i.e., to include the truncWhere parameter). Deleted
|
||
; the NTruncXxx selectors and macros. This change should put this
|
||
; file into releasable shape.
|
||
; <5> 3/2/90 PKE Removed version number constants: smgrVers (Script Mgr),
|
||
; romanVers (Roman script system). Removed definitions of private
|
||
; constants that had already been conditionalized out and moved to
|
||
; ScriptPriv.a: smLastEVerb, smLastSVerb, smLowCall, sisHighCall,
|
||
; fisHighCall. Corrected smFISClassXXX constants. Removed 7.0
|
||
; conditionalization in itlcRecord, and renamed the now-shortened
|
||
; reserved area from itlcReserved2 to itlcReserved3. Removed
|
||
; DateTimeRec (conditionalized out anyway). Gave new names
|
||
; ‘IUNSortFrame’ and ‘nItl4Rec’ to the extended versions of
|
||
; IUSortFrame and Itl4Rec, and unconditionalized the old versions
|
||
; so they don’t change. Removed all bigBangEquates conditionals.
|
||
; <4> 1/17/90 PKE Added itlcRegionCode field to itlcRecord. Fixed some tabs and
|
||
; comments.
|
||
; <3> 1/17/90 PKE Added new constants: smCyrillic as synonym for smRussian, new
|
||
; smRegionCode verb for GetEnvirons, and several new langXxx
|
||
; constants.
|
||
; <2> 1/11/90 PKE Added macros for new interfaces: NPortionText, NDrawJust,
|
||
; NMeasureJust, NChar2Pixel, NPixel2Char. Added smXxxStyleRun
|
||
; constants used in new interfaces. Moved definitions of
|
||
; sisHighCall and fisHighCall from here to ScriptPriv.a. Updated
|
||
; header to BBS format.
|
||
; <1> 12/17/89 CCH Adding for the first time into BBS.
|
||
; (BBS versions above, EASE versions below)
|
||
; <2.7> 11/8/89 PKE Add temporary interfaces NTruncString and NTruncText for the
|
||
; new-style Trunc routines that expect a truncWhere parameter.
|
||
; Eventually, the standard Trunc routine interfaces will be
|
||
; changed to use this parameter. Add constants for truncWhere
|
||
; parameter.
|
||
; <2.6> 10/2/89 PKE Added smKCHRCache verb for GetEnvirons.
|
||
; <2.5> 9/19/89 PKE Add 8 length words to Itl4Rec. Add wordTableLen and wrapTableLen
|
||
; offsets for new length block in itl2 header.
|
||
; <2.4> 9/17/89 PKE Added smDoubleByte verb for Get/Set Environs. Moved definitions
|
||
; of smLastEVerb, smLastSVerb, and smLowCall/smLowCall60x to
|
||
; ScriptPriv.a so we can conditionalize them; they don't need to
|
||
; be public anyway. Added langKorean. Updated romanVers for 7.0.
|
||
; <2.3> 9/15/89 PKE Added back selector and macro for NFindWord (!), but use it
|
||
; differently. Also add selectors and macros for
|
||
; TruncText,TruncString, ReplaceText. Added itl2Handle to
|
||
; IUSortFrame. Add smLowCall60x. Define truncMarkOffset field in
|
||
; Itl4Rec.
|
||
; <2.2> 9/5/89 PKE Get rid of NFindWord selector; it was a bad idea. The 7.0 glue
|
||
; code now routes calls with the old FindWord selector to the new
|
||
; FindWord when possible. Leave conditionals for future use.
|
||
; <2.1> 9/4/89 PKE Add NFindWord selector and macro. Eventually, FindWord will use
|
||
; the same selector, but for now we will keep them separate so
|
||
; that we can do 6.0.4 and 6.0.5 builds.
|
||
; <2.0> 8/5/89 PKE NEEDED FOR 6.0.4: Corrected selector for RawPrinterValues.
|
||
; <1.9> 6/23/89 PKE For 7.0: Make Script Manager version 7.xx for Big Bang, add new
|
||
; GetScript/SetScript verbs for font info, add new font constants
|
||
; for Roman.
|
||
; <1.8> 6/6/89 PKE Added toggleOutOfRange constant (will also be in MPW 3.1)
|
||
; <•1.7> 5/25/89 MSH Ported from main EASE sources.
|
||
; <1.6> 5/25/89 PKE More additions (will be in MPW 3.1)- added smGeez,
|
||
; genCdevRangeBit, and new token types for IntlTokenize.
|
||
; <1.5> 4/23/89 PKE Corrections & additions to match MPW 3.1 ScriptEqu.a; moved
|
||
; _LwrString & DateTimeRec definitions elsewhere to match MPW 3.0.
|
||
; <1.4> 4/7/89 PKE Added new itl2 table offsets (moved here from ScriptPriv.a);
|
||
; added names for new ToggleDate/ValidDate flags bits
|
||
; <1.3> 3/28/89 PKE Added script icon location info to itlcRecord.
|
||
; <1.2> 2/14/89 PKE Updated to use MPW 3.0 final ScriptEqu.a equate names; also
|
||
; added smCharLeft & smCharRight and fixed weekOfYearMask &
|
||
; cantReadUtilities to match MPW version; fixed _GetFormatOrder
|
||
; macro (wrong in MPW)
|
||
; <1.1> 12/2/88 PKE Commented macros that had code as DC.Ws; sync'ed with Projector
|
||
; <1.0> 11/9/88 CCH Adding to EASE.
|
||
; (old EASE history below)
|
||
; <1.4> 10/27/88 LDC Mods by Carl Hewitt and Brian McGhie in the process of putting
|
||
; Script Manager in ROM
|
||
; <1.3> 10/10/88 BBM updated to version 2.11.
|
||
; <1.2> 10/10/88 BBM updated to version 2.0.
|
||
; 9/30/88 ldc Added twelveHourBit for ValidDate
|
||
; 9/23/88 ldc Bumped version
|
||
; <•1.1> 9/14/88 CCH Updated EASE with the current rev of this file.
|
||
; (pre-EASE history below)
|
||
; 9/7/88 ldc Added fEmptyFormatString to FormatResultType
|
||
; 7/25/88 ldc Changed names of DateTime error equs for Keithen
|
||
; 7/12/88 ldc Added macintosh character set extension equates
|
||
; 7/8/88 ldc Bumped version for first pass at Altair
|
||
; 6/28/88 ldc Commented out _ScriptUtil for MPW 3.0
|
||
; 6/28/88 smb Added delimPad as a new token for the tokenizer. Spelling fix
|
||
; from langFinish to langFinnish.
|
||
; 6/27/88 ldc Bumped version number
|
||
; 6/23/88 ldc Bumped version number
|
||
; 6/13/88 ldc Bumped version number
|
||
; 6/7/88 med Bumped version number
|
||
; 4/1/88 smb Added number format equates (used by Numberparts record) back
|
||
; from nScriptEqu.priv.
|
||
; 3/24/88 smb Modified NumFormatString to hide private info and made number
|
||
; format equates private (see nScriptEqu.priv); added
|
||
; ScriptRunStatus and UntokenTable records.
|
||
; 3/21/88 med Added interface for VisibleLength procedure
|
||
; 3/19/88 ldc changed fNoRoomFill to reserved
|
||
; 3/15/88 smb Updated to resemble the Pascal version of this file, nScript.p,
|
||
; and to reflect the Script Manager 2.0 ERS.
|
||
; 3/14/88 ldc Added version to number parts table
|
||
; 2/23/88 ldc Changed error codes
|
||
; 1/13/88 med Misc equate changes
|
||
; 1/6/88 med Added PortionText, FindScriptRun macros
|
||
; 1/4/88 med Added itl4 record definition
|
||
; 11/16/87 med Added dispatches, fixed smScriptFlags, make TokenResults record
|
||
; 11/10/87 med Added itl3,4 equates
|
||
; 10/28/87 med Added new verbs for sm1.2 routines
|
||
; 8/21/87 med Added general flags to itlc
|
||
; 8/18/87 med Added smCharPortion verb
|
||
; 8/15/87 med Filled out itlc record for new keyboard
|
||
; 7/18/87 med Added bits for contextual scripts
|
||
; 7/7/87 med Added environment flags verb
|
||
; 5/20/87 med Added some scriptFlags constants requested by Paris
|
||
|
||
IF &TYPE('__INCLUDINGSCRIPT__') = 'UNDEFINED' THEN
|
||
__INCLUDINGSCRIPT__ SET 1
|
||
|
||
; -----------------------------------------------------------------------------
|
||
|
||
; Script System constants.
|
||
|
||
smSystemScript EQU -1 ; designates system script <23>
|
||
smCurrentScript EQU -2 ; designates current font script <27><33>
|
||
smAllScripts EQU -3 ; designates any script <39>
|
||
|
||
smRoman EQU 0 ; Roman
|
||
smJapanese EQU 1 ; Japanese
|
||
smTradChinese EQU 2 ; Traditional Chinese <14>
|
||
smKorean EQU 3 ; Korean
|
||
smArabic EQU 4 ; Arabic
|
||
smHebrew EQU 5 ; Hebrew
|
||
smGreek EQU 6 ; Greek
|
||
smCyrillic EQU 7 ; Cyrillic <3>
|
||
smRSymbol EQU 8 ; Right-left symbols
|
||
smDevanagari EQU 9 ; Devanagari
|
||
smGurmukhi EQU 10 ; Gurmukhi
|
||
smGujarati EQU 11 ; Gujarati
|
||
smOriya EQU 12 ; Oriya
|
||
smBengali EQU 13 ; Bengali
|
||
smTamil EQU 14 ; Tamil
|
||
smTelugu EQU 15 ; Telugu
|
||
smKannada EQU 16 ; Kannada/Kanarese
|
||
smMalayalam EQU 17 ; Malayalam
|
||
smSinhalese EQU 18 ; Sinhalese
|
||
smBurmese EQU 19 ; Burmese
|
||
smKhmer EQU 20 ; Khmer/Cambodian
|
||
smThai EQU 21 ; Thai
|
||
smLaotian EQU 22 ; Laotian
|
||
smGeorgian EQU 23 ; Georgian
|
||
smArmenian EQU 24 ; Armenian
|
||
smSimpChinese EQU 25 ; Simplified Chinese <14>
|
||
smTibetan EQU 26 ; Tibetan
|
||
smMongolian EQU 27 ; Mongolian
|
||
smGeez EQU 28 ; Geez/Ethiopic <1.6>
|
||
smEthiopic EQU 28 ; Synonym for smGeez <20>
|
||
smEastEurRoman EQU 29 ; Extended Roman for Slavic & Baltic langs <21>
|
||
smVietnamese EQU 30 ; Extended Roman for Vietnamese
|
||
smExtArabic EQU 31 ; Extended Arabic for Sindhi, etc. <21>
|
||
smUninterp EQU 32 ; uninterpreted symbols, e.g. palette symbols
|
||
|
||
; Obsolete names for script systems (kept for backward compatibility).
|
||
|
||
smChinese EQU 2 ; (use smTradChinese or smSimpChinese). <14>
|
||
smRussian EQU 7 ; (old name for smCyrillic).
|
||
;smMaldivian EQU 25 ; (no more smMaldivian!) <14>
|
||
smAmharic EQU 28 ; (old name for smGeez)
|
||
smSlavic EQU 29 ; (old name for smEastEurRoman)
|
||
smSindhi EQU 31 ; (old name for smExtArabic) <21>
|
||
|
||
; Language codes - moved to LanguageEqu.a <21>
|
||
|
||
; Calendar Codes
|
||
|
||
calGregorian EQU 0
|
||
calArabicCivil EQU 1
|
||
calArabicLunar EQU 2
|
||
calJapanese EQU 3
|
||
calJewish EQU 4
|
||
calCoptic EQU 5
|
||
calPersian EQU 6 ; <19>
|
||
|
||
; Integer Format Codes
|
||
|
||
intWestern EQU 0
|
||
intArabic EQU 1
|
||
intRoman EQU 2
|
||
intJapanese EQU 3
|
||
intEuropean EQU 4
|
||
intOutputMask EQU $8000
|
||
|
||
; CharByte byte types.
|
||
|
||
smSingleByte EQU 0
|
||
smFirstByte EQU -1
|
||
smLastByte EQU 1
|
||
smMiddleByte EQU 2
|
||
|
||
; CharType field masks
|
||
|
||
smcTypeMask EQU $000F
|
||
smcReserved EQU $00F0
|
||
smcClassMask EQU $0F00
|
||
smcOrientationMask EQU $1000 ; two-byte script glyph orientation <27><33>
|
||
smcRightMask EQU $2000
|
||
smcUpperMask EQU $4000
|
||
smcDoubleMask EQU $8000
|
||
|
||
; Basic CharType character types.
|
||
|
||
smCharPunct EQU $0000
|
||
smCharAscii EQU $0001
|
||
smCharEuro EQU $0007
|
||
smCharExtAscii EQU $0007 ; More correct synonym for smCharEuro <20>
|
||
|
||
; Additional CharType character types for script systems.
|
||
|
||
smCharKatakana EQU $0002 ; Japanese Katakana <32>
|
||
smCharHiragana EQU $0003 ; Japanese Hiragana <32>
|
||
smCharIdeographic EQU $0004 ; Hanzi, Kanji, Hanja <32>
|
||
smCharTwoByteGreek EQU $0005 ; 2-byte Greek in Far East systems <32>
|
||
smCharTwoByteRussian EQU $0006 ; 2-byte Cyrillic in Far East systems <32>
|
||
smCharBidirect EQU $0008 ; Arabic, Hebrew <20>
|
||
smCharContextualLR EQU $0009 ; Contextual left-right: Thai, Indic scripts <48>
|
||
smCharNonContextualLR EQU $000A ; Non-contextual left-right: Cyrillic, Greek <48>
|
||
smCharHangul EQU $000C ; Korean Hangul <20><32>
|
||
smCharJamo EQU $000D ; Korean Jamo <35>
|
||
smCharBopomofo EQU $000E ; Chinese Bopomofo <51>
|
||
|
||
; old names for some of above, for backward compatibility
|
||
smCharFISKana EQU $0002 ; Katakana
|
||
smCharFISGana EQU $0003 ; Hiragana
|
||
smCharFISIdeo EQU $0004 ; Hanzi, Kanji, Hanja
|
||
smCharFISGreek EQU $0005 ; 2-byte Greek in Far East systems
|
||
smCharFISRussian EQU $0006 ; 2-byte Cyrillic in Far East systems
|
||
|
||
; CharType punctuation sub-types.
|
||
|
||
smPunctNormal EQU $0000
|
||
smPunctNumber EQU $0100
|
||
smPunctSymbol EQU $0200
|
||
smPunctBlank EQU $0300 ; NBSP is PunctNormal
|
||
|
||
; CharType punctuation sub-types for two-byte systems <27>
|
||
|
||
smPunctRepeat EQU $0400 ; repeat marker <27><32><33>
|
||
smPunctGraphic EQU $0500 ; line graphics <27><32>
|
||
|
||
; CharType Katakana and Hiragana sub-types for two-byte systems <27>
|
||
|
||
smKanaSmall EQU $0100 ; small kana character <27>
|
||
smKanaHardOK EQU $0200 ; can have dakuten <27>
|
||
smKanaSoftOK EQU $0300 ; can have dakuten or han-dakuten <27>
|
||
|
||
; CharType Ideographic sub-types for two-byte systems
|
||
|
||
smIdeographicLevel1 EQU $0000 ; level 1 char <32>
|
||
smIdeographicLevel2 EQU $0100 ; level 2 char <32>
|
||
smIdeographicUser EQU $0200 ; user char <32>
|
||
; old names for some of above, for backward compatibility
|
||
smFISClassLvl1 EQU $0000 ; level 1 char <5><26>
|
||
smFISClassLvl2 EQU $0100 ; level 2 char <5><26>
|
||
smFISClassUser EQU $0200 ; user char <5><26>
|
||
|
||
; CharType Jamo sub-types for Korean systems <35>
|
||
|
||
smJamoJaeum EQU $0000 ; simple consonant char <35>
|
||
smJamoBogJaeum EQU $0100 ; complex consonant char <35>
|
||
smJamoMoeum EQU $0200 ; simple vowel char <35>
|
||
smJamoBogMoeum EQU $0300 ; complex consonant char <35>
|
||
|
||
; CharType glyph orientation for two-byte systems <27>
|
||
|
||
smCharHorizontal EQU $0000 ; horizontal character form, or for both <27>
|
||
smCharVertical EQU $1000 ; vertical character form <27>
|
||
|
||
; CharType directions
|
||
|
||
smCharLeft EQU $0000
|
||
smCharRight EQU $2000
|
||
|
||
; CharType case modifers.
|
||
|
||
smCharLower EQU $0000
|
||
smCharUpper EQU $4000
|
||
|
||
; CharType character size modifiers (1 or multiple bytes).
|
||
|
||
smChar1byte EQU $0000
|
||
smChar2byte EQU $8000
|
||
|
||
; Char2Pixel directions.
|
||
|
||
smLeftCaret EQU 0 ; Place caret for left block.
|
||
smRightCaret EQU -1 ; Place caret for right block.
|
||
smHilite EQU 1 ; Direction is TESysJust.
|
||
|
||
; Transliterate target types for Roman.
|
||
|
||
smTransAscii EQU 0 ; convert to ASCII
|
||
smTransNative EQU 1 ; convert to font script <33>
|
||
smTransCase EQU $FE ; convert case for all text
|
||
smTransSystem EQU $FF ; convert to system script
|
||
|
||
; Transliterate target types for two-byte scripts <35>
|
||
|
||
smTransAscii1 EQU 2 ; 1-byte Roman
|
||
smTransAscii2 EQU 3 ; 2-byte Roman
|
||
smTransKana1 EQU 4 ; 1-byte Japanese Katakana
|
||
smTransKana2 EQU 5 ; 2-byte Japanese Katakana
|
||
; (no 1-byte hiragana)
|
||
smTransGana2 EQU 7 ; 2-byte Japanese Hiragana
|
||
smTransHangul2 EQU 8 ; 2-byte Korean Hangul <35>
|
||
smTransJamo2 EQU 9 ; 2-byte Korean Jamo <35>
|
||
smTransBopomofo2 EQU 10 ; 2-byte Chinese Bopomofo <35>
|
||
|
||
; Transliterate target modifiers.
|
||
|
||
smTransLower EQU $4000 ; target becomes lowercase <33>
|
||
smTransUpper EQU $8000 ; target becomes uppercase <33>
|
||
|
||
; Transliterate resource format numbers
|
||
|
||
smTransRuleBaseFormat EQU 1 ; Rule based trsl resource format */
|
||
smTransHangulFormat EQU 2 ; Table based Hangul trsl resource format*/
|
||
|
||
; Transliterate property flags
|
||
|
||
smTransPreDoubleByting EQU 1 ; Convert all text to double byte before transliteration*/
|
||
smTransPreLowerCasing EQU 2 ; Convert all text to lower case before transliteration*/
|
||
|
||
; Transliterate source mask - general.
|
||
|
||
smMaskAll EQU $FFFFFFFF ; Convert all text
|
||
|
||
; Transliterate source masks for Roman.
|
||
|
||
smMaskAscii EQU $00000001 ; 2^smTransAscii
|
||
smMaskNative EQU $00000002 ; 2^smTransNative
|
||
|
||
; Transliterate source masks for two-byte scripts. <35>
|
||
|
||
smMaskAscii1 EQU $00000004 ; 2^smTransAscii1
|
||
smMaskAscii2 EQU $00000008 ; 2^smTransAscii2
|
||
smMaskKana1 EQU $00000010 ; 2^smTransKana1
|
||
smMaskKana2 EQU $00000020 ; 2^smTransKana2
|
||
smMaskGana2 EQU $00000080 ; 2^smTransGana2
|
||
smMaskHangul2 EQU $00000100 ; 2^smTransHangul2 <35>
|
||
smMaskJamo2 EQU $00000200 ; 2^smTransJamo2 <35>
|
||
smMaskBopomofo2 EQU $00000400 ; 2^smTransBopomofo2 <35>
|
||
|
||
; Result values from GetEnvirons, SetEnvirons, GetScript and SetScript calls.
|
||
|
||
smNotInstalled EQU 0 ; routine not available in script
|
||
smBadVerb EQU -1 ; Bad verb passed to a routine.
|
||
smBadScript EQU -2 ; Bad script code passed to a routine.
|
||
|
||
; Values for script redraw flag <23>
|
||
|
||
smRedrawChar EQU 0 ; redraw character only
|
||
smRedrawWord EQU 1 ; redraw entire word (2-byte systems)
|
||
smRedrawLine EQU -1 ; redraw entire line (bidirectional systems)
|
||
|
||
; Result values from StyledLineBreak
|
||
|
||
smBreakWord EQU 0 ; could break at word boundary
|
||
smBreakChar EQU 1 ; had to break at char boundary
|
||
smBreakOverflow EQU 2 ; text too short, width subtracted
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; GetEnvirons and SetEnvirons verbs.
|
||
; -----------------------------------------------------------------------------
|
||
|
||
smVersion EQU 0 ; Script Manager version number. <33>
|
||
smMunged EQU 2 ; Globals change count.
|
||
smEnabled EQU 4 ; Count of enabled scripts, incl Roman. <33>
|
||
smBidirect EQU 6 ; At least one bidirectional script. <33>
|
||
smFontForce EQU 8 ; Force font flag.
|
||
smIntlForce EQU 10 ; Force intl flag.
|
||
smForced EQU 12 ; Script was forced to system script. <33>
|
||
smDefault EQU 14 ; Script was defaulted to Roman script. <33>
|
||
smPrint EQU 16 ; Printer action routine.
|
||
smSysScript EQU 18 ; System script.
|
||
smLastScript EQU 20 ; Last keyboard script.
|
||
smKeyScript EQU 22 ; Keyboard script.
|
||
smSysRef EQU 24 ; System folder refNum.
|
||
smKeyCache EQU 26 ; Obsolete <33>
|
||
smKeySwap EQU 28 ; Swapping table handle. <33>
|
||
smGenFlags EQU 30 ; general flags long
|
||
smOverride EQU 32 ; script override flags
|
||
smCharPortion EQU 34 ; Ch vs SpExtra proportion
|
||
; New for System 7.0: <2.4>
|
||
smDoubleByte EQU 36 ; Flag for double-byte script installed <2.4>
|
||
smKCHRCache EQU 38 ; Returns pointer to KCHR cache <2.6>
|
||
smRegionCode EQU 40 ; Returns current region code (verXxx) <3>
|
||
smKeyDisableState EQU 42 ; Returns current keyboard disable state <44>
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; GetScript and SetScript verbs.
|
||
; Note: verbs private to script systems are negative, while
|
||
; those general across script systems are non-negative
|
||
; -----------------------------------------------------------------------------
|
||
|
||
smScriptVersion EQU 0 ; Script software version.
|
||
smScriptMunged EQU 2 ; Script entry changed count.
|
||
smScriptEnabled EQU 4 ; Script enabled flag.
|
||
smScriptRight EQU 6 ; Right to left flag.
|
||
smScriptJust EQU 8 ; Justification flag.
|
||
smScriptRedraw EQU 10 ; Word redraw flag.
|
||
smScriptSysFond EQU 12 ; Preferred system font.
|
||
smScriptAppFond EQU 14 ; Preferred Application font.
|
||
smScriptBundle EQU 16 ; Beginning of itlb verbs.
|
||
smScriptNumber EQU 16 ; Script itl0 id.
|
||
smScriptDate EQU 18 ; Script itl1 id.
|
||
smScriptSort EQU 20 ; Script itl2 id.
|
||
smScriptFlags EQU 22 ; Script flags
|
||
smScriptToken EQU 24 ; Script itl4 id.
|
||
smScriptEncoding EQU 26 ; id of optional itl5, if present. <22>
|
||
smScriptLang EQU 28 ; Current language for script
|
||
smScriptNumDate EQU 30 ; Script Number/Date formats
|
||
smScriptKeys EQU 32 ; Script KCHR id.
|
||
smScriptIcon EQU 34 ; ID # of SICN or kcs#/kcs4/kcs8 suite.
|
||
smScriptPrint EQU 36 ; Script printer action routine.
|
||
smScriptTrap EQU 38 ; Trap entry pointer.
|
||
smScriptCreator EQU 40 ; Script file creator.
|
||
smScriptFile EQU 42 ; Script file name.
|
||
smScriptName EQU 44 ; Script name.
|
||
; There is a hole here for old Kanji private verbs 46-76
|
||
|
||
; New for System 7.0: <1.9>
|
||
smScriptMonoFondSize EQU 78 ; default monospace FOND (hi) & size (lo)
|
||
smScriptPrefFondSize EQU 80 ; preferred FOND (hi) & size (lo)
|
||
smScriptSmallFondSize EQU 82 ; default small FOND (hi) & size (lo)
|
||
smScriptSysFondSize EQU 84 ; default system FOND (hi) & size (lo)
|
||
smScriptAppFondSize EQU 86 ; default application FOND (hi) & size (lo) <9>
|
||
smScriptHelpFondSize EQU 88 ; default Help Mgr FOND (hi) & size (lo) <9>
|
||
smScriptValidStyles EQU 90 ; mask of valid styles for script <18>
|
||
smScriptAliasStyle EQU 92 ; style (set) to use for aliases <18>
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Negative verbs for KeyScript <13><23>
|
||
; -----------------------------------------------------------------------------
|
||
|
||
smKeyNextScript EQU -1 ; Switch to next available script
|
||
smKeySysScript EQU -2 ; Switch to the system script
|
||
smKeySwapScript EQU -3 ; Switch to previously-used script <19>
|
||
|
||
; New for System 7.0
|
||
smKeyNextKybd EQU -4 ; Switch to next keyboard in current keyscript
|
||
smKeySwapKybd EQU -5 ; Switch to previously-used keyboard in current keyscript
|
||
; (smKeySwapKybd is not implemented in System 7.0)
|
||
smKeyDisableKybds EQU -6 ; Disable keyboards not in system or Roman script <23>
|
||
smKeyEnableKybds EQU -7 ; Re-enable keyboards for all enabled scripts <23>
|
||
|
||
; Not currently implemented in System, may be implemented by script systems <19>
|
||
; (Renumbered smKeyNextInputMethod, smKeySwapInputMethod) <23>
|
||
smKeyToggleInline EQU -8 ; Toggle inline input for current keyscript
|
||
smKeyToggleDirection EQU -9 ; Toggle default line direction (TESysJust)
|
||
smKeyNextInputMethod EQU -10 ; Switch to next input method in current keyscript <23>
|
||
smKeySwapInputMethod EQU -11 ; Switch to last-used input method in cur keyscript <23>
|
||
|
||
smKeyDisableKybdSwitch EQU -12 ; Disable switching from the current keyboard <24>
|
||
|
||
smKeySetDirLeftRight EQU -15 ; Set default line dir to left-right, align left <42>
|
||
smKeySetDirRightLeft EQU -16 ; Set default line dir to right-left, align right <42>
|
||
smKeyRoman EQU -17 ; Set keyscript to Roman. Does nothing if Roman-only <46>
|
||
; system, unlike KeyScript(smRoman) which forces <46>
|
||
; an update to current default keyboard for Roman) <46>
|
||
; -----------------------------------------------------------------------------
|
||
; Bits in the smScriptFlags word (bits above 8 are non-static)
|
||
; -----------------------------------------------------------------------------
|
||
|
||
smsfIntellCP EQU 0 ; script has intelligent cut & paste
|
||
smsfSingByte EQU 1 ; script has only single bytes
|
||
smsfNatCase EQU 2 ; native chars have upper & lower case
|
||
smsfContext EQU 3 ; script is contextual <33>
|
||
smsfNoForceFont EQU 4 ; script will not force characters
|
||
smsfB0Digits EQU 5 ; script has alternate digits at B0-B9
|
||
smsfAutoInit EQU 6 ; auto initialize the script <8>
|
||
smsfUnivExt EQU 7 ; script is handled by universal extension <42>
|
||
smsfSynchUnstyledTE EQU 8 ; script synchronizes for unstyled TE <52>
|
||
smsfForms EQU 13 ; uses contextual forms for letters
|
||
smsfLigatures EQU 14 ; uses contextual ligatures
|
||
smsfReverse EQU 15 ; reverses native text, right-left
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Bits in the smGenFlags long. First (high-order) byte is set from itlc flags byte.
|
||
; -----------------------------------------------------------------------------
|
||
smfShowIcon EQU 31 ; show icon even if only one script
|
||
smfDualCaret EQU 30 ; use dual caret for mixed direction text
|
||
smfNameTagEnab EQU 29 ; reserved for internal use <16>
|
||
smfUseAssocFontInfo EQU 28 ; Use the associated font info for FontMetrics calls <45>
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Bits in the itlcFlags byte.
|
||
; -----------------------------------------------------------------------------
|
||
itlcShowIcon EQU 7 ; Show icon even if only one script <41>
|
||
itlcDualCaret EQU 6 ; Use dual caret for mixed direction text <41>
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Bits in the itlcSysFlags word.
|
||
; -----------------------------------------------------------------------------
|
||
itlcSysDirection EQU 15 ; System direction - left to right/right to left <41>
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Roman script constants.
|
||
; -----------------------------------------------------------------------------
|
||
|
||
; The following are here for backward compatibility, but should not be used. <19>
|
||
; This information should be obtained using GetScript.
|
||
romanSysFond EQU $3FFF ; system font id number.
|
||
romanAppFond EQU 3 ; application font id number.
|
||
romanFlags EQU (1<<smsfIntellCP)+(1<<smsfSingByte)+(1<<smsfNatCase) ; roman settings
|
||
|
||
; Script Manager font equates.
|
||
|
||
smFondStart EQU $4000 ; start from 16K.
|
||
smFondEnd EQU $C000 ; past end of range at 48K.
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Simple script constants.
|
||
; -----------------------------------------------------------------------------
|
||
smUprHalfCharSet EQU $80 ; first character code in upper half of Macintosh Character Set <8>
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Macintosh character set extensions
|
||
; -----------------------------------------------------------------------------
|
||
|
||
diaeresisUprY EQU $D9 ; Ÿ
|
||
fraction EQU $DA ; ⁄
|
||
intlCurrency EQU $DB ; €
|
||
leftSingGuillemet EQU $DC ; ‹
|
||
rightSingGuillemet EQU $DD ; ›
|
||
fiLigature EQU $DE ; fi
|
||
flLigature EQU $DF ; fl
|
||
dblDagger EQU $E0 ; ‡
|
||
centeredDot EQU $E1 ; ·
|
||
baseSingQuote EQU $E2 ; ‚
|
||
baseDblQuote EQU $E3 ; „
|
||
perThousand EQU $E4 ; ‰
|
||
circumflexUprA EQU $E5 ; Â
|
||
circumflexUprE EQU $E6 ; Ê
|
||
acuteUprA EQU $E7 ; Á
|
||
diaeresisUprE EQU $E8 ; Ë
|
||
graveUprE EQU $E9 ; È
|
||
acuteUprI EQU $EA ; Í
|
||
circumflexUprI EQU $EB ; Î
|
||
diaeresisUprI EQU $EC ; Ï
|
||
graveUprI EQU $ED ; Ì
|
||
acuteUprO EQU $EE ; Ó
|
||
circumflexUprO EQU $EF ; Ô
|
||
appleLogo EQU $F0 ;
|
||
graveUprO EQU $F1 ; Ò
|
||
acuteUprU EQU $F2 ; Ú
|
||
circumflexUprU EQU $F3 ; Û
|
||
graveUprU EQU $F4 ; Ù
|
||
dotlessLwrI EQU $F5 ; ı
|
||
circumflex EQU $F6 ; ˆ
|
||
tilde EQU $F7 ; ˜
|
||
macron EQU $F8 ; ¯
|
||
breveMark EQU $F9 ; ˘ <34>
|
||
overDot EQU $FA ; ˙
|
||
ringMark EQU $FB ; ˚ <34>
|
||
cedilla EQU $FC ; ¸
|
||
doubleAcute EQU $FD ; ˝
|
||
ogonek EQU $FE ; ˛
|
||
hachek EQU $FF ; (don't type it here - breaks MPW tools!)
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Other new constants for 7.0 <2.7>
|
||
; -----------------------------------------------------------------------------
|
||
|
||
; Constants for truncWhere argument in TruncString and TruncText <2.7>
|
||
|
||
smTruncEnd EQU 0 ; Truncate at end
|
||
smTruncMiddle EQU $4000 ; Truncate in middle
|
||
|
||
; Constants for TruncString and TruncText results <13>
|
||
|
||
smNotTruncated EQU 0 ; No truncation was necessary
|
||
smTruncated EQU 1 ; Truncation performed
|
||
smTruncErr EQU -1 ; General error
|
||
|
||
; Constants for styleRunPosition argument in NPortionText, NDrawJust, NMeasureJust, <2>
|
||
; NChar2Pixel, and NPixel2Char.
|
||
|
||
smOnlyStyleRun EQU 0 ; This is the only style run on the line.
|
||
smLeftStyleRun EQU 1 ; This is leftmost of multiple style runs on the line.
|
||
smRightStyleRun EQU 2 ; This is rightmost of multiple style runs on the line.
|
||
smMiddleStyleRun EQU 3 ; There are multiple style runs on the line and this…
|
||
; …is neither the leftmost nor the rightmost.
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Record declarations for itlc, itlb, itl2, itl4
|
||
; -----------------------------------------------------------------------------
|
||
; Record declaration for international configuration resource (type itlc).
|
||
|
||
ItlcRecord record 0
|
||
itlcSystem ds.w 1 ; default system script.
|
||
itlcReserved ds.w 1 ; reserved
|
||
itlcFontForce ds.b 1 ; default font force flag.
|
||
itlcIntlForce ds.b 1 ; default intl force flag.
|
||
itlcOldKybd ds.b 1 ; MacPlus intl keybd flag <33>
|
||
itlcFlags ds.b 1 ; general flags
|
||
itlcIconOffset ds.w 1 ; keyboard icon offset (not in 7.0) <1.3><33>
|
||
itlcIconSide ds.b 1 ; keybd icon side (R=0,L=$FF) (not 7.0) <1.3><33>
|
||
itlcIconRsvd ds.b 1 ; rsvd for other icon info <1.3><33>
|
||
itlcRegionCode ds.w 1 ; preferred verXxx code <4>
|
||
itlcSysFlags ds.w 1 ; flags for setting system globals <40>
|
||
itlcReserved4 ds.b 32 ; for future use <4><5><40>
|
||
itlcSize equ * ; size of script itlc.
|
||
endr
|
||
|
||
; Record declaration for international bundle resource (type itlb).
|
||
|
||
ItlbRecord record 0
|
||
itlbNumber ds.w 1 ; itl0 ID number.
|
||
itlbDate ds.w 1 ; itl1 ID number.
|
||
itlbSort ds.w 1 ; itl2 ID number.
|
||
itlbFlags ds.w 1 ; Script Flags.
|
||
itlbToken ds.w 1 ; itl4 ID number.
|
||
itlbEncoding ds.w 1 ; itl5 ID # (optional; char encoding). <22>
|
||
itlbLang ds.w 1 ; current language for script
|
||
itlbNumRep ds.b 1 ; number representation code
|
||
itlbDateRep ds.b 1 ; date representation code
|
||
itlbKeys ds.w 1 ; KCHR id number.
|
||
itlbIcon ds.w 1 ; ID # of SICN or kcs#/kcs4/kcs8 suite.
|
||
itlbSize equ * ; size of bundle.
|
||
endr
|
||
|
||
; Extended itlb to support auto initialization of scripts <8>
|
||
ItlbExtRecord record 0
|
||
base ds ItlbRecord ; un-extended itlbRecord
|
||
itlbLocalSize ds.l 1 ; size of script's local record
|
||
itlbMonoFond ds.w 1 ; default monospace FOND ID
|
||
itlbMonoSize ds.w 1 ; default monospace font size
|
||
itlbPrefFond ds.w 1 ; preferred FOND ID
|
||
itlbPrefSize ds.w 1 ; preferred font size
|
||
itlbSmallFond ds.w 1 ; default small FOND ID
|
||
itlbSmallSize ds.w 1 ; default small font size
|
||
itlbSysFond ds.w 1 ; default system FOND ID
|
||
itlbSysSize ds.w 1 ; default system font size
|
||
itlbAppFond ds.w 1 ; default application FOND ID
|
||
itlbAppSize ds.w 1 ; default application font size
|
||
itlbHelpFond ds.w 1 ; default Help Mgr FOND ID <9>
|
||
itlbHelpSize ds.w 1 ; default Help Mgr font size <9>
|
||
itlbValidStyles ds.b 1 ; mask of valid styles for script <18>
|
||
itlbAliasStyle ds.b 1 ; style (set) to mark aliases <18>
|
||
itlbExtSize equ * ; size of ItlbExtRecord
|
||
endr
|
||
|
||
; itl2 routine vector offsets.
|
||
|
||
initHook EQU 0
|
||
fetchHook EQU 2
|
||
vernierHook EQU 4
|
||
projectHook EQU 6
|
||
rsvdHook EQU 8
|
||
exitHook EQU 10
|
||
|
||
; Note that the value of itl2FlagsOffset is equal
|
||
; to the value of rsvdHook. In the old itl2
|
||
; format the value at this location was an
|
||
; unused routine offset. In the new itl2
|
||
; format, the value at this location is a flag
|
||
; ($ffff) indicating the new format that includes
|
||
; the offsets to the tables for LwrString and
|
||
; tables for the Roman versions of the CharType,
|
||
; Transliterate and FindWord.
|
||
|
||
itl2FlagsOffset EQU 8
|
||
; itl2 table offsets
|
||
|
||
typeListOffset EQU 12
|
||
classArrayOffset EQU 14
|
||
upperListOffset EQU 16
|
||
lowerListOffset EQU 18
|
||
upperNoMarkListOffset EQU 20
|
||
wordTableOffset EQU 22
|
||
wrapTableOffset EQU 24
|
||
noMarkListOffset EQU 26
|
||
itl2VersionOffset EQU 28
|
||
itl2FormatOffset EQU 30 ; <28>
|
||
|
||
; New for System 7.0:<2.5>
|
||
; itl2 table/code lengths.
|
||
|
||
wordTableLen EQU 54 ; <2.5>
|
||
wrapTableLen EQU 56 ; <2.5>
|
||
findScriptTableOffset EQU 60 ; <8>
|
||
findScriptTableLen EQU 62 ; <8>
|
||
|
||
; New for System 7.0:
|
||
; itl2FormatOffset definitions
|
||
hdrExtensionsExist EQU 1 ; <28>
|
||
|
||
; String data structure for itl2 stack frames.
|
||
|
||
IUStrData record 0
|
||
curChar ds.w 1 ; current character.
|
||
mapChar ds.w 1 ; projected character.
|
||
decChar ds.w 1 ; decision char for weak equality.
|
||
bufChar ds.b 1 ; buffer for expansion.
|
||
justAfter ds.b 1 ; boolean for AE vs ligature-AE.
|
||
ignChar ds.b 1 ; flag: ignore char.
|
||
noFetch ds.b 1 ; flag: no fetch of next.
|
||
strCnt ds.w 1 ; length word.
|
||
strPtr ds.l 1 ; current ptr to string.
|
||
endr
|
||
|
||
; Stack frame for itl2 sorting routines.
|
||
|
||
IUSortFrame record {oldA6},decrement
|
||
result ds.w 1
|
||
aStrText ds.l 1
|
||
bStrText ds.l 1
|
||
aStrLen ds.w 1
|
||
bStrLen ds.w 1
|
||
return ds.l 1
|
||
oldA6 ds.l 1
|
||
aInfo ds IUStrData
|
||
bInfo ds IUStrData
|
||
wantMag ds.b 1 ; 0 to use primary differences only; else 1 <33>
|
||
weakEq ds.b 1 ; Signals at most weak equality.
|
||
msLock ds.b 1 ; (obsolete, not used)
|
||
weakMag ds.b 1 ; -1 to force magnitude result (-1,0,1); else 0 <33>
|
||
supStorage ds.b 18 ; extra storage.
|
||
weakAPtr ds.l 1 ; sup. pointer
|
||
weakBPtr ds.l 1 ; sup. pointer
|
||
lkSize equ * ; frame size.
|
||
paramBytes equ aStrText-return
|
||
endr
|
||
|
||
; New for System 7.0:
|
||
; New stack frame for itl2 sorting routines in System 7.0; adds itl2Handle field. <5>
|
||
|
||
IUNSortFrame record {oldA6},decrement
|
||
result ds.w 1
|
||
aStrText ds.l 1
|
||
bStrText ds.l 1
|
||
aStrLen ds.w 1
|
||
bStrLen ds.w 1
|
||
return ds.l 1
|
||
oldA6 ds.l 1
|
||
aInfo ds IUStrData
|
||
bInfo ds IUStrData
|
||
wantMag ds.b 1 ; 0 to use primary differences only; else 1 <33>
|
||
weakEq ds.b 1 ; Signals at most weak equality.
|
||
msLock ds.b 1 ; (obsolete, not used)
|
||
weakMag ds.b 1 ; -1 to force magnitude result (-1,0,1); else 0 <33>
|
||
supStorage ds.b 18 ; extra storage.
|
||
weakAPtr ds.l 1 ; sup. pointer
|
||
weakBPtr ds.l 1 ; sup. pointer
|
||
itl2Handle ds.l 1 ; itl2 handle, if supplied <2.3>
|
||
lkSize equ * ; frame size.
|
||
paramBytes equ aStrText-return
|
||
endr
|
||
|
||
Itl4Rec record 0,increment ; (added comments <33>)
|
||
flags ds.w 1 ; reserved
|
||
resourceType ds.l 1 ; contains 'itl4'
|
||
resourceNum ds.w 1 ; resource ID
|
||
version ds.w 1 ; version number
|
||
resHeader1 ds.l 1 ; reserved
|
||
resHeader2 ds.l 1 ; reserved
|
||
numTables ds.w 1 ; number of tables, one-based
|
||
; the following offsets are from beginning of resource
|
||
mapOffset ds.l 1 ; offset to table that maps byte to token
|
||
strOffset ds.l 1 ; offset to routine that copies canonical string
|
||
fetchOffset ds.l 1 ; offset to routine that gets next byte of character
|
||
unTokenOffset ds.l 1 ; offset to table that maps token to canonical string
|
||
defPartsOffset ds.l 1 ; offset to default number parts table
|
||
resOffset6 ds.l 1 ; reserved
|
||
resOffset7 ds.l 1 ; reserved
|
||
resOffset8 ds.l 1 ; reserved
|
||
itl4HeaderSize equ *
|
||
; the rest is data pointed to by offsets.
|
||
endr
|
||
|
||
; New for System 7.0: <5>
|
||
|
||
NItl4Rec record 0,increment ; (added comments <33>)
|
||
flags ds.w 1 ; reserved
|
||
resourceType ds.l 1 ; contains 'itl4'
|
||
resourceNum ds.w 1 ; resource ID
|
||
version ds.w 1 ; version number
|
||
format ds.w 1 ; format code <29>
|
||
resHeader ds.w 1 ; reserved <29>
|
||
resHeader2 ds.l 1 ; reserved
|
||
numTables ds.w 1 ; number of tables, one-based
|
||
; the following offsets are from beginning of resource
|
||
mapOffset ds.l 1 ; offset to table that maps byte to token
|
||
strOffset ds.l 1 ; offset to routine that copies canonical string
|
||
fetchOffset ds.l 1 ; offset to routine that gets next byte of character
|
||
unTokenOffset ds.l 1 ; offset to table that maps token to canonical string
|
||
defPartsOffset ds.l 1 ; offset to default number parts table
|
||
whtSpListOffset ds.l 1 ; offset to white space code list <2.3><15>
|
||
resOffset7 ds.l 1 ; reserved
|
||
resOffset8 ds.l 1 ; reserved
|
||
resLength1 ds.w 1 ; reserved <2.5>
|
||
resLength2 ds.w 1 ; reserved <2.5>
|
||
resLength3 ds.w 1 ; reserved <2.5>
|
||
unTokenLength ds.w 1 ; length of untoken table <2.5><9>
|
||
defPartsLength ds.w 1 ; length of default number parts table <2.5><9>
|
||
whtSpListLength ds.w 1 ; length of white space code list <2.5><9><20>
|
||
resLength7 ds.w 1 ; reserved <2.5>
|
||
resLength8 ds.w 1 ; reserved <2.5>
|
||
nItl4HeaderSize equ * ; <22>
|
||
; the rest is data pointed to by offsets.
|
||
endr
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Record declarations and constants for date/time/location handling
|
||
; -----------------------------------------------------------------------------
|
||
|
||
LongDateRec record 0 ; zero any fields not used!
|
||
era ds.w 1
|
||
year ds.w 1
|
||
month ds.w 1
|
||
day ds.w 1
|
||
hour ds.w 1
|
||
minute ds.w 1
|
||
second ds.w 1
|
||
dayOfWeek ds.w 1
|
||
dayOfYear ds.w 1
|
||
weekOfYear ds.w 1
|
||
pm ds.w 1
|
||
ldReserved ds.w 3
|
||
LongDateRecSize equ *
|
||
endR
|
||
|
||
LongDateTime record 0 ; record for comp type
|
||
highLong ds.l 1
|
||
lowLong ds.l 1
|
||
endR
|
||
|
||
; date equates constants
|
||
|
||
LongDateField record 0 ;DateField: enum type
|
||
eraField ds.b 1
|
||
yearField ds.b 1
|
||
monthField ds.b 1
|
||
dayField ds.b 1
|
||
hourField ds.b 1
|
||
minuteField ds.b 1
|
||
secondField ds.b 1
|
||
dayOfWeekField ds.b 1
|
||
dayOfYearField ds.b 1
|
||
weekOfYearField ds.b 1
|
||
pmField ds.b 1
|
||
res1Field ds.b 1
|
||
res2Field ds.b 1
|
||
res3Field ds.b 1
|
||
|
||
maxDateField equ pmField ; currently largest used field
|
||
|
||
eraMask equ 1<<eraField
|
||
yearMask equ 1<<yearField
|
||
monthMask equ 1<<monthField
|
||
dayMask equ 1<<dayField
|
||
hourMask equ 1<<hourField
|
||
minuteMask equ 1<<minuteField
|
||
secondMask equ 1<<secondField
|
||
dayOfWeekMask equ 1<<dayOfWeekField
|
||
dayOfYearMask equ 1<<dayOfYearField
|
||
weekOfYearMask equ 1<<weekOfYearField
|
||
pmMask equ 1<<pmField
|
||
|
||
dateStdMask equ eraMask++yearMask++monthMask++dayMask++hourMask++minuteMask++secondMask
|
||
endR
|
||
|
||
smallDateBit EQU 31 ; Restrict valid date/time to range of Time global
|
||
togChar12HourBit EQU 30 ; If toggling hour by char, accept hours 1..12 only
|
||
togCharZCycleBit EQU 29 ; Modifier for togChar12HourBit: accept hours 0..11 only
|
||
togDelta12HourBit EQU 28 ; If toggling hour up/down, restrict to 12-hour range (am/pm)
|
||
genCdevRangeBit EQU 27 ; Restrict date/time to range used by genl CDEV
|
||
validDateFields EQU -1
|
||
|
||
|
||
TogglePB record 0
|
||
togFlags ds.l 1 ; longint; caller normally sets low word to dateStdMask = $7F
|
||
amChars ds.l 1 ; ResType; from 'itl0', but uppercased <33>
|
||
pmChars ds.l 1 ; ResType; from 'itl0', but uppercased <33>
|
||
reserved ds.l 4 ; array [0..3] of Longint
|
||
endR
|
||
|
||
ToggleResults record 0
|
||
toggleUndefined ds.b 1
|
||
toggleOk ds.b 1
|
||
toggleBadField ds.b 1
|
||
toggleBadDelta ds.b 1
|
||
toggleBadChar ds.b 1
|
||
toggleUnknown ds.b 1
|
||
toggleBadNum ds.b 1 ; can't use char as number
|
||
toggleOutOfRange EQU * ; synonym for toggleErr3
|
||
toggleErr3 ds.b 1 ; reserved
|
||
toggleErr4 ds.b 1 ; reserved
|
||
toggleErr5 ds.b 1 ; reserved
|
||
endR
|
||
|
||
MachineLocation record 0
|
||
latitude ds.l 1 ; fract
|
||
longitude ds.l 1 ; fract
|
||
dlsDelta ds.b 1 ; signed byte
|
||
gmtDelta ds.b 3 ; 3 byte signed integer
|
||
endR
|
||
|
||
|
||
; String2Date/String2Time status values
|
||
|
||
fatalDateTime EQU $8000 ; String2Date and String2Time mask to a fatal error
|
||
longDateFound EQU 1 ; String2Date mask to long date found
|
||
leftOverChars EQU 2 ; String2Date & Time mask to warn of left over characters
|
||
sepNotIntlSep EQU 4 ; String2Date & Time mask to warn of non-standard separators
|
||
fieldOrderNotIntl EQU 8 ; String2Date & Time mask to warn of non-standard field order
|
||
extraneousStrings EQU 16 ; String2Date & Time mask to warn of unparsable strings in text
|
||
tooManySeps EQU 32 ; String2Date & Time mask to warn of too many separators
|
||
sepNotConsistent EQU 64 ; String2Date & Time mask to warn of inconsistent separators
|
||
tokenErr EQU fatalDateTime + 256 ; String2Date & Time mask for 'tokenizer err encountered'
|
||
cantReadUtilities EQU fatalDateTime + 512 ;
|
||
dateTimeNotFound EQU fatalDateTime + 1024 ; String2Date mask for 'date was not found'
|
||
dateTimeInvalid EQU fatalDateTime + 2048 ; Invalid time/date e.g. 13:61PM
|
||
|
||
|
||
DateOrders RECORD 0,INCREMENT
|
||
mdy DS.B 1
|
||
dmy DS.B 1
|
||
ymd DS.B 1
|
||
myd DS.B 1
|
||
dym DS.B 1
|
||
ydm DS.B 1
|
||
ENDR
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Constants and record declarations for tokenizer (added comments <33>)
|
||
; -----------------------------------------------------------------------------
|
||
|
||
tokenIntl EQU 4 ; the itl resource number for the tokenizer
|
||
|
||
tokenEmpty EQU -1 ; used internally as an empty flag
|
||
tokenUnknown EQU 0 ; chars that do not match a defined token type
|
||
tokenWhite EQU 1 ; white space
|
||
tokenLeftLit EQU 2 ; literal begin
|
||
tokenRightLit EQU 3 ; literal end
|
||
tokenAlpha EQU 4 ; alphabetic
|
||
tokenNumeric EQU 5 ; numeric
|
||
tokenNewLine EQU 6 ; new line
|
||
tokenLeftComment EQU 7 ; open comment
|
||
tokenRightComment EQU 8 ; close comment
|
||
tokenLiteral EQU 9 ; literal
|
||
tokenEscape EQU 10 ; character escape (e.g. '\' in "\n", "\t")
|
||
tokenAltNum EQU 11 ; alternate number (e.g. $B0-B9 in Arabic,Hebrew)
|
||
tokenRealNum EQU 12 ; real number
|
||
tokenAltReal EQU 13 ; alternate real number
|
||
tokenReserve1 EQU 14 ; reserved
|
||
tokenReserve2 EQU 15 ; reserved
|
||
tokenLeftParen EQU 16 ; open parenthesis
|
||
tokenRightParen EQU 17 ; close parenthesis
|
||
tokenLeftBracket EQU 18 ; open square bracket
|
||
tokenRightBracket EQU 19 ; close square bracket
|
||
tokenLeftCurly EQU 20 ; open curly bracket
|
||
tokenRightCurly EQU 21 ; close curly bracket
|
||
tokenLeftEnclose EQU 22 ; open guillemet
|
||
tokenRightEnclose EQU 23 ; close guillemet
|
||
tokenPlus EQU 24
|
||
tokenMinus EQU 25
|
||
tokenAsterisk EQU 26 ; times/multiply
|
||
tokenDivide EQU 27
|
||
tokenPlusMinus EQU 28 ; plus or minus symbol
|
||
tokenSlash EQU 29
|
||
tokenBackSlash EQU 30
|
||
tokenLess EQU 31 ; less than symbol
|
||
tokenGreat EQU 32 ; greater than symbol
|
||
tokenEqual EQU 33
|
||
tokenLessEqual2 EQU 34 ; less than or equal, 2 characters (e.g. <=)
|
||
tokenLessEqual1 EQU 35 ; less than or equal, 1 character
|
||
tokenGreatEqual2 EQU 36 ; greater than or equal, 2 characters (e.g. >=)
|
||
tokenGreatEqual1 EQU 37 ; greater than or equal, 1 character
|
||
token2Equal EQU 38 ; double equal (e.g. ==)
|
||
tokenColonEqual EQU 39 ; colon equal
|
||
tokenNotEqual EQU 40 ; not equal, 1 character
|
||
tokenLessGreat EQU 41 ; less/greater, Pascal not equal (e.g. <>)
|
||
tokenExclamEqual EQU 42 ; exclamation equal, C not equal (e.g. !=)
|
||
tokenExclam EQU 43 ; exclamation point
|
||
tokenTilde EQU 44 ; centered tilde (fix spelling <15>)
|
||
tokenComma EQU 45
|
||
tokenPeriod EQU 46
|
||
tokenLeft2Quote EQU 47 ; open double quote
|
||
tokenRight2Quote EQU 48 ; close double quote
|
||
tokenLeft1Quote EQU 49 ; open single quote
|
||
tokenRight1Quote EQU 50 ; close single quote
|
||
token2Quote EQU 51 ; double quote
|
||
token1Quote EQU 52 ; single quote
|
||
tokenSemicolon EQU 53
|
||
tokenPercent EQU 54
|
||
tokenCaret EQU 55 ; (fix spelling <33>)
|
||
tokenUnderline EQU 56
|
||
tokenAmpersand EQU 57
|
||
tokenAtSign EQU 58
|
||
tokenBar EQU 59 ; vertical bar
|
||
tokenQuestion EQU 60
|
||
tokenPi EQU 61 ; lower-case pi
|
||
tokenRoot EQU 62 ; square root symbol
|
||
tokenSigma EQU 63 ; capital sigma
|
||
tokenIntegral EQU 64 ; integral sign
|
||
tokenMicro EQU 65
|
||
tokenCapPi EQU 66 ; capital pi
|
||
tokenInfinity EQU 67
|
||
tokenColon EQU 68
|
||
tokenHash EQU 69 ; e.g. #
|
||
tokenDollar EQU 70
|
||
tokenNoBreakSpace EQU 71 ; non-breaking space
|
||
tokenFraction EQU 72
|
||
tokenIntlCurrency EQU 73
|
||
tokenLeftSingGuillemet EQU 74
|
||
tokenRightSingGuillemet EQU 75 ; (Fixed spelling <19>)
|
||
tokenPerThousand EQU 76
|
||
tokenEllipsis EQU 77 ; <15>
|
||
tokenCenterDot EQU 78 ; <15>
|
||
tokenNil EQU 127
|
||
|
||
delimPad EQU -2
|
||
|
||
; obsolete, misspelled token names kept for backward compatibility (moved here <33>)
|
||
|
||
tokenTilda EQU 44 ; keep wrong spelling for backward compatibility <15>
|
||
tokenCarat EQU 55
|
||
|
||
TokenResults record 0
|
||
tokenOK ds.b 1
|
||
tokenOverflow ds.b 1
|
||
stringOverflow ds.b 1
|
||
badDelim ds.b 1
|
||
badEnding ds.b 1
|
||
crash ds.b 1
|
||
endr
|
||
|
||
TokenBlock RECORD 0,INCR ; (added comments <33>)
|
||
source ds.l 1 ; pointer to stream of characters
|
||
sourceLength ds.l 1 ; length of source stream
|
||
tokenList ds.l 1 ; pointer to array of tokens
|
||
tokenLength ds.l 1 ; maximum length of TokenList
|
||
tokenCount ds.l 1 ; number tokens generated by tokenizer
|
||
stringList ds.l 1 ; pointer to stream of identifiers
|
||
stringLength ds.l 1 ; length of string list
|
||
stringCount ds.l 1 ; number of bytes currently used
|
||
doString ds.b 1 ; Boolean: make strings & put into StringList
|
||
doAppend ds.b 1 ; Boolean: append to TokenList rather than replace
|
||
doAlphanumeric ds.b 1 ; Boolean: identifiers may include numeric
|
||
doNest ds.b 1 ; Boolean: do comments nest?
|
||
leftDelims ds.w 2
|
||
rightDelims ds.w 2
|
||
leftComment ds.l 2
|
||
rightComment ds.l 2
|
||
escapeCode ds.w 1 ; escape symbol code
|
||
decimalCode ds.w 1
|
||
itlResource ds.l 1 ; handle to itl4 resource of current script
|
||
reserved ds.l 8 ; must be zero!
|
||
ENDR
|
||
|
||
TokenRec RECORD 0,INCR ; (added comments <33>)
|
||
theToken ds.w 1 ; TokenType
|
||
position ds.l 1 ; Ptr into original source
|
||
length ds.l 1 ; length of text in original source
|
||
stringPosition ds.l 1 ; StringPtr to copy of identifier
|
||
tokenRecSize equ *
|
||
ENDR
|
||
|
||
UntokenTable Record 0, INCR
|
||
len ds.w 1
|
||
lastToken ds.w 1
|
||
index ds.w 256 ; index table; last = lastToken
|
||
;list of pascal strings here. index pointers are from front of table
|
||
Endr
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Record declarations and constants for formatted number handling
|
||
; -----------------------------------------------------------------------------
|
||
|
||
; FormatClass enumeration
|
||
|
||
fPositive EQU 0
|
||
fNegative EQU 1
|
||
fZero EQU 2
|
||
|
||
; FormatResultType enumeration
|
||
|
||
fFormatOK EQU 0
|
||
fBestGuess EQU 1
|
||
fOutOfSynch EQU 2
|
||
fSpuriousChars EQU 3
|
||
fMissingDelimiter EQU 4
|
||
fExtraDecimal EQU 5
|
||
fMissingLiteral EQU 6
|
||
fExtraExp EQU 7
|
||
fFormatOverflow EQU 8
|
||
fFormStrIsNAN EQU 9
|
||
fBadPartsTable EQU 10
|
||
fExtraPercent EQU 11
|
||
fExtraSeparator EQU 12
|
||
fEmptyFormatString EQU 13
|
||
|
||
WideChar record 0,increment
|
||
a ds.b 2 ; PACKED ARRAY[0..1] OF CHAR
|
||
ORG a
|
||
b ds.w 1 ; INTEGER
|
||
endr
|
||
|
||
WideCharArr record 0,increment
|
||
size ds.w 1 ; INTEGER
|
||
data ds.w 10 ; PACKED ARRAY[0..9] OF WideChar
|
||
endr
|
||
|
||
fVNumber EQU 0 ; first version of NumFormatString
|
||
|
||
NumFormatString record 0,increment
|
||
fLength ds.b 1 ; length of format String
|
||
fVersion ds.b 1 ; version number
|
||
data ds.b 254 ; private data <33>
|
||
endr
|
||
|
||
;Number format equates
|
||
|
||
tokLeftQuote EQU 1
|
||
tokRightQuote EQU 2
|
||
tokLeadPlacer EQU 3
|
||
tokLeader EQU 4
|
||
tokNonLeader EQU 5
|
||
tokZeroLead EQU 6
|
||
tokPercent EQU 7
|
||
tokPlusSign EQU 8
|
||
tokMinusSign EQU 9
|
||
tokThousands EQU 10
|
||
tokSeparator EQU 12 ; 11 is reserved
|
||
tokEscape EQU 13
|
||
tokDecPoint EQU 14
|
||
tokEPlus EQU 15
|
||
tokEMinus EQU 16
|
||
tokMaxSymbols EQU 31
|
||
|
||
NumberParts record 0,increment
|
||
version ds.w 1 ; integer
|
||
data ds.w tokMaxSymbols ; ARRAY[tokLeftQuote..tokMaxSymbols] OF WideChar
|
||
pePlus ds WideCharArr ; 64
|
||
peMinus ds WideCharArr ; 86
|
||
peMinusPlus ds WideCharArr ; 108
|
||
altNumTable ds WideCharArr ; 130
|
||
reserved ds.b 20
|
||
numberPartsSize equ *
|
||
curNumberPartsVersion equ 1
|
||
endr
|
||
|
||
TableDirectoryRecord record 0,increment
|
||
tableSignature ds.l 1 ; 4 byte long table name */
|
||
reserved ds.l 1 ; Reserved for internal use */
|
||
tableStartOffset ds.l 1 ; Table start offset in byte*/
|
||
tableSize ds.l 1 ; Table size in byte*/
|
||
endr
|
||
|
||
Itl5Record record 0,increment
|
||
versionNumber ds.l 1 ; itl5 resource version number */
|
||
numberOfTables ds.w 1 ; Number of tables it contains */
|
||
reserved ds.w 3 ; Reserved for internal use */
|
||
tableDirectory ds TableDirectoryRecord ; Table directory records */
|
||
endr
|
||
|
||
RuleBasedTrslRecord record 0,increment
|
||
sourceType ds.w 1 ; Transliterate target type for the LHS of the rule */
|
||
targetType ds.w 1 ; Transliterate target type for the RHS of the rule */
|
||
formatNumber ds.w 1 ; Transliterate resource format number */
|
||
propertyFlag ds.w 1 ; Transliterate property flags */
|
||
numberOfRules ds.w 1 ; Number of rules following this field */
|
||
endr
|
||
|
||
|
||
|
||
FVector record 0,increment
|
||
start ds.w 1 ; INTEGER
|
||
length ds.w 1 ; INTEGER
|
||
endr
|
||
|
||
TripleInt record 0,increment
|
||
zzz1 ds FVector
|
||
zzz2 ds FVector
|
||
zzz3 ds FVector
|
||
endr
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Record for FindScriptRun result
|
||
; -----------------------------------------------------------------------------
|
||
|
||
ScriptRunStatus record 0,increment
|
||
script ds.b 1
|
||
variant ds.b 1
|
||
endr
|
||
|
||
; -----------------------------------------------------------------------------
|
||
; Selectors and macros for the Script Manager trap call, _ScriptUtil
|
||
; -----------------------------------------------------------------------------
|
||
|
||
Macro
|
||
DefSMgrRoutine &name,&selector,&argSize,&returnSize
|
||
sm&name: equ &selector**$FFFF
|
||
smSel&name: equ (1<<31)++(&returnSize<<24)++(&argSize<<16)++sm&name
|
||
endm
|
||
|
||
; Trap routine selectors: script manager 1.0
|
||
|
||
smFontScript EQU 0
|
||
smIntlScript EQU 2
|
||
smKybdScript EQU 4
|
||
smFont2Script EQU 6
|
||
smGetEnvirons EQU 8
|
||
smSetEnvirons EQU 10
|
||
smGetScript EQU 12
|
||
smSetScript EQU 14
|
||
smHighCall EQU smSetScript ; boundary between script mgr & script systems
|
||
smCharByte EQU 16
|
||
smCharType EQU 18
|
||
smPixel2Char EQU 20
|
||
smChar2Pixel EQU 22
|
||
smTranslit EQU 24
|
||
smFindWord EQU 26
|
||
smHiliteText EQU 28
|
||
smDrawJust EQU 30
|
||
smMeasureJust EQU 32
|
||
smParseTable EQU 34
|
||
|
||
; Full Trap routine selectors: script manager 1.0
|
||
|
||
; format newBit return/args
|
||
smSelFontScript EQU (1<<31)++($0200<<16)++smFontScript
|
||
smSelIntlScript EQU (1<<31)++($0200<<16)++smIntlScript
|
||
smSelKybdScript EQU (1<<31)++($0002<<16)++smKybdScript
|
||
smSelFont2Script EQU (1<<31)++($0202<<16)++smFont2Script
|
||
smSelGetEnvirons EQU (1<<31)++($0402<<16)++smGetEnvirons
|
||
smSelSetEnvirons EQU (1<<31)++($0206<<16)++smSetEnvirons
|
||
smSelGetScript EQU (1<<31)++($0404<<16)++smGetScript
|
||
smSelSetScript EQU (1<<31)++($0208<<16)++smSetScript
|
||
smSelCharType EQU (1<<31)++($0206<<16)++smCharType
|
||
smSelCharByte EQU (1<<31)++($0206<<16)++smCharByte
|
||
smSelPixel2Char EQU (1<<31)++($020E<<16)++smPixel2Char
|
||
smSelChar2Pixel EQU (1<<31)++($020C<<16)++smChar2Pixel
|
||
smSelTranslit EQU (1<<31)++($020E<<16)++smTranslit
|
||
smSelFindWord EQU (1<<31)++($0012<<16)++smFindWord
|
||
smSelHiliteText EQU (1<<31)++($000E<<16)++smHiliteText
|
||
smSelDrawJust EQU (1<<31)++($0008<<16)++smDrawJust
|
||
smSelMeasureJust EQU (1<<31)++($000C<<16)++smMeasureJust
|
||
smSelParseTable EQU (1<<31)++($0204<<16)++smParseTable
|
||
|
||
; selectors for general script manager 2.0 routines
|
||
|
||
DefSmgrRoutine StyledLineBreak, -2,28,2
|
||
DefSmgrRoutine GetFormatOrder, -4,18,0
|
||
DefSmgrRoutine IntlTokenize, -6,4,2
|
||
|
||
DefSmgrRoutine InitDateCache, -8,4,2
|
||
DefSmgrRoutine String2Date, -10,20,2
|
||
DefSmgrRoutine String2Time, -12,20,2
|
||
|
||
DefSmgrRoutine LongDate2Secs, -14,8,0
|
||
DefSmgrRoutine LongSecs2Date, -16,8,0
|
||
DefSmgrRoutine ToggleDate, -18,14,2
|
||
|
||
DefSmgrRoutine Str2Format, -20,12,2
|
||
DefSmgrRoutine Format2Str, -22,16,2
|
||
DefSmgrRoutine FormatX2Str, -24,16,2
|
||
DefSmgrRoutine FormatStr2X, -26,16,2
|
||
DefSmgrRoutine ValidDate, -28,12,2
|
||
|
||
; selectors for script-specific script manager 2.0 routines
|
||
|
||
DefSmgrRoutine PortionText, 36,8,4
|
||
DefSmgrRoutine FindScriptRun, 38,12,2
|
||
DefSmgrRoutine VisibleLength, 40,8,4
|
||
DefSmgrRoutine IsSpecialFont, 42,2,2 ; implemented only by two-byte scripts
|
||
DefSmgrRoutine RawPrinterValues, 44,22,2 ; implemented only by two-byte scripts
|
||
|
||
; selectors for general script manager 7.0 routines <2.1><2.4>
|
||
|
||
DefSmgrRoutine NFindWord, -30,18,0 ; smSel… = $8012FFE2 <2.3>
|
||
DefSmgrRoutine TruncString, -32,8,2 ; smSel… = $8208FFE0 <2.3><2.7><6>
|
||
DefSmgrRoutine TruncText, -34,12,2 ; smSel… = $820CFFDE <2.3><2.7><6>
|
||
DefSmgrRoutine ReplaceText, -36,12,2 ; smSel… = $820CFFDC <2.3>
|
||
|
||
; selectors for script-specific script manager 7.0 routines <2>
|
||
|
||
DefSmgrRoutine NPixel2Char, 46,34,2 ; $8222002E <2><17>
|
||
DefSmgrRoutine NChar2Pixel, 48,28,2 ; $821C0030 <2><17>
|
||
DefSmgrRoutine NDrawJust, 50,22,0 ; $80160032 <2><17>
|
||
DefSmgrRoutine NMeasureJust, 52,26,0 ; $801A0034 <2><17>
|
||
DefSmgrRoutine NPortionText, 54,18,4 ; $84120036 <2><17>
|
||
|
||
; selectors for general script manager 7.1 routines <2.1><2.4>
|
||
|
||
DefSmgrRoutine SCLwrString, -74,10,0 ; smSel… = $800AFFB6 <50>
|
||
|
||
; function codes for SCLwrString <50>
|
||
sclwrDoLower equ $0000 ; where these bits go in _LowerText <50>
|
||
sclwrDoStrip equ $0200 ; where these bits go in _StripText <50>
|
||
sclwrDoUpper equ $0400 ; where these bits go in _UpperText <50>
|
||
sclwrDoStripUpper equ $0600 ; where these bits go in _StripUpperText <50>
|
||
|
||
; selectors for script-specific script manager 7.1 routines <43>
|
||
|
||
DefSmgrRoutine GetUtilityAddress, 56, 4, 4 ; $84040038 implemented only by one-byte scripts
|
||
DefSmgrRoutine SetUtilityAddress, 58, 8, 0 ; $8008003A implemented only by one-byte scripts
|
||
DefSmgrRoutine GetQDPatchAddress, 60, 6, 4 ; $8406003C implemented only by one-byte scripts
|
||
DefSmgrRoutine SetQDPatchAddress, 62, 10, 0 ; $800A003E implemented only by one-byte scripts
|
||
|
||
smSelGetScriptUtilityAddress EQU (1<<30)++smSelGetUtilityAddress ; <43><54>
|
||
smSelSetScriptUtilityAddress EQU (1<<30)++smSelSetUtilityAddress ; <43><54>
|
||
smSelGetScriptQDPatchAddress EQU (1<<30)++smSelGetQDPatchAddress ; <43><54>
|
||
smSelSetScriptQDPatchAddress EQU (1<<30)++smSelSetQDPatchAddress ; <43><54>
|
||
|
||
smSelCharacterByteType EQU (1<<30)++smSelCharByte ; <50><54>
|
||
smSelCharacterType EQU (1<<30)++smSelCharType ; <50><54>
|
||
smSelTransliterateText EQU (1<<30)++smSelTranslit ; <50><54>
|
||
smSelFindWordBreaks EQU (1<<30)++smSelFindWord ; <50><54>
|
||
smSelFillParseTable EQU (1<<30)++smSelParseTable ; <50><54>
|
||
|
||
;------------------------------------------------------------------------------
|
||
; Trap routine macros: Script Manager 1.0
|
||
|
||
macro
|
||
_FontScript
|
||
move.l #smSelFontScript,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_IntlScript
|
||
move.l #smSelIntlScript,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_KeyScript
|
||
move.l #smSelKybdScript,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_Font2Script
|
||
move.l #smSelFont2Script,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_FontToScript
|
||
move.l #smSelFont2Script,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_GetEnvirons
|
||
move.l #smSelGetEnvirons,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_GetScriptManagerVariable
|
||
move.l #smSelGetEnvirons,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_SetEnvirons
|
||
move.l #smSelSetEnvirons,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_SetScriptManagerVariable
|
||
move.l #smSelSetEnvirons,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_GetScript
|
||
move.l #smSelGetScript,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_GetScriptVariable
|
||
move.l #smSelGetScript,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_SetScript
|
||
move.l #smSelSetScript,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_SetScriptVariable
|
||
move.l #smSelSetScript,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_CharByte
|
||
move.l #smSelCharByte,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_CharType
|
||
move.l #smSelCharType,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_Pixel2Char
|
||
move.l #smSelPixel2Char,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_Char2Pixel
|
||
move.l #smSelChar2Pixel,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_Transliterate
|
||
move.l #smSelTranslit,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_FindWord
|
||
move.l #smSelFindWord,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_HiliteText
|
||
move.l #smSelHiliteText,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_DrawJust
|
||
move.l #smSelDrawJust,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_MeasureJust
|
||
move.l #smSelMeasureJust,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_ParseTable
|
||
move.l #smSelParseTable,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
;------------------------------------------------------------------------------
|
||
; Trap routine macros: Script Manager 2.0
|
||
|
||
macro
|
||
_GetFormatOrder
|
||
move.l #smSelGetFormatOrder,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_StyledLineBreak
|
||
move.l #smSelStyledLineBreak,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_IntlTokenize
|
||
move.l #smSelIntlTokenize,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_InitDateCache
|
||
move.l #smSelInitDateCache,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_String2Date
|
||
move.l #smSelString2Date,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_StringToDate
|
||
move.l #smSelString2Date,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_String2Time
|
||
move.l #smSelString2Time,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_StringToTime
|
||
move.l #smSelString2Time,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_LongSecs2Date
|
||
move.l #smSelLongSecs2Date,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_LongSecondsToDate
|
||
move.l #smSelLongSecs2Date,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_LongDate2Secs
|
||
move.l #smSelLongDate2Secs,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_LongDateToSeconds
|
||
move.l #smSelLongDate2Secs,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_Str2Format
|
||
move.l #smSelStr2Format,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_StringToFormatRec
|
||
move.l #smSelStr2Format,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_Format2Str
|
||
move.l #smSelFormat2Str,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_FormatRecToString
|
||
move.l #smSelFormat2Str,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_FormatX2Str
|
||
move.l #smSelFormatX2Str,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_ExtendedToString
|
||
move.l #smSelFormatX2Str,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_FormatStr2X
|
||
move.l #smSelFormatStr2X,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_StringToExtended
|
||
move.l #smSelFormatStr2X,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_ValidDate
|
||
move.l #smSelValidDate,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_ToggleDate
|
||
move.l #smSelToggleDate,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_PortionText
|
||
move.l #smSelPortionText,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_FindScriptRun
|
||
move.l #smSelFindScriptRun,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_ReadLocation
|
||
movea.l (sp)+,A0
|
||
move.l #$000C00E4,D0
|
||
_ReadXPRam
|
||
endm
|
||
|
||
macro
|
||
_WriteLocation
|
||
movea.l (sp)+,A0
|
||
move.l #$000C00E4,D0
|
||
_WriteXPRam
|
||
endm
|
||
|
||
macro
|
||
_VisibleLength
|
||
move.l #smSelVisibleLength,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_IsSpecialFont
|
||
move.l #smSelIsSpecialFont,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_RawPrinterValues
|
||
move.l #smSelRawPrinterValues,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
|
||
;------------------------------------------------------------------------------
|
||
; Trap routine macros: Script Manager 7.0 <2.1>
|
||
|
||
macro
|
||
_NFindWord ; <2.3>
|
||
move.l #smSelNFindWord,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_TruncString ; <2.3>
|
||
move.l #smSelTruncString,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_TruncText ; <2.3>
|
||
move.l #smSelTruncText,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_ReplaceText ; <2.3>
|
||
move.l #smSelReplaceText,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_NPixel2Char ; <2>
|
||
move.l #smSelNPixel2Char,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_PixelToChar
|
||
move.l #smSelNPixel2Char,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_NChar2Pixel ; <2>
|
||
move.l #smSelNChar2Pixel,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_CharToPixel
|
||
move.l #smSelNChar2Pixel,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_NDrawJust ; <2>
|
||
move.l #smSelNDrawJust,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_DrawJustified
|
||
move.l #smSelNDrawJust,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_NMeasureJust ; <2>
|
||
move.l #smSelNMeasureJust,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_MeasureJustified
|
||
move.l #smSelNMeasureJust,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_NPortionText ; <2>
|
||
move.l #smSelNPortionText,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro ; <54>
|
||
_PortionLine
|
||
move.l #smSelNPortionText,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
;------------------------------------------------------------------------------
|
||
; Trap routine macros: Script Manager 7.1 <43>
|
||
|
||
macro
|
||
_GetScriptUtilityAddress ; <54>
|
||
move.l #smSelGetScriptUtilityAddress,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_SetScriptUtilityAddress ; <54>
|
||
move.l #smSelSetScriptUtilityAddress,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_GetScriptQDPatchAddress ; <54>
|
||
move.l #smSelGetScriptQDPatchAddress,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_SetScriptQDPatchAddress ; <54>
|
||
move.l #smSelSetScriptQDPatchAddress,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_LowercaseText ; <54>
|
||
move.w #sclwrDoLower,-(sp)
|
||
move.l #smSelSCLwrString,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_StripDiacritics ; <54>
|
||
move.w #sclwrDoStrip,-(sp)
|
||
move.l #smSelSCLwrString,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_UppercaseText ; <54>
|
||
move.w #sclwrDoUpper,-(sp)
|
||
move.l #smSelSCLwrString,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_UppercaseStripDiacritics ; <54>
|
||
move.w #sclwrDoStripUpper,-(sp)
|
||
move.l #smSelSCLwrString,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_CharacterByteType ; <54>
|
||
move.l #smSelCharacterByteType,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_CharacterType ; <54>
|
||
move.l #smSelCharacterType,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_TransliterateText ; <54>
|
||
move.l #smSelTransliterateText,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_FindWordBreaks ; <54>
|
||
move.l #smSelFindWordBreaks,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
macro
|
||
_FillParseTable ; <54>
|
||
move.l #smSelFillParseTable,-(sp)
|
||
_ScriptUtil
|
||
endm
|
||
|
||
|
||
ENDIF ; ...already included |