mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-16 01:41:17 +03:00
96 lines
2.5 KiB
NASM
96 lines
2.5 KiB
NASM
//////////////////////////////////////////////////////////////////////
|
||
; ”ãªæ¨ï #38. <20>®¤ª«î票¥ áâà ¨æë ¯ ¬ïâ¨.
|
||
;
|
||
; ¢å®¤: A - ¨¤¥â¨ä. ¡«®ª ¯ ¬ïâ¨
|
||
; B - ®¬¥à áâà ¨æë ¢ ¡«®ª¥ (0,1,2,..)
|
||
; H - ¡¨âë 6 ¨ 7 § ¤ îâ ®¬¥à ®ª , ¢ ª®â®à®¥ ¡ã¤¥â ¯®¤ª«. áâà ¨æ
|
||
; ¢ë室: A - ®¬¥à áâà ¨æë, ¥á«¨ CF=0
|
||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||
; if B = 0FFh, then logical page number got from DE
|
||
//////////////////////////////////////////////////////////////////////
|
||
SETWIN: LD C,A
|
||
LD A,H
|
||
AND %1100'0000
|
||
JR NZ,.no_error
|
||
OR %0100'0000
|
||
.no_error: RRCA
|
||
OR %100'0010
|
||
LD H,A ;SLOT number
|
||
LD A,C
|
||
.ALL: LD C,BIOS.GetMemPage
|
||
EX DE,HL
|
||
RST ToBIOS
|
||
EX DE,HL
|
||
RET C
|
||
LD C,H ;SLOT number
|
||
IN B,(C)
|
||
OUT (C),A
|
||
LD A,B
|
||
RET
|
||
; SETWIN: BIT 7,H ; if #8000 or high?
|
||
; JR Z,SETWIN1 ; no, go to open in SLOT1
|
||
; BIT 6,H ; if #C000 or high?
|
||
; JR Z,SETWIN2 ; no, go to open in SLOT2
|
||
; JR SETWIN3 ; yes, go to open in SLOT3
|
||
//////////////////////////////////////////////////////////////////////
|
||
; ”ãªæ¨ï #39. <20>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢ ¯¥à¢®¥ ®ª®.
|
||
;
|
||
; ¢å®¤: A - ¨¤¥â¨ä. ¡«®ª ¯ ¬ïâ¨
|
||
; B - ®¬¥à áâà ¨æë ¢ ¡«®ª¥ (0,1,2,..)
|
||
; ¢ë室: A - ®¬¥à áâà ¨æë, ¥á«¨ CF=0
|
||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||
//////////////////////////////////////////////////////////////////////
|
||
SETWIN1: LD H,SLOT1
|
||
JR SETWIN.ALL
|
||
|
||
; SETWIN1: LD C,BIOS.GetMemPage
|
||
; EX DE,HL
|
||
; RST ToBIOS
|
||
; EX DE,HL
|
||
; RET C
|
||
; LD C,SLOT1
|
||
; IN B,(C)
|
||
; OUT (C),A
|
||
; LD A,B
|
||
; RET
|
||
|
||
//////////////////////////////////////////////////////////////////////
|
||
; ”ãªæ¨ï #3A. <20>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢® ¢â®à®¥ ®ª®.
|
||
;
|
||
; ¢å®¤: A - ¨¤¥â¨ä. ¡«®ª ¯ ¬ïâ¨
|
||
; B - ®¬¥à áâà ¨æë ¢ ¡«®ª¥ (0,1,2,..)
|
||
; ¢ë室: A - ®¬¥à áâà ¨æë, ¥á«¨ CF=0
|
||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||
//////////////////////////////////////////////////////////////////////
|
||
SETWIN2: LD H,SLOT2
|
||
JR SETWIN.ALL
|
||
; SETWIN2 LD C,BIOS.GetMemPage
|
||
; EX DE,HL
|
||
; RST ToBIOS
|
||
; EX DE,HL
|
||
; RET C
|
||
; LD C,SLOT2
|
||
; IN B,(C)
|
||
; OUT (C),A
|
||
; LD A,B
|
||
; RET
|
||
//////////////////////////////////////////////////////////////////////
|
||
; ”ãªæ¨ï #3B. <20>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢ âà¥âì¥ ®ª®.
|
||
;
|
||
; ¢å®¤: A - ¨¤¥â¨ä. ¡«®ª ¯ ¬ïâ¨
|
||
; B - ®¬¥à áâà ¨æë ¢ ¡«®ª¥ (0,1,2,..)
|
||
; ¢ë室: A - ®¬¥à áâà ¨æë, ¥á«¨ CF=0
|
||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||
//////////////////////////////////////////////////////////////////////
|
||
SETWIN3: LD H,SLOT3
|
||
JR SETWIN.ALL
|
||
; SETWIN3: LD C,BIOS.GetMemPage
|
||
; EX DE,HL
|
||
; RST ToBIOS
|
||
; EX DE,HL
|
||
; RET C
|
||
; LD C,SLOT3
|
||
; IN B,(C)
|
||
; OUT (C),A
|
||
; LD A,B
|
||
; RET |