А чем ты их компилируешь в мнемониках Z80?fifan wrote:Если нужно могу выложить исходники всего RAMFOSа правда в мнемонике Z80.
Я свои исходники в мнемониках i8080 обычно ассемблером из пакета RAMFOS компилирую...
Moderator: Lavr
А чем ты их компилируешь в мнемониках Z80?fifan wrote:Если нужно могу выложить исходники всего RAMFOSа правда в мнемонике Z80.
В очередной раз понадобились мне исходники "Загрузчика" Специалиста уточнить некоторые особенности
Несколько оффтоп здесь... но попался мне по одному из адресов весьма неплохой иLavr wrote: 06 Feb 2026 05:52В процессе работы использовал информацию со следующих ресурсов:
https://emu80.org/docs/spec_techinfo
https://alemorf.github.io/retro_computers/computer.html?id=Specialist
https://alemorf.github.io/retro_computers/Specialist/russian.monitor1.html
Насколько позволяет судить исходник, "бегущего "0"" там нет...Порт A и младшая половина C программируются на вывод, порт B - на ввод. Осуществляется сканирование методом бегущего "0" путем записи в порты A и C и анализа порта B.
Порт A и младшая половина C программируются на ввод, порт B - на вsвод. Осуществляется сканирование методом бегущего "0" путем записи в порт B и анализа портов A и C.
Дизассемблировал и сам Монитор к этому Загрузчику.Lavr wrote: 06 Feb 2026 05:52... созрела у меня одна мысль, для реализации которой мне и понадобились исходники.

Дизассемблировал я, наконец, этот драйвер 80 символов в строке - DSP314.COM.Lavr wrote: 08 Mar 2026 09:28Есть у него там интересная фича по переключению графического режима "на лету" по горячей клавише:
Specialist_MX screen driver V3.14 дизассемблировать только начал. Он работает уже в карте памяти ОС CP/M-80 (в архиве она есть).
Честно говоря, и этот-то шрифт в реальной жизни - "вырви глаз", что называется...
Если кому-либо этот драйвер интересен, как часть CP/M, то самая странная ошибка вот эта:
Code: Select all
L40: EQU 0FFF4H; - 0FFF7H резерв по описанию RAMFOS
L41: EQU 0FFF5HПакет RAMFOS работает только с нулевой страницей ОЗУ, а ОС CP/M-80 - работает в первой.Lavr wrote: 08 Mar 2026 09:28... есть у него интересная опция обмена файлами между ОС CP/M-80 и ОС RAMFOS, о которой я ранее не знал.![]()
В общем мои "некоторые предположения, исходя из ассемблерного текста" полностью оправдались, когда я более внимательно проанализировал эти участки текста.Lavr wrote: 24 Mar 2026 07:32Если кому-либо этот драйвер интересен, как часть CP/M, то самая странная ошибка вот эта:По этим адресам портов УВВ в ПК "Специалист_МХ", насколько я знаю, никаких аппаратных средств нет.Code: Select all
L40: EQU 0FFF4H; - 0FFF7H резерв по описанию RAMFOS L41: EQU 0FFF5H![]()
У меня были некоторые предположения, исходя из ассемблерного текста, где идёт обращения к этим портам.
Но я оставил эти догадки при себе, ибо моих целей это не касалось.
Code: Select all
MVI A,36H ; 0011.0110 B
; 0 - двоичный счет
; 011 - режим 3 "меандр"
; 11 - чтение/запись слова
; 00 - канал 0
STA TMYC ; РУС таймера ВИ53
MVI A,0A0H
STA TIM0 ; Timer_0 - Sound
MVI A,01H; 01A0H = 416
STA TIM0 ; 4807 Hz = 4,8 kHz
STA K5B ; ?
LXI H,L41 ; 0FFF5H
MOV M,A ; 01H
MOV M,A ; 01H
MVI M,40H ; Reset command word - команда сброса
MVI M,0CDH;
; 1100 1101 B
; 01 - 1/16 частоты CLK: 4807 Hz / 16 = 300 Hz;
; 11 - 8 бит данных;
; 00 - без контроля четности;
; 11 - 2 стоп-бита
MVI M,27H ;
; 0010 0111 B
; 1 - передача разрешена;
; 1 - готовность терминала к передаче (DTR)
; 1 - приём разрешен;
; 0 - TxD line work normally;
; 0 - Don't Reset the error flags;
; 1 - запрос терминалу о готовности к приему (RTS)
CALL K5C+1 ; K5C+1=K5C+1 - переход на 2-й байт LXI B,0C5E5H ;Code: Select all
MVI A,0A0H
STA TIM0 ; Timer_0 - Sound
MVI A,01H; 01A0H = 416
STA TIM0 ; 4807 Hz = 4,8 kHz
K68:
LDA PPA1 ; PORT B
ANI 02H ; 0000.0010b Shift
JZ K69 ; Shift pressed!
LDA L41 ; 0FFF5H
ANI 81H ; 1000.0001b
CPI 81H ; 1000.0001b
JNZ K68
MOV A,C
STA L40 ; 0FFF4H ПЕРЕДАЧА CCode: Select all
LDA L41 ; 0FFF5H
ANI 81H ; 1000.0001b
CPI 81H ; 1000.0001b
JNZ K68