ZXNet эхоконференция «code.zx»


тема: драйвер памяти в Alasm



от: Valerij Kozhevnikoff
кому: All
дата: 08 Oct 2002
Здравствуй, All! Сабж как-то хитро устроен. Всю жизнь пользовался, и только сейчас потребовалось разобраться в его устройстве. Hепонятно, для чего нужны процедуры PREPOD и SPCPROG, а также что такое JUMPER 23600. PREPOD вообще что-то непонятное. Если предположить, что это основная точка входа, то в одних драйверах она зачем-то сохраняет регистры, а в других наоборот изменяет. JUMPER 23600 скорее всего используется при возврате в ассемблер. Поскольку драйвер скорее всего перемещаемый, то SPCPROG наверное служит для настройки на новый адрес. Блин, фигня какая-то. Трудно ли кому-нибудь прямо здесь уточнить эту инфу? _······------====== Стеклорез мониторный ======------······_ ;PENTAGON HIGH MEMORY DRIVER ORG #7000 MEMDRV DW #0010 ;*это зачем???* ADAS LD A,#04 ZAP LD BC,#7FFD OR #10 OUT (C),A RET DS 8 LD HL,#C000 ;JUMPER 23600 *куда jumper?* PUSH HL JR ADAS ;26 БАЙТ PREPOD LD BC,#7FFD OR #10 OUT (C),A RET ;8 BYTES HIMEM DB #C7 ;MEMORY MASK SYSPASH DB ADAS+1-MEMDRV ;SYSPAGE SHIFT DRVNAM DB "PENT" ;DRIVER NAME STRTSH DB ZAP-MEMDRV ;START SHIFT SPCPROG RET _······------====== Стеклорез мониторный ======------······_ ;SCORPION HIGH MEMORY DRIVER ORG #7000 MEMDRV ADAS LD A,#04 ZAP LD BC,#1FFD ;SCORP MEM DRV LD D,A AND #07 LD E,A XOR D RLCA OUT (C),A LD B,#7F SET 4,E OUT (C),E RET LD HL,#C000 ;JUMPER 23600 PUSH HL JR ADAS ;26 БАЙТ PREPOD EXX KAPS CALL 0 EXX RET DW 0 ;8 BYTES HIMEM DB #0F ;MEMORY MASK SYSPASH DB ADAS+1-MEMDRV ;SYSPAGE SHIFT DRVNAM DB "SCRP" ;DRIVER NAME STARTSH DB ZAP-MEMDRV ;START SHIFT SPCPROG LD HL,KAPS+1-MEMDRV ADD HL,BC EX DE,HL LD HL,ZAP-MEMDRV ADD HL,BC EX DE,HL LD (HL),E INC HL LD (HL),D RET _······------====== Стеклорез мониторный ======------······_ ;PROFI HIGH MEMORY DRIVER ORG #7000 MEMDRV ADAS LD A,#04 ZAP LD BC,#DFFD ;PROF MEM DRV LD E,#7F LD D,A AND #07 LD L,A XOR D RRCA RRCA RRCA SET 4,L JP #3899 LD HL,#C000 ;JUMPER 23600 PUSH HL JR ADAS ;26 БАЙТ PREPOD EXX PUSH HL KAPS CALL 0 POP HL EXX RET ;8 BYTES HIMEM DB #3F ;MEMORY MASK SYSPASH DB ADAS+1-MEMDRV ;SYSPAGE SHIFT DRVNAM DB "PROF" ;DRIVER NAME STARTSH DB ZAP-MEMDRV ;START SHIFT SPCPROG LD HL,KAPS+1-MEMDRV ADD HL,BC EX DE,HL LD HL,ZAP-MEMDRV ADD HL,BC EX DE,HL LD (HL),E INC HL LD (HL),D RET WBR, Jason. /*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/ /np:/ *silence*

