First complete version of project

This commit is contained in:
Roman Boykov 2021-11-11 12:50:05 +03:00
parent e50339e6af
commit e65c0f22b9
34 changed files with 132940 additions and 1 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

9
Export/README.md Normal file
View File

@ -0,0 +1,9 @@
# Orion-PRO
Готовые документы, полученные из исходников проекта.
В папке Schematics - файлы схем в формате PDF и SVG.
В папке PCB - мой вариант печатной платы. Отличается от исходного, v.3.21 разработанного участниками форума zx-pk.ru;
* Усиленными шинами питания с минимальной шириной 0,6мм (было 0,4мм)
* Более широкими и чкастично спрямленными сигнальными проводниками с шириной 0,4мм (было 0,3мм)

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 451 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 4.2 MiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 3.5 MiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 448 KiB

View File

@ -1,2 +1,13 @@
# Orion-PRO
Orion-PRO Russiab Amateur Personal Computer schematics and PCB
Схема и печатная плата, персонального любительского компьютера Orion-PRO.
Проект разработан в среде EasyEDA. Схема воссоздана по исходной схеме, представленной в книге "Радиолюбительский компьютер Orion-PRO" изданной OrionSoft.
Далее, схема была скорректирована реверсом исходных файлов печатной платы v 3.21, разработанной участиками форума zx-pk.ru в Sprint Layout.
Исправлено множество неточностей. Добавлены схемы подключения клавиатуры PS/2 и "выключателя" ATX-блока питания.
[Исходники](Sources)
[Готовые схемы](Export)
Попутно, отрисована печатная плата. Для себя, увеличил на ней ширину сигнальных дорожек и усилил шины питания. Убрал отверстия для лишних "слепышей". В остальном, плата соответствует плате v. 3.21

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1217
Sources/BIOS/ORDOS.asm Normal file

File diff suppressed because it is too large Load Diff

4
Sources/BIOS/README.md Normal file
View File

@ -0,0 +1,4 @@
# Orion-PRO
Исходные коды, получены на основе дизасма ПЗУ версии 3.20 от Error404 c помощью ghidra. Комментарии к коду, большей частью из оригинальных исходных текстов от авторов. Частично, коментарии мои.
Исходники адаптированы для сборки c помощью SjAsm Plus https://github.com/z00m128/sjasmplus.

1460
Sources/BIOS/ROM1-3.20.asm Normal file

File diff suppressed because it is too large Load Diff

1486
Sources/BIOS/ROM2-B128.asm Normal file

File diff suppressed because it is too large Load Diff

87
Sources/BIOS/base.inc Normal file
View File

