Речь не о софте, который его использует, а о функционале "вшитом" в ОС, который имеет место быть.
Хотя... XD
https://vtrd.in/full_ver/ZALUPAGA.ZIP
http://www.worldofspectrum.org/pub/s...arts_2.trd.zip
Вид для печати
Речь не о софте, который его использует, а о функционале "вшитом" в ОС, который имеет место быть.
Хотя... XD
https://vtrd.in/full_ver/ZALUPAGA.ZIP
http://www.worldofspectrum.org/pub/s...arts_2.trd.zip
- - - Добавлено - - -Скрытый текст
Работа с расширенной памятью через электронный диск это хорошо, но всё портит дикая тормознутость самого 128бейсика. Однако если мы убиваем этот бейсик, то лишаемся нормальной работы с расширенной памятью из бейсика, ибо out 32765 ограничивает размер самой бейсик-проги, ибо нужен clear 49151. Засада, однако. Либо памяти 128, но тормоза и буфера принтера нет, либо буфер есть, тормозов нет, но памяти 48. Хотя, если прогу оптимизировать, чтобы влезала до 49152, то норм.
- - - Добавлено - - -
А если мы сделали usr0, то для переключения страниц из бейсика, нам больше не нужен poke 23388?
только вот в +3 изменили синтаксис для работы с рамдиском.
как итог имеем две версии программы для разных машин.
http://www.worldofspectrum.org/infos...cgi?id=0018540
это кстати игра скомпиленная (hisoft) с бейсика
А я вас подколю. ;)
https://www.youtube.com/watch?v=BoODgZXruxw
ZX_NOVOSIB, попробую, еще раз "разжевать", то же самое.
Скрытый текст
Сперва, пишется, непосредственно процедура обработки прерывания (кусок кода, который должен выполняться 50 раз в секунду или около того).
В ячейках памяти ОЗУ или ПЗУ с шагом в 256, лежит адрес (младший и старший байт) расположения обработчика изображенного выше. Складывающийся из значения вектора прерывания (который, за исключением подключения периферии, типа AMX-mouse, всегда имеет значение 255) и числа, записанного в регистр вектора прерывания.Цитата:
push ix ;cохраняются на стеке значения всех регистры процессора
push iy
push bc
push de
push hl
push af
exx
push bc
push de
push hl
ex af,af'
push af
call nn ;здесь может находиться адрес подпрограммы, вызываемый каждое прерывание или кусок кода, укладывающийся в прерывание
pop af ;восстанавливаются значения регистров процессора
pop hl ;до момента прихода прерывания
pop de
pop bc
ex af,af'
pop af
exx
pop hl
pop de
pop bc
pop iy
pop ix
jp 38 ;переход по стандартному адресу обработки прерывания im1 (команда rst 56). В противном случае, надо будет самостоятельно позаботиться об опросе порта клавиатуры, инкременте "часов" и т.п.
Для выключения режима (например, работы с tr-dos), выполняется следующий кусок кода.Цитата:
di ; запретить прерывания
ld a,m ;число m, значение регистра вектора прерываний
ld i,a
im 2 ;включение режима
ei ;разрешить прерывания
ret
Цитата:
di
ld a,3F ;установка исходного значения вектора прерываний, для нормальной работы в tr-dos
ld i,a
im 1 ;выключение режима
ei
ret
[свернуть]
goodboy, при im1 - никак. Сам уже не помню, почему так делал.
Вот, кстати, еще Swords of Bane