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!$*``%( M93'C,C@@[$@`_A?_R@$/P0E_^?-VQ]W][=FPV1#X0$.@")??UA35$&+4B+_
M+#D!"EA$4E]W@>:2,W.3#.[J(BN.Q-1<#_`0E47U!!1_-%HC`*]U9Y]N$!
M"U05T>*3U?O54P'0]5YY]59)1/4?`0Q6] M4W1A;F18 M[^KB++[H`K0!`WZ#!=3U+#AD]0.)7K(Q#=O+IEC*]4O4YNG4X8M-B)O@WC?[
MJ?4RQ?#[7 M-4*W0/!GM#[`[7@HGK%S;D-S:PD1'M`,`$(7:UMQK-^$SW/>[P+?Q_E0$I
MH"++4V$0V`HX87.EQOGBERSTE?+$ZP$8",90!S$LES#KSP1X/ M;Q[[RXV$O=A%Z6J_&'V!I:6$QE;F?>=&CG5CIG)"UXU-D`[^_G^F8 MZIL:T#86QT``2')S=#("``6H`A+F&;65M,C4V("!(```!`4```````!M
MC64RXS4V(.Q(`/X7__P#




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

Похожие статьи:
Премьера - Премьера "MONSTER LAND".
Обозрение - Игровые программы, игры на целый диск, демоверсии игровых программ, электронные газеты, электронные журналы, системные программы, демонстрационные программы.
Outro - Авторы и контакты редакции.
Разное - Женщина и кoмпьютер, сoвместимы ли oни? О том как девушки относятся к компьютерам.
Всякая всячина - Реклама.

В этот день...   20 апреля