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-25T17:30:03-06:00.