Model: -94D
General:
Name: Handheld Industrial Computer
Code-Name: none
Family: -
Logic: -
Features: BASIC
Firsts: 8086-compatible (with -94E and -94F)
Introduction:
Date: 1987-2
Price: $1,395
Discontinuation:
Date: 1987-5
Price: $1,395
Production-Run: under 1000
Display:
Type: LCD, bitmap, backlit
Size: 4 lines x 20 chars, 32 x 120 pixels
Number-Formats: -
Annunciators: none
Data:
User-Visible:
Smallest: -
Largest: -
Signif.-Digits: -
Internal:
Smallest: -
Largest: -
Signif.-Digits: -
Data-Types-and-Sizes: byte
Memory:
Named-Registers: -
Flags: -
Register-Usage: -
Numbered-Registers: -
Program-Steps: -
Program-Editing: -
Program-Display: -
User-RAM-Bytes: 64K
Total-RAM-Bytes: 64K
ROM-Bytes: 32K
Machine-State: memory
File-Types: A Application program / Basic
Lexicon extension file
B Basic program
D Data file
H Interrupt Handler
Physical:
Form-Factor: square
Technology-Used: CMOS
Processor: 3.686 MHz NEC V.20
Chip-Count: ?
Power-Source: custom NiCad battery pack
DC in jack for recharging the battery
DC in pin on the serial interface for
recharging the battery
lithim cell for continuous memory
Continuous-Memory: yes
Expansion-Ports: 1 bus slot
I/O-Ports: TTL DB15 serial
TTL DIN-6 input-only wand
beeper / 1/8" miniplug earphone
Clock: yes, auto shutdown
Length: 14.6 cm (5.75 in)
Width: 16.5 cm (6.5 in)
Height: 3.8 cm (1.5 in)
Weight: 680g (1lb 8oz) as measured on our office scale
Temperature-Range:
Operating: 0 to 55 deg C
Charging: ? to ? deg C
Storage: -40 to 65 deg C
Keyboard:
Switches: ON/OFF toggle button
hole reset button
dial contrast
Shift-Keys: SHIFT, orange, above/left
User-Defined-Keys: none
Key-Arrangement::
** ** ** ** ** ** **
** ** ** ** ** ** **
** ** ** ** ** ** **
** ** ** ** ** ** **
**
** ** ** ** ** ** **
Key-Labels-Base-Keyboard::
[] [] [] [] # - SHIFT
[] [] [] 7 8 9 CLEAR
[] [] [] 4 5 6 <-
[] [] [] 1 2 3 ENTER
[] [] [] 0 00 . ENTER
Key-Labels-alpha-orange-above/left::
A B C D * - SHIFT
E F G H I J CLEAR
K L M N O P <-
Q R S T U V ENTER
W X Y Z SPACE . ENTER
Programmable-Operations::
none
Non-Programmable-Operations::
ON + CLEAR + ENTER soft reset
SHIFT hold down for 2 seconds turns on screen backlight
for 2 minutes
command processor commands:
B#.# set baud rate and serial data format
Cfrom.to copy file[*]
D# list directory
Efile erase file
I# initialize directory
K keyboard self-check
L LCD self-check
M memory test
S start (run) an application
T set date/time
Menus::
none
Bugs/ROM-Versions::
none
Notes::
See also the "craig-review" file.
The expansion slot can hold one card. Accessories:
2430A $89 spare battery pack
82431A $69 recharger (not included with base unit)
82470A $240 RS-232C Level Converter
82410A $700 128K-byte Memory Board[*]
82411A $350 40K-byte RAM card
82412A $150 ROM/EPROM card
[*] HP lists this as a field service upgrade. Actually, there was no
difference between installing it and any of the other cards. Of
course, it is called a "board" and not a "card." The price may have
been $695, in which case you paid HP $5 EXTRA for them to sell you a
-94F instead of a -94E and 128K card (excuse me: board).
Jeremy Smith's price list shows a price change to $1,425 in
1987-07-01, possibly due to variations in exchange rate with Yen. I
(Craig Finseth) don't recall a change (and we were selling software
into that market).
The first pre-release units were shipped to some customers in
March/April 1986. The official release was held up until Feb 1987
because the HP development system wasn't ready, and it didn't make any
sense to ship units if customers could not use them.
But, starting in September 1986, customers could buy HP-94s if they
were using the Audax Collect-94 Development System. This was the
first time HP has ever allowed such pre-release purchases to be
dependant on a third party.
------------------------------------------------------------
Excerpt From the Collect-94 Users' Guide
Appendix: Using the Hardware
Craig A. Finseth
Audax Corp.
1986
The HP-94 has a built-in "operating system" or "monitor" that is used
to manage the local file system, start applications, and perform other
related functions. This appendix provides a summary of the monitor
commands. It is not intended as a comprehensive reference to the
monitor.
OVERVIEW
The monitor manages from two to six _directories_, numbered from zero
to five. Directory zero is always main RAM memory and directory five
is always the system ROM. Directory one, if present, can be
additional ROM or RAM. Directories two, three, and four, if present,
are always ROM.
Filenames can be from one to four characters long, can contain only
letters and digits, and must start with a letter. Pathnames contain a
directory number, a colon, and a filename. For example:
0:TEST
When typing pathnames from the HP-94 keyboard, the SPACE key is
treated as a colon.
There are four types of files: application, Basic, data, and handler.
They are designated by the appropriate letter: A, B, D, and H.
Application files contain executable programs. Basic files contain
Basic programs. Data files contain data for the application. Handler
files contain operating system extensions (in particular, interrupt
handlers).
Only the C command can create application, Basic or handler files.
When the HP-94 is first started, the screen looks like this:
<copyright notice>
>
This display (or rather, the ">" prompt) is called the _monitor
prompt_ and you must see this prompt before you can type monitor
commands.
Resetting:
You can almost always return to the monitor prompt by turning the
HP-94 off, then holding the CLEAR and ENTER keys down while turning
the HP-94 on. If that does not work, turn the HP-94 on (you should be
able to see a grid of LCD pixels--that means the machine is on), then
insert a paper clip in the small hole just to the left of the ON/OFF
button. That activates a full reset of the system. When you turn the
machine on again, you should see the monitor prompt.
Some changes (such as setting the baud and data format) are temporary
and must be re-made whenever the machine is turned off and on again.
Monitor Commands
These are the monitor commands:
B Set Baud or data format.
C Copy file.
D Directory list.
E Erase file.
I Initialize directory.
K Keyboard self-check.
L LCD self-check.
M Memory test.
S Start an application.
T Set date/Time.}
B: Set the Baud and Data Format
Usage: B <Baud> . <DataFormat>
[In this and all other usage descriptions, spaces are shown for
clarity but are _not_ typed on the HP-94.]
value baud
0 19200 (not supported)
1 9600
2 4800
3 2400
4 1200
5 600
6 300
7 150
DataFormat:
value data bits parity stop bits
0 7 none 1
1 8 none 1
2 7 odd 1
3 8 odd 1
4 7 none 1
5 8 none 1
6 7 even 1
7 8 even 1
8 7 none 2
9 8 none 2
10 7 odd 2
11 8 odd 2
12 7 none 2
13 8 none 2
14 7 even 2
15 8 even 2
C: Copy File
Usage: C <FromFile> . <ToFile>
If either <FromFile> or <ToFile> are omitted, the serial port is used
for that parameter. You cannot copy files _within_ a single
directory.
D: Directory List
Usage: D
or D <Directory>
The first usage lists the free space for each directory in the system.
The second usage lists each file in the specified directory, its type,
its size, and its start address as well as the total free space in the
directory.
If necessary, the directory listing is made in four-line chunks.
Press the ENTER key to proceed to the next chunk.
All numbers listed are in hexadecimal paragraphs. You must multiply
those numbers by 10H (16 decimal) to obtain the values in bytes.
E: Erase File
Usage: E <File>
The <File> can contain asterisk "wild cards." The command asks for
confirmation (the ENTER key) then, if given, erases the specified
files. Press any other key to cancel the erase.
I: Initialize Directory
Usage: I <Directory>
This command initializes the directory area. If memory should be
trashed (very unlikely), you may have to re-initialize the directory.
This command erases all files in the directory. It prompts for
confirmation in the same way that the E command does.
You may have to initialize the directory when you first use a HP-94 or
a RAM expansion.
K: Keyboard Self-Check
Usage: K
Echoes keyboard input to the display until the ENTER key is pressed.
L: LCD Self-Check
Usage: L
Displays characters until you press any key.
M: Memory Test
Usage: M <Directory>
Displays the directory checksums. This command displays files like
the D command, but only damaged files are displayed.
S: Start an Application
Usage: S <File>
Starts running the specified application (program).
T: Set Date/Time
Usage: T
Shows, then lets you set the current date and time. This command does
not check whether the new date and time are legal.
CONNECTOR PIN-OUTS
The HP-94 has two connectors: the serial port and the wand port. In
addition, the HP-82470A RS-232C Level Converter has a different serial
connector. This section describes the pin-outs of those connectors.
The Wand Port
The port has a female, 6-pin DIN connector and is located on the bottom
of the HP-94.
Pins:
pin name
1 Vcc (+5V) Out
2 Wand Input
3 Ground
4 unused
5 unused
6 unused
The Serial Port
The port has a female, DB15 connector and is located on the left side
of the HP-94. TTL voltages (0, +5V) are used.
Pins:
pin direction signal name
1 -- G Chassis Ground
2 out TD Transmitted Data
3 in RD Received Data
4 out RTS Request To Send
5 in CTS Clear To Send
6 in DSR Data Set Ready
7 -- SG Signal Ground
8 in CD Carrier Detect
9 out Vcc (+5V) Out
10 in Recharge Input
11 in Recharge Ground
12 -- -- unused
13 -- -- unused
14 -- -- unused
15 out DTR Data Terminal Ready
The CTS signal must be supplied in order for the HP-94 to transmit
characters. The RTS and DTR signals are always supplied by the HP-94.
You can therefore connect pins 15 and 5 on the HP-94 end in order to
supply the required voltage to the CTS pin.
The Level Converter
The port has a female, DB25 connector and is located on the HP-84270A
RS-232C Level Converter. True RS-232C voltages (+/- 12V) are used.
Pins:
pin direction signal name
1 -- G Chassis Ground
2 out TD Transmitted Data
3 in RD Received Data
4 out RTS Request To Send
5 in CTS Clear To Send
6 in DSR Data Set Ready
7 -- SG Signal Ground
8 in CD Carrier Detect
9 -- -- unused
10 -- -- unused
11 -- -- unused
12 -- -- unused
13 -- -- unused
14 -- -- unused
15 -- -- unused
16 -- -- unused
17 -- -- unused
18 -- -- unused
19 -- -- unused
20 out DTR Data Terminal Ready
21 -- -- unused
22 -- -- unused
23 -- -- unused
24 -- -- unused
25 -- -- unused
The CTS signal must be supplied in order for the HP-94 to transmit
characters. The RTS and DTR signals are always supplied by the HP-94.
You can therefore connect pins 20 and 5 on the Level Converter end in
order to supply the required voltage to the CTS pin.
Cabling
With the Level Converter
The HP-94 has a serial port, but not an RS-232 port. You must attach
the HP-82470A RS-232C Level Converter in order to have a true RS-232
port.
[ The serial port uses and the wand port accepts 0V for Mark and +5V
for Space. A true RS-232 connection requires -12V for Mark and +12V
for Space. ]
The converter has a female DB-25 connector. A cable with the
following pinning will connect the HP-94 to an IBM P.C. serial port
(DTE with a male DB-25):
...not supplied...
Without the Level Converter
Some serial interfaces do not require the level converter. In
particular, we have tested these interfaces and they do _not_ require
the level converter:
AST Corporation: all serial ports for the IBM P.C.
Leading Edge Model D
However, the Asynchronous Communications Adapter made by IBM Corp.
definitely _requires_ the level converter.
If you are in doubt about your serial interface, remember that it will
always work if there is a Level Converter. The interface _may_ work
without the Level Converter.
If you determine that the converter is not required, you can connect
your computer directly to the HP-94 serial port. The serial port has
a female DB-15 connector. A cable with the following pinning will
connect the HP-94 to an IBM P.C. serial port (DTE with a male DB-25):
...not supplied...
Collect-94 Requirements
The cables described previously will work for all programs. If you
are using Collect-94 software on _both_ ends to perform a transfer,
you only need to connect pins 2, 3, 5 and 7. Pins 2, 3 and 7 carry
data. Pin 5 is the CTS pin and _must_ be held high on the HP-94 end.
The DTR pin on the HP-94 (pin 15 on the DB15 connector and pin 20 on
the Level Converter) is always held high by the HP-94. You can hold
the CTS signal high by connecting the DTR pin to the CTS pin (pin 5)
instead of connecting pin 5 to the host computer.
ROMs
The HP-94 can accept 32K, 64K, 96K, or 128K ROMs. Acceptable ROMs are:
ROM Size Chip
32K 27C256
64K 27C512
96K 27C768
128K 27C1024
ROMs must be 250nsec or faster.
Error Codes
These descriptions are provided by Hewlett-Packard Company.
100 The Basic interpreter ("SYSB" file) was not found.
101 Illegal parameter.
102 Invalid directory number.
103 File not found.
104 Too many files.
105 Channel not open.
106 Channel already open.
107 File already open.
108 File already exists.
109 Read-only access.
110 Access restricted.
111 No room for file.
112 No room to expand file.
113 No room for scratch area.
114 Invalid scratch area.
115 Short record detected.
116 Termination character detected.
117 End of data.
118 Timeout.
119 Power switch pressed.
200 Low main battery voltage.
201 Serial port receive buffer overflow.
202 Parity error on serial port.
203 Overrun error on serial port.
204 Parity and overrun error on serial port.
205 Framing error on serial port
206 Framing and parity error on serial port.
207 Framing and overrun error on serial port.
208 Framing, parity and overrun error on serial port.
209 Invalid MDS file received.
210 Low backup battery voltage - main memory.
211 Low backup battery voltage - memory board or 40K RAM card.
212 Checksum error - main memory directory.
213 Checksum error - 40K RAM or ROM/EPROM card directory.
214 Checksum error - reserved scratch area.
215 Checksum error - main memory scratch area.
216 Checksum error - main memory file.
217 Checksum error - 40K RAM or ROM/EPROM card file.
218 Lost connection while transmitting (CTS/DSR lines not high).
219 Operating system stack altered.
------------------------------------------------------------
HP-94 System Information
4 December 1986
-------------------- Operating System Calls --------------------
Input Registers Output Registers
-----------------------------------------------------------------
AH 00 End
AL 00 cold start
01 warm start
-----------------------------------------------------------------
AH 01 Get Char AL 0 ok
AL 00 with echo !=0 error
01 no echo DL data (if AL == 0)
-----------------------------------------------------------------
AH 02 Get Line AL 0 ok
AL buf size - 1 !=0 error
ES:BX buf addr DL #chars (if AL == 0)
-----------------------------------------------------------------
AH 03 Put Char
AL char
-----------------------------------------------------------------
AH 04 Put Line
ES:BX buf addr (NUL-terminated)
-----------------------------------------------------------------
AH 05 Position Cursor
AL 00 return position CH row
CL col
01 set position
CH row
CL col
-----------------------------------------------------------------
AH 06 Buffer Status
AL 00 clear keyboard buffer
01 # of typeahead chars DL #chars
02 clear serial buffer
03 # of serial chars DL #chars
-----------------------------------------------------------------
AH 07 Beep
AL 00 low tone
01 high tone
BL duration in 1/10 seconds
-----------------------------------------------------------------
AH 08 Time Data
AL 00 set time
01 get time
ES:BX time buf "MM/DD/YY,HH:MM:SS"
-----------------------------------------------------------------
AH 09 Timeout
AL 00 set EL off time
01 set power off time
BX time in seconds
-----------------------------------------------------------------
AH 0A Set Event
AL 00 register power off interrupt
01 register low battery interrupt
02 mask power off interrupt
03 unmask power off interrupt
BX interrupt routine DS
CX:DX interrupt routine address
-----------------------------------------------------------------
AH 0B Get Memory
AL chan num (0 if not a handler) AL 0 ok
BX size in paragraphs !=0 error
CX paragraph of area
DX size
-----------------------------------------------------------------
AH 0C Release Memory
CX area to release AL 0 ok
!=0 error
-----------------------------------------------------------------
AH 0D Get Memory Configuration
ES:BX address of 5-byte buffer
-----------------------------------------------------------------
AH 0E Room
AL dir number AL 0 ok
!=0 error
BX #of free paragraphs
CX paragraph of directory
DX dir control area size
-----------------------------------------------------------------
AH 0F Open
AL channel
ES:BX file name (NUL/Space terminated) AL 0 ok
DS:DX parameter area !=0 error
CX paragraph of file handler
-----------------------------------------------------------------
AH 10 Close
AL channel AL 0 ok
!=0 error
-----------------------------------------------------------------
AH 11 Create
ES:BX file name AL 0 ok
CX initial # of paragraphs !=0 error
DX incremental # of paragraphs CX file address (AL == 0)
DX ???
-----------------------------------------------------------------
AH 12 Read
AL channel AL 0 ok
ES:BX buffer !=0 error
CX length CX actual length
-----------------------------------------------------------------
AH 13 Write
AL channel AL 0 ok
ES:BX buffer !=0 error
CX length CX actual length
-----------------------------------------------------------------
AH 14 Delete
AL channel AL 0 ok
!=0 error
-----------------------------------------------------------------
AH 15 Seek
AL channel AL 0 ok
BL 00 get current position !=0 error
01 set pointer CX,DX position
02 set pointer to end
CX,DX relative position (BL == 2)
-----------------------------------------------------------------
AH 16 Find File
ES:BX file name AL 0 ok
DX:DX file information area !=0 error
D:NNNN\0TAASSSS CX:DX directory address
(Directory,Name,Type,Address,Size)
-----------------------------------------------------------------
AH 17 Find Next
AL 0 ok
!=0 error
CX:DX directory address
-----------------------------------------------------------------
AH 18 Display Error
AL error code
-------------------- Interrupt Vectors --------------------
address number priority usage
(hex) (hex)
0 0 divide by zero
4 1 single step
8 2 NMI non-maskable
C 3 breakpoint
10 4 overflow
14 5 reserved
18 6 reserved
1C 7 reserved
68 1A I/O monitor entry vector
70 1C timer call through vector
140 50 pri 0 timer 1
144 51 pri 1 timer 2 (bar code reader)
148 52 pri 2 bar code reader
14C 53 pri 3 serial interface
150 54 pri 4 low NiCd battery power or back cover open
154 55 pri 5 power switch off
158 56 pri 6 reserved (iRQFK?)
15C 57 pri 7 reserved (iRQPR?)
-------------------- Chips --------------------
Canon HD61L224F
Hitachi HD61102 64 x 64 Dot matrix liquid crystal disp column driver
Hitachi HD44105H Dot matrix liquid crystal graphic disp common driver
KSS EX02 3.686 MHz oscillator
Mitsubishi MS336E SD01S large hybrid
NEC D70108D-5 V.20 8088 compatible CPU
Oki M82C51A USART serial port driver in x16 mode
Suwa Seiko RTC58321S real time clock
-------------------- I/O Ports --------------------
port direction system function
(hex)
0 Output interrupt mask register (copy at address 20:19D)
Input interrupt request register
1 Output interrupt clear register
Input interrupt EOI register
2 Output timer 1 control
3 In/Out timer 1 count
4 In/Out timer 2 count (lower 8 bits)
5 In/Out timer 2 count (upper 4 bits)
6 Output timer 2 control
7 Output bar code data save
8 Output bar code data clear
9 ---
A Output serial baud generator
B Output general control latch (copy at address 20:19C)
C Output rtc real time clock control
D ---
E Output general EL/keyboard
F ---
10 In/Out serial data register
11 In/Out serial control register
12 In/Out LCD dots 64..119 (right half) control register
13 In/Out LCD dots 64..119 (right half) data register
14 In/Out LCD dots 0..63 (left half) control register
15 In/Out LCD dots 0..63 (left half) data register
16 ---
17 ---
18 ---
19 ---
1A ---
1B Power down???
-------------------- Register Definitions --------------------
Baud rate generator values:
value rate
0 19200 (suspect)
1 9600
2 4800
3 2400
4 1200
5 600
6 300
7 150
Control Latch (Output), page 23
bit usage values
7 unused 0
6 unused 0
5 unused 0
4 bar code interface 0 = disabled, 1 = enabled
3 bar code power 0 = off, 1 = on
2 serial port 0 = disabled, 1 = enabled
1,0 buzzer control 00 = none, 01 = high, 11 = low
Control Latch (Input), page 24 (copy at 20:19C)
bit usage values
7 back cover 0 = open, 1 = closed
6 NiCd battery 0 = low voltage, 1 = OK
5 mem pack/board batt 0 = low voltage, 1 = OK
4 main mem batt 0 = low voltage, 1 = OK
3 unused
2 serial port CarrDet 0 = carrier, 1 = none
1 unused
0 bar code data 0 = black (+5V), 1 = white (0V)
Real Time Clock Control (Output)
bit attached as
7 chip select
6 data read
5 address write
4 data write
3,2,1,0 RTC data/address
Real Time Clock Control (Input)
bit attached as
7,6,5 unused
4 busy status
3,2,1,0 RTC data
EL/Keyboard (Output)
(EL status in Console Status Area)
bit usage values
7 EL backlight 0 = on, 1 = off
6 key scan column 0 = select, 1 = no select
5 select, 6 is
4 leftmost colum and
3 0 is rightmost column
2
1
0
EL/Keyboard (Input)
bit usage values
7 unused
6 unused
5 unused
4 depressed keys 0 = not depressed, 1 = depressed
3 4 is bottom row
2 and 0 is top row
1
0
Console Status Area (byte in memory at 20:1F2)
(Operating system status is stored starting from 0x200)
bit usage values
7 real time clock 0 = not busy, 1 = busy
6 unused
5 key repeat 0 = no repeat, 1 = repeat
4 cursor enabled 0 = enabled, 1 = disabled
3 cursor blink state 0 = off, 1 = on
2 cursor blinking 0 = blinking, 1 = steady
1 keyboard shift 0 = SO (numeric), 1 = SI (alpha)
0 EL light 0 = off, 1 = on
Timing Handler Dispatch Table (6, 4 byte entries located at 20:1DA)
byte 1 initial value
byte 2 current value
byte 3,4 offset of O.S. routine to invoke
If the current value if 255, the timer is disabled.
When changing timer intervals , set both bytes 1 and 2.
entry interval usage
0 1 (5 msec) keyboard scan
1 2 (10 msec) beeper (only 100 msec resolution required)
2 20 (100 msec) cursor blink
3 200 (1 sec) machine power down timer
4 200 (1 sec) EL backlight timer
5 200 (1 sec) user timer
-------------------- Pin-Outs --------------------
Voltages for 6-pin DIN and DB15
Actual Bar Code Bar Code RS-232 RS-232 RS-232
Voltage Color Port Bit Voltage Sense Bit
+5V Black 0 +12V space 0
0V White 1 -12V mark 1
(these are really right - see page 19 of Peter's Lab Book)
6-pin DIN wand connector:
pin name
1 Vcc (+5V) Out
2 Wand Input
3 Ground
4 unused
5 unused
6 unused
DB15 (female on body) connector:
pin signal name
1 G Chassis Ground
2 TD Transmitted Data
3 RD Received Data
4 RTS Request To Send
5 CTS Clear To Send (required for transmission)
6 DSR Data Set Ready (required for recv, not impl. yet)
7 SG Signal Ground
8 CD Carrier Detect
9 Vcc (+5V) Out
10 Recharge Input
11 Recharge Ground
12 -- unused
13 -- unused
14 -- unused
15 DTR Data Terminal Ready (supplied)
Internal Memory/Expansion Connector
on chassis: JAE PICO-40S-ST
mating: JAE PICO-40T-ST
circuit board edge connector: Burndy PSE-36C-2
pin signal pin signal
1 V NiCd (battery) 21 AD0
2 V NiCd 22 AD1
3 Vcc (switched) 23 AD2
4 GND 24 AD3
5 unused 25 AD4
6 unused 26 AD5
7 unused 27 AD6
8 DT/*R 28 AD7
9 unused 29 A15
10 unused 30 A14
11 iRQFK 31 A13
12 iRQPR 32 A12
13 IO/*M 33 A11
14 ALE 34 A10
15 CLK 35 A9
16 AS16 36 A8
17 AS17 37 *WR
18 AS18 38 *RD
19 AS19 39 GND
20 RESET 40 GND
A/C Adaptor Connector
view facing HP94
pin 1 pin 2
pin 3
I measured the following voltages:
DC +6.7V 0V
0V
The adaptor is HP82431A and claims an output voltage of 6.4VDC at 400mA.
-------------------- PUTCHR Codes --------------------
hex ASCII meaning
01 ^A cursor on
02 ^B cursor off
06 ^F high tone beep
07 ^G low tone beep
08 ^H,BS backspace with wrap to previous line
0A ^J,LF line feed with scroll
0B ^K,VT clear to end of line
0C ^L,FF home and clear to end of screen
0D ^M,CR move to column zero
0E ^N,SO shift out keyboard to numeric
0F ^O,SI shift in keyboard to alphabetic
1E ^^ turn EL backlight on
1F ^_ turn EL backlight off
-------------------- I/O Channel Assignments --------------------
channel assigned to
0 console
1 RS (serial) port (handler)
2 bar code reader (handler)
3 reserved
4 reserved
5..15 available
-------------------- Font --------------------
The system font is stored at FFC3:0 and runs for either 96 or 192
characters (don't know which). The first character is Space.
Characters are stored in the format required by the LCD display, and
each character is five bytes long.
User definable characters are located from 80H to 9FH and live (if
they exist) in file "SYFT". They are stored just like the system
font, but with six bytes per character.
-------------------- Memory Configuration --------------------
Memory Usage
from to directory what
0 FFFF 0 main memory (64K system)
0 1FFFF 0 main memory (128K system)
0 3FFFF 0 main memory (256K system)
20000 29FFF 1 40K RAM pack (64K/128K system only)
20000 3FFFF 1 128K RAM pack (128K system only)
20000 27FFF 1 32K ROM module (64K/128K system only)
28000 2FFFF 2 32K ROM module (64K/128K system only)
30000 37FFF 3 32K ROM module (64K/128K system only)
38000 3FFFF 4 32K ROM module (64K/128K system only)
20000 37FFF 1 96K ROM module (64K/128K system only)
20000 3FFFF 1 128K ROM module (64K/128K system only)
4000 BFFFF unused
C000 ????? diagnostic ROM
F800 FFFFF 5 system ROM
Low Memory:
from to what
0 1FF interrupt vectors
200 8FF system data space
900 9FF debugger scratch space
64K system:
A00 DFF directory
E00 FFFF file space
128K system:
A00 DFF directory
E00 1FFFF file space
256K system:
A00 11FF directory
1200 3FFFF file space
System ROM:
from to what
F8000 F802F directory
F8030 FBFFF Basic Interpreter
FC000 FFC2F I/O Monitor
FFC30 FFFEF font
FFFF0 FFFFF boot
Directory Sizes:
what entries size (bytes)
64K main memory 64 1,024
128K main memory 64 1,024
256K main memory 128 2,048
RAM pack 32 512
32K ROM 32 512
96K ROM 64 1,024
128K ROM 64 1,024
ROM Structure:
In the directory header for a ROM directory entry 0 has
modifications from page 44 as follows:
Program part high address = File area head address.
Free RAM low address = First unused paragraph, as if a RAM.
Free RAM end address = Paragraph after end of the ROM.
-------------------- System Data Space --------------------
Segment: 20H
offset length what
(hex) (decimal)
0 2 address of save area for timer 2
2 2 address of save area save for bar code
4 2 address of save area save for serial port
6 2 address of save area save for reserved 1
8 2 address of save area save for reserved 2
19C 1 control latch duplicate
19D 1 interrupt mask register duplicate
1DA..1F1 24 timer handler dispatch table
1F2 1 console status area duplicate
Areas
General
Craig's Articles
Last modified Saturday, 2012-02-25T23:30:03-06:00.