|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
− | [[Category:83PCE:Hooks:By_Name|Token Hook]] [[Category:83PCE:Hooks:By_Address|9BC8 - Token Hook]]
| |
− | == Synopsis ==
| |
− | '''Name:''' Token Hook
| |
| | | |
− | '''Hook Pointer Block Address:''' [[83Plus:RAM:9BC8|9BC8]]
| |
− |
| |
− | '''Hook Enable BCALL:''' [[83Plus:BCALLs:4F99|4F99]]
| |
− |
| |
− | '''Hook Disable BCALL:''' [[83Plus:BCALLs:4F9C|4F9C]]
| |
− |
| |
− | '''Hook Call BCALL:''' ''(none known)''
| |
− |
| |
− | '''Hook Active Flag:''' [[83Plus:Flags:35#Bit_0|0, (iy + 35h)]]
| |
− |
| |
− | This hook allows you to change the strings displayed for TIOS tokens.
| |
− |
| |
− | == Using the Hook ==
| |
− | * DE = token number * 2
| |
− | ** 1-byte: 0000 to 01FE
| |
− | ** Matrix: 0200 to 0212
| |
− | ** List: 0214 to 021E
| |
− | ** Equation: 0220 to 025C
| |
− | ** Picture: 025E to 0270
| |
− | ** GDB: 0272 to 0284
| |
− | ** String: 0286 to 0298
| |
− | ** Output Var: 029A to 0312
| |
− | ** System Var: 0314 to 0382
| |
− | ** Format: 0384 to 03A8
| |
− | ** BB: 03AA to 0546 (or higher, depending on OS)
| |
− | * HL = default string
| |
− | ** Change HL to display a different string, which you must copy to RAM
| |
− |
| |
− | == Comments ==
| |
− | In OS 1.15 this hook was modified to prevent apps from defining new tokens. There are two checks in the token getting routine of OS 1.15: one which treats all undefined tokens as a question mark, and one which prevents the token hook from being run if the token is not in the standard OS 1.12 token set.
| |
− |
| |
− | This was somewhat meta-fixed in OS 1.16 to the point that all of the original extended tokens can be used. However, it still doesn't allow new tokens to be defined.
| |
− |
| |
− | To summarize:
| |
− | * On OS 1.14 and prior OS's - all BB tokens are reported as 03AA+2T, including hacked tokens. This caused localizers to crash when they encountered the extended Symbolic tokens.
| |
− | * On OS 1.15 - BB tokens after GarbageCollect are not passed to the token hook at all. They are always displayed as a question mark.
| |
− | * On OS 1.16, and future OS's - BC is the unmodified value as reported by 1.14 for all tokens up to the last actual token supported; DE is set to a value representing a question-mark.
| |
− | * On OS 2.20, and future OS's - For the BB tokens after tGarbageCollect BC contains the unmodified value and DE=$0012. All EF tokens are put after these as if EF XX was BB 1XX.
| |