Crazy-Blaster/Crazy Estex DSS/DSS/API/SetWin.asm
Anatoliy Belyanskiy ace6b0904b First init
2024-07-29 01:59:31 +10:00

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