sys7.1-doc-wip/Interfaces/AIncludes/Script.a
2019-07-27 22:37:48 +08:00

1960 lines
73 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; 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 dont 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