@ -0,0 +1,87 @@
; Физический сегмент для непереключаемого ОЗУ
;RAMSEG:EQU 03H ;для плат V2.10
RAMSEG EQU 1FH ; для плат V3.10
;----------------------------------
VERS EQU 210H ; номер версии монитора двоично десятичный
VERS1 EQU '2' ; первая
VERS2 EQU '1' ; вторая
VERS3 EQU '0' ; третья цифра
;======================= Внимание ====================
; Констаны связи с драйвером TV-PRO из ROM2
;------------------------------------------------------
R2SEG EQU 1 ; Номер сегмента ROM2 с драйвером TV-PRO
;
; номер функции в векторе управления экраном
SETWND EQU 16 ; Установить окно
GETWND EQU 17 ; Получить окно
SETSCR EQU 4 ; Установить номер экрана
GETSCR EQU 5 ; Получить номер экрана
;
; номер функции в векторе вывода символа/курсора TV-PRO
NTVC EQU 0 ; Номер фуекции вывода символа TVC-PRO
NCURON EQU 2 ; Номер функции отображения курсора
NCUROF EQU 3 ; Номер функции ga{eniq kursora
NWCUR EQU 5 ; Номер функции ustanowki pozicii kursora
NRCUR EQU 6 ; Номер функции ~teniq pozicii kursora
NSYMMS EQU 7 ; Номер функции ustanowki revima wyw.simw.
NSYMMR EQU 8 ; Номер функции polu~eniq revima wyw.simw.
NCURMS EQU 14 ; Номер функции ustanowki revima kursora
NCURMR EQU 15 ; Номер функции polu~eniq revima kursora
NCURSS EQU 16 ; Номер функции ustanowki razmerow kursora
NCURSR EQU 17 ; Номер функции polu~eniq razmerow kursora
NCURPS EQU 18 ; Номер функции ustanowki {ablona kursora
NCURPR EQU 19 ; Номер функции polu~eniq {ablona kursora
NCURBS EQU 20 ; Номер функции ustanowki adresa bufera dlq kursora
NCURBR EQU 21 ; Номер функции polu~eniq adresa bufera dlq kursora
NCURLN EQU 22 ; Номер функции polu~eniq neobh.dliny bufera
;
; Номера битов в управляющем байте кусора
ENACUR EQU 5 ; Признак разрешения вывода курсора
BLINK EQU 4 ; Признак мигания курсора
; --------------------------------------------
; Размещение в памяти основных структур данных
; --------------------------------------------
STACK EQU 0xF7C0 ; Системный стек
SPTUNL EQU 0xFFFD ; Стек туннеля ROM1 <> ROM2
CELLS EQU 0xFF50 ; Начало рабочих ячеек
RAMTOP EQU 0xFFD0 ; Резерв ячеек для стека туннеля
;
COLDST EQU 0xFFFF ; Ячейка с флагом холодного старта
POS1 EQU 0xFFFE ; Указатель главного меню
POS2 EQU 0xFFFD ; Указатель меню тестов
SCR_C000 EQU 0xC000
;-------------------
; Флаги клавиатуры
;-------------------
; Распределение флагов по битам:
; по нажатию соотв. клавиши
CTRL EQU 0
SHIFT EQU 1
FIX EQU 2
ALF EQU 3
GRF EQU 4
; триггерные
CPSLCK EQU 5
RUSLAT EQU 6
GRFALF EQU 7
; триггерные для инверсии
bolmal EQU 0x20
ruslat EQU 0x40
grfalf EQU 0x80
;
KBD_TYPE EQU 0x4
MON_128_F800 EQU 0xF800
CPM_ROM2 EQU 0x2000 ; Начало ROM 2 - CP/M
BUFF EQU 0xB000 ; Буфер для чтения/записи сектора диска

1122
Sources/BIOS/ext.asm Normal file

File diff suppressed because it is too large Load Diff

1014
Sources/BIOS/kbd.asm Normal file

File diff suppressed because it is too large Load Diff

381
Sources/BIOS/mou.asm Normal file
View File

@ -0,0 +1,381 @@
; =========================================
;
; Модуль управления мышью для Orion-PRO
;
; MOU01.AS 14.02.96
; MOU02.AS 17.04.96
; MOU.AS 25.04.97
;
; =========================================
MSCTL LD A,IXL ; DB 0DDh, LD A,L
OR A
JP NZ,MSC1
; ---------------------------------------------
; Промежуточная функция перемещения курсора в окне
; Вход:
; (MSX) - координата X мыши
; (MSY) - координата Y мыши
; (MSMODE) - режим отображения мыши
; (MSPADR) - адрес шаблона мыши в сегменте
; (MSPSEG) - сегмент шаблона мыши
; (MSPH) - высота шаблона мыши
; (MSPL) - ширина шаблона мыши
; (MSPD) - смещение шаблона мыши в пределах байта
; (MSSTY) - шаг мыши по Y
; (MSSTX) - шаг мыши по X
; (MSBSEG) - 4 номера сегментов буфера сохранения
; (MSBADR) - адрес буфера сохранения в сегментах
; Выход:
; "CY" - указатель вне окна или переполнение буфера сохранения области экрана
; иначе:
; A - код нажатой кнопки:
; 80H - левая кнопка
; 40H - правая кнопка
; (MSX) - координата X мыши
; (MSY) - координата Y мыши
; Особенности: используются временные двухбайтовые ячейки (DMX),(DMY),(NDMX),(NDMY),(MSJ1)..(MSJ8)
;
INMS CALL INM0 ; Переустановить параметры курсора
; Вычисление шагов приращения координат
LD HL,(MSSTY)
PUSH HL
LD H,0 ; HL - шаг по Y
LD (DMY),HL
LD A,L
DEC H
NEG
LD L,A
LD (NDMY),HL
POP HL
LD L,H
LD H,0 ; HL - шаг по X
LD (DMX),HL
LD A,L
DEC H
NEG
LD L,A
LD (NDMX),HL
; Отображение указателя мыши
LD BC,(MSY)
LD DE,(MSX)
LD A,NCURON
CALL TVOUT
JR NC,INM1
LD A,NCUROF
CALL TVOUT
SCF
JR INM7
; Ожидание отпускания кнопки мыши
INM1 CALL MOUSE
BIT 4,A ; ЛКМ
JR Z,INM1
BIT 5,A ; ПКМ
JR Z,INM1
; Ожидание отпускания клавиш клавиатуры
INM01 CALL STTS
JR NZ,INM01
; Лвижение мыши до нажатия любой кнопки
INM2 CALL MSINK ; MOUSE + INKEY
JR NC,INM2
LD (MSY),BC
LD (MSX),DE ; Сохранение текущих X,Y
LD L,A
LD A,NCUROF
CALL TVOUT ; Погасить мышь
LD A,L
AND 0x30
CP 0x30 ; Нажаты кнопки?
JR NZ,INM4 ; Да
LD A,L
BIT 0x0,A
CALL Z,MLEFT
BIT 0x1,A
CALL Z,MRIGHT
BIT 0x2,A
CALL Z,MDOWN
BIT 0x3,A
CALL Z,MUP
LD A,NCURON
CALL TVOUT ; Отобразить мышь
JR NC,INM2 ; Норма. В окне
; Выход за пределы окна
LD BC,(MSY)
LD DE,(MSX) ; Прежние координаты
LD A,NCURON ; Отображение мыши на старом месте
CALL TVOUT
JR INM2
INM4 XOR A
BIT 4,L
JR NZ,INM5
SET 7,A
INM5 BIT 5,L
JR NZ,INM6
SET 6,A
INM6 OR A
; Восстановление параметров курсора
INM7 PUSH AF
LD BC,(MSJ6)
LD DE,(MSJ7)
LD HL,(MSJ8)
LD A,NCURBS ; адрес буфера
CALL TVOUT
LD BC,(OPER2)
LD HL,(MSJ5)
LD A,NCURPS ; адрес шаблона
CALL TVOUT
LD BC,(MSJ1)
LD DE,(MSJ2)
LD HL,(OPER1)
LD A,NCURSS ; размеры
CALL TVOUT
LD C,H
LD A,NCURMS ; режим курсора
CALL TVOUT
POP AF
RET
; ----------------------------------------------
; Мышь влево
; ----------------------------------------------
MLEFT LD HL,(NDMX)
ADD HL,DE
EX DE,HL
RET
; ----------------------------------------------
; Мышь вправо
; ----------------------------------------------
MRIGHT LD HL,(DMX)
ADD HL,DE
EX DE,HL
RET
; ----------------------------------------------
; Мышь вниз
; ----------------------------------------------
MDOWN LD HL,(DMY)
ADD HL,BC
LD B,H
LD C,L
RET
; ----------------------------------------------
; Мышь вверх
; ----------------------------------------------
MUP LD HL,(NDMY)
ADD HL,BC
LD B,H
LD C,L
RET
; ----------------------------------------------
; Процедура опроса мыши и клавиатуры
; Выход:
; "CY" - нажата кнопка или перемещение мыши
; A - код мыши
; ----------------------------------------------
MSINK CALL MOUSE ; Опрос мыши
AND 0x3F
CP 0x3F
SCF
RET NZ ; Мышь сработала
LD HL,0x200 ; Пауза
MSINK0 DEC HL
LD A,H
OR L
JR NZ,MSINK0
CALL INFST ; Опрос клавиш курсора
AND 0xF0
JR NZ,MSINK1
; Клавиши курсора не нажаты, значит ВК или АР2
CALL INKEY
LD L,0x1F
CP 0x0D ; ВК?
JR Z,MSINK5
LD L,0x2F
CP 0x1B ; AP2?
JR Z,MSINK5
XOR A
RET
MSINK1 LD L,0x3F
BIT 4,A ; Влево?
JR Z,MSINK2
RES 0,L
MSINK2 BIT 5,A ; Вверх?
JR Z,MSINK3
RES 3,L
MSINK3 BIT 6,A ; Вправо?
JR Z,MSINK4
RES 1,L
MSINK4 BIT 7,A ; Вниз?
JR Z,MSINK5
RES 2,L
MSINK5 LD A,L
SCF
RET
; ----------------------------------------------
; Переустановка параметров курсора
; ----------------------------------------------
INM0 LD A,NCURMR
CALL TVOUT ; Режим курсора
LD H,C
LD A,NCURSR
CALL TVOUT ; Размеры курсора
LD (MSJ1),BC
LD (MSJ2),DE
LD (OPER1),HL
LD A,NCURPR
CALL TVOUT ; Адрес шаблона
LD (OPER2),BC
LD (MSJ5),HL
LD A,NCURBR ; Адрес буфера сохр. инф. под курсором
CALL TVOUT
LD (MSJ6),BC
LD (MSJ7),DE
LD (MSJ8),HL
; Установка параметров стрелки мыши
CALL GETMMD
LD A,NCURMS
CALL TVOUT ; Установка размера мыши
CALL GETMSZ
LD BC,0
LD A,NCURSS
CALL TVOUT ; Размер шаблона мыши
CALL GETMPA
LD A,NCURPS
CALL TVOUT ; Адрес шаблона
CALL GETMBA
LD A,NCURBS
JP TVOUT ; Буфер для сохранения
MSC1 DEC A
JR NZ,MSC2
; ----------------------------------------------
; Установка режима вывода мыши
; ----------------------------------------------
SETMMD LD A,C
LD (MSMODE),A
RET
MSC2 DEC A
JR NZ,MSC3
; ----------------------------------------------
; Получение режима вывода мыши
; ----------------------------------------------
GETMMD LD A,(MSMODE)
LD C,A
RET
MSC3 DEC A
JR NZ,MSC4
; ----------------------------------------------
; Установка размеров указателя мыши
; ----------------------------------------------
SETMSZ LD (MSPH),DE
LD (MSSTY),BC
LD A,L
LD (MSPD),A
RET
MSC4 DEC A
JR NZ,MSC5
; ----------------------------------------------
; Получение размеров указателя мыши
; ----------------------------------------------
GETMSZ LD DE,(MSPH)
LD BC,(MSSTY)
LD A,(MSPD)
LD L,A
RET
MSC5 DEC A
JR NZ,MSC6
; ----------------------------------------------
; Установка адреса шаблона мыши
; ----------------------------------------------
SETMPA LD (MSPADR),HL
LD A,C
LD (MSPSEG),A
RET
MSC6 DEC A
JR NZ,MSC7
; ----------------------------------------------
; Получение адреса шаблона мыши
; ----------------------------------------------
GETMPA LD HL,(MSPADR)
LD A,(MSPSEG)
LD C,A
RET
MSC7 DEC A
JR NZ,MSC8
; ----------------------------------------------
; Установка адреса буфера сохранения для мыши
; ----------------------------------------------
SETMBA LD (MSBADR),HL
LD (MSBSEG),BC
LD (MSBSEG+2),DE
RET
MSC8 DEC A
JR NZ,MSC9
; ----------------------------------------------
; Получение адреса буфера сохранения для мыши
; ----------------------------------------------
GETMBA LD HL,(MSBADR)
LD BC,(MSBSEG)
LD DE,(MSBSEG+2)
RET
MSC9 DEC A
RET NZ
; ----------------------------------------------
; Определение длины буфера для сохранения
; ----------------------------------------------
GETMLN PUSH BC
PUSH HL
CALL INM0
LD A,NCURLN
CALL TVOUT
PUSH DE
CALL INM7
POP DE
POP HL
POP BC
RET
; ===================
; Конец драйвера мыши
; ===================

175
Sources/BIOS/ports.inc Normal file
View File

@ -0,0 +1,175 @@
;==============================
; Порты Ориона-128 и Ориона-ПРО
;==============================
PORT_00_DIPSW EQU 0x00
PORT_01_PRNT_DAT EQU 0x01
PORT_02_PRNT_CTL EQU 0x02
PORT_03_CTL EQU 0x03
PORT_04_RAM0P EQU 0x04
PORT_05_RAM1P EQU 0x05
PORT_06_RAM2P EQU 0x06
PORT_07_CTL EQU 0x07
PORT_08_RAM_PG EQU 0x08
PORT_09_ROM2_SEG EQU 0x09
PORT_0A_MEM_CFG EQU 0x0A
PORT_0B_CTL EQU 0x0B
PORT_10_VG_CMD EQU 0x10
PORT_11_VG_TRK EQU 0x11
PORT_12_VG_SECT EQU 0x12
PORT_13_VG_DATA EQU 0x13
PORT_14_VG_CTL EQU 0x14
; Порты клавиатуры
PORT_18_KBD EQU 0x18 ; F400 - port KBRD
PORT_19_KBD EQU 0x19
PORT_1A_KBD EQU 0x1A
PORT_1B_CTL EQU 0x1B
; Мультикарта
PORT_1D_MCARD_CTL EQU 0x1d
PORT_1E_MOUSE EQU 0x1e
; ROM-диск
PORT_28_ROMD_DATA EQU 0x28 ; данные ROM-диска
PORT_29_ROMD_ADRL EQU 0x29 ; мл. адрес в ROM-диске
PORT_2A_ROMD_ADRH EQU 0x2A ; ст. адрес в ROM-диске
PORT_2B_CTL EQU 0x2B ; управление ВВ55 ROM-диска
PORT_2C_ROMD_PAGE EQU 0x2C
PORT_3B_VI53_CTL EQU 0x3b ; ВИ53 на плате портов COM
; порты IDE
PORT_56_HDD_CTL EQU 0x56
PORT_57_HDD_HB EQU 0x57
PORT_58_HDD_LB EQU 0x58
PORT_59_HDD_ERR EQU 0x59
PORT_5F_HDD_STAT_CMD EQU 0x5F
; порты палитры
PORT_E0_PAL_R EQU 0xE0
PORT_E1_PAL_G EQU 0xE1
PORT_E2_PAL_B EQU 0xE2
PORT_F8_VMODE EQU 0xF8
REG_F9_RAM_PG EQU 0xF9
REG_FA_SCRN_CFG EQU 0xFA
PORT_FB_TMR_INT EQU 0xFB ; порт вкл прерывания и разблок. ROM
REG_FC_COLOR EQU 0xFC
PORT_FF_SPEAKER EQU 0xFF
; Порты через память для Ориона-128
PORT_128_F400 EQU 0xF400 ; Клавиатура
PORT_128_F500 EQU 0xF500 ; Порт пользователя 1
PORT_128_F600 EQU 0xF600 ; Порт пользователя 2
PORT_128_F700 EQU 0xF700 ; Порт платы расширения
PORT_128_F800 EQU 0xF800 ; WR Цветные режимы
PORT_128_F900 EQU 0xF900 ; WR Управление памятью
PORT_128_FA00 EQU 0xFA00 ; WR Переключение экранов
PORT_128_FB00 EQU 0xFB00 ; WR Переключение типа экрана граф/симв (не импользуется)
;
; Биты конфигурации порта 00 (DIP Switch)
;
SW_O128_MODE EQU 7
SW_INT_ROM_DISK EQU 6
SW_MENU EQU 5
SW_CHR_DISP EQU 4
SW_CMP_PG1 EQU 3
SW_KBD_RK86 EQU 2
SW_HDD EQU 1
SW_FDD EQU 0
;
; Биты порта 0A
;
RAM0_WND EQU 0 ; Окно 0 если 1 - Открыто (0000-3FFFF)
RAM1_WND EQU 1 ; Окно 1 если 1 - Открыто (4000-7FFFF)
RAM2_WND EQU 2 ; Окно 2 если 1 - Открыто (8000-BFFFF)
ROM2_WND EQU 3 ; Если 1 - Включено окно ROM2
ROM2_WND_ON EQU 0x08
ROM2_WND_OFF EQU 0xF7
ROM1_WND EQU 4 ; Если 1 - Включено окно ROM1
; ПОРТЫ "ОРИОН-ПРО"
; =================
; 00H - DIP-переключатели (чтение);
; 01H - данные принтера, инверсные (запись);
; 02H - управляющие сигналы принтера (чтение, запись);
; 03H - регистр управления для портов 00H..02H;
; 04H - регистр сегментов для окна ОЗУ RAM-0 (чтение, запись);
; 05H - регистр сегментов для окна ОЗУ RAM-1 (чтение, запись);
; 06H - регистр сегментов для окна ОЗУ RAM-2 (чтение, запись);
; 07H - регистр управления для портов 04H..05H;
; 08H - регистр страниц ОЗУ для режима "Pro" (чтение, запись);
; 09H - регистр сегментов ПЗУ ROM-2 (чтение, запись);
; 0AH - диспетчер памяти (чтение, запись);
; 0BH - регистр управления для портов 08H..0AH;
; 10H - регистр состояния/команд ВГ93 (чтение, запись)
; в режиме "128" доступен через адрес 0F710H;
; 11H - регистр дорожки ВГ93 (чтение, запись),
; в режиме "128" доступен через адрес 0F711H;
; 12H - регистр сектора ВГ93 (чтение, запись),
; в режиме "128" доступен через адрес 0F712H;
; 13H - регистр данных ВГ93 (чтение, запись),
; в режиме "128" доступен через адрес 0F713H;
; 14H - порт управления НГМД (запись),
; в режиме "128" доступен через адрес 0F714H;
; 18H..1BH - порты клавиатуры,
; в режиме "128" в зависимости от положения перемычки
; доступны через адреса 0F4XXH / 0F5XXH / 0F6XXH;
; 1CH - свободный порт Мультикарты (чтение, запись);
; 1DH - регистр управления портами 1CH,1EH,1FH;
; 1EH - порт параллельной мыши на Мультикарте (чтение);
; 1FH - порт джойстика на Мультикарте (чтение);
; 20H..23H - универсальный порт на Мультикарте, в зависимости
; от положения перемычки может быть доступен в режиме
; "128" по адресам 0F6XXH;
; 30H - регистр данных ВВ51 "COM1" (DD7)
; 31H - регистр управления ВВ51 "COM1" (DD7)
; 34H - регистр данных ВВ51 "COM2" (DD8)
; 35H - регистр управления ВВ51 "COM2" (DD8)
; 38H - счетчик 1 ВИ53 (DD6)
; 39H - счетчик 2 ВИ53 (DD6)
; 3AH - счетчик 3 ВИ53 (DD6)
; 3BH - регистр управления ВИ53 (DD6)
; 3EH - запись данных музыкального процессора (DD9)
; 3FH - чтение данных музыкального процессора (DD9)
; 3FH - запись номера регистра музыкального процессора (DD9)
; 50H - регистр данных RTC, CMOS ВИ1 (чтение, запись);
; 51H - регистр адреса RTC, CMOS ВИ1 (запись);
; 56H - регистр состояния/управления IDE (чтение, запись);
; 57H - старший байт регистра данных IDE (чтение, запись);
; 58H - младший байт регистра данных IDE (чтение, запись);
; 59H - регистр ошибок/свойств IDE;
; 5AH - счетчик секторов IDE
; 5BH - регистр сектора IDE
; 5CH - младший байт номера цилиндра IDE;
; 5DH - старший байт номера цилиндра IDE;
; 5EH - регистр головки и устройства IDE;
; 5FH - регистр состояния (чтение) и команд (запись) IDE;
; A0H,A1H,A2H - регистры адреса Квазидиска 1Мб/128К (запись);
; A3H - регистр данных Квазидиска 1Мб (чтение, запись);
; A4H - регистр данных Квазидиска 128К (чтение, запись);
; E0H - порт управления палитрой R на Мультикарте (запись);
; E1H - порт управления палитрой G на Мультикарте (запись);
; E2H - порт управления палитрой B на Мультикарте (запись);
; F8H - порт управления цветовым режимом экрана (запись),
; в режиме "128" доступен" через ячейку 0F800H;
; F9H - порт выбора страницы ОЗУ для режима "128" (запись),
; в режиме "128" доступен" через ячейку 0F900H;
; FAH - порт выбора номера экрана и ширины (запись),
; в режиме "128" доступен" через ячейку 0FA00H;
; FBH - регистр разрешения прерываний IRQ0 - 50Гц (запись);
; FCH - регистр псевдоцвета (запись);
; FDH - резерв для портов "ZX";
; FEH - порт ЦАП /звук (запись);
; FFH - динамик (запись).

967
Sources/BIOS/tst.asm Normal file
View File

@ -0,0 +1,967 @@
; =======================================
; Модуль тестирования компьютера
; TST02.AS 21.05.96
; TST03.AS 05.06.96
; TST.AS 01.06.97
; V2.10 17.04.00
; =======================================
TSTST EQU TSTR2>=0x8000 ; Признак отладки
; Ожидание нажатия клавиш
WAIT_KEY CALL STTS
JR NZ,WAIT_KEY
WT1 CALL INKEY
JR C,WT1
PUSH AF
CALL BEEP
WT2 CALL STTS
JR NZ,WT2
POP AF
CP 0x3
SCF
RET Z
CP 0x1b
SCF
RET Z
OR A
RET
; ---------------------------------------------
; Вывод большой рамки
; ---------------------------------------------
BIGFRM
LD C,0x1f
CALL TVSYM
LD BC,0x0
LD E,C
LD D,C
CALL UGOL
LD A,0xd
LD C,0xff
LD DE,0x17f
CALL TVGRF
LD C,0x2
LD DE,0x3
PUSH DE
CALL UGOL
LD A,0xd
LD BC,0xfd
LD DE,0x17c
CALL TVGRF
POP DE
LD BC,27
CALL UGOL
LD DE,380
LINEX
LD A,7
LD L,R2SEG
JP TVGRF
UGOL
LD A,0x5
JP TVGRF
; ---------------------------------------------
; Очистка средней части экрана
; ---------------------------------------------
WINCLR
LD BC,0xb432
LD DE,0x14
LD HL,0x154
CALL SETWIN ;undefined SETWIN()
LD A,0x12
CALL TVSCR
FULSCR
LD BC,0x0
LD E,C
LD D,C
LD HL,0x180
SETWIN
LD A,0x10
JP TVSCR
INVON DB -1BH,-'6',0
INVOF DB -1BH,-'7',0
CUROH DB -1BH,-'<',0
CUROF DB -1BH,-';',0
;Вывод пункта меню
PUNKT
PUSH BC
PUSH HL
LD L,(IX+R2SEG)
LD H,(IX+0x2)
LD E,(IX+0x3)
LD D,(IX+0x4)
INC C
PNKT1
DEC C
JR Z,PNKT3
EX DE,HL
PNKT2
LD B,(HL)
INC HL
INC B
DJNZ PNKT2
EX DE,HL
INC H
JR PNKT1
PNKT3
PUSH AF
CALL SCUR
POP AF
OR A
LD HL,INVON
CALL NZ,MSGXX
EX DE,HL
CALL MSGXX
LD HL,INVOF
CALL MSGXX
POP HL
POP BC
RET
MENU
LD B,(IX+0x0)
LD C,0x0
MNU1 XOR A
CALL PUNKT
INC C
DJNZ MNU1
;
MNU2 LD C,(HL)
LD A,0xff
CALL PUNKT
PUSH HL
LD HL,CUROF
CALL MSGXX
CALL KBRD
PUSH AF
LD HL,CUROH
CALL MSGXX
XOR A
CALL PUNKT
POP AF
POP HL
CP 0x1B
SCF
RET Z
;
CP 0x3
SCF
RET Z
;
CP 0xd
JR NZ,MNU3
LD A,(HL)
ADD A,A
LD E,A
LD D,0x0
LD L,(IX+0x5)
LD H,(IX+0x6)
ADD HL,DE
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
CALL PCHL
OR A
RET
PCHL JP (HL)
;
MNU3 LD DE,MNU2
PUSH DE
;
CP 0x19
JR NZ,MNU4
;
DEC (HL)
RET P
LD A,(IX+0)
DEC A
LD (HL),A
RET
;
MNU4 CP 0x1A
RET NZ
INC (HL)
LD A,(IX+0)
CP (HL)
RET NZ
LD (HL),0x00
RET
TEST CALL BIGFRM
LD HL,TIT2
CALL MSGXX
LD BC,99
LD DE,126
CALL UGOL
LD A,0xd
LD BC,0xa9
LD DE,0x107
CALL TVGRF
LD IX,MENU2
LD HL,POS2
CALL MENU
JR NC,TEST
RET
CONF CALL WINCLR
LD C,0x4f
LD B,0x6e
LD DE,0x72
LD HL,0x9e
CALL SETWIN
DRWFRAM LD BC,0x0
LD E,C
LD D,C
CALL UGOL
LD A,0xd
LD BC,0x6d
LD DE,0x9d
PUSH DE
CALL TVGRF
LD BC,0x14
LD E,B
LD D,B
CALL UGOL
POP DE
CALL LINEX
LD BC,0x6854
LD DE,0x85
LD HL,0x80
CALL SETWIN
LD HL,CFGMSG
CALL MSGXX
CALL OUTCFG
CALL WAIT_KEY
JP FULSCR
OUTCFG IN A,(PORT_00_DIPSW)
LD C,0xff
CALL OUTDIP
BIT 0x0,A
LD B,0x0
JR Z,CNF1
INC B
CNF1 CALL OUTPOS
CALL OUTDIP
BIT 0x1,A
LD B,0x0
JR Z,CNF2
INC B
CNF2 CALL OUTPOS
CALL OUTDIP
BIT 0x2,A
LD B,0x3
JR Z,CNF3
DEC B
CNF3 CALL OUTPOS
CALL OUTDIP
BIT 0x3,A
PUSH BC
LD C,0x32
JR Z,CNF4
DEC C
CNF4 PUSH AF
CALL SPC
POP AF
CALL TVSYM
POP BC
CALL OUTDIP
BIT 0x4,A
LD B,0x0
JR Z,CNF5
INC B
CNF5 CALL OUTPOS
CALL OUTDIP
BIT 0x5,A
LD B,0x0
JR Z,CNF6
INC B
CNF6 CALL OUTPOS
CALL OUTDIP
BIT 0x6,A
LD B,0x4
JR Z,CNF7
INC B
CNF7 CALL OUTPOS
CALL OUTDIP
BIT 0x7,A
LD B,0x7
JR Z,OUTPOS
DEC B
OUTPOS PUSH AF
CALL SPC
POP AF
PUSH BC
PUSH AF
LD HL,SELMSG
LD A,B
ADD A,A
ADD A,A
ADD A,B
LD B,0x5
JR RSL0
OUTDIP PUSH AF
CALL HDLN
POP AF
INC C
PUSH BC
PUSH AF
LD B,0xe
LD HL,DIPMSG
LD A,C
LD E,A
ADD A,A
ADD A,A
ADD A,A
ADD A,A
RSL0 LD E,A
LD D,0x0
ADD HL,DE
RSL1 LD A,(HL)
NEG
LD C,A
CALL TVSYM
INC HL
DJNZ RSL1
POP AF
POP BC
RET
CFGMSG DB -' ',-' ',-' ',-'C',-'O',-'N'
DB -'F',-'I',-'G',-'U',-'R',-'A',-'T',-'I',-'O'
DB -'N',-0DH,-0AH,0
;
SELMSG DB -'Y',-'e',-'s',-' ',-' '
DB -'N',-'o',-' ',-' ',-' '
DB -'P',-'K',-'-',-'8',-'6'
DB -'M',-'7',-'0',-'0',-'7'
DB -'R',-'O',-'M',-'-',-'2'
DB -'R',-'O',-'M',-'-',-'D'
DB -'O',-'R',-'D',-'O',-'S'
DB -'C',-'P',-'M',-'8',-'0'
;
DIPMSG DB -'1',-' ',-'F',-'l',-'o',-'p',-'p',-'y',-' '
DB -'d',-'r',-'i',-'v',-'e',-' ',-'-' ;14
DB -'2',-' ',-'H',-'a',-'r',-'d',-' ',-'d',-'r'
DB -'i',-'v',-'e',-' ',-' ',-' ',-'-'
DB -'3',-' ',-'K',-'e',-'y',-'b',-'o',-'a',-'r'
DB -'d',-' ',-' ',-' ',-' ',-' ',-'-'
DB -'4',-' ',-'P',-'a',-'g',-'e',-' ',-'C',-'P',-'/'
DB -'M',-'-',-'8',-'0',-' ',-'-'
DB -'5',-' ',-'E',-'x',-'t',-'.',-'d',-'i',-'s'
DB -'p',-'l',-'a',-'y',-' ',-' ',-'-'
DB -'6',-' ',-'S',-'t',-'a',-'r',-'t',-'-',-'M'
DB -'e',-'n',-'u',-' ',-' ',-' ',-'-'
DB -'7',-' ',-'L',-'o',-'a',-'d',-' ',-'O',-'R'
DB -'D',-'O',-'S',-' ',-' ',-' ',-'-'
DB -'8',-' ',-'S',-'y',-'s',-'t',-'e',-'m',-' '
DB -' ',-' ',-' ',-' ',-' ',-' ',-'-'
; ---------------------------------------------
; Тест ОЗУ
; ---------------------------------------------
TSTRAM CALL WINCLR
LD BC,0x37
LD DE,0x46
PUSH DE
CALL UGOL
LD BC,0xd7
LD DE,0x13e
LD A,0xd
CALL TVGRF
LD BC,0x4b
CALL UGOL
POP DE
CALL LINEX
LD BC,0xc3
CALL UGOL
LAB_ram_09c4
LD DE,0x13e
CALL LINEX
LD HL,RAMMSG
CALL MSGXX
; отображение на экране DD-номеров ИМС
LD BC,0x1000
LD DE,IMSCOD
RAMT1
LD H,8
LD A,C
CP 8
JR C,RAMT2
LD H,14
SUB 8
RAMT2
ADD A,A
ADD A,A
ADD A,0x11
LD L,A
CALL SCUR
LD A,'D'
CALL TVA
LD A,(DE)
CALL HEX_OUT
INC DE
INC C
DJNZ RAMT1
LD IX,IMSADR
RAMT3
LD L,(IX+0x0)
LD H,(IX+0x1)
INC IX
INC IX
LD A,L
OR H
JR Z,RAMT7
LD DE,GODIMS
LD C,0x20
RAMT4
LD A,(DE)
OR A
JR Z,RAMT3
LD B,A
INC DE
LD A,(DE)
RAMT5
LD (HL),A
INC L
DEC C
JR NZ,RAMT6
LD C,0x20
INC H
LD A,L
SUB C
LD L,A
LD A,(DE)
RAMT6
DJNZ RAMT5
INC DE
JR RAMT4
RAMT7
LD HL,SCLADR
LD C,17
RAZM1
LD B,0x8
RAZM2
LD (HL),0x0
LD A,B
CP 0x4
JR NZ,RAZM3
LD (HL),0xAA
RAZM3
INC L
DJNZ RAZM2
LD L,0xC9
INC H
DEC C
JR NZ,RAZM1
; Начало теста ОЗУ
IN A,(PORT_0A_MEM_CFG)
SET RAM1_WND,A ; Окно открыть
OUT (PORT_0A_MEM_CFG),A
db 0FDh
LD H,0 ; HY = константа заполнения
RAMT8
db 0FDh
LD L,0 ; LY = номер сегмента
RAMT9
db 0FDh
LD A,L ; A=LY
CP 0x20
JR NC,RAMT11
OUT (PORT_05_RAM1P),A
CP 0x3
JR Z,RAMT10
CP 0x1f
JR Z,RAMT10
;
IF TSTST
CP 12
JR C,RAMT10
ENDIF
;
LD HL,0x4000
LD DE,0x4001
db 0FDh
LD A,H ; A=HY
LD (HL),A
;
IF TSTST
IN A,(PORT_05_RAM1P)
CP 13; 20
JR NZ,XXX
LD A,(HL)
OR 12H
LD (HL),A
XXX
ENDIF
LD BC,0x3fff
LDIR
; Отображение факта заполнения сегмента
RAMT10
LD HL,SCLADR
SCAL1
LD A,(HL)
AND 0x1
JR Z,SCAL2
INC H
JR SCAL1
SCAL2 LD A,IYL ; db 0FDh, LD A,L
AND 0x7
INC A
LD B,A
LD A,0x1
SCAL3 RRCA
DJNZ SCAL3
LD C,A
LD B,0x8
SCAL4 LD A,(HL)
OR C
LD (HL),A
INC L
DJNZ SCAL4
IN A,(0x0)
AND 0x4
JR Z,KSTAT2
XOR A
OUT (PORT_18_KBD),A
IN A,(PORT_19_KBD)
XOR 0xff
JR Z,KSTAT3
KSTAT1 CALL BEEP
CALL WAIT_KEY
JR NC,KSTAT3
RET
KSTAT2 XOR A
OUT (PORT_1A_KBD),A
OUT (PORT_19_KBD),A
IN A,(PORT_18_KBD)
INC A
JR NZ,KSTAT1
KSTAT3 INC IYL ; db 0FDh, INC L
JR RAMT9
RAMT11 LD IYL,0 ; db 0FDh, LD L,0
; Проверка очередного сегмента
RAMT12 LD A,IYL ; db 0FDh, LD A,L
CP 0x20
JP NC,RAMT22
OUT (PORT_05_RAM1P),A
CP 0x3
JP Z,RAMT21
CP 0x1f
JP Z,RAMT21
;
IF TSTST
CP 12
JP C,RAMT21
ENDIF
;
LD HL,0x4000
LD B,H
LD C,L
LD E,IYH ; db 0FDh, LD E,H
RAMT13 LD A,(HL)
XOR E
JP Z,RAMT20
EXX
LD C,A
LD E,0x0
LD B,0x8
IN A,(PORT_05_RAM1P)
BIT 0x2,A
JR Z,RAMT14
LD E,0x10
RAMT14 RRC C
JR NC,RAMT19
LD HL,IMSADR
LD D,0x0
ADD HL,DE
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
INC L
LD A,(HL)
DEC L
AND 0x7f
JR NZ,RAMT19
LD IYL,E ; db 0FDh, LD L,E
LD IXL,C ; db 0DDh, LD L,C
LD IXH,B ; db 0DDh, LD H,B
LD DE,BADIMS
LD C,0x20
RAMT15 LD A,(DE)
OR A
JR Z,RAMT18
LD B,A
INC DE
LD A,(DE)
RAMT16 LD (HL),A
INC L
DEC C
JR NZ,RAMT17
LD C,0x20
INC H
LD A,L
SUB C
LD L,A
LD A,(DE)
RAMT17 DJNZ RAMT16
INC DE
JR RAMT15
RAMT18 LD E,IYL ; db 0FDh, LD E,L
LD C,IXL ; db 0DDh, LD C,L
LD B,IXH ; db 0DDh, LD B,H
IN A,(PORT_05_RAM1P)
LD IYL,A ; db 0FDh, LD L,A
RAMT19 INC E
INC E
DEC B
JP NZ,RAMT14
EXX
RAMT20 INC HL
DEC BC
LD A,B
OR C
JP NZ,RAMT13
RAMT21 LD HL,SCLADR
SCAL5 LD A,(HL)
AND 0x1
JR Z,SCAL6
INC H
JR SCAL5
SCAL6 LD A,IYL ; db 0FDh, LD A,L
AND 0x7
INC A
LD B,A
LD A,0x1
SCAL7 RRCA
DJNZ SCAL7
LD C,A
LD B,0x8
SCAL8 LD A,(HL)
OR C
LD (HL),A
INC L
DJNZ SCAL8
IN A,(0x0)
AND 0x4
JR Z,KSTAT4
XOR A
OUT (PORT_18_KBD),A
IN A,(PORT_19_KBD)
XOR 0xff
JR Z,KSTAT5
KSTAT6 CALL BEEP
CALL WAIT_KEY
JR NC,KSTAT5
RET
KSTAT4 XOR A
OUT (PORT_1A_KBD),A
OUT (PORT_19_KBD),A
IN A,(PORT_18_KBD)
INC A
JR NZ,KSTAT6
KSTAT5 INC IYL ; db 0FDh, INC L
JP RAMT12
RAMT22 LD A,IYH ; db 0FDh, LD A,H
CPL
LD IYH,A ; db 0FDh, LD H,A
OR A
JP NZ,RAMT8
LD HL,SCLADR+16*256
LD B,0x8
LD A,0xFC
RAMT23
LD (HL),A
INC L
DJNZ RAMT23
LD HL,0xF000
RAMT24
DEC HL
LD A,H
OR L
JR NZ,RAMT24
XOR A
OUT (PORT_05_RAM1P),A
IN A,(PORT_0A_MEM_CFG)
RES 0x1,A
OUT (PORT_0A_MEM_CFG),A
JP RAMT7 ; продолжить тестирование
;
; Таблица кодов ИМС (DD..) в экранном порядке
IMSCOD DB 70H,60H,61H,59H,73H,65H,62H,64H
DB 52H,71H,54H,57H,63H,74H,72H,53H
;
ANI EQU 0xCD5E ; Адрес начала изображений ИМС на экране
SCLADR EQU ANI + 0x036B ; Адрес шкалы на экране
; Таблица адресов ИМС на экране по номеру разряда
IMSADR DW ANI + 0x063C, ANI + 0x0600, ANI + 0x033C, ANI + 0x0300 ; Банк 1
DW ANI + 0x093C, ANI + 0x0900, ANI + 0x0000, ANI + 0x003C
DW ANI + 0x153C, ANI + 0x1500, ANI + 0x0F00, ANI + 0x0F3C ; Банк 2
DW ANI + 0x0C3C, ANI + 0x0C00, ANI + 0x1200, ANI + 0x123C
DW 0
;
; Изображение хорошей ИМС
GODIMS DB 1,0FFH,26,80H,1,83H,3,84H,2,0FFH
DB 26,01H,1,0C1H,3,21H,1,0FFH,0
;
; Изображение неисправной ИМС
BADIMS DB 27,0FFH,1,0FCH,2,0FBH,1,0F8H
DB 28,0FFH,1,3FH,2,0DFH,1,1FH,1,0FFH,0
;
RAMMSG DB -1BH,-'Y',-26H,-3CH
DB -'R',-'A',-'M',-' ',-'T',-'E',-'S',-'T',0
; ---------------------------------------------
; Тест ROM
; ---------------------------------------------
TSTROM
CALL WINCLR
; рисуем окно
LD BC,0x73
LD DE,0x74
PUSH DE
CALL UGOL
LD A,0xd
LD BC,0xa2
LD DE,0x0111
CALL TVGRF
LD BC,0x87
CALL UGOL
POP DE
CALL LINEX
TROM1
LD HL,ROMMSG
CALL MSGXX
CALL CSROM2
PUSH HL ; Контрольная сумма ROM2
CALL HEX_OUT ; Объем ROM2 TODO: это дб вызов HEX
CALL CSROM1 ; BC = Контрольная сумма
POP DE
LD HL,0x0E21
PUSH HL
CALL SCUR
LD A,B
CALL HEX_OUT
LD A,C
CALL HEX_OUT
POP HL
INC H
CALL SCUR
LD A,D
CALL HEX_OUT
LD A,E
CALL HEX_OUT
LD BC,0x1000
TROM2
CALL KB_STTS ; Получение статуса клавиатуры
JR Z,TROM3
CALL BEEP
JP WAIT_KEY
TROM3
DEC BC
LD A,B
OR C
JR NZ,TROM2
JR TROM1
ROMMSG DB -1BH,-'Y',-2CH,-3DH,-'R',-'O',-'M',-' '
DB -'T',-'E',-'S',-'T'
DB -1BH,-'Y',-2EH,-37H,-'R',-'O',-'M',-'1',-' '
DB -'C',-'S',-':',-' ',-' ',-' ',-' ',-' ',-' '
DB -' ',-'(',-' ',-'8',-'K',-')'
DB -1BH,-'Y',-2FH,-37H,-'R',-'O',-'M',-'2',-' '
DB -'C',-'S',-':',-' ',-' ',-' ',-' ',-' ',-' '
DB -' ',-'(',-' ',-' ',-'K',-')',-8,-8,-8,-8,0
; ---------------------------------------------
; TV-Тест
; ---------------------------------------------
TVTEST
LD A,0x2
OUT (PORT_F8_VMODE),A
LD DE,COLTAB
LD HL,SCR_C000
TVT1 LD B,3
TVT2 LD (HL),0xff
LD A,(DE)
LD C,A
LD A,1
CALL WRAM ; Запись байта в расширенную страницу
INC L
JR NZ,TVT2
INC H
LD A,H
CP 0xF0
JR Z,TVT3
DJNZ TVT2
INC DE
JR TVT1
; Монохромная палитра
TVT3 LD BC,0x1000
TVT4 LD A,C
RLCA
RLCA
RLCA
RLCA
OR C
OUT (PORT_E0_PAL_R),A
OUT (PORT_E1_PAL_G),A
OUT (PORT_E2_PAL_B),A
INC C
DJNZ TVT4
LD A,6
OUT (PORT_F8_VMODE),A
CALL WAIT_KEY
JR C,TVT5
; цветная палитра
CALL INITPAL
CALL WAIT_KEY
;
TVT5 LD A,0x0F
OUT (PORT_F8_VMODE),A
RET
COLTAB DB 0,8,1,9,4,12,5,13,2,10,3,11,6,14,7,15
; ---------------------------------------------
; Контрольная сумма ROM
; ---------------------------------------------
CSROM1
LD HL,0x0
LD DE,0x1fff
CSM
EX DE,HL
PUSH HL
LD A,L
LD HL,0x0
JR CSM2
CSM1
EX DE,HL
LD B,(HL)
LD C,B
INC HL
EX DE,HL
ADD HL,BC
CSM2
CP E
JR NZ,CSM1
POP BC
PUSH BC
LD A,B
CP D
LD A,C
JR NZ,CSM1
LD A,(DE)
ADD A,L
LD C,A
LD B,H
POP HL
RET
; ---------------------------------------------
; Контрольная сумма ROM2
; ---------------------------------------------
CSROM2
LD HL,0x2008
LD C,0x4
CALL TSTR2
LD B,0x8
LD A,0x64
JR NZ,CSR21
LD B,0x4
LD A,0x32
CSR21
PUSH AF
LD DE,0x4000
XOR A
LD (DE),A
LD C,A
LD L,A
LD H,A
IN A,(PORT_0A_MEM_CFG)
PUSH AF
SET 0x3,A
OUT (PORT_0A_MEM_CFG),A
CSR22
LD A,B
DEC A
JR NZ,CSR23
DEC DE
CSR23
LD A,C
OUT (PORT_09_ROM2_SEG),A
PUSH BC
PUSH DE
PUSH HL
LD HL,0x2000
CALL CSM
POP HL
ADD HL,BC
POP DE
POP BC
INC C
DJNZ CSR22
POP AF
OUT (PORT_0A_MEM_CFG),A
POP AF
RET
MENU1
DB 4h ; Число режимов меню
DB 1Bh ; X пунктов меню
DB 0Bh ; Y первого пнкта
DW MMSG1 ; Адрес сообщения с названием пунктов
DW MADR1 ; Таблица адресов обработки
;
; Названия пунктов главного меню
MMSG1 DB -' ',-' ',-'M',-'o',-'n',-'i',-'t',-'o',-'r',-' ',-' ',0
DB -' ',-'O',-'r',-'i',-'o',-'n',-'-',-'P',-'R',-'O',-' ',0
DB -' ',-'O',-'r',-'i',-'o',-'n',-'-',-'1',-'2',-'8',-' ',0
DB -' ',-' ',-'T',-' ',-'E',-' ',-'S',-' ',-'T',-' ',-' ',0
;
; адреса обработчиков пунктов главного меню
MADR1 DW MON_UR,MNT3,MON128,TEST
;
;Описание меню тестов
MENU2 DB 5 ; Число режимов меню
DB 25 ; X пунктов меню
DB 11 ; Y первого пунка
DW MMSG2 ; адрес сообщения с названиями пунктов
DW MADR2 ; таблица адресов обработки
;
MMSG2 DB -' ',-'C',-'o',-'n',-'f',-'i',-'g',-'u',-'r',-'a',-'t',-'i',-'o',-'n',-' ',0
DB -' ',-'R',-'A',-'M',-' ',-'-',-' ',-'T',-' ',-'e',-' ',-'s',-' ',-'t',-' ',0
DB -' ',-'R',-'O',-'M',-' ',-'-',-' ',-'T',-' ',-'e',-' ',-'s',-' ',-'t',-' ',0
DB -' ',-'T',-'V',-' ',-' ',-'-',-' ',-'T',-' ',-'e',-' ',-'s',-' ',-'t',-' ',0
DB -' ',-' ',-' ',-'M',-'a',-'i',-'n',-' ',-'M',-'e',-'n',-'u',-' ',-' ',-' ',0
;
; Адреса обработчиков пунктов меню тестов
MADR2 DW CONF,TSTRAM,TSTROM,TVTEST,MAIN
;
TIT1 DB -1BH,-59H,-21H,-22H
DB -'(',-'C',-')',-' ',-'1',-'9',-'9',-'3',-'-',-'2'
DB -'0',-'0',-'0',-' ',-'O',-'r',-'i',-'o',-'n'
DB -'s',-'o',-'f',-'t',-' ',-'C',-'o',-'.',-','
DB -'L',-'t',-'d',-1BH,-59H,-21H,-4FH
DB -'O',-'r',-'i',-'o',-'n',-'-',-'P',-'r',-'o'
DB -' ',-'V',-'3',-'.',-'1',-'0',0
;
TIT2 DB -1BH,-59H,-21H,-35H,-'*',-' ',-'T'
DB -'E',-'S',-'T',-' ',-'O',-'R',-'I',-'O',-'N',-'-'
DB -'P',-'R',-'O',-' ',-'*',0
;

8
Sources/README.md Normal file
View File

@ -0,0 +1,8 @@
# Orion-PRO
Исходные файлы проекта схемы и печатной платы компьютера Orion-PRO
Как использовать:
В редакторе EasyEDA (https://easyeda.com/editor), через "File" > "Open" > "EasyEDA Source", и выберите json файл и откройте его.