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


тема: блочный драйвер для GRM-512



от: Eudgine Palenock
кому: Oleg Grigoriev
дата: 24 Dec 1998
Hello, Oleg !

Однажды, 22 Dec 98, некто Oleg Grigoriev писал к Eudgine Palenock,
на тему 'блочник рамдиска для турбо 2+ с 1-м метром мозгов'...

EP>> драйвер без буфера ->> быстро работает. под 512кб. и
EP>> исходники его есть...

OG> О. Хочу. Кинь сюда, интересно глянуть на исполнение логи-
OG> ческой части. Кстати, кто писал?

Вот, передаланный под GRM-512... А исходный вариант - под скорп
- был получен от Jason'а...

================== Начало файла 'GRM____b.C' ===================
ORG #A4E2,0

;для dread и write:
;hl-адрес в пам., de-номер нач. блока на диске, b-кол-во блоков

DEFW 0 ;без инсталляции
MEM1 EQU $-1
DEFW dread
MEM2 EQU $-1
DEFW write
MEM3 EQU $-1
DEFW binit

DEFB #E0,4,0,0,0,0,0,0

;таблица очередности заполнения страниц
ptable DEFB #D0,#D1,#D2,#D3,#D4,#D5,#D6,#D7
DEFB #90,#91,#92,#93,#94,#95,#96,#97
DEFB #40,#41,#42,#43,#44,#45,#46,#47
DEFB #07,#06,#04,#03,#01,#00

dread XOR A
JR LLA504
write LD A,#EB
LLA504 LD (LLA54B),A
LLA507 LD (LLA54E),A
LD A,H
ADD A,B
JR C,LLA514
ADD A,#40
JR NZ,LLA514
DEC A
ADD A,L
LLA514 LD A,7
RET C
JR LLA55A
LLA519 LD A,E
OR #C0
PUSH AF
NEG
LD C,B
CP B
JR NC,LLA524
LD C,A
LLA524 LD A,B
SUB C
LD B,0
EX DE,HL
PUSH HL
ADD HL,BC
EX (SP),HL
ADD HL,HL
ADD HL,HL
LD L,H
LD H,B
LD B,A
PUSH BC
LLA532 LD BC,ptable
ADD HL,BC
POP BC
LD A,(HL)
POP HL
EX (SP),HL
PUSH BC
LD B,C
LD C,0
LD L,C
DI
LD (L2),BC
L1 EQU $-2
LD BC,#7FFD
OUT (C),A
LD BC,0
L2 EQU $-2
LLA54B EX DE,HL
LDIR
LLA54E EX DE,HL
LD A,#10
LD BC,#7FFD
OUT (C),A
EI
EX DE,HL
POP BC
POP DE
LLA55A INC B
DJNZ LLA519
binit XOR A
RET
DEFW #FFFF
DEFW MEM1,MEM2,MEM3,LLA504,LLA507,LLA532,L1
=================== Конец файла 'GRM____b.C' ===================


С уважением, Евгений aka EVP.

от: Valerij Kozhevnikoff
кому: Oleg Grigoriev
дата: 25 Dec 1998

Здравствуй, Oleg !

24 Dec 98 at 06:03:58, Eudgine Palenock => Oleg Grigoriev:

EP>>> драйвер без буфера ->> быстро работает. под 512кб. и
EP>>> исходники его есть...

OG>> О. Хочу. Кинь сюда, интересно глянуть на исполнение логи-
OG>> ческой части. Кстати, кто писал?

EP> Вот, передаланный под GRM-512... А исходный вариант - под скорп
EP> - был получен от Jason'а...

Ага. А мной оно было получено из глюкодромного по оут (#фд),а блочника by
Kondratyev.

EP> ptable DEFB #D0,#D1,#D2,#D3,#D4,#D5,#D6,#D7
EP> DEFB #90,#91,#92,#93,#94,#95,#96,#97
EP> DEFB #40,#41,#42,#43,#44,#45,#46,#47
EP> DEFB #07,#06,#04,#03,#01,#00

А четвертые биты почему не выставлены???

[...]

EP> LLA532 LD BC,ptable
EP> ADD HL,BC
EP> POP BC
EP> LD A,(HL)
EP> POP HL
EP> EX (SP),HL
EP> PUSH BC
EP> LD B,C
EP> LD C,0
EP> LD L,C
EP> DI
EP> LD (L2),BC
EP> L1 EQU $-2 <<<- тут надо $-3 !
EP> LD BC,#7FFD

[...]

EP> DEFW #FFFF
EP> DEFW MEM1,MEM2,MEM3,LLA504,LLA507,LLA532,L1

Оно устарело давно. Вот оно под пень1024, окончательное на сегодня:

===================== import file zx1024j .a ==================
DEFW #0000 ;без инсталляции
DEFW dread
DEFW write
DEFW binit

;для dread и write:
;hl - адрес в памяти
;de - номер нач. блока на диске
;b - кол-во блоков

DEFB #E0,#04
DEFB #00,#00
DEFB #00,#00
DEFB #00,#00

;таблица очередности заполнения страниц

ptable DEFB #50,#51,#52,#53,#54,#55,#56,#57
DEFB #90,#91,#92,#93,#94,#95,#96,#97
DEFB #D0,#D1,#D2,#D3,#D4,#D5,#D6,#D7
;
DEFB #30,#31,#32,#33,#34,#35,#36,#37
DEFB #70,#71,#72,#73,#74,#75,#76,#77
DEFB #B0,#B1,#B2,#B3,#B4,#B5,#B6,#B7
DEFB #F0,#F1,#F2,#F3,#F4,#F5,#F6,#F7
DEFB #11,#13,#14,#16,#17

dread XOR A
JR WORK__
write LD A,#EB
WORK__ LD (EXCH_1),A
LD (EXCH_2),A
LD A,H
ADD A,B
JR C,ERR_07
ADD A,#40
JR NZ,ERR_07
DEC A
ADD A,L
ERR_07 LD A,#07
RET C
JR NEXT__

LOOP__ LD A,E
OR #C0
PUSH AF
NEG
LD C,B
CP B
JR NC,LLL1
LD C,A
LLL1 LD A,B
SUB C
LD B,#00
EX DE,HL
PUSH HL
ADD HL,BC
EX (SP),HL
ADD HL,HL
ADD HL,HL
LD L,H
LD H,B
LD B,A
PUSH BC
LD BC,ptable
ADD HL,BC
POP BC
LD A,(HL) ;
; OR #10 ;для 7ffd
POP HL
EX (SP),HL
PUSH BC
LD B,C
LD C,#00
LD L,C
DI

LD (STORE+1),BC
LD BC,#7FFD
OUT (C),A
STORE LD BC,0

EXCH_1 EX DE,HL
_LDI
LDI
LDI
LDI
LDI

LDI
LDI
LDI
LDI

LDI
LDI
LDI
LDI

LDI
LDI
LDI
LDI
JP PE,_LDI

EXCH_2 EX DE,HL

LD A,#10
LD BC,#7FFD
OUT (C),A
EI

EX DE,HL
POP BC
POP DE
NEXT__ INC B
DJNZ LOOP__
binit XOR A
RET

;(((16*16)+10)*16=4256

============================ import end =======================

WBR, Jason.




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

Похожие статьи:
Авторы - Обращение руководства CODERS' ACADEMY.
Мозаика - О новой рекламной газете "ZX-WORD". Несколько советов по игре "Prince of Persia" и суперкоды. Ставить ли видеопроцессор Dendy на Speccy или нет ?
Новости - софт: Sрrite EDitor (SED), EМS v2.55, англo-рyсский слoварь, Прoсмoтрщик BМР-файлoв.
График - график работы BBS.
FIDO начинающим - Меню работы с файлами.

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