от: Valerij Kozhevnikoff
кому: All
дата: 08 Oct 2002
Здравствуй, All! Сабж как-то хитро устроен. Всю жизнь пользовался, и только сейчас потребовалось разобраться в его устройстве. Hепонятно, для чего нужны процедуры PREPOD и SPCPROG, а также что такое JUMPER 23600. PREPOD вообще что-то непонятное. Если предположить, что это основная точка входа, то в одних драйверах она зачем-то сохраняет регистры, а в других наоборот изменяет. JUMPER 23600 скорее всего используется при возврате в ассемблер. Поскольку драйвер скорее всего перемещаемый, то SPCPROG наверное служит для настройки на новый адрес. Блин, фигня какая-то. Трудно ли кому-нибудь прямо здесь уточнить эту инфу? _······------====== Стеклорез мониторный ======------······_ ;PENTAGON HIGH MEMORY DRIVER ORG #7000 MEMDRV DW #0010 ;*это зачем???* ADAS LD A,#04 ZAP LD BC,#7FFD OR #10 OUT (C),A RET DS 8 LD HL,#C000 ;JUMPER 23600 *куда jumper?* PUSH HL JR ADAS ;26 БАЙТ PREPOD LD BC,#7FFD OR #10 OUT (C),A RET ;8 BYTES HIMEM DB #C7 ;MEMORY MASK SYSPASH DB ADAS+1-MEMDRV ;SYSPAGE SHIFT DRVNAM DB "PENT" ;DRIVER NAME STRTSH DB ZAP-MEMDRV ;START SHIFT SPCPROG RET _······------====== Стеклорез мониторный ======------······_ ;SCORPION HIGH MEMORY DRIVER ORG #7000 MEMDRV ADAS LD A,#04 ZAP LD BC,#1FFD ;SCORP MEM DRV LD D,A AND #07 LD E,A XOR D RLCA OUT (C),A LD B,#7F SET 4,E OUT (C),E RET LD HL,#C000 ;JUMPER 23600 PUSH HL JR ADAS ;26 БАЙТ PREPOD EXX KAPS CALL 0 EXX RET DW 0 ;8 BYTES HIMEM DB #0F ;MEMORY MASK SYSPASH DB ADAS+1-MEMDRV ;SYSPAGE SHIFT DRVNAM DB "SCRP" ;DRIVER NAME STARTSH DB ZAP-MEMDRV ;START SHIFT SPCPROG LD HL,KAPS+1-MEMDRV ADD HL,BC EX DE,HL LD HL,ZAP-MEMDRV ADD HL,BC EX DE,HL LD (HL),E INC HL LD (HL),D RET _······------====== Стеклорез мониторный ======------······_ ;PROFI HIGH MEMORY DRIVER ORG #7000 MEMDRV ADAS LD A,#04 ZAP LD BC,#DFFD ;PROF MEM DRV LD E,#7F LD D,A AND #07 LD L,A XOR D RRCA RRCA RRCA SET 4,L JP #3899 LD HL,#C000 ;JUMPER 23600 PUSH HL JR ADAS ;26 БАЙТ PREPOD EXX PUSH HL KAPS CALL 0 POP HL EXX RET ;8 BYTES HIMEM DB #3F ;MEMORY MASK SYSPASH DB ADAS+1-MEMDRV ;SYSPAGE SHIFT DRVNAM DB "PROF" ;DRIVER NAME STARTSH DB ZAP-MEMDRV ;START SHIFT SPCPROG LD HL,KAPS+1-MEMDRV ADD HL,BC EX DE,HL LD HL,ZAP-MEMDRV ADD HL,BC EX DE,HL LD (HL),E INC HL LD (HL),D RET WBR, Jason. /*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/ /np:/ *silence*

