|
|
|
@ -5243,6 +5243,8 @@ SYS_GETDIOFN: |
|
|
|
; E: SLICE, ignored if media is not a hard disk |
|
|
|
; RETURNS: |
|
|
|
; A: STATUS, -6 (parameter out of range) - if Slice is invalid |
|
|
|
Other errors Include ERR_NOUNIT, ERR_NOMEDIA, |
|
|
|
If any error is raised the other return values are undefined |
|
|
|
; B: DEVICE ATTRIBUTES, as reported by DIODEVICE |
|
|
|
; C: MEDIAID, including MID_HDNEW if hd1k partition is found |
|
|
|
; DEHL: LBAOFFSET, of Slice if valid, 0 otherwise. |
|
|
|
@ -5250,11 +5252,11 @@ SYS_GETDIOFN: |
|
|
|
DIOMED_SLICE .DB 0 ; SLICE ARGUMENT (E) |
|
|
|
DIOMED_UNIT .DB 0 ; UNIT ARGUMENT (D) |
|
|
|
DIOMED_DEVATT .DB 0 ; DEVICE ATTRIBUTES |
|
|
|
DIOMED_MID .DB 0 ; DISCOVERED MEDIAID |
|
|
|
; |
|
|
|
DIOMED_WRKSTA .EQU $ |
|
|
|
DIOMED_LBAOFF .FILL 4,0 ; START OF PARTITION / SLICE (SECTORS) |
|
|
|
DIOMED_LBASIZ .FILL 4,0 ; SIZE OF MEDIA / PARTITION (SECTORS) |
|
|
|
DIOMED_MID .DB 0 ; DISCOVERED MEDIAID |
|
|
|
DIOMED_SPS .DW 0 ; DISCOVERED SECTORS PER SLICE (16BIT) |
|
|
|
DIOMED_FND .DB 0 ; DID WE FIND A NON CPM PARTITION |
|
|
|
DIOMED_WRKSIZ .EQU $ - DIOMED_WRKSTA ; SIZE OF WORKING DATA |
|
|
|
@ -5297,9 +5299,6 @@ SYS_GETDIOMED: |
|
|
|
; |
|
|
|
SYS_GETDIOMED1A: |
|
|
|
; RETURN MEDIA ID (NOT HD) WITH SUCCESS |
|
|
|
LD A,(DIOMED_DEVATT) ; GET DEVICE ATTRIBUTES |
|
|
|
LD B,A ; ... AND RETURN IN B |
|
|
|
LD C,E ; RETURN MEDIA ID IN C |
|
|
|
LD DE,0 ; LBA VALUE WILL BE ZERO |
|
|
|
LD HL,0 |
|
|
|
JP SYS_GETDIOMED6A ; RETURN SUCCESS |
|
|
|
@ -5405,8 +5404,6 @@ SYS_GETDIOMED3B: |
|
|
|
; |
|
|
|
SYS_GETDIOMED3C: |
|
|
|
; NO PARTITION TABLE FOUND / NO CPM PARTITION FOUND -> HD512 |
|
|
|
LD A, MID_HD ; HD512 MEDIA |
|
|
|
LD (DIOMED_MID), A ; STORE IT |
|
|
|
LD BC, SPS_HD512 ; WITH HD512 SECTORS PER SLICE |
|
|
|
LD (DIOMED_SPS), BC ; STORE IT |
|
|
|
|
|
|
|
|