Estex-DSS/DSS/API/SetWin.asm

96 lines
2.5 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #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