Estex-DSS/DSS/DRV-MAIN.ASM
2023-07-01 06:40:48 +10:00

238 lines
5.0 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.

;[BEGIN]
;//MODULE: DRV-MAIN AUTHOR: Denis Parinov
;//CREATE: 2003-03-12
;---------------------------------------------------------------
;Rev Date Name Description
;---------------------------------------------------------------
;R00 2003-03-19 DNS Initial version
;---------------------------------------------------------------
// INCLUDE "hardware.inc"
// INCLUDE "bios.inc"
; ORG #0000
MODULE DRV ; !FIXIT ®¡®©â¨áì ¡¥§ ¬®¤ã«ï
;PAGEDRV EQU 0
;!TODO
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[NOT USED]> ;
A0000: JP RST_00 ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;
RST_00:
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
;
;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[BIOS API]> ;
BLOCK 8-$,#FF ;
A0008: PUSH AF ;
LD A,SYS_PORT.PAGE8;
OUT (SYS_PORT.ON),A ;
POP AF ;
RET ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;!FIXIT
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[DSS API]> ;
BLOCK #10-$,#FF ;
A0010: ;JP RST_10 ;
DI : HALT ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[DRIVE API]> ;
BLOCK #18-$,#FF ;
;A0018 JP INTDISK ;
A0018: PUSH AF ;
PUSH BC ;
MAIN_PG_NUMBER+2: ;
LD BC,0*256+SLOT0 ; !FIXIT á ­¥ ¤®«¦­ë ¢áâ ¢«ïâìáï ­®¬¥à  ¢ë¤¥«¥­­ëå áâà ­¨æ?
JP PORTAL.outDRV ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;!TODO
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[NOT USED]> ;
BLOCK #20-$,#FF ;
A0020: JP RST_20 ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;
RST_20:
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
;
;!TODO
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[NOT USED]> ;
BLOCK #28-$,#FF ;
A0028: JP RST_28 ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;
RST_28:
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
;
;!TODO
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[NOT USED]> ;
BLOCK #30-$,#FF ;
A0030: JP RST_30 ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;
RST_30:
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
;
;!FIXIT
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[MAIN INT]> ;
BLOCK #38-$,#FF ;
A0038: ;
// JP RST_38 ;
; RST_38: ;
; INT_: PUSH AF ;
; EX AF,AF' ;
; PUSH AF ;
; PUSH BC ;
; PUSH DE ;
; PUSH HL ;
; EXX ;
; PUSH BC ;
; PUSH DE ;
; PUSH HL ;
; PUSH IX ;
; PUSH IY ;
; CALL KEYSCAN ;
; LD C,#80 ;
; RST #30 ;
; POP IY ;
; POP IX ;
; POP HL ;
; POP DE ;
; POP BC ;
; EXX ;
; POP HL ;
; POP DE ;
; POP BC ;
; POP AF ;
; EX AF,AF' ;
; POP AF ;
EI ;
RETI ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;
KEYSCAN: RET ;!FIXIT
;
;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[ NMI ]> ;
NMI: RETN ;
BLOCK #66-$,#FF ;
A0066: JP NMI ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;-------------------------------;
;ADRST10 EQU #00 ;!!!!!
;-------------------------------;
;!FIXIT
RST_10 PUSH HL
LD L,C
LD H,ADRST10/256
LD C,(HL)
INC H
LD H,(HL)
LD L,C
EX (SP),HL
RET
;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; <[DRIVE PAGE SWITCH]> ;
BLOCK #7E-$,0 ;
PORTAL.toMAIN: ;
PUSH BC ;
RETBANK+2: ;
LD BC,0*256+SLOT0 ;
OUT (C),B ;
ASSERT $!=84,'-> Portal error!';
;Entry point from DSS main page ; !FIXIT ¥á«¨ 2 à §  ¯à¨«¥â¥âì ­  íâã â®çªã ¢å®¤ , â® § áàñâáï RETBANK
LD (RETBANK),A ;
POP BC ;
POP AF ;
ADCALL+1: ;
CALL DISPATCH ; ¯ âç¨âáï ­  INTDISK
JR PORTAL.toMAIN ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
/*
push hl
*/
;!FIXIT çñâ ­¥ â® âãâ
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
LD B,#00; ;
OUT (C),A ;
;--- ;
POP BC ;
RET ;
PORTAL.outDRV: ;
RET ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
;
;
DISPATCH:
CALL INITDVC
LD HL,INTDISK
LD (ADCALL),HL
LD A,(LDRIVE)
AND A
RET
;
LDRIVE DB #00
INCLUDE 'disk_x.asm'
INCLUDE 'ide_drv0.asm'
INCLUDE 'fdd_drv0.asm'
;INCLUDE 'ram_drv0.asm'
INCLUDE 'ram_drv1.asm'
DB 0
ENDMODULE
; OUTEND
;[END]