PC-совместимый компьютер на К1810

16-битные ПЦ-совместимые компьютеры с процессорами 8086/8088/80286 работающие под управлением ДОС

Moderator: Shaos

User avatar
Случайность
Doomed
Posts: 491
Joined: 05 Apr 2011 12:45
Location: Великий Новгород

Post by Случайность »

так ведь ХТ-х в сети самопальных хватает.
скачал одну, правда многоплатную. но онованую на ISA единственное что не нравится так это проц 8088, а я хотел бы 8086 и в нагрузку к нему 1810ВМ87.
звук, видяшка сом порты флоп и псевдо SSD на батарейном ОЗУ.
танцуй пока живешь под каплями огненного дождя...
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Случайность wrote:так ведь ХТ-х в сети самопальных хватает.
На процессоре 8086 их не так уж и много. А самопальных - так и вовсе - раз, два и обчёлся.
К превеликому моему удивлению! Я тоже считал, что схем на 8086 - больше, чем собак нерезаных... :-?
iLavr
lbodnar
Novelist
Posts: 39
Joined: 24 Dec 2004 13:58
Location: UK

Post by lbodnar »

Lavr wrote:
Случайность wrote:так ведь ХТ-х в сети самопальных хватает.
На процессоре 8086 их не так уж и много. А самопальных - так и вовсе - раз, два и обчёлся.
К превеликому моему удивлению! Я тоже считал, что схем на 8086 - больше, чем собак нерезаных... :-?
Было бы интересно сделать двухпроцессорную систему на 8086 для изучения этого дела. У меня есть спектроанализатор Anritsu, так в нем две процессорные платы на 6502ых — один занят управлением железом, второй пользовательским интерфейсом и еще один процессор не помню точно какой, используется только для умножения и деления :D у его ПЗУ прошивка буквально 30 байт. И они все дружно сидят на одной шине с общим ОЗУ.
Last edited by lbodnar on 13 Oct 2014 15:33, edited 2 times in total.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

lbodnar wrote:Было бы интересно сделать двухпроцессорную систему на 8086 для изучения этого дела.
УМПК-86/ВМ, судя по описанию, это позволяет.
Использование нескольких микро-ЭВМ УМПК-86/ВМ совместно со схемой, выполняющей арбитраж доступа к системной магистрали, позволяет изучить архитектуру многопроцессорных систем, а также способы эффективного распределения задач и ресурсов в таких системах.
iLavr
lbodnar
Novelist
Posts: 39
Joined: 24 Dec 2004 13:58
Location: UK

Post by lbodnar »

lbodnar wrote:У меня есть старенький спектроанализатор Anritsu, так в нем две процессорные платы на 6502ых — один занят управлением железом, второй пользовательским интерфейсом и еще один процессор не помню точно какой, используется только для умножения и деления — его ПЗУ содержит буквально 30 байт. И они все дружно сидят на одной шине с общим ОЗУ.
Третий процессор оказался INS8070. У него 8-и битная шина но есть аппаратные умножение и деление 16-битных чисел. Я его вообще в первый и последний раз видел в этом приборе.
User avatar
Случайность
Doomed
Posts: 491
Joined: 05 Apr 2011 12:45
Location: Великий Новгород

Post by Случайность »

вот на мой взгляд не плохой проект ХТ самолепной

http://www.malinov.com/Home/sergeys-projects

нужно только заказать где то платы и спаять машику.
танцуй пока живешь под каплями огненного дождя...
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Случайность wrote:вот на мой взгляд не плохой проект ХТ самолепной

http://www.malinov.com/Home/sergeys-projects

