From
Valerij Kozhevnikoff
→
To
All
8 October 2002
Hello, All!
The subject is somehow cleverly designed. I've been using it all my life and only now
it was necessary to understand its structure.
It is not clear why the PREPOD and SPCPROG procedures are needed, as well as what
JUMPER 23600.
PREPOD is generally something incomprehensible. Assuming this is the main point
input, then in some drivers it preserves registers for some reason, but in others
on the contrary, it changes.
JUMPER 23600 is most likely used when returning to assembler.
Since the driver is most likely relocatable, SPCPROG probably serves for
settings for the new address. Damn, this is some bullshit.
Is it difficult for anyone here to clarify this information?
_······------====== Monitor glass cutter ======------······_
;PENTAGON HIGH MEMORY DRIVER
ORG #7000
MEMDRV
DW #0010 ;*why is this???*
ADAS LD A,#04
ZAP LD BC,#7FFD
OR#10
OUT(C),A
RET
DS 8
LD HL,#C000 ;JUMPER 23600 *where is the jumper?*
PUSH HL
JR ADAS ;26 BYTES
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
_······------====== Monitor glass cutter ======------······_;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 BYTESHIMEM 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*
From
Valerij Kozhevnikoff
→
To
All
8 October 2002
Hello, All!
The subject is somehow cleverly designed. I've been using it all my life and only now
it was necessary to understand its structure.
It is not clear why the PREPOD and SPCPROG procedures are needed, as well as what
JUMPER 23600.
PREPOD is generally something incomprehensible. Assuming this is the main point
input, then in some drivers it preserves registers for some reason, but in others
on the contrary, it changes.
JUMPER 23600 is most likely used when returning to assembler.
Since the driver is most likely relocatable, SPCPROG probably serves for
settings for the new address. Damn, this is some bullshit.
Is it difficult for anyone here to clarify this information?
_······------====== Monitor glass cutter ======------······_
;PENTAGON HIGH MEMORY DRIVER
ORG #7000
MEMDRV
DW #0010 ;*why is this???*
ADAS LD A,#04
ZAP LD BC,#7FFD
OR#10
OUT(C),A
RET
DS 8
LD HL,#C000 ;JUMPER 23600 *where is the jumper?*
PUSH HL
JR ADAS ;26 BYTES
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
_······------====== Monitor glass cutter ======------······_;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 BYTESHIMEM 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*
From
Aleksey Senilov
→
To
Valerij Kozhevnikoff
11 October 2002
||*()*|| Hello, _/Valerij/_!
October 08, 2002 02:01, Valerij Kozhevnikoff wrote to All:
VK> The subject is somehow cleverly designed. I've been using it all my life, and only now
VK> needed to understand its structure.
Once upon a time I figured it out when I modified it to suit my own method of numbering banks for
Pent512 (mask #C7 is terribly uncomfortable, #1F is much better).
VK> It is not clear why the PREPOD and SPCPROG procedures are needed, as well as what
VK> is JUMPER 23600.
Now...see below.
VK> PREPOD is generally something incomprehensible. Assuming that this is the main
VK> entry point, then in some drivers it saves registers for some reason, but in
VK>, on the contrary, changes others.
As you can see, on the Pentagon you only need BC to switch the page. And apparently she
You may not save it. But on others other registers are used, because
they are saved. For Pros, the ROM is generally called up.
And so, yes, PREPOD is the main entry point.
VK> JUMPER 23600 is most likely used when
VK> return to assembler.
Exactly.
VK> Since the driver is most likely relocatable, then
VK> SPCPROG is probably used to configure a new address. Damn, bullshitVK> some kind.
And this is also exactly the case. At the input to SPCPROG in BC the current address of the driver.
VK> Is it difficult for someone here to clarify this information?
Not at all.
VK> ;PENTAGON HIGH MEMORY DRIVER
VK> ORG #7000
VK> MEMDRV
VK> DW #0010 ;*why???*
For the life of me, I don’t know about this.
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 *where jumper?*
VK> PUSH HL
VK> JR ADAS ;26 BYTE
This piece of the driver is usually transferred as a resident, and the address of this point
is equal to 23600. Is it clear now?
VK> PREPOD LD BC,#7FFD
VK> OR #10
VK> OUT (C),A
VK> RET ;8 BYTES
Here the switching program is included in 8 bytes, and therefore without any CALL.
VK> HIMEM DB #C7 ;MEMORY MASKAnd do you use it? #1F is better and more compatible with other drivers. Otherwise
when trying to compile such a source (with loading into jars using mask #C7)
for example, on Pro will not lead to anything good.
All the best! /*Boh*/ / /Image Crew/ was with you. ||*()*||
From
WoWan Nickolaev
→
To
Valerij Kozhevnikoff
12 October 2002
How's yours, Valerij?
08 Oct 02 02:01, Valerij Kozhevnikoff -> All:
VK> DS 8
I'm interested in this line! What is generated here?
VK> LD HL,#C000 ;JUMPER 23600 *where is the jumper?*
VK> PUSH HL
VK> JR ADAS ;26 BYTE
WBR, Lynx // J!ZzZ!
[team ZX] [Dark Jungle] [GoA] [J!ZzZ project] [PLUt0N!um]
[GmD] [club LuK] [black-sand.da.ru]
From
Valerij Kozhevnikoff
→
To
Aleksey Senilov
16 October 2002
Hello, Aleksey!
11 Oct 02 20:21, Aleksey Senilov -> Valerij Kozhevnikoff:
VK>> The subject is somehow cleverly designed. I've been using it all my life, and only now
VK>> needed to understand its structure.
AS> Once I figured it out when I remade it
Give it here.
AS> according to your own method of numbering banks for Pent512 (mask #C7 is terribly inconvenient, #1F
AS> is much better).
Uh-huh. Scorp has #0F. I once cursed this #C7 a lot...
[the hamster ate it]
Thnx. No longer necessary. I came up with my own format.
WBR, Jason.
/*e-mail: jason2000(scary dog)yandex.ru ICQ: 62235830*/
/np:/ *silence*
From
Aleksey Senilov
→
To
Valerij Kozhevnikoff
19 October 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#