TCL
set-iomap command
.mdThe set-iomap BASIC program allows translatable input and output for each port on the system.
Syntax
set-iomap port.number{,item-ID} ([i|o|ri|ro]
Parameter(s)
| port.number | Specifies the number of the port for which the iomap is being set. |
| item-ID | Item-ID of the user-defined keyboard item. It must be numeric, and is not required when used with any of these options: ir, ri, or, or ro. |
| i | Installs input keyboard. Character translation occurs before reaching input handling code, such as BASIC in. |
| o | Installs output keyboard. Character translation occurs before reaching output handling code, such as BASIC print. |
| ir or ri | Removes an installed input keyboard. |
| or or ro | Removes an installed output keyboard. |
There is a file in the dm account called iomap-file. This file contains keyboard items that are defined by users. The item-ID should be numeric and should be in the range of 0 <= item-ID <= 2147483647. The keyboard item has 34 attributes and has this format:
| attr 0 | Item-ID |
| attr 1 | User comments |
| attr 2 to 33 | ASCII code of characters from 0 to 127 in ASCII hexadecimal
format. For example: character a has its ASCII code
as x'41' and should be entered in the item as '41'. Each attribute
from 2 to 33 has exactly eight entries each. Each entry must be two
characters and there should be no quotes or spaces surrounding any
number. In other words, each entry should look like a 16 digit hexadecimal
number. User can put their comments after the eighth entry on that
attribute. |
The example below shows how to translate the character A to B:
-
ASCII code of A is x'41' = d'65'
-
ASCII code of B is x'42' = d'66'
-
65 mod 8 = 8 with remainder 1
-
Translated character, which is B, should be entered at attribute 8+2= 10 and at column 1*2+1=3 as 42. The reason that 2 is added to 8 is because counting begins at 0 and attribute 1 is used for comments.
Example(s)
open "iomap-file" then a = "Sample IOMap" for b = 0 to 127 a < 0 + int( b / 8 ) > := dtx( b ) "r%2" next b write a on "12345" close end