; cylinder and head 0 and returns as sector number the
; sector number it got
;
-; _sectnum_t __fastcall__ _dio_chs_to_snum(unsigned int cyl, unsigned int head, unsigned int sector);
-;
-; _driveid_t - 8bit
+; _sectnum_t __fastcall__ _dio_chs_to_snum(_dhandle_t handle,
+; unsigned int cyl,
+; unsigned int head,
+; unsigned int sector);
+; _dhandle_t - 16bit (ptr)
; _sectnum_t - 16bit
;
.export __dio_chs_to_snum
- .import addsp4
+ .import addsp4,popax
+ .importzp ptr1
.include "atari.inc"
.proc __dio_chs_to_snum
txa
pha
jsr addsp4 ; ignore other parameters
+
+ jsr popax
+ sta ptr1
+ stx ptr1+1
+ ldy #sst_flag
+ lda (ptr1),y
+ and #128
+ beq _inv_hand ; handle not open or invalid
+
pla
tay
pla
rts
+_inv_hand:
+ pla
+ pla
+ ldx #255
+ txa
+ rts
+
.endproc
; on the Atari this function is a dummy, it returns
; cylinder and head 0 and as sector the sectnum it got
;
-; void __fastcall__ _dio_snum_to_chs(_sectnum_t sect_num,
-; unsigned int *cyl,
-; unsigned int *head,
-; unsigned int *sector);
+; void __fastcall__ _dio_snum_to_chs(_dhandle_t handle,
+; _sectnum_t sect_num,
+; unsigned int *cyl,
+; unsigned int *head,
+; unsigned int *sector);
+; _dhandle_t - 16bit (ptr)
; _sectnum_t - 16bit
;
.export __dio_snum_to_chs
.include "atari.inc"
.importzp ptr1,ptr2
- .import popax
+ .import popax,addsp2
.proc __dio_snum_to_chs
txa
sta (ptr1),y
+ jsr addsp2
+
rts
.endproc