Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
нечего там знать. всё банально.
вот вызов из tr-dos
вызывается call x0826: db #nnКод:;Вызов функции rst 8 x0826 ex (sp),hl push af ld a,#CF ;rst 8 ld (#5CBF),a ld a,(hl) inc hl ld (#5CC0),a ld a,#C9 ld (#5CC1),a pop af ex (sp),hl push hl ld hl,x3D2F ex (sp), hl push hl ld hl,#5CBF ex (sp),hl ret
А, если всё-таки решите интегрировать в пзу, то всё будет намного проще, можно будет пользоваться встроенным механизмом вызова процедур из любой страницы пзу.
- - - Добавлено - - -
В общем, если по ПроПЗУ будет нужна помощь, пишите. Подскажу что знаю.
izzx(23.03.2023)
В первую очередь надо перегнать исходники под современный ассемблер. А то ж они под MA80 и запускаются через DosBox.
Затем попробовать считать/записать сектор через функцию rst 8 с включенным ОЗУ вместо ПЗУ. Вот тогда увидим, как оно работает.
Сейчас, конечно, нажатие на NMI во время работы CPM приводит к зависаниям. Монитор не определяет правильно ситуацию с ПЗУ. Но это другой вопрос, возможно, не связан с работой rst 8.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
Зависание при нажатии? Или при выходе из монитора?
После выхода из монитора. На сколько помню, виснет версия и МОА и FK. В мониторе вроде бы даже не предусмотрена индикация, что вместо ПЗУ включено ОЗУ.
А есть пример как при включенном ОЗУ 0 вызвать ту самую функцию RST?
И сразу пример минимальной работы с ХДД. Вот загрузился первый сектор с раздела ЦПМ и начинает что делать? Читать следующий сектор
C=36 ($hddrd)
или сначала инициализация диска и проверка что за раздел подключен?
С=35 ($hddmount)
Я думаю, если смонтирован раздел ЦПМ и мы с него начали грузится, то можно сразу читать секторы и ни о чём не заботится больше.
Но тут получится у нас будет подключен один или максимум четыре раздела ХДД. Может хватит и одного для начала, на максимальные 8 мегов.
Последний раз редактировалось izzx; 23.03.2023 в 20:36.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
при нажатии кнопки NMI невозможно определить что было включено в нулевой банке. поэтому при выходе монитор всегда устанавливает банку rom 1 (basic48)
вход по rst 8, обрабатывается только для basic48/basicc128. tr-dos входит через бейсик 48. соттветственнот откуда зашли по rst, туда и вышли.
в адресах #4000-#FFFF должна сидеть процедурка обеспечивающая такой вход
стэк тоже должен быть выше #4000
типа такой:
Код:bRST8 ex (sp),hl push af ld a,(hl) inc hl ld (xxx),a pop af ex (sp),hl push bc push af ld bc,#1FFD xor a out (c),a ld b,#7F ld a,#10 out (c),a pop af pop bc rst #08 xxx db 0 push bc push af ld bc,#1FFD ld a,#01 out (c),a pop af pop bc ret35я не нужнаИ сразу пример минимальной работы с ХДД. Вот загрузился первый сектор с раздела ЦПМ и начинает что делать? Читать следующий сектор
C=36 ($hddrd)
или сначала инициализация диска и проверка что за раздел подключен?
С=35 ($hddmount)
Я думаю, если смонтирован раздел ЦПМ и мы с него начали грузится, то можно сразу читать секторы и ни о чём не заботится больше.
Но тут получится у нас будет подключен один или максимум четыре раздела ХДД. Может хватит и одного для начала, на максимальные 8 мегов.
36я ведет отсчет не в абсолютных секторах, а относительно начала подраздела
поэтому de=0001, hl=адрес куда читать, b-сколько секторов (512б) читать и понеслась
Последний раз редактировалось izzx; 24.03.2023 в 19:41.
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
LW, спасибо. Удобная штука эти вызовы. А они работают только в проф ПЗУ? И почему встраивать ЦПМ в ПЗУ можно для версии GMX? А для простого Scorp можно встроить? И без проф ПЗУ?
Скрытый текст
https://drive.google.com/drive/folde...xZ83juCuaBe32I
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
Leningrad 1/Sega Joy Adapter
DivGMX
ZX Spectrum +2A
ZX Evolution rev. C
TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)