Бандура Сергей Иванович г. Николаев.
ВЫЗОВ 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 исключен, ведь если есть дисковод, тестирующая программа может быть загружена с диска.