от: Aleksey Senilov
кому: Valerij Kozhevnikoff
дата: 11 Oct 2002
||*()*|| Привет тебе, _/Valerij/_! 08 октября 2002 02:01, Valerij Kozhevnikoff писал(а) All: VK> Сабж как-то хитро устроен. Всю жизнь пользовался, и только сейчас VK> потребовалось разобраться в его устройстве. Когда-то разбирался, когда переделывал под свой способ нумерации банков для Пент512 (маска #C7 жутко неудобна, #1F намного лучше). VK> Hепонятно, для чего нужны процедуры PREPOD и SPCPROG, а также что VK> такое JUMPER 23600. Сейчас... смотри ниже. VK> PREPOD вообще что-то непонятное. Если предположить, что это основная VK> точка входа, то в одних драйверах она зачем-то сохраняет регистры, а в VK> других наоборот изменяет. Как видишь, на Пентагоне для переключения страницы нужна лишь BC. А её видимо можно и не сохранять. А вот на других используются и другие регистры, потому они и сохраняются. Для Профи вообще ПЗУ вызывается. А так, да, PREPOD - основная точка входа. VK> JUMPER 23600 скорее всего используется при VK> возврате в ассемблер. Именно. VK> Поскольку драйвер скорее всего перемещаемый, то VK> SPCPROG наверное служит для настройки на новый адрес. Блин, фигня VK> какая-то. И это тоже именно так. Hа входе в SPCPROG в BC текущий адрес драйвера. VK> Трудно ли кому-нибудь прямо здесь уточнить эту инфу? Вовсе нет. VK> ;PENTAGON HIGH MEMORY DRIVER VK> ORG #7000 VK> MEMDRV VK> DW #0010 ;*это зачем???* Вот насчет этого хоть убей, не знаю. VK> ADAS LD A,#04 VK> ZAP LD BC,#7FFD VK> OR #10 VK> OUT (C),A VK> RET VK> DS 8 VK> LD HL,#C000 ;JUMPER 23600 *куда jumper?* VK> PUSH HL VK> JR ADAS ;26 БАЙТ Этот кусок драйвера обычно перекидывается как резидент, и адрес этой точки равен 23600. Теперь ясно? VK> PREPOD LD BC,#7FFD VK> OR #10 VK> OUT (C),A VK> RET ;8 BYTES Здесь программа переключения входит в 8 байт, и потому без всяких CALL. VK> HIMEM DB #C7 ;MEMORY MASK И ты им пользуешься? #1F ведь лучше и совместимее с другими драйверами. А то при попытке компиляции такого исходника (с подгрузкой в банки по маске #C7) например на Профи ни к чему хорошему не приведет. Всего наилучшего! С вами был /*Boh*/ / /Image Crew/. ||*()*||

от: WoWan Nickolaev
кому: Valerij Kozhevnikoff
дата: 12 Oct 2002
Как твоё ничего, Valerij? 08 Oct 02 02:01, Valerij Kozhevnikoff -> All: VK> DS 8 Мну эта строчка интересует! Что сюда генерится? VK> LD HL,#C000 ;JUMPER 23600 *куда jumper?* VK> PUSH HL VK> JR ADAS ;26 БАЙТ WBR, Lynx // J!ZzZ! [team ZX] [Dark Jungle] [GoA] [J!ZzZ project] [PLUt0N!um] [GmD] [club ЛюК] [black-sand.da.ru]

от: Valerij Kozhevnikoff
кому: Aleksey Senilov
дата: 16 Oct 2002
Здравствуй, Aleksey! 11 Окт 02 20:21, Aleksey Senilov -> Valerij Kozhevnikoff: VK>> Сабж как-то хитро устроен. Всю жизнь пользовался, и только сейчас VK>> потребовалось разобраться в его устройстве. AS> Когда-то разбирался, когда переделывал Давай его сюда. AS> под свой способ нумерации банков для Пент512 (маска #C7 жутко неудобна, #1F AS> намного лучше). Угу. У Скорпа #0F. Я когда-то сильно ругался на эту #C7... [хомякъ сожралъ] Thnx. Уже не надо. Я свой формат придумал. WBR, Jason. /*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/ /np:/ *silence*

от: Aleksey Senilov
кому: Valerij Kozhevnikoff
дата: 19 Oct 2002
||*()*|| Привет тебе, _/Valerij/_! 16 октября 2002 05:14, Valerij Kozhevnikoff писал(а) Aleksey Senilov: VK>>> Сабж как-то хитро устроен. Всю жизнь пользовался, и только VK>>> сейчас потребовалось разобраться в его устройстве. AS>> Когда-то разбирался, когда переделывал VK> Давай его сюда. Вот, лови. === Цитирую файл PENT_MY.ASM === ORG #7000 MEMDRV ADAS LD A,#04 ZAP LD C,A RLCA RLCA RLCA XOR C AND #C0 XOR C AND #C7 OR #10 LD BC,#7FFD OUT (C),A RET LD HL,#C000 ;JUMPER 23600 PUSH HL JR ADAS ;26 БАЙТ PREPOD EXX KAPS CALL 0 EXX RET DEFW 0 ;8 BYTES HIMEM DEFB #1F ;MEMORY MASK SYSPASH DEFB ADAS+1-MEMDRV ;SYSPAGE SHIFT DRVNAM DEFB "PENT" ;DRIVER NAME STARTSH DEFB ZAP-MEMDRV ;START SHIFT SPCPROG LD HL,KAPS+1-MEMDRV ADD HL,BC EX DE,HL LD HL,ZAP-MEMDRV ADD HL,BC EX DE,HL LD (HL),E INC HL LD (HL),D RET === Конец цитаты === AS>> под свой способ нумерации банков для Пент512 (маска #C7 жутко AS>> неудобна, #1F намного лучше). VK> Угу. У Скорпа #0F. Я когда-то сильно ругался на эту #C7... Да кому-то лень было :) VK> [хомякъ сожралъ] VK> Thnx. Уже не надо. Я свой формат придумал. Это ты для чего-то своего драйвера делаешь? Тогда как тебе такое... Упаковал хрипом, посмотри. Вот только mem256 там лишний, не в том формате. === Цитирую файл MEMDRVS.HRP === begin 644 MEMDRVS.HRP M2%)I!$*``%(:2,W.3#.[J(BN.Q-1<#_`0E47U!!1_-%HC`*]U9Y]N$! M"U05T>*3U?O54P'0]5YY]59)1/4?`0Q6][P+?Q_E0$I MH"++4V$0V`HX87.EQOGBERSTE?+$ZP$8",90!S$LES#KSP1X/=&CG5CIG)"UXU-D`[^_G^F8&;65M,C4V("!(```!`4```````!M MC64RXS4V(.Q(`/X7__P#




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Контакты - адреса редакции.
От редакции - Здраствуйте, читатели! Вот уже и вышел третий номер электронной газеты "FANTOM".
Обзор ПО - Обзор новинок: Operation of Red Refrigenerator
Железо - 122 цвета на спектруме: FLASH генератор цветов для ПК "Байт".
Светская беседа - интервью с кодером из Бубруйска "CODEMAN".

В этот день...   8 мая