Бандура Сергей Иванович г. Николаев.
ВЫЗОВ TR-DOS ИЗ МЕНЮ БЕЙСИКА-128 *
КОРР: Как справедливо заметил Paul Smith (ZX РЕВЮ 96/1-2, стр.48), от Бейсика-128 "одна морока с загрузкой программ" Кроме того, занят буфер принтера, невозмжно использовать LPRINT-III, есть проблемы с некорректной обработкой редактором Бейсика-128 управляющих кодов, вставляемых для затруднения просмотра текста программ.
Ниже предлагается доработка ПЗУ Бейсика-128 (ROMO), при вызове TR-DOS переводящая машину в режим, который можно назвать "48К с открытым портом"
Идею и саму программу перевода я подсмотрел в загрузчике к TASM2.0 (сам ассемблер не работает). Режим отличается тем, что устанавливаются стандартные каналы ввода-вывода, работает редактор Бейсик-48, но сегменты ОЗУ и экран можно переключать при помощи OUT 32765,N, так что тестирующие программы определяют режим как 128К. При этом в любой момент возможно OUT 32765,48 - закрыть порт и установить стандартный режим 48К.
Поскольку ПЗУ Бейсика-48 (ROM1) не изменяется, не возникает проблем с совместимостью.
Дальнейшее описание сделано с допущением, что копия ПЗУ Бейсик-128 загружена в ОЗУ с адреса #8000.
Доработки сводятся к следующему:
1. Адрес #А75Е: сообщение Таре loader заменяем на TR DOS; сообщение Таре tester заменяем на Таре loader. Старший бит в последнем символе каждого байта должен быть установлен в 1 (+#80).
2. По адресу #А746 заносим #16; по адресу #А752 заносим #31 (меняем местами).
3. По адресу #В853 заносим #84; по адресу #В857 заносим #5Е (тоже меняем местами).
4. С адреса #ВВЕ9, на месте блока Таре tester, размещаем такую программу:
ORG |
#BBE9 |
Dl |
|
LD |
DE,#5B00 |
LD |
HL,#3BF8 |
LD |
BC,#002F |
LDIR |
|
JP |
#5B00 |
LD |
A,# 10 |
LD |
BC,#7FFD |
OUT |
(C),A |
;включаем ПЗУ 48K |
LD |
SP,#FF54 |
LD |
HL,# 1303 |
PUSH |
HL |
LD |
(#5C3D),SP |
стандартная |
|
LD |
HL,# 1BB0 |
процедура об |
PUSH |
HL |
;работки ошибок |
LD |
HL,(#5C4F) |
стандартный |
LD |
DE,#000F |
;канал принтера |
ADD |
HL.DE |
LD |
DE,#1B5E |
EX |
DE.HL |
LD |
ВС,#0004 |
LDIR |
|
RES |
4,(IY+1) |
;признак стандартной конфигурации
EI
JP #3D00
;RANDOMIZE USR 15616
Теперь для запуска TR-DOS не нужно по буквам набирать RANDOMIZE USR 15616, а достаточно нажать клавишу ENTER. Пункт Таре tester исключен, ведь если есть дисковод, тестирующая программа может быть загружена с диска.