нужно только заказать где то платы и спаять машику.
8088 -((
User avatar
Случайность
Doomed
Posts: 491
Joined: 05 Apr 2011 12:45
Location: Великий Новгород

Post by Случайность »

меня тоже этот факт не радует, Но ведь можно взять от туда что то, а вот процессорную плату другую.
танцуй пока живешь под каплями огненного дождя...
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Случайность wrote:меня тоже этот факт не радует, Но ведь можно взять от туда что то, а вот процессорную плату другую.


А нет другой процессорной платы. Об этом и речь аж в трех тредах на почти восемь страниц каждый.
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

Может надо искать не XT-платы, которые именно под 8088, а искать AT-платы, которые именно под 8086? :roll:
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

jdigreze wrote:Может надо искать не XT-платы, которые именно под 8088, а искать AT-платы, которые именно под 8086? :roll:
Да ищем уже всё подряд на 8086... у меня уже ощущение, что скоро найдем системы
управления двигателями американских Шаттлов - они тоже управлялись 8086! 8)

У Малинова и правда симпатичная вещь, но там - 8088... :(

Пока самая удачная находка у Tronix-а, но, к сожалению, там так неудачно отрисована схема,
что нет никакой возможности с ней работать на повод внесения нужных нам изменений.
А отрисовывать у меня сейчас времени совсем нет...
iLavr
VGrad
Maniac
Posts: 208
Joined: 18 Nov 2013 15:15
Location: все оттуда ;)

Post by VGrad »

А как же "Нейрон И9.66" ???
И 16 бит ! И совместима с XT !
И шина у неё прекрасная !
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

VGrad wrote:А как же "Нейрон И9.66" ???
И 16 бит ! И совместима с XT !
И шина у неё прекрасная !
А есть схема на него? Я что-то не припомню. Плюс, если меня опять не подводит память, там в нем РТ5 натыкано больше чем в Поиске. Соответственно их прошивки (дампы) тоже нужны. Ну и в довершение биос от него тоже поиметь неплохо, хотя вроде биос есть даже у меня в виде РФ5, который я слил и куда-то выкладывал в инет. Но биос это все фигня, первые пункты интересуют.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Stan wrote:А BIOS PRE-PROCESSOR действительно нацеливается на собственные
BIOS и видео-BIOS компьютера...
И еще, как мне кажется, Sourcer-у никак не объяснить этот момент...
В общем-то и у меня был такой же примерно негативный опыт с этим BIOS PRE-PROCESSOR... :(
Но в некоторое смущение меня ввёл батник: RUNBIOSP.BAT

Code: Select all

echo off
if exist biosp.exe goto run
@REM Если есть утилита biosp.exe, работаем с точки run
if exist srfiles.zip goto unzip
echo  ******** Can not locate BIOSP.EXE program ********
goto exit
:unzip
echo _______ One-Time decompression of BIOS Pre-Processor files
pkunzip srfiles.zip
@REM запускаем утилиту biosp.exe с тремя параметрами
:run
biosp %1 %2 %3 -b
if errorlevel 16 goto exit
echo _________  Copying BIOS Pre-Proceesor output file to BIOS.DEF
if errorlevel 4 goto mainbios
if errorlevel 2 goto diskbios
if errorlevel 1 goto videobios
copy ubios.def bios.def
goto runsr
:mainbios
copy mbios.def bios.def
goto runsr
:diskbios
copy dbios.def bios.def
goto runsr
:videobios
copy vbios.def bios.def
:runsr
echo _________  Loading SOURCER
sr bios.def %1 %2 %3
:exit
Из него видно, что biosp %1 %2 %3 -b запускается с 4-мя параметрами, и, кстати,
сам SOURCER тоже понимает 4 параметра из командной строки: sr bios.def %1 %2 %3
Может быть можно передать в параметрах и свой bin-файл ПЗУ?

Но что это за параметры, фиг их знает. Я тщательно протряс интернет на повод ХЕЛПОВ к SOURCER-у,
и выяснил, что в общем-то он был с бумажным Мануалом и небольшой текстовой помощью типа README.TXT.

В общем нашел я "гнездо" всех SOURCER-ов: SOURCER, V Communications - Старый DOS, и скачал
их все, но ни в одном архиве никаких документов не нашел... :(

Навскидку: biosp -h, biosp -?, sr -h и sr -? никаких подсказок не дают.

В общем дизассемблировал я нагло этот biosp.ехе самим же SOURCER-ом и нашел, что biosp.ехе
понимает опции -B, -S, -N, -V, -U, причем явно, что -S указывает сегмент типа: -SFE00.

Но самое неприятное оказалось в другом: насколько внимательно я просмотрел весь код biosp.ехе,
в нём нет функции DOS чтения из файла! :o
Открытие, закрытие и запись файла - есть. Выходит, что biosp.ехе прочитать внешний файл образа
ПЗУ, и выдать для него bios.def в принципе не может. :-?
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Lavr wrote:В общем дизассемблировал я нагло этот biosp.ехе самим же SOURCER-ом и нашел, что biosp.ехе
понимает опции -B, -S, -N, -V, -U, причем явно, что -S указывает сегмент типа: -SFE00.
В общем, раз уж я расковырял этот biosp.ехе, то немного информации
об его внутренностях, если вдруг кто-либо с ним столкнется...

Здесь анализ опций командной строки, из которых и следует -B, -S, -N, -V, -U:

Code: Select all

;-------------- форма вызова: BIOSP.EXE -%1 -%2 -%3 -%4
;-------------- Разбор  ком.строки на параметры  -%1 для -S - загрузка
                MOV     CL,[SI]; CMD LINE DS:0080=00 - длина ком.строки
                OR      CL,CL                   ; Zero ?
                JNZ     LOC_0037                ; Jump разбор ком.строки
                JMP     LOC_0046                ; Jump if  ком.строка пустая
LOC_0037:
                XOR     CH,CH                   ; Zero register
                INC     SI                      ; Указатель в ком.строке
LOCLOOP_0038:
                CMP     WORD PTR [SI],2D20H     ; " -"%1 -ком.строка...
                JE      LOC_0041                ; Jump if equal

                CMP     WORD PTR ES:[DI],2F20H  ; "/ "
                JE      LOC_0041                ; Jump if equal
LOC_0039:
                INC     SI
                LOOP    LOCLOOP_0038            ; Loop if cx > 0

LOC_0040:
                JMP     LOC_0046                ; Jump if  ком.строка пустая
LOC_0041:
                INC     SI                      ; сдвиг в ком.строке
                DEC     CX                      ; уменьшим длину

                JCXZ    LOC_0040                ; Jump if ком.строка пустая

                INC     SI                      ; сдвиг в ком.строке
                DEC     CX                      ; уменьшим длину
                JCXZ    LOC_0040                ; Jump if  ком.строка пустая

                MOV     AL,[SI]                 ; символ из ком.строки
                AND     AL,0DFH                 ; 1101.1111b превращает в заглавн.

                CMP     AL,42H                  ; 'B'
                JNE     LOC_0042                ; Jump if not equal
;-------------- Processing 'B'
                MOV     ES:DATA_0213,1
                JMP     SHORT LOC_0039
LOC_0042:
                CMP     AL,56H                  ; 'V'
                JNE     LOC_0043                ; Jump if not equal
;-------------- Processing 'V'
                MOV     ES:DATA_0134,1
                JMP     SHORT LOC_0039
LOC_0043:
                CMP     AL,53H                  ; 'S'
                JNE     LOC_0044                ; Jump if not equal
;-------------- Processing 'S'
                INC     SI
                DEC     CX
                JCXZ    LOC_0046                ; Jump if кончилась ком.строка
                CMP     BYTE PTR [SI],20H       ; если после -S' 'пробел
                JE      LOC_0039                ; Jump анализ ком.строки

                MOV     AX,[SI]                 ; параметр по [SI] 1слово
                MOV     WORD PTR ES:DATA_0114,AX
                MOV     AX,[SI+2]               ; параметр по [SI+2] 2слово
                MOV     ES:DATA_0115,AX         ; похоже на сегмент fe00
                ADD     SI,3                    ; укажем на след. в ком.строке
                CMP     CX,4                    ; сколько осталось ком.строки?
                JBE     LOC_0046                ; кончилась ком.строка

                SUB     CX,3                    ; Учтем сдвиг ADD SI,3
                JMP     SHORT LOC_0039
LOC_0044:
                CMP     AL,55H                  ; 'U'
                JNE     LOC_0045                ; Jump if not equal
;-------------- Processing 'U'
                MOV     ES:DATA_0212,1
                MOV     BYTE PTR ES:[3DF4H],55H ; 'U'
                INC     SI
                JMP     SHORT LOC_0039
LOC_0045:
                CMP     AL,4EH                  ; 'N'
                JNE     LOC_0039                ; Jump if not equal
;-------------- Processing 'N'
                MOV     ES:DATA_0119,1
                MOV     ES:DATA_0134,1
                CMP     BYTE PTR [SI+1],31H     ; -N'1'?
                JNE     LOC_0039                ; Jump if not equal

                MOV     ES:DATA_0208,1          ; -N1 это почти что 'U'

                MOV     ES:DATA_0212,1          ; -U
                MOV     BYTE PTR ES:[3DF4H],55H ; 'U'
                INC     SI
                JMP     LOC_0039
;-------------- ком.строка пустая или закончилась
LOC_0046:
                PUSH    CS
                POP     DS
                CMP     WORD PTR DATA_0114,0    ;  -S не было
                JE      LOC_0047                ; Jump if equal

                MOV     SI,1A83H                ;  -SFE00 к примеру
                MOV     AX,SI
                ADD     AX,4
                MOV     DATA_0194,AX            ; превратим строку в дв.слово
                CALL    SUB_0022                ; [DATA_0114,DATA_0115]->DX
                JC      LOC_0047                ; Jump if carry Set
                MOV     DATA_0113,DX            ; DX=0FE00H -- DATA_0113
LOC_0047:
                CALLF   SUB_0025
                ...
В самом теле biosp.ехе весьма много текстовой информации, возможно, она также будет полезна
для понимания того, что делает эта утилита:

Code: Select all

 BIOS PRE-PROCESSOR v8.00 Copyright (c)
 1988 - 2000  V Communications, Inc.  ALL RIGHTS RESERVED
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¿
³  ЫЯЯЯЬ ЯЫЯ ЫЯЯЫ ЫЯЯЯ  PRE-PROCESSOR                 V Communications, Inc.   ³
³  ЫЯЯЯЬ  Ы  Ы  Ы ЯЯЯЫ               TM               Copyright (c)1988-2000   ³
³  ЯЯЯЯ  ЯЯЯ ЯЯЯЯ ЯЯЯЯ                              All Rights Reserved  V8.00 ³
³                                                                              ³
³±±±±±±±±±±  BIOS Listing Generator ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±³
³                                                                              ³
³  BIOS Address Space starts at 0000:0000      Data labels created:       0    ³
³                       ends at F000:FFFF      Location labels created:   0    ³
³                      Analysis of BIOS in Progress -  0                       ³
³  Created definition file -   : BIOS.DEF      Microprocessor:                 ³
³                                                                              ³
³           ЫЫЫЫЫЫЫЫ  Run Sourcer now ?  (Yes/No)     ЫЫЫЫЫЫЫЫ                 ³
³                                                                              ³
³               To run Sourcer later, at the DOS prompt enter:                 ³
³                                                                              ³
³                      C:> rename   bios.def  bios.def                         ³
³                      C:> sr  bios.def                                        ³
³                                                                              ³
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Unknown BIOS ROM    Located at 0000h
Video BIOS ROM      Located at 0000h
Hard Disk BIOS ROM  Located at 0000h
-    Video    -
   Hard Disk
-    Main     -
 VCOM=               8086/8088
                     V20/V30
                     80186/8018880
                     286
                     80286
                     80386
                     80486
                     Pentium/586
                     Pentium Pro
                     Pentium II Pentium III
                     PentiumIII
Message B-1: Remove RAM resident programs for improved results.
Message B-2: System not IBM or 100% IBM compatible.  Refer to manual.
Message B-3: BIOS address range may be wrong.  Refer to manual.
Message B-4: Can not open file " bios.def".  Check if set to Read Only.
Message B-5: Output file disk operation failed. Possible drive problem.
Message B-6: Disk full.  Run with sufficient disk space.
Message B-7: Canceled using Escape.  No output file created.
Message B-8: Remove memory manager for improved results.


                  ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
                    SOURCER DEFINITION FILE - BIOS VERSION
                  ЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ


   ±±±±±±±±±±±±±±±±±± Section 1   CONTROL INFORMATION   ±±±±±±±±±±±±±±±±±±

 comments are indented one or more spaces
 ЪДДД Section 1 instructionsДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¿
 ³                                                                            ³
 ³ Enter any of the following options, starting in the 1st column             ³
 ³  (for no options enter "none" )  Only the first letter of the              ³
 ³  command is necessary.                                                     ³
 ³                                                                            ³
 ³  Analysis option    = xxxxx Any option letters A-Z can be used.  Upper     ³
 ³                              case indicates turning option on, lower case  ³
 ³                              turns the option off.   See manual for a      ³
 ³                              complete list of options.                     ³
 ³  Code style         = xxx   Code style types include:                      ³
 ³                              com, exe, fragment, zero start,               ³
 ³                              device driver, overlay, and others            ³
 ³  Drive              = x     Disk drive for output (letter a-z)             ³
 ³  Format             = xxx   Output format ASM or LST for source code or    ³
 ³                              listing output (LST is the default)           ³
 ³  Go                         When the .def file has loaded, go              ³
 ³  Header             = xxx   Enter the ascii header string (32 char max)    ³
 ³  Input filename     = xxx   Filename for input (may include disk & path)   ³
 ³  Keep segments      = xxx   When loading a file, use the file defined      ³
 ³                              segments (FILE), use the def file segments    ³
 ³                              in section 2 (DEF) or use both (BOTH)         ³
 ³                              NOTE: Specify this option prior to file input ³
 ³                              BOTH is the default, used in most cases       ³
 ³  Label              = xxx   Select label type, Decimal, Zero fill,         ³
 ³                              Segment & offset, Letter segment & offset     ³
 ³  Math               = xxx   Use the math co-processor instruction set      ³
 ³                              Options OFF, ON, or AUTO for automatic        ³
 ³  Narrow                     For listings, suppress hex instructions        ³
 ³  None                       Use default commands only                      ³
 ³  Output filename    = xxx   Filename for output (may include drive & path) ³
 ³  Passes             = x     Select the number of passes from 2 to 9        ³
 ³  Remark             = xxx   Select remarks to be included: All, None,      ³
 ³                              Data remarks only, Interrupts & I/O only,     ³
 ³                              Others only, Except Data, Except Interrupts,  ³
 ³                              Except Others                                 ³
 ³  Segment display    = xxx   On listings, set segment style, OFF, HEX or    ³
 ³                              NAME.                                         ³
 ³  Target assembler   = xxx   Select the assembler the code may be re-       ³
 ³                              assembled on.  Options include MASM-4.0,      ³
 ³                              MASM-5.0, MASM-5.1, MASM-6.0, MASM-6.1,       ³
 ³                              TASM-1.0, TASM-2.X, TASM-3.0, TASM-3.1,       ³
 ³                              TASM-3.2, OPTASM, OTHER, or NONE              ³
 ³  uP                 = xxx   Select the uP from:                            ³
 ³                              8088, V20/V30, 80186, 80286, P286, 80386,     ³
 ³                              P386, 80486, P486, 586, 686, PII, PI3         ³
 ³                              (Pentium III or equivelent), or AUTO for      ³
 ³                              automatic to the current running CPU          ³
 ³  Vertical lines     = xxx   For listings, select the number of lines per   ³
 ³                              page from 10 to 255 (default is 59)           ³
 ³  Words to upper case        Set upper case style (lower case is default)   ³
 ³  Xref               = xx    ON or OFF (selecting ON sets passes to 5)      ³
 ³                                                                            ³
 АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

 ±±±±±±±±±±±±±±±±±± Section 1: CONTROL INFORMATION   ±±±±±±±±±±±±±±±±±±

Analysis flags     = g
Code style         = exe
Header             = BIOS ROM Analysis
Label type         = decimal
Output filename    = MBIOS
uP                 = Maximum
Xref               = ON
Math               = ON



   ±±±±±±±±±±±±±±±±±± Section 2    RANGE DEFINITION     ±±±±±±±±±±±±±±±±±±

 ЪДДД Section 2 instructionsДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¿
 ³                                                                            ³
 ³  segment:offset = start processing location (hex)                          ³
 ³                     see note 3 at end on referencing loaded file segments  ³
 ³                                                                            ³
 ³  end offset     = ending location for segment                              ³
 ³                                                                            ³
 ³                                                                            ³
 ³  default ds, es = default used when not overwritten by in-line code        ³
 ³                                                                            ³
 ³  segment type   = auto  - code/data, full data resolving                   ³
 ³                   code  - code, limited data resolving                     ³
 ³                   data  - data, no code processed                          ³
 ³                   idata - iterated data, no code processed                 ³
 ³                   stack - stack, no code processed                         ³
 ³                   rauto - ROM code/data (same as "auto") in ROM            ³
 ³                   rcode - ROM code (same as "code") in ROM                 ³
 ³                                                                            ³
 ³  segment size   = use16 for 16 bit segments (this is the default)          ³
 ³                   use32 for 32 bit segments. The text use32 may not be     ³
 ³                   abbreviated.                                             ³
 ³                                                                            ³
 АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

 ±±±± Segments ±±±±±±±±±±±±±±±±±±±±±±±±±±

  begin      end      default      seg   seg
 seg:off     off     ds     es     type  size                 comments
 -------     ----    ----   ----   ----- -----    -----------------------------
---
0000:0000    004F    0000   0000   data  use16    ; Interrupt vectors
0000:0400    04CF    0000   0000   data  use16    ; BIOS data segment (duplicat
es)
0040:0000    0100    0000   0000   data  use16    ; BIOS data segment
0050:0000    0001    0000   0000   data  use16    ; BIOS data segment
FFFF:FFFF    FFFF    0040   0040   rauto use16    ; Code segment and defaults
FFFF:FFFF    FFFF    0040   0040   rauto use16    ; Code segment and defaults
FFFF:FFFF    FFFF    0000   0000   data  use16    ; excess ROM data or RAM


   ±±±±±±±±±±±±±±±±±± Section 3  REFERENCE DEFINITIONS ±±±±±±±±±±±±±±±±±±

 ЪДДД Section 3 instructionsДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¿
 ³                                                                            ³
 ³  segment:offset = absolute location of item (hex)                          ³
 ³                    see note 3 at end on referencing loaded file segments   ³
 ³                                                                            ³
 ³  typ            = type field                                               ³
 ³                    DB = data byte                                          ³
 ³                    DW = data word                                          ³
 ³                    DD = double word                                        ³
 ³                    DA = ascii text byte(s)                                 ³
 ³                    DS = data structure                                     ³
 ³                    SUB = subroutine reference (S can also be used)         ³
 ³                    LOC = location reference   (L can also be used)         ³
 ³                    FORCE = forced function    (F can also be used)         ³
 ³                                                                            ³
 ³  options (indicate one or more options with a comma separator, except      ³
 ³           forced functions only can have one option per line)              ³
 ³                                                                            ³
 ³     data options:  , C xxx    comment number xxx (from 1 to 3FF)           ³
 ³                    , EQU      treat label as an equate                     ³
 ³                    , DUP      duplicate same bytes/words R times           ³
 ³                    , OSN      offset sub_xxx               (Sub Near)      ³
 ³                    , OSF      offset sub_xxx, seg sub_xxx  (Sub Far)       ³
 ³                    , OLN      offset loc_xxx               (Loc Near)      ³
 ³                    , OLF      offset loc_xxx, seg loc_xxx  (Loc Far)       ³
 ³                    , ODN      offset data_xxx              (Data Near)     ³
 ³                    , ODF      offset data_xx, seg data_xx  (Data Far)      ³
 ³                    , R xxxx   repeat 0 to FFFF, (FFFF bytes max)           ³
 ³                                 (i.e. dw, R 4    indicates 8 bytes)        ³
 ³                    , SEG      item is a segment name (dw only)             ³
 ³                    , UNUSED   if item is never referenced, then do not use ³
 ³                                                                            ³
 ³      Location      , C xx     comment number xx (from 1 to FF)             ³
 ³         options:   , EXT      external entry point to program              ³
 ³                    , FAR      far procedure                                ³
 ³                    , NEAR     near procedure                               ³
 ³                              Note: EXT, FAR & NEAR all reset the simulator ³
 ³                    , UNUSED   if item is never referenced, then do not use ³
 ³                                                                            ³
 ³      Subroutine    , C xx     comment number xx (from 1 to FF)             ³
 ³         options:   , FAR      subroutine is defined as FAR                 ³
 ³                    , TERM     subroutine terminates (does not return to    ³
 ³                                 caller)                                    ³
 ³                    , UNUSED   if item is never referenced, then do not use ³
 ³                                                                            ³
 ³       Forced       , ANALYSIS xxxxx    Select different analysis options   ³
 ³          options:             at any time, with lower case to turn option  ³
 ³                               off, and upper case to turn option(s) on.    ³
 ³                    , CODE     switch to code mode                          ³
 ³                    , COMMENT xxxxxxxxx  A comment may be placed at any     ³
 ³                               offset within a file, replacing any auto-    ³
 ³                               matically generated comment                  ³
 ³                    , DATA     switch to data mode                          ³
 ³                    , CODE16   switch to 16 bit code mode                   ³
 ³                    , CODE32   switch to 32 bit code mode                   ³
 ³                    , ENDP     force a endp to appear after instruction     ³
 ³                    , AX=xxxx  change the value of any simulation           ³
 ³                               register ax/bx/cx/dx/bp/si/di/sp             ³
 ³                                        ds/es/ss/fs/gs                      ³
 ³                    , EAX=xxxx  change the value of any 32 bit simulation   ³
 ³                                register eax/ebx/ecx/edx/ebp/esi/edi        ³
 ³                    , EAx      LEA instruction's reference item type        ³
 ³                                 EAS for sub, EAL for location, EAD for data³
 ³                                 optional segment follows                   ³
 ³                    , Ox       convert immediate value to offset            ³
 ³                               OS for sub, OL for location, OD for data     ³
 ³                               optional segment follows (cs segment default)³
 ³                    , REG      display the internal simulation registers    ³
 ³                                                                            ³
 ³                            Forced index table analysis for calls & jumps   ³
 ³                    , SN       table type "offset sub_xx"                   ³
 ³                    , SF       table type "offset sub_xxx, seg sub_xxx"     ³
 ³                    , LN       table type "offset loc_xx"                   ³
 ³                    , LF       table type "offset loc_xxx, seg loc_xxx      ³
 ³                           format:  seg_a:xxxx  f, sn 1234:22 34            ³
 ³                               where 1234:22 is the location of the table   ³
 ³                               with 34h entries                             ³
 ³                                                                            ³
 ³  label field    = enter label up to 15 characters long (32 with EMS)       ³
 ³                     (label ignored for forced functions;                   ³
 ³                         do not place a comma before or inside label)       ³
 ³                                                                            ³
 ³  comment field  = a short comment can be included here (64 characters max) ³
 ³                   if a semi-colon appears, the rest of the line is ignored ³
 АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

   ±±±±±±±±±±±±±±±±±± Section 3  REFERENCE DEFINITIONS ±±±±±±±±±±±±±±±±±±

 seg:off type     options & label        optional short comment
 -------  -- ------------------------- --------------------------
0000:0000 dw, C 93   vector_0h_off          ; Interrupt vector
0000:0002 dw         vector_0h_seg          ;   references
0000:0004 dw, C 94   vector_1h_off
0000:0006 dw         vector_1h_seg
0000:0008 dw, C 95   vector_2h_off
0000:000A dw         vector_2h_seg
0000:000C dw, C 96   vector_3h_off
0000:000E dw         vector_3h_seg
0000:0010 dw, C 97   vector_4h_off
0000:0012 dw         vector_4h_seg
0000:0014 dw, C 98   vector_5h_off
0000:0016 dw         vector_5h_seg
0000:0018 dw         vector_6h_off
0000:001A dw         vector_6h_seg
0000:001C dw         vector_7h_off
0000:001E dw         vector_7h_seg
0000:0020 dw, C 99   vector_8h_off
0000:0022 dw         vector_8h_seg
0000:0024 dw, C 9A   vector_9h_off
0000:0026 dw         vector_9h_seg
0000:0028 dw         vector_Ah_off
0000:002A dw         vector_Ah_seg
0000:002C dw, C 9B   vector_Bh_off
0000:002E dw         vector_Bh_seg
0000:0030 dw, C 9C   vector_Ch_off
0000:0032 dw         vector_Ch_seg
0000:0034 dw, C 9D   vector_Dh_off
0000:0036 dw         vector_Dh_seg
0000:0038 dw, C 9E   vector_Eh_off
0000:003A dw         vector_Eh_seg
0000:003C dw, C 9F   vector_Fh_off
0000:003E dw         vector_Fh_seg
0000:0040 dw, C A0   vectr_10h_off
0000:0042 dw         vectr_10h_seg
0000:0044 dw, C A1   vectr_11h_off
0000:0046 dw         vectr_11h_seg
0000:0048 dw, C A2   vectr_12h_off
0000:004A dw         vectr_12h_seg
0000:004C dw, C A3   vectr_13h_off
0000:004E dw         vectr_13h_seg
0000:0054 dw, C A4   vectr_15h_off
0000:0056 dw         vectr_15h_seg
0000:005C dw         vectr_17h_off
0000:005E dw         vectr_17h_seg
0000:0060 dw, C A5   vectr_18h_off
0000:0062 dw         vectr_18h_seg
0000:0064 dw, C B8   vectr_19h_off
0000:0066 dw         vectr_19h_seg
0000:0074 dw, Unused video_hdw_off
0000:0076 dw, Unused video_hdw_seg
0000:0078 dw, Unused disk_parm_off
0000:007A dw, Unused disk_parm_seg
0000:007C dw, Unused graph_tbl_off
0000:007E dw, Unused graph_tbl_seg
0000:0100 dw, Unused vectr_40h_off
0000:0102 dw, Unused vectr_40h_seg
0000:0104 dw, Unused hdsk1_parm_off
0000:0106 dw, Unused hdsk1_parm_seg
0000:010C dw, Unused vid_g_tbl_off
0000:010E dw, Unused vid_g_tbl_seg
0000:0118 dw, Unused hdsk2_parm_off
0000:011A dw, Unused hdsk2_parm_seg
0000:01D8 dw, Unused vectr_76h_off
0000:01DA dw, Unused vectr_76h_seg

0000:0400 dw         @rs232_port_1_         Duplicates
0000:0402 dw         @rs232_port_2_           (see 0040:0000 for
0000:0404 dw         @rs232_port_3_           full information)
0000:0406 dw         @rs232_port_4_
0000:0408 dw         @prn_port_1_
0000:040A dw         @prn_port_2_
0000:040C dw         @prn_port_3_
0000:040E dw         BIOS_data_seg_
0000:0410 dw         equip_bits_
0000:0412 db         manufactr_test_
0000:0413 dw         main_ram_size_
0000:0415 dw         error_codes_
0000:0417 db         keybd_flags_1_
0000:0418 db         keybd_flags_2_
0000:0419 db         keybd_alt_num_
0000:041A dw         keybd_q_head_
0000:041C dw         keybd_q_tail_
0000:041E dw, R 10   keybd_queue_
0000:043E db         dsk_recal_stat_
0000:043F db         dsk_motor_stat_
0000:0440 db         dsk_motor_tmr_
0000:0441 db         dsk_ret_code_
0000:0442 db         dsk_status_1_
0000:0443 db         dsk_status_2_
0000:0444 db         dsk_status_3_
0000:0445 db         dsk_status_4_
0000:0446 db         dsk_status_5_
0000:0447 db         dsk_status_6_
0000:0448 db         dsk_status_7_
0000:0449 db         video_mode_
0000:044A dw         video_columns_
0000:044C dw         video_buf_siz_
0000:044E dw         video_pag_off_
0000:0450 dw         vid_curs_pos0_
0000:0452 dw         vid_curs_pos1_
0000:0454 dw         vid_curs_pos2_
0000:0456 dw         vid_curs_pos3_
0000:0458 dw         vid_curs_pos4_
0000:045A dw         vid_curs_pos5_
0000:045C dw         vid_curs_pos6_
0000:045E dw         vid_curs_pos7_
0000:0460 dw         vid_curs_mode_
0000:0462 db         video_page_
0000:0463 dw         @video_port_
0000:0465 db         video_mode_reg_
0000:0466 db         video_color_
0000:0467 dw         @gen_use_ptr_
0000:0469 dw         @gen_use_seg_
0000:046B db         gen_int_occurd_
0000:046C dw         timer_low_
0000:046E dw         timer_hi_
0000:0470 db         timer_rolled_
0000:0471 db         keybd_break_
0000:0472 dw         warm_boot_flag_
0000:0474 db         hdsk_status_1_
0000:0475 db         hdsk_count_
0000:0476 db         hdsk_head_ctrl_
0000:0477 db         hdsk_ctrl_port_
0000:0478 db         prn_timeout_1_
0000:0479 db         prn_timeout_2_
0000:047A db         prn_timeout_3_
0000:047B db         prn_timeout_4_
0000:047C db         rs232_timeout1_
0000:047D db         rs232_timeout2_
0000:047E db         rs232_timeout3_
0000:047F db         rs232_timeout4_
0000:0480 dw         @keybd_begin_
0000:0482 dw         @keybd_end_
0000:0484 db         video_rows_
0000:0485 dw         video_pixels_
0000:0487 db         video_options_
0000:0488 db         video_switches_
0000:0489 db         video_1_save_
0000:048A db         video_2_save_
0000:048B db         dsk_data_rate_
0000:048C db         hdsk_status_2_
0000:048D db         hdsk_error_
0000:048E db         hdsk_complete_
0000:048F db         dsk_options_
0000:0490 db         dsk0_media_st_
0000:0491 db         dsk1_media_st_
0000:0492 db         dsk0_start_st_
0000:0493 db         dsk1_start_st_
0000:0494 db         dsk0_cylinder_
0000:0495 db         dsk1_cylinder_
0000:0496 db         keybd_flags_3_
0000:0497 db         keybd_flags_4_
0000:0498 dw         @timer_waitoff_
0000:049A dw         @timer_waitseg_
0000:049C dw         timer_clk_low_
0000:049E dw         timer_clk_hi_
0000:04A0 db         timer_clk_flag_
0000:04A1 db, Unused lan_1_
0000:04A2 db, Unused lan_2_
0000:04A3 db, Unused lan_3_
0000:04A4 db, Unused lan_4_
0000:04A5 db, Unused lan_5_
0000:04A6 db, Unused lan_6_
0000:04A7 db, Unused lan_7_
0000:04A8 dd, Unused @video_sav_tbl_
0000:04CE dw, Unused days_since1_80_
0000:0500 db, Unused prn_scrn_stat_a
0000:D8A8 dw, Unused GDT_info_tbl
0000:D8B0 dw, Unused IDT_info_tbl
0000:D8FA dw, Unused GDT_stack_1
0000:D8FC dw, Unused GDT_stack_2

0040:0000 dw, C 01   @rs232_port_1          ; Start of primary BIOS RAM
0040:0002 dw         @rs232_port_2
0040:0004 dw         @rs232_port_3
0040:0006 dw         @rs232_port_4
0040:0008 dw, C 02   @prn_port_1
0040:000A dw         @prn_port_2
0040:000C dw         @prn_port_3
0040:000E dw, C 8A   BIOS_data_seg
0040:0010 dw, C 03   equip_bits
0040:0012 db, C 04   manufactr_test
0040:0013 dw, C 05   main_ram_size
0040:0015 dw, C 06   error_codes
0040:0017 db, C 07   keybd_flags_1
0040:0018 db, C 08   keybd_flags_2
0040:0019 db, C 09   keybd_alt_num
0040:001A dw, C 0A        keybd_q_head
0040:001C dw, C 0B        keybd_q_tail
0040:001E dw, R 10, C 0C  keybd_queue
0040:003E db, C 0E        dsk_recal_stat
0040:003F db, C 0F   dsk_motor_stat
0040:0040 db, C 10   dsk_motor_tmr
0040:0041 db, C 11   dsk_ret_code
0040:0042 db, C 12   dsk_status_1
0040:0041 db, C 11   dsk_ret_code
0040:0042 db, C 12   dsk_status_1
0040:0043 db         dsk_status_2
0040:0044 db         dsk_status_3
0040:0045 db         dsk_status_4
0040:0046 db         dsk_status_5
0040:0047 db         dsk_status_6
0040:0048 db         dsk_status_7
0040:0049 db, C 14   video_mode
0040:004A dw, C 15   video_columns
0040:004C dw, C 16   video_buf_siz
0040:004E dw, C 17   video_page_off
0040:0050 dw, C 18   vid_curs_pos0
0040:0052 dw, C 19   vid_curs_pos1
0040:0054 dw, C 1A   vid_curs_pos2
0040:0056 dw, C 1B   vid_curs_pos3
0040:0058 dw, C 1C   vid_curs_pos4
0040:005A dw, C 1D   vid_curs_pos5
0040:005C dw, C 1E   vid_curs_pos6
0040:005E dw, C 1F   vid_curs_pos7
0040:0060 dw, C 20   vid_curs_mode
0040:0062 db, C 21   video_page
0040:0063 dw, C 22   @video_port
0040:0065 db, C 23   video_mode_reg
0040:0066 db, C 24   video_color
0040:0067 dw, C 25   @gen_use_ptr
0040:0069 dw, C 26   @gen_use_seg
0040:006B db, C 27   gen_int_occure
0040:006C dw, C 28   timer_low
0040:006E dw, C 29   timer_hi
0040:0070 db, C 2A   timer_rolled
0040:0071 db, C 2B   keybd_break
0040:0072 dw, C 2C   warm_boot_flag
0040:0074 db, C 2D   hdsk_status_1
0040:0075 db, C 2E   hdsk_count
0040:0076 db, C 2F   hdsk_head_ctrl
0040:0077 db, C 30   hdsk_ctrl_port
0040:0078 db, C 31   prn_timeout_1
0040:0079 db, C 32   prn_timeout_2
0040:007A db         prn_timeout_3
0040:007B db         prn_timeout_4
0040:007C db, C 33   rs232_timeout_
0040:007D db, C 34   rs232_timeout_
0040:007E db         rs232_timeout_
0040:007F db         rs232_timeout_
0040:0080 dw, C 35   @keybd_begin
0040:0082 dw, C 36   @keybd_end
0040:0084 db, C 37   video_rows
0040:0085 dw, C 38   video_pixels
0040:0087 db, C 39   video_options
0040:0088 db, C 3A   video_switches
0040:0089 db, C 3B   video_1_save
0040:008A db, C 3C   video_2_save
0040:008B db, C 3D   dsk_data_rate
0040:008C db, C 3E   hdsk_status_2
0040:008D db, C 3F   hdsk_error
0040:008E db, C 40   hdsk_complete
0040:008F db, C 41   dsk_options
0040:0090 db, C 42   dsk0_media_st
0040:0091 db, C 43   dsk1_media_st
0040:0092 db, C 44   dsk0_start_st
0040:0093 db, C 45   dsk1_start_st
0040:0094 db, C 46   dsk0_cylinder
0040:0095 db, C 47   dsk1_cylinder
0040:0096 db, C 48   keybd_flags_3
0040:0097 db, C 49   keybd_flags_4
0040:0098 dw, C 4A   @timer_wait_off
0040:009A dw, C 4B   @timer_wait_seg
0040:009C dw, C 4C   timer_clk_low
0040:009E dw, C 4D   timer_clk_hi
0040:00A0 db, C 4E   timer_clk_flag
0040:00A1 db, C 4F   lan_1
0040:00A2 db         lan_2
0040:00A3 db         lan_3
0040:00A4 db         lan_4
0040:00A5 db         lan_5
0040:00A6 db         lan_6
0040:00A7 db         lan_7
0040:00A8 dd, C 51   @video_sav_tbls
0040:00CE dw, U,C 56 days_since_1_80
0040:0100 db, Unused prn_scrn_stat_b
0050:0000 db, C 57   prn_scrn_stat
A000:0000 d?, Unused vid_grphcs_area
B000:0000 d?, Unused video_mono_area
B800:0000 d?, Unused video_colr_area
C000:0000 dw, Unused rom_chk_word
C000:0002 db, Unused rom_chk_size

FFFF:FFFF dw, C A6   ROM_header_word        ; start of ROM data
FFFF:FFFF db, C A7   ROM_size
FFFF:FFFF db, C 5D   diskette_info_1
FFFF:FFFF db, C 5E   diskette_info_2
FFFF:FFFF db, C 5F   dsk_motor_delay
FFFF:FFFF db, C 60   dsk_sectr_bytes
FFFF:FFFF db, C 61   dsk_sector_trac
FFFF:FFFF db, C 62   dsk_head_gap
FFFF:FFFF db, C 63   dsk_data_length
FFFF:FFFF db, C 64   dsk_format_gap
FFFF:FFFF db, C 65   dsk_format_byte
FFFF:FFFF db, C 66   dsk_settlg_time
FFFF:FFFF db, C 67   dsk_startup_tim
FFFF:FFFF db         diskette2info_1
FFFF:FFFF db         diskette2info_2
FFFF:FFFF db         dsk2motor_delay
FFFF:FFFF db         dsk2sectr_bytes
FFFF:FFFF db         dsk2sector_trac
FFFF:FFFF db         dsk2head_gap
FFFF:FFFF db         dsk2data_length
FFFF:FFFF db         dsk2format_gap
FFFF:FFFF db         dsk2format_byte
FFFF:FFFF db         dsk2settlg_time
FFFF:FFFF db         dsk2startup_tim
FFFF:FFFF db         diskette3info_1
FFFF:FFFF db         diskette3info_2
FFFF:FFFF db         dsk3motor_delay
FFFF:FFFF db         dsk3sectr_bytes
FFFF:FFFF db         dsk3sector_trac
FFFF:FFFF db         dsk3head_gap
FFFF:FFFF db         dsk3data_length
FFFF:FFFF db         dsk3format_gap
FFFF:FFFF db         dsk3format_byte
FFFF:FFFF db         dsk3settlg_time
FFFF:FFFF db         dsk3startup_tim
FFFF:FFFF db         diskette4info_1
FFFF:FFFF db         diskette4info_2
FFFF:FFFF db         dsk4motor_delay
FFFF:FFFF db         dsk4sectr_bytes
FFFF:FFFF db         dsk4sector_trac
FFFF:FFFF db         dsk4head_gap
FFFF:FFFF db         dsk4data_length
FFFF:FFFF db         dsk4format_gap
FFFF:FFFF db         dsk4format_byte
FFFF:FFFF db         dsk4settlg_time
FFFF:FFFF db         dsk4startup_tim
FFFF:FFFF db         diskette5info_1
FFFF:FFFF db         diskette5info_2
FFFF:FFFF db         dsk5motor_delay
FFFF:FFFF db         dsk5sectr_bytes
FFFF:FFFF db         dsk5sector_trac
FFFF:FFFF db         dsk5head_gap
FFFF:FFFF db         dsk5data_length
FFFF:FFFF db         dsk5format_gap
FFFF:FFFF db         dsk5format_byte
FFFF:FFFF db         dsk5settlg_time
FFFF:FFFF db         dsk5startup_tim
FFFF:FFFF db         diskette6info_1
FFFF:FFFF db         diskette6info_2
FFFF:FFFF db         dsk6motor_delay
FFFF:FFFF db         dsk6sectr_bytes
FFFF:FFFF db         dsk6sector_trac
FFFF:FFFF db         dsk6head_gap
FFFF:FFFF db         dsk6data_length
FFFF:FFFF db         dsk6format_gap
FFFF:FFFF db         dsk6format_byte
FFFF:FFFF db         dsk6settlg_time
FFFF:FFFF db         dsk6startup_tim
FFFF:FFFF db         diskette7info_1
FFFF:FFFF db         diskette7info_2
FFFF:FFFF db         dsk7motor_delay
FFFF:FFFF db         dsk7sectr_bytes
FFFF:FFFF db         dsk7sector_trac
FFFF:FFFF db         dsk7head_gap
FFFF:FFFF db         dsk7data_length
FFFF:FFFF db         dsk7format_gap
FFFF:FFFF db         dsk7format_byte
FFFF:FFFF db         dsk7settlg_time
FFFF:FFFF db         dsk7startup_tim
FFFF:FFFF db         diskette8info_1
FFFF:FFFF db         diskette8info_2
FFFF:FFFF db         dsk8motor_delay
FFFF:FFFF db         dsk8sectr_bytes
FFFF:FFFF db         dsk8sector_trac
FFFF:FFFF db         dsk8head_gap
FFFF:FFFF db         dsk8data_length
FFFF:FFFF db         dsk8format_gap
FFFF:FFFF db         dsk8format_byte
FFFF:FFFF db         dsk8settlg_time
FFFF:FFFF db         dsk8startup_tim
FFFF:FFFF db, R 10, C 68  video_hdwr_tbl1
FFFF:FFFF db, R 10, C 69  video_hdrw_tbl2
FFFF:FFFF db, R 10, C 6A  video_hdwr_tbl3
FFFF:FFFF db, R 10, C 6B  video_hdwr_tbl4
FFFF:FFFF dw, C 6C        video_buf_size1
FFFF:FFFF dw, C 6D        video_buf_size2
FFFF:FFFF dw, C 6E        video_buf_size3
FFFF:FFFF dw, C 6F        video_buf_size4
FFFF:FFFF db, R 8, C 70   video_columntbl
FFFF:FFFF db, R 8, C 71   video_hdwr_mode
FFFF:FFFF dw, C 72        hdsk_cylinders
FFFF:FFFF db, C 73        hdsk_heads
FFFF:FFFF dw, C 74        hdsk_lo_wrt_cyl
FFFF:FFFF dw, C 75        hdsk_precompcyl
FFFF:FFFF db, C 76        hdsk_err_length
FFFF:FFFF db, C 77        hdsk_misl_bits
FFFF:FFFF db, C 78        hdsk_timeout
FFFF:FFFF db, C 79        hdsk_fmt_timout
FFFF:FFFF db, C 7A        hdsk_chk_timout
FFFF:FFFF dw, C 7B        hdsk_parkng_cyl
FFFF:FFFF db, C 7C        hdsk_sectr_trac
FFFF:FFFF db, C 7D        hdsk_unused
FFFF:FFFF ds, R 0001, N 3
FFFF:FFFF db, R 10        hdsk_type_
FFFF:FFFF db, R 400,C 7F  video_char_tbl
FFFF:FFFF db, R E00,C 80  video_char_tbl2
FFFF:FFFF db, R 400,C 81  video_char_tbl3
FFFF:FFFF db, R 400,C 82  video_char_tbl4
FFFF:FFFF db, R 12D,C 83  video_char_tbl5
FFFF:FFFF db, R 1000,C 84 video_char_tbl6
FFFF:FFFF db, R 143,C 85  video_char_tbl7
FFFF:FFFF dd, C 86             VGAparm_tbl_ptr
FFFF:FFFF db, R 73F,C 8B       VGA_parm_tbl
FFFF:FFFF dw, oln,R 8          int_vec_table_0
FFFF:FFFF dw, oln,R 0001,C 87  int_vec_table_1
FFFF:FFFF dw, odf,R 2          int_data_table
FFFF:FFFF dw, R 2         video_ptr
FFFF:FFFF dw, oln,R 0001  int_vec_table_2
FFFF:FFFF da, R 0001      begin_text
FFFF:FFFF da, R 0001      begin_text2
FFFF:FFFF dw, C 8C        baud_rate_tbl
FFFF:FFFF dw              baud_150
FFFF:FFFF dw              baud_300
FFFF:FFFF dw              baud_600
FFFF:FFFF dw              baud_1200
FFFF:FFFF dw              baud_2400
FFFF:FFFF dw              baud_4800
FFFF:FFFF dw              baud_9600
FFFF:FFFF dw              baud_19200
FFFF:FFFF dw, C 8D        Config_tbl_size
FFFF:FFFF db, C 8E        Config_model
FFFF:FFFF db, C 8F        Config_submodel
FFFF:FFFF db, C 90        Config_BIOS_rev
FFFF:FFFF db, C 91        Config_features
FFFF:FFFF db, R 4, C 92   Config_bytes
FFFF:FFFF db, R E00,  C A9 Font_8x14
FFFF:FFFF db, R 400,  C AA Font_8x8a
FFFF:FFFF db, R 400,  C AB Font_8x8b
FFFF:FFFF db, R 0001, C AC Font_9x14
FFFF:FFFF db, R 1000, C AD Font_8x16
FFFF:FFFF db, R 0001, C AE Font_9x16
FFFF:FFFF ds, R 11
FFFF:FFFF db, C AF        columns_
FFFF:FFFF db, C B0        screen_rows_
FFFF:FFFF db, C B1        pixels_
FFFF:FFFF dw, C B2        page_bytes_
FFFF:FFFF db, R 4, C B3   sequencer_
FFFF:FFFF db, C B4        misl_reg_
FFFF:FFFF db, R 19, C B5  crt_ctrl_reg_
FFFF:FFFF db, R 14, C B6  attributes_
FFFF:FFFF db, R 9, C B7   graphics_
FFFF:FFFF ds, R 0000                        ; IDT table
FFFF:FFFF dw, oln         idt_dest_off_
FFFF:FFFF dw              idt_dest_seg_
FFFF:FFFF db              idt_count_
FFFF:FFFF db              idt_rights_
FFFF:FFFF dw              idt_unused_
FFFF:FFFF ds, R 0000                        ; GDT table
FFFF:FFFF dw              gdt_limit_
FFFF:FFFF dw              gdt_seg_lo_
FFFF:FFFF db              gdt_seg_hi_
FFFF:FFFF db              gdt_rights_
FFFF:FFFF dw              gdt_unused_
FFFF:FFFF db, R 200, C B9 key_scan_codes
FFFF:FFFF db, R 8         shift_keys
FFFF:FFFF db, R 8         shift_mask_tbl
FFFF:FFFF db, R 00        Mode_tables
FFFF:FFFF da, R 9, C 88   rom_versn_date
FFFF:FFFF db, C 89        model_type
FFFF:FFFF db              model_sub_type
FFFF:FFFF loc, Far        initialize
FFFF:FFFF loc, C 2D       init_start
FFFF:FFFF loc, Near, C 2E ROM_exception
FFFF:FFFF loc, Near       int_0_div_by_0         ; Interrupt vectors
FFFF:FFFF loc, Ext,  C 2A int_0_entry
FFFF:FFFF loc, Near, C 01 int_1_singlstep
FFFF:FFFF loc, Ext,  C 2A int_1_entry
FFFF:FFFF loc, Near, C 02 int_2_NMI
FFFF:FFFF loc, Ext,  C 2A int_2_entry
FFFF:FFFF loc, Near, C 03 int_3_debug_brk
FFFF:FFFF loc, Ext,  C 2A int_3_entry
FFFF:FFFF loc, Near, C 04 int_4_overflow
FFFF:FFFF loc, Ext,  C 2A int_4_entry
FFFF:FFFF loc, Near, C 05 int_5_prn_scrn
FFFF:FFFF loc, Ext,  C 2A int_5_entry
FFFF:FFFF loc, Near, C 06 int_6_badopcode
FFFF:FFFF loc, Ext,  C 2A int_6_entry
FFFF:FFFF loc, Near, C 07 int_7_unused
FFFF:FFFF loc, Ext,  C 2A int_7_entry
FFFF:FFFF loc, Near, C 08 int_8_timer
FFFF:FFFF loc, Ext,  C 2A int_8_entry
FFFF:FFFF loc, Near, C 09 int_9_keyboard
FFFF:FFFF loc, Ext,  C 2A int_9_entry
FFFF:FFFF loc, Near, C 0A int_0Ah_LAN
FFFF:FFFF loc, Ext,  C 2A int_0Ah_entry
FFFF:FFFF loc, Near, C 0B int_0Bh_RS-232
FFFF:FFFF loc, Ext,  C 2A int_0Bh_entry
FFFF:FFFF loc, Near, C 0C int_0Ch_RS-232
FFFF:FFFF loc, Ext,  C 2A int_0Ch_entry
FFFF:FFFF loc, Near, C 0D int_0Dh_harddsk
FFFF:FFFF loc, Ext,  C 2A int_0Dh_entry
FFFF:FFFF loc, Near, C 0E int_0Eh_floppy
FFFF:FFFF loc, Ext,  C 2A int_0Eh_entry
FFFF:FFFF loc, Near, C 0F int_0Fh_printer
FFFF:FFFF loc, Ext,  C 2A int_0Fh_entry
FFFF:FFFF loc, Near, C 10 int_10h_video
FFFF:FFFF loc, Ext,  C 2A int_10h_entry
FFFF:FFFF loc, Near, C 11 int_11h_equip
FFFF:FFFF loc, Ext,  C 2A int_11h_entry
FFFF:FFFF loc, Near, C 12 int_12h_memsiz
FFFF:FFFF loc, Ext,  C 2A int_12h_entry
FFFF:FFFF loc, Near, C 13 int_13h_floppy
FFFF:FFFF loc, Ext,  C 2A int_13h_entry
FFFF:FFFF loc, Near, C 14 int_14h_RS232
FFFF:FFFF loc, Ext,  C 2A int_14h_entry
FFFF:FFFF loc, Near, C 15 int_15h_servics
FFFF:FFFF loc, Ext,  C 2A int_15h_entry
FFFF:FFFF loc, Near, C 16 int_16h_keybd
FFFF:FFFF loc, Ext,  C 2A int_16h_entry
FFFF:FFFF loc, Near, C 17 int_17h_printer
FFFF:FFFF loc, Ext,  C 2A int_17h_entry
FFFF:FFFF loc, Near, C 18 int_18h_basic
FFFF:FFFF loc, Ext,  C 2A int_18h_entry
FFFF:FFFF loc, Near, C 19 int_19h_bootup
FFFF:FFFF loc, Ext,  C 2A int_19h_entry
FFFF:FFFF loc, Near, C 1A int_1Ah_RTC
FFFF:FFFF loc, Ext,  C 2A int_1Ah_entry
FFFF:FFFF loc, Near, C 1B int_1Bh_crtl_Bk
FFFF:FFFF loc, Ext,  C 2A int_1Bh_entry
FFFF:FFFF loc, Near, C 1C int_1Ch_tmrctrl
FFFF:FFFF loc, Ext,  C 2A int_1Ch_entry
FFFF:FFFF loc, Near, C 26 int_13h_hrd_dsk
FFFF:FFFF loc, Ext,  C 2A int_13h_hdentry
FFFF:FFFF loc, Ext, C 2C  int_20h_exit
FFFF:FFFF loc, Ext, C 2C  int_21h_DOS
FFFF:FFFF loc, Ext, C 2C  int_22h_exit
FFFF:FFFF loc, Ext, C 2C  int_23h_ctrl-C
FFFF:FFFF loc, Ext, C 2C  int_24h_error
FFFF:FFFF loc, Ext, C 2C  int_25h_dskread
FFFF:FFFF loc, Ext, C 2C  int_26h_dskwrit
FFFF:FFFF loc, Ext, C 2C  int_27h_TSR
FFFF:FFFF loc, Ext, C 2C  int_28h_often
FFFF:FFFF loc, Ext, C 2C  int_29h_display
FFFF:FFFF loc, Ext, C 2C  int_2Ah_NETBIOS
FFFF:FFFF loc, Ext, C 2C  int_2Bh
FFFF:FFFF loc, Ext, C 2C  int_2Ch
FFFF:FFFF loc, Ext, C 2C  int_2Dh
FFFF:FFFF loc, Ext, C 2C  int_2Eh_execute
FFFF:FFFF loc, Ext, C 2C  int_2Fh_spooler
FFFF:FFFF loc, Ext, C 2C  int_30h
FFFF:FFFF loc, Ext, C 2C  int_31h
FFFF:FFFF loc, Ext, C 2C  int_32h
FFFF:FFFF loc, Ext, C 2C  int_33h_mouse
FFFF:FFFF loc, Ext, C 2C  int_34h
FFFF:FFFF loc, Ext, C 2C  int_35h
FFFF:FFFF loc, Ext, C 2C  int_36h
FFFF:FFFF loc, Ext, C 2C  int_37h
FFFF:FFFF loc, Ext, C 2C  int_38h
FFFF:FFFF loc, Ext, C 2C  int_39h
FFFF:FFFF loc, Ext, C 2C  int_3Ah
FFFF:FFFF loc, Ext, C 2C  int_3Bh
FFFF:FFFF loc, Ext, C 2C  int_3Ch
FFFF:FFFF loc, Ext, C 2C  int_3Dh
FFFF:FFFF loc, Ext, C 2C  int_3Eh
FFFF:FFFF loc, Ext, C 2C  int_3Fh_overlay
FFFF:FFFF loc, Ext, C 2C  int_42h_video
FFFF:FFFF loc, Ext, C 2C  int_45h
FFFF:FFFF loc, Ext, C 2C  int_47h
FFFF:FFFF loc, Ext, C 2C  int_48h
FFFF:FFFF loc, Ext, C 2C  int_49h
FFFF:FFFF loc, Ext, C 2C  int_4Ah_alar
FFFF:FFFF loc, Ext, C 2C  int_4Bh
FFFF:FFFF loc, Ext, C 2C  int_4Ch
FFFF:FFFF loc, Ext, C 2C  int_4Dh
FFFF:FFFF loc, Ext, C 2C  int_4Eh
FFFF:FFFF loc, Ext, C 2C  int_4Fh
FFFF:FFFF loc, Ext, C 2C  int_50h
FFFF:FFFF loc, Ext, C 2C  int_51h
FFFF:FFFF loc, Ext, C 2C  int_52h
FFFF:FFFF loc, Ext, C 2C  int_53h
FFFF:FFFF loc, Ext, C 2C  int_54h
FFFF:FFFF loc, Ext, C 2C  int_55h
FFFF:FFFF loc, Ext, C 2C  int_56h
FFFF:FFFF loc, Ext, C 2C  int_57h
FFFF:FFFF loc, Ext, C 2C  int_58h
FFFF:FFFF loc, Ext, C 2C  int_59h
FFFF:FFFF loc, Ext, C 2C  int_5Ah
FFFF:FFFF loc, Ext, C 2C  int_5Bh
FFFF:FFFF loc, Ext, C 2C  int_5Ch
FFFF:FFFF loc, Ext, C 2C  int_5Dh
FFFF:FFFF loc, Ext, C 2C  int_5Eh
FFFF:FFFF loc, Ext, C 2C  int_5Fh
FFFF:FFFF loc, Ext, C 2C  int_60h
FFFF:FFFF loc, Ext, C 2C  int_61h
FFFF:FFFF loc, Ext, C 2C  int_62h
FFFF:FFFF loc, Ext, C 2C  int_63h
FFFF:FFFF loc, Ext, C 2C  int_64h
FFFF:FFFF loc, Ext, C 2C  int_65h
FFFF:FFFF loc, Ext, C 2C  int_66h
FFFF:FFFF loc, Ext, C 2C  int_67h_EMS
FFFF:FFFF loc, Ext, C 2C  int_68h
FFFF:FFFF loc, Ext, C 2C  int_69h
FFFF:FFFF loc, Ext, C 2C  int_6Ah
FFFF:FFFF loc, Ext, C 2C  int_6Bh
FFFF:FFFF loc, Ext, C 2C  int_6Ch
FFFF:FFFF loc, Ext, C 2C  int_6Dh
FFFF:FFFF loc, Ext, C 2C  int_6Eh
FFFF:FFFF loc, Ext, C 2C  int_6Fh
FFFF:FFFF loc, Near, C 1E int_70h_clock
FFFF:FFFF loc, Ext,  C 2A int_70h_entry
FFFF:FFFF loc, Near, C 1F int_71h_cascade
FFFF:FFFF loc, Ext,  C 2A int_71h_entry
FFFF:FFFF loc, Near, C 20 int_72h
FFFF:FFFF loc, Ext,  C 2A int_72h_entry
FFFF:FFFF loc, Near, C 21 int_73h
FFFF:FFFF loc, Ext,  C 2A int_73h_entry
FFFF:FFFF loc, Near, C 22 int_74h
FFFF:FFFF loc, Ext,  C 2A int_74h_entry
FFFF:FFFF loc, Near, C 23 int_75h_math
FFFF:FFFF loc, Ext,  C 2A int_75h_entry
FFFF:FFFF loc, Near, C 24 int_76h_hddone
FFFF:FFFF loc, Ext,  C 2A int_76h_entry
FFFF:FFFF loc, Near, C 25 int_77h
FFFF:FFFF loc, Ext,  C 2A int_77h_entry
FFFF:FFFF loc, Far,  C 28 int_18h_basic
FFFF:FFFF loc, Far,  C 2B setup_start
FFFF:FFFF loc, Near, C 00 int_return; User interrupts (set to an iret intruction)
FFFF:FFFF loc, Near, C 27 int_unused; Unused (bios unsupported) interrupts
FFFF:FFFF loc, Far        run_boot_sector
FFFF:FFFF loc, Near, C 29 system_reset
FFFF:FFFF loc, Ext,  C 2A power_on_reset
FFFF:FFFF loc, Unused     power_on_reset

 ЪДДД General Notes ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¿
 ³                                                                           ³
 ³     1) Must have at least one entry in each section to operate properly.  ³
 ³          Use "none" if no entries are needed for a section.               ³
 ³          Separate each section with at least one line with a space in     ³
 ³          column 1.                                                        ³
 ³                                                                           ³
 ³     2) Order of entries within each section is unimportant.               ³
 ³                                                                           ³
 ³     3) When a filename is specified in section 1, it is loaded and the    ³
 ³         first 250 segments can be referenced as seg_a to seg_z and        ³
 ³          seg_aa to seg_az through to the 250th segment seg_io.            ³
 ³          These can be used anywhere a segment is required.  For example   ³
 ³          a location label can be defined as:                              ³
 ³                                                                           ³
 ³                        6234:0124  loc, Ext, C 2  temp_value_a             ³
 ³                  or:   seg_b:0124 loc, Ext, C 2  temp_value_a             ³
 ³                                                                           ³
 ³          The second entry will use the 2nd segment within the loaded file ³
 ³          An error will be generated if a segment is used beyond those     ³
 ³          specified by the file load (Consult manual for more information).³
 ³                                                                           ³
 ³     4) Section 3 ignores blank lines or lines starting with a space in    ³
 ³          column 1, or the balance of a line where a semicolon occurs.     ³
 ³                                                                           ³
 ³     5) The following examples show acceptable forms for the same function,³
 ³          a location entry as a external entry point with comment #2:      ³
 ³                                                                           ³
 ³          seg_a:0124 loc, Ext, C 2  temp_value_a  ; prefered format        ³
 ³          seg_a:0124 l, Ext, C 2  temp_value_a                             ³
 ³          seg_a:0124 l, E, C=2  temp_value_a      ; notes can follow       ³
 ³          seg_a:0124 l, External, C 2       temp_value_a                   ³
 ³          seg_a:0124 Location, Ext, C 02   temp_value_a                    ³
 ³          seg_a:0124 L, e, c 2 temp_value_a                                ³
 ³                                                                           ³
 ³     6) Upper and lower case will have no effect (except for analysis      ³
 ³          options), but is preserved for labels.                           ³
 АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
iLavr