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


тема: компы.



от: Aleksandr Majorov
кому: Alexandr Kolotuhin
дата: 04 Jul 2000
Пpивет Alexandr!

01 Июл 00 16:25, Alexandr Kolotuhin -> All:
[поскипано]

AK> 1. Как из асьма опpеделить pазличные типы компов:
AK> Скоpп, Кай, Пpоффи, АТМ и дpyгие, котоpые имеют память 256 и
AK> выше.
AK> 2. У каких, из выше пеpечисленных компов, чеpез какие поpты
AK> пеpеключаются стpаницы.

Это стаpый-стаpый соpец by Creator (вpоде).
Вpоде даже pаботает :)

=== begin of file AUTOconf.txt ===

;IY+#00 MACHINE TYPE
;IY+#01 ALL PAGES
; 0 =1 #7FFD SPECTRUM 128K
; 1 =1 #1FFD KAY
; 2 =1 #DFFD PROFI
; 3 =1 TURBO 2+
; 4 =1 #FDFD ATM TURBO 1
; 5 =1 6 & 7 bit #7FFD
; 7 =1 #1FFD SCORPION
;---------------------------------------;
RAM_TST DI
LD IY,MAC_TYP
XOR A
LD (IY+#00),A
LD A,(#0008)
CP #C3
JR NZ,ITURBO
SET 7,(IY+#00)
JR I7FFD
;------------------------------------;
ITURBO LD HL,(1111)
LD BC,#FFF7
LD A,#1F
CALL OUTC_A
LD DE,(#C000+1111)
AND A
SBC HL,DE
LD A,#FF
CALL OUTC_A
JR NZ,IDFFD
SET 3,(IY+#00)
JR I7FFD
;-------------------------------;
IDFFD LD HL,#0080
LD DE,#1000
LD BC,#DFFD
OUT (C),D
LD A,(HL)
INC (HL)
CP (HL)
LD (HL),A
OUT (C),E
JR Z,I1FFD
SET 2,(IY+#00)
JR I7FFD
;-------------------------------;
I1FFD LD DE,#1100
LD B,#1F
OUT (C),D
LD A,(HL)
INC (HL)
CP (HL)
LD (HL),A
OUT (C),E
JR Z,IFDFD
SET 1,(IY+#00)
JR I7FFD
;-------------------------------;
IFDFD LD E,#10
LD B,C
LD HL,#FFFF
OUT (C),D
LD B,#7F
OUT (C),D
LD (HL),D
LD B,C
OUT (C),E
LD B,#7F
OUT (C),D
LD (HL),E
LD B,C
OUT (C),D
LD B,#7F
OUT (C),D
LD A,(HL)
CP D
JR NZ,I7FFD
SET 4,(IY+#00)
;-------------------------------;
I7FFD LD HL,#0080
LD DE,#1000
LD BC,#7FFD
OUT (C),D
LD A,(HL)
OUT (C),E
CP (HL)
OUT (C),D
JR Z,SIZED
SET 0,(IY+#00)
;-------------------------------;
SIZED LD HL,TABL_P1
LD A,#FF
SIZED1 LD (HL),A
INC HL
INC A
CP #02
JR NZ,$+#03
INC A
CP #05
JR NZ,$+#03
INC A
CP #08
JR NZ,SIZED2
BIT 7,(IY+#00)
JR Z,SIZED2
INC A
SIZED2 CP #80
JR NZ,SIZED1
LD (HL),#FF
CALL VIRT
XOR A
CALL EX_RAM
LD IY,#0000
EI
RET
;-------------------------------;
VIRT LD IX,#DB00
LD HL,TABL_P2+127
LD B,128
V_R11 LD A,B
DEC A
CALL EX_RAM
LD C,(IX+0)
LD (HL),C
LD (IX+0),A
DEC HL
DJNZ V_R11
;-------------------------------;
LD (IY+#01),125
BIT 7,(IY+#00)
JR NZ,$+#05
INC (IY+#01)
LD DE,TABL_P1+#01
V_R20 LD A,(DE)
INC DE
CP #FF
JR Z,V_R30
CALL EX_RAM
CP (IX+0)
JR Z,V_R20

DEC DE
PUSH DE
LD HL,TABL_P1+127
AND A
SBC HL,DE
LD B,H
LD C,L
LD H,D
LD L,E
INC HL
LDIR
DEC (IY+#01)
POP DE
JR V_R20
;---------------------------------------;
V_R30 LD B,128
LD HL,TABL_P2
V_R31 LD A,128
SUB B
CALL EX_RAM
LD A,(HL)
LD (IX+#00),A
INC HL
DJNZ V_R31
RET
;-------------------------------;
ON_PAGE PUSH HL,BC
LD C,A
LD B,#00
LD HL,TABL_P1+#01
ADD HL,BC
LD A,(HL)
POP BC,HL
CALL EX_RAM
EI
RET
;-----------------------;
EX_RAM DI
PUSH HL,BC,AF,AF
LD A,(MAC_TYP)
BIT 1,A
JR NZ,ZS256
BIT 7,A
JR NZ,ZS256
BIT 2,A
JR NZ,PROFI
BIT 3,A
JR NZ,TURBO_2
BIT 4,A
JR NZ,ATM1
;-------------------------------;
SPEC128 POP AF
LD B,A ;IN: A=%000rrrrr
AND %00000111
LD C,A
LD A,B
AND %00011000
RLCA
RLCA
RLCA
OR %00010000
OR C
LD BC,#7FFD
OUT (C),A
POP AF,BC,HL
RET
;-------------------------------;
TURBO_2 POP AF
PUSH AF
LD BC,#FFF7
AND %00111000
CPL
CALL OUTC_A
JR SPEC128
;-------------------------------;
ATM1 POP AF
PUSH AF
LD BC,#FDFD
AND %00011000
RRCA
RRCA
RRCA
ATM10 OUT (C),A
JR SPEC128
;-------------------------------;
PROFI POP AF
PUSH AF ;IN: A=%00zzzxxx
LD BC,#DFFD
AND %00111000
RRCA
RRCA
RRCA
JR ATM10
;-------------------------------;
ZS256 POP AF
LD B,A ;IN: A=%0zzzyxxx
AND %00001000
RLCA
LD C,A
LD A,B
AND %00110000
RLCA
RLCA
OR C
PUSH BC
LD BC,#1FFD
OUT (C),A
POP BC
LD A,B
AND %00000111
LD C,A
LD A,B
AND %01110000
RRCA
OR C
JR PROFI+#01
;-------------------------------;
OUTC_A PUSH HL
LD HL,#2A53
EX (SP),HL
JP #3D2F
;-------------------------------;

Aleksand

от: Felix Knajzev
кому: Alexandr Kolotuhin
дата: 05 Jul 2000
Приветствую тебя, о досточтимый Alexandr!

[Суббота 1 Июль 2000] в [16:25:31] Alexandr Kolotuhin начертал письмецо к All.
Обсуждали они тему "компы.". Продолжим начатое...

AK> Подскажите, плиз:
AK> 1. Как из асьма определить различные типы компов:
AK> Скорп, Кай, Проффи, АТМ и другие, которые имеют память
AK> 256 и
AK> выше.

[skip]


=============== тут мы начнем файл "OnLine76.C" ================

(C) PAUL FALCON

Вот хотел бы вам представить програмку, которая поможет "бо-
роться" с верхней памятью. То есть управлять ею на разных маши-
нах.

Программа при запуске сама определяет с каким компьютером она
работает. И выставляет переменные в соответствии с тестирова-
нием машины: какой компьютер, и сколько у него "мозгов" т.е. па-
мяти.

Для работы с программой достаточно обращения к трем процеду-
рам независимо от типа определенного компьютера.

Основную систему 55-65% кодил мой друг - Юра Ковалевский. пе-
реработал, добавил еще машин для определения, кодил 45-35% - я.

Hу теперь техническая информация, собственно, что и как:

Данные по определенной машине находятся в переменной (IY+118)
(23728) и расположение ее битов следущее:

0 =1 есть порт #7FFD SPECTRUM 128K
1 =1 есть порт #1FFD SCORPION или KAY
2 =1 есть порт #DFFD PROFI
3 =1 есть порт #FFF7 TURBO 2+
4 =1 есть порт #FDFD ATM TURBO
5 =1 действуют 6 и 7 bit #7FFD
6
7 =1 по адресу 8 байт #C3 (SCORPION)

Соответствия по значению, т.е. какое значение будет иметь пе-
ременная (IY+118) при определении того или иного компьютера:

0 SPECTRUM 48K
1 SPECTRUM 128K
32+1 SPECTRUM 256K - 512K
2 KAY 48K
2+1 KAY 256K - 1024к
4 PROFI 48K
4+1 PROFI 256K - 1024K
8 TURBO 2+ 48K
8+1 TURBO 2+ 128K - 1024K
16 ATM TURBO 48K
16+1 ATM TURBO 128K - 512K
128 SCORPION 48K
128+1 SCORPION 128K
128+2 SCORPION 256K - 1024K


Количество реально существующих страниц заносится в перемен-
ную (IY+119)(23729).

Естественно, можно использовать у другие адреса хранения этих
переменных, но это самые удобные на мой взгляд.

Управление программой настолько просто, что надо знать всего
три процедурки:


Если при определении какой либо машины надо исключить нес-
колько страниц, то здесь поможет процедура DEBUG, в регистре C
указывается номер удаляемой из таблицы страницы. Делать это на-
до сразу после определения машины и после определения памяти
(после CALL VIRT).

Пример : ....
LD C,8
CALL DEBUG
....

В данном примере будет удалена страница номер 8 из доступных
для переключения (для Scorp'a полезно, не убивается теневик).

Если эта процедура вам не пригодится, то можно смело выре-
зать ее из программы от метки DEBUG до ONPAGE.

Также количество страниц и их номера можно корректировать
прям в самой таблице (в конце программы) изначально в ней отсут-
ствуют 2 и 5 страницы.

Листание страниц по их логическому номеру, это процедура
ONPAGE.

Пример : ....
LD A,8
CALL ONPAGE
....

Данный пример включит с #C000 страницу, находящуюся но номе-
ру (в рег. А) от начала таблицы (в нашем случае будет включена
10 страница, если такая вообще здесь есть).

Листание страниц по их физическому номеру - это процедура
EX_RAM.

Пример : ....
LD A,8
CALL EX_RAM
....

С #C000 включится страница с номером (в рег. А). Т.е. реально
8 страница.


Вот собственно сама прога ...


; @ @ @ @@@ @@@
; @ @ @ @ @ @ @
; @ @ @ @ @ @ @ @@ @ @ @ @@ @ @@@
; @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @
; @ @ @ @ @ @ @ @ @ @ @ @@ @@ @ @ @@
; @@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @
; @ @ @@@ @ @@@ @@ @ @ @ @ @ @@@@
;
; VERSION 5.5. IMPROVED.
;
;
; AUTOCONFIG PAGEMAKER FOR MACHINES:
;
; TURBO 2+ (48K - 1024K) V6.00 - V7.1
; ATM TURBO (48K - 512K) V4.10 - V5.20
; SCORPION (48K - 1024K)
; PROFI (48K - 1024K)
; SPECTRUM (128K - 512K) 6 & 7 BIT #7FFD
;
; THE SHAREWARE PRODUCT FOR FREE USING!
; (при использовании данной процедуры в
; своих программах ссылка на авторов
; практически обязательна (но ваше дело))

START ; начало начал ...
XOR A
LD (IY+118),A ; тип компьютера
INC A
LD (IY+119),A ; число доступных страниц
DI

; проверим (.) 'RST 8' в ROM 48 (если ZS-256,там #C3)

LD BC,#7FFD
LD A,#10
OUT (C),A
LD A,(#0008)
CP #C3
JR NZ,ITURBO ; не ZS-256

; это наверно SCORPION

SET 7,(IY+118)

ITURBO

; проверка наличия диспетчера RAM/ROM
; берем 2 байта из 0-го сегмента (там ROM48)

LD HL,(1111)

; дублируем ROM48 в 3-м сегменте (#C000-#FFFF)

LD BC,#FFF7
LD A,%00011111
CALL OUTC_A

; берем 2 байта 3-го сегмента (если TURBO 2+, там ROM48)

LD DE,(#C000+1111)
AND A
SBC HL,DE ; сравниваем с байтами 0-го сегмента

; восстанавливаем диспетчер

LD BC,#FFF7
LD A,#FF
CALL OUTC_A
JR NZ,IDFFD ; это не TURBO 2+

; обнаружен диспетчер RAM/ROM (TURBO 2+)

SET 3,(IY+118)
JR I7FFD

; PROFI ?

IDFFD LD HL,#80
LD DE,#1000
LD BC,#DFFD

; проверка на порт #DFFD bit 4
; (проверяем подключение RAM вместо ROM)

OUT (C),D ; включаем 0-й сегмент RAM
; вместо ПЗУ
; пробуем отключить ROM
NOP
LD A,(HL) ; читаем байт
INC (HL) ; меняем его
CP (HL) ; сравниваем с прочитанным
LD (HL),A ; восстанавливаем байт
OUT (C),E ; восстанавливаем ROM
JR Z,I1FFD ; нет порта #DFFD

; есть порт #DFFD (PROFI)

SET 2,(IY+118)
JR I7FFD

; проверка на порт #1FFD bit 0
; (проверка на подключение RAM вместо ROM)

I1FFD LD DE,#1110
LD B,#1F
OUT (C),D ; включаем 8 сегмент RAM
NOP
LD A,(HL) ; читаем байт
INC (HL) ; меняем его
CP (HL) ; сравниваем с прочитанным
LD (HL),A ; восстанавливаем байт
OUT (C),E ; ставим ROM на место
JR Z,IFDFD ; нет порта #1FFD

; есть порт #1FFD (SCORPION или KAY)

XOR A
OUT (C),A
SET 1,(IY+118)
JP I7FFD
IFDFD
; Проверка на наличие порта #FDFD (АТМ-1)

LD B,C
LD HL,#FFFF
OUT (C),D
NOP
LD B,#7F
OUT (C),D
NOP
LD (HL),D
LD B,C
OUT (C),E
NOP
LD B,#7F
OUT (C),D
NOP
LD (HL),E
LD B,C
OUT (C),D
NOP
LD B,#7F
OUT (C),D
NOP
LD A,(HL)
CP D
JR NZ,I7FFD ; нет такого слова

; однако есть порт #FDFD

SET 4,(IY+118)

; наличие порта (#7FFD)
; (проверка на переключение ROM48<->ROM128)

I7FFD LD HL,#80
LD DE,#1000
LD BC,#7FFD
OUT (C),D ; ROM 1, однозначно!
NOP
LD A,(HL) ; байт ROM 48
OUT (C),E ; ROM 0
NOP
CP (HL) ; байт из ROM 128
OUT (C),D ; ROM 1
NOP
JR Z,SIZED ; нет порта или блокирован

; обнаружен порт #7FFD

SET 0,(IY+118)

; определить объем памяти

SIZED
CALL VIRT ; DE - конец таблицы (метка #FF)
LD A,(IY+119) ; SPECTRUN 256K-512K ?
CP #08
JR C,ENDING
LD A,(IY+118)
CP #01
JR NZ,ENDING
SET 5,(IY+118) ; крутой SPECCY 256K - 512K
ENDING
LD A,#00 ; страница после выхода из программы
CALL EX_RAM ; в порте #7FFD на SPECTRUM 128K .
EI ; для нормального выхода .
RET

; определение реальных (!) страниц для данной машины
; страницы "фантомы" удалятся из логической таблицы
; на выходе:
; DE - конец таблицы (метка #FF)
; переменная PAGE - доступное число страниц

VIRT LD IX,#C000

; заполнить страницы их номерами со спасением содержимого байт
; в точках проверки (#C000)

LD HL,DOOM+63
LD B,64
V_R11 LD A,B
DEC A ; NN стр. 63,62,61,60...1,0
CALL EX_RAM
LD C,(IX+0)
LD (HL),C ; спасти содержимое байта
LD (IX+0),A ; занести туда номер страницы
DEC HL
DJNZ V_R11

; исключить из таблицы не найденные страницы

PUSH AF
LD A,61
LD (IY+119),A
POP AF
LD DE,TABL_PG
V_R20 LD A,(DE)
CP #FF
JR Z,V_R30 ; конец таблицы
CALL EX_RAM
CP (IX+0) ; срав. номер стр. с содержимым байта
JR Z,V_R22 ; страница реально существует

; такой страницы по жизни HET !!!

PUSH DE
LD HL,TABL_PG+62
AND A
SBC HL,DE
PUSH HL
POP BC ; объем сдвига таблицы
PUSH DE
POP HL
INC HL
LDIR
DEC (IY+119) ; -1 доступная страница
POP DE
DEC DE
V_R22 INC DE
JR V_R20

; восстанавливаем содержимое байт (#C000) на страницах

V_R30 LD B,64
LD HL,DOOM
V_R31 LD A,64
SUB B ; NN стр. 0,1,2,3,4...62,63
CALL EX_RAM
LD A,(HL)
LD (IX+0),A ; спасти содержимое байта
INC HL
DJNZ V_R31
RET

; "выдирка" из таблицы страниц заданной страницы
; на входе:
; C - N страницы
; DE - конец таблицы (метка #FF)
; на выходе:
; DE - конец таблицы (возможно, уже новый)

DEBUG PUSH DE
POP HL
NO_PG1 DEC DE
LD A,(DE)
CP #FF
JR Z,NO_PG2 ; HE найдена удаляемая страница!!!
CP C
JR NZ,NO_PG1

;DE - на номере удаляемой страницы
;HL - на метке конца таблицы (#FF)

SBC HL,DE
PUSH HL
POP BC
PUSH DE
POP HL
INC HL
LDIR
DEC (IY+119) ; -1 доступная страница
DEC HL
DEC HL
NO_PG2 EX DE,HL
RET

; программа переключения страниц для различных типов машин

ONPAGE
PUSH BC ; A - логический номер страницы
PUSH HL
LD C,A
LD B,#00
LD HL,TABL_PG
ADD HL,BC
LD A,(HL) ; физический номер страницы
POP HL
POP BC

EX_RAM DI ; A - физический номер страницы
PUSH HL
PUSH AF
PUSH BC
BIT 1,(IY+118)
JR NZ,ZS256 ; SCORPION (#1FFD)
BIT 2,(IY+118)
JR NZ,PROFI ; PROFI (#DFFD)
BIT 3,(IY+118)
JR NZ,TURBO_2 ; TURBO 2+ (#FFF7)
BIT 4,(IY+118)
JR NZ,ATM1 ; ATM TURBO (#FDFD)
BIT 0,(IY+118)
JR NZ,SPECCY ; SPECTRUM 128K-512K (#7FFD)
BIT 7,(IY+118)
JR NZ,SPECCY ; SCORPION 128K (#7FFD)
JR TDK

; для TURBO 2+ (поддерживает 128K-1024K)

TURBO_2 PUSH AF
PUSH IX
AND %00011000
CPL
LD BC,#FFF7
CALL OUTC_A
POP IX
POP AF
JP SPECCY

; ATM TURBO V4.10 - 5.20 (поддерживает 256K - 512K)

ATM1 LD BC,#FDFD
PUSH AF
RRCA
RRCA
RRCA
AND %00000011
JR HOME

; для PROFI (поддерживает 256K-1024K)

PROFI LD BC,#DFFD
PUSH AF
RRCA
RRCA
RRCA
AND %00000111
JR HOME

; для SCORPION или KAY (поддерживает 512K-1024K нестандартно)

ZS256 PUSH AF
LD B,A
AND %00001000
RLCA
LD C,A
LD A,B
AND %00110000
RLCA
RLCA
ADD A,C
LD BC,#1FFD
HOME OUT (C),A
NOP
POP AF

; для SPECTRUM 128K (поддерживает 256K-512K нестандартно!)

SPECCY LD B,A
AND %00011000
RLCA
RLCA
RLCA
LD C,A
LD A,B
AND %00000111
ADD A,C
OR #10 ; ROM 48
LD BC,#7FFD
OUT (C),A
NOP
TDK
POP BC
POP AF
POP HL
RET

OUTC_A LD IX,#2A53
PUSH IX
JP #3D2F

DEFB #FF
TABL_PG DEFB 00,01,03,04,06,07
DEFB 08,09,10,11,12,13,14,15
DEFB 16,17,18,19,20,21,22,23
DEFB 24,25,26,27,28,29,30,31
DEFB 32,33,34,35,36,37,38,39
DEFB 40,41,42,43,44,45,46,47
DEFB 48,49,50,51,52,53,54,55
DEFB 56,57,58,59,60,61,62,63
DEFB #FF
DOOM DEFS 64,0


Hу вот вроде и вся программа, если что, пишите на мой сете-
вой адрес в SpbZXNet (812/03.00).

Всего хорошего.
Paul Falcon (CREATOR)
SPbZXNet: 812/03.00

.

=============== тут мы кончим файл "OnLine76.C" ================

С уважением, Felix.

[I.ZX]


27

от: Felix Knajzev
кому: Alexandr Kolotuhin
дата: 05 Jul 2000
Приветствую тебя, о досточтимый Alexandr!

[Суббота 1 Июль 2000] в [16:25:31] Alexandr Kolotuhin начертал письмецо к All.
Обсуждали они тему "компы.". Продолжим начатое...

AK> Подскажите, плиз:

[skip]

AK> 2. У каких, из выше перечисленных компов, через какие порты
AK> переключаются страницы.


=============== тут мы начнем файл "OnLine44.C" ================

(C) OLDMAN

В последнее время начали появляться программы, использующие
дополнительную память ПЕНТАГОН 512. Это радует... Но вот пользо-
ватели других "256", "512" и "1024" чувствуют себя обделенными.
А как это было бы круто - ассемблер, позволяющий свободно поль-
зоваться "стандартными" 128к, или отладчик, спрятанный куда по-
дальше, чтоб его не обнаружили! Я уж и не говорю про коммандеры!
Создается впечатление, что разработчики софта под ПЕНТАГОН 512
просто не имеют информации по другим машинам. Попробуем им по-
мочь.

Вообще-то, все машины сделаны по разному (ценная мысль...),
но есть у них и общее: дополнительные страницы памяти подключа-
ются через отдельным портом, а сегменты страниц - стандартно,
через порт #7FFD, поэтому инсталляция под конкретный компьютер
производится изменением двух байт.

SCORPION - раскладка битов порта #1FFD

D0 - выключает ПЗУ и проецирует на его место 0-й сегмент (*)
D1 - неважно... (**)
D2 - (**)
D3 - (**)
D4 - "1" включает дополнительную страницу памяти с #C000
D5 - (**)
D6 - (**)
D7 - (**)

PROFI - раскладка битов порта #DFFD

D0 \n
D1 - число от 0 до 7 включает соответствующие страницы
D2 / памяти (***)
D3 - выбор окна проецирования сегментов: "0" - #C000-#FFFF,
"1" - #4000-#7FFF (вообще-то, это тоже "(**)", но вдруг по-
надобиться...)
D4 - выключает ПЗУ и проецирует на его место 0-й сегмент (*)
D5 - блокирует работу контроллера из ПЗУ TR-DOS и разрешает ра-
боту с портами контроллера из ОЗУ. ("(**)"?)
D6 - **
D7 - **

Примечания:

* - проецирует, а не подключает, поэтому все изменения содер-
жимого 0-го сегмента будут отражаться и по адресам #0000-
#3FFF (как, впрочем, и наоборот).

** - вообще-то, конечно важно, но... только для владельцев кон-
кретных машин. Эти биты или не используются или управляют
внешней периферией и различными примочками типа экрана с
высоким разрешением или теневого монитора. Унифицировать
все это сложно... Советую просто обнулять их.

*** - если в SCORPION'е только одна дополнительная страница па-
мяти (во всяком случае, пока), то в PROFI их может быть
сколько угодно (до 7). Причем задействованы они могут быть
вразнобой, например, PROFI 512 с дополнительными страница-
ми 1, 2 и 7... Поэтому, если Вы хотите использовать всю
дополнительную память конкретного PROFI, просканируйте все
семь возможных страниц и используйте присутствующие.

ТАБЛИЦА СЕГМЕНТОВ

┌────┬───────────────────────┐
│ │00 01 02 03 04 05 06 07│
├─┬──┼───────────────────────┤
│С│00│00 01 02 03 04 05 06 07│
│Т│01│08 09 0A 0B 0C 0D 0E 0F│
│Р│02│10 11 12 13 14 15 16 17│
│А│03│18 19 1A 1B 1C 1D 1E 1F│
│Н│04│20 21 22 23 24 25 26 27│
│И│05│28 29 2A 2B 2C 2D 2E 2F│
│Ц│06│30 31 32 33 34 35 36 37│
│Ы│07│38 39 3A 3B 3C 3D 3E 3F│
└─┴──┴───────────────────────┘

Здесь столбцы переключаются портом #7FFD, а линейки - #1FFD
для SCORPION'а или #DFFD для PROFI. Естественно, что все сегмен-
ты можно использовать, имея только PROFI 1MB (маленькая такая
рекламка...). Только не подумайте, что я не знаю о существовании
KAY, ATM, ALLEGRO и т.п... О существовании-то я знаю...

Дмитрий (OLDMAN)
MDM 496-8508;12:00/21:00
E-mail: zxnet@mastak.msk.su
dmitry_g@deol.ru
ZXNet: 095/100.1

.

=============== тут мы кончим файл "OnLine44.C" ================


С уважением, Felix.

[I.ZX]


27

от: Alexander Araktcheew
кому: Alexandr Kolotuhin
дата: 20 Jul 2000
Reply-to: 500:8362/1.10@ZXNET
Приветствую тебя, Alexandr!

Как-то Tue 4 Jul 2000 в 23:50:53 Aleksandr Majorov и Alexandr Kolotuhin
обсуждали компы..
Ну и я решил встрять...

AK>> 1. Как из асьма опpеделить pазличные типы компов:
AK>> Скоpп, Кай, Пpоффи, АТМ и дpyгие, котоpые имеют память 256 и
AK>> выше.
AK>> 2. У каких, из выше пеpечисленных компов, чеpез какие поpты
AK>> пеpеключаются стpаницы.

AM> Это стаpый-стаpый соpец by Creator (вpоде).
AM> Вpоде даже pаботает :)

AM> === begin of file AUTOconf.txt ===

[злостно порезано]

Работает то он работает, но определяет не тип памяти, а тип _машины_.
Поэтому если есть тачка с портом памяти Профи, но не Профи, а, например,
Пентагон, то этот драйвер найдет только стандартные 128к и все...
Мы на это напоролись, когда по недосмотру вставили его в Extreme's Tracker.
Какой же облом нас ждал...

Определять тип памяти надо без использования специальных возможностей
конкретных машин, таких как подставление банков памяти в область ПЗУ.

Всего хорошего, Alexandr!
Alexander aka Arc of RLDG.




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

Похожие статьи:
Разное - Заключение.
News games - Скоро появится алгоритм прохождения игры UFO-2 Дьяволы бездны.
Презентация - Презентация демо версии игры Reversy of Brain Crash.

В этот день...   14 октября