Browse Source

ch376-native: attempt to fix issue with slices not working - restored drive_index counter

pull/592/head
Dean Netherton 1 year ago
parent
commit
e6143beb25
  1. 12
      Dockerfile
  2. 4
      Source/HBIOS/ch376-native/base-drv/usb-base-drv.c.s
  3. 2
      Source/HBIOS/ch376-native/base-drv/usb-init.c.s
  4. 6
      Source/HBIOS/ch376-native/base-drv/usb_state.c.s
  5. 8
      Source/HBIOS/ch376-native/base-drv/work-area.c.s
  6. 34
      Source/HBIOS/ch376-native/scsi-drv/scsi-init.c.s
  7. 4
      Source/HBIOS/ch376-native/source-doc/base-drv/dev_transfers.h
  8. 4
      Source/HBIOS/ch376-native/source-doc/base-drv/usb-base-drv.c
  9. 2
      Source/HBIOS/ch376-native/source-doc/base-drv/usb-base-drv.h
  10. 4
      Source/HBIOS/ch376-native/source-doc/scsi-drv/scsi-init.c
  11. 3
      Source/HBIOS/ch376-native/source-doc/ufi-drv/ufi-init.c
  12. 108
      Source/HBIOS/ch376-native/ufi-drv/ufi-init.c.s
  13. 4
      Source/HBIOS/ch376.asm
  14. 8
      Source/HBIOS/ch376scsi.asm

12
Dockerfile

@ -1,4 +1,4 @@
FROM ubuntu:jammy-20240111 as basebuilder
FROM ubuntu:jammy-20240111 AS basebuilder
# This docker file can be used to build a tool chain docker image for building RomWBW images.
@ -10,7 +10,7 @@ FROM ubuntu:jammy-20240111 as basebuilder
# After you have built the above image (called romwbw-chain), you can use it to compile and build the RomWBW images
# as per the standard make scripts within RomWBW.
# Start a new terminal, cd to where you have clone RomWBW, and then run this command:
# docker run -v ${PWD}:/src/ --privileged=true -u $(id -u ${USER}):$(id -g ${USER}) -it romwbw-chain:latest
# docker run -v ${PWD}:/src/ --privileged=true -u $(id -u ${USER}):$(id -g ${USER}) -it romwbw-chain
# you can now compile and build the required images:
@ -21,13 +21,11 @@ FROM ubuntu:jammy-20240111 as basebuilder
# when finish, type 'exit' to return to back to your standard terminal session
LABEL Maintainer="Dean Netherton" \
Description="spike to use clang for ez80 target"
Description="RomWBW builder platform"
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386
RUN sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu/http:\/\/au.archive.ubuntu.com\/ubuntu/g' /etc/apt/sources.list
RUN apt update -y
RUN apt dist-upgrade -y
RUN apt install -y --no-install-recommends cmake lzip ca-certificates mtools build-essential dos2unix libboost-all-dev texinfo texi2html libxml2-dev subversion bison flex zlib1g-dev m4 git wget dosfstools curl
@ -35,10 +33,10 @@ RUN apt install -y --no-install-recommends cmake lzip ca-certificates mtools bui
RUN mkdir work
WORKDIR /work
FROM basebuilder as main
FROM basebuilder AS main
LABEL Maintainer="Dean Netherton" \
Description="spike to build RomWBW"
Description="RomWBW builder platform"
RUN mkdir /src
WORKDIR /src/

4
Source/HBIOS/ch376-native/base-drv/usb-base-drv.c.s

@ -33,6 +33,8 @@ _USB_MODULE_LEDS .EQU 0xff8a
; .area _INITIALIZED removed by z88dk
_storage_count:
DEFS 1
#ENDIF
@ -83,3 +85,5 @@ _chnative_seek:
pop hl
pop bc
jp (hl)
_storage_count:
DEFB +0x00

2
Source/HBIOS/ch376-native/base-drv/usb-init.c.s

@ -94,7 +94,7 @@ _chnative_init:
ld e, l
ld d, h
inc de
ld bc,0x0062
ld bc,0x0068
ldir
;source-doc/base-drv/usb-init.c:28: ch_cmd_reset_all();
call _ch_cmd_reset_all

6
Source/HBIOS/ch376-native/base-drv/usb_state.c.s

@ -92,8 +92,8 @@ l_find_device_config_00106:
ret
_device_config_sizes:
DEFB +0x00
DEFB +0x10
DEFB +0x10
DEFB +0x11
DEFB +0x11
DEFB +0x0c
DEFB +0x06
DEFB 0x00
@ -175,7 +175,7 @@ l_next_device_config_00102:
add hl, de
ex de, hl
;source-doc/base-drv/usb_state.c:61: if (result >= (device_config *)&usb_state->device_configs_end)
ld hl,0x0062
ld hl,0x0068
add hl, bc
ld a, e
sub l

8
Source/HBIOS/ch376-native/base-drv/work-area.c.s

@ -34,7 +34,7 @@ _USB_MODULE_LEDS .EQU 0xff8a
; .area _INITIALIZED removed by z88dk
_x:
DEFS 99
DEFS 105
#ENDIF
@ -149,4 +149,10 @@ _x:
DEFB 0x00
DEFB 0x00
DEFB 0x00
DEFB 0x00
DEFB 0x00
DEFB 0x00
DEFB 0x00
DEFB 0x00
DEFB 0x00
DEFB +0x00

34
Source/HBIOS/ch376-native/scsi-drv/scsi-init.c.s

@ -56,7 +56,7 @@ _chscsi_init:
push ix
ld ix,0
add ix,sp
dec sp
push af
;source-doc/scsi-drv/scsi-init.c:15: do {
ld (ix-1),0x01
l_chscsi_init_00105:
@ -88,24 +88,43 @@ l_chscsi_init_00105:
ld hl,scsi_init_str_1
call _print_string
pop de
;source-doc/scsi-drv/scsi-init.c:28: scsi_sense_init(storage_device);
;source-doc/scsi-drv/scsi-init.c:27: print_uint16(storage_count);
ld hl,(_storage_count)
ld h,0x00
push de
call _print_uint16
ld hl,scsi_init_str_2
call _print_string
pop de
;source-doc/scsi-drv/scsi-init.c:29: storage_device->drive_index = storage_count++;
ld hl,0x0010
add hl, de
ld c, l
ld b, h
ld hl,_storage_count
ld a, (hl)
ld (ix-2),a
inc (hl)
ld a,(ix-2)
ld (bc), a
;source-doc/scsi-drv/scsi-init.c:30: scsi_sense_init(storage_device);
push de
push de
call _scsi_sense_init
pop af
pop de
;source-doc/scsi-drv/scsi-init.c:29: dio_add_entry(ch_scsi_fntbl, storage_device);
;source-doc/scsi-drv/scsi-init.c:31: dio_add_entry(ch_scsi_fntbl, storage_device);
ld hl,_ch_scsi_fntbl
call _dio_add_entry
l_chscsi_init_00106:
;source-doc/scsi-drv/scsi-init.c:32: } while (++index != MAX_NUMBER_OF_DEVICES + 1);
;source-doc/scsi-drv/scsi-init.c:34: } while (++index != MAX_NUMBER_OF_DEVICES + 1);
inc (ix-1)
ld a,(ix-1)
sub 0x07
jr NZ,l_chscsi_init_00105
l_chscsi_init_00108:
;source-doc/scsi-drv/scsi-init.c:33: }
inc sp
;source-doc/scsi-drv/scsi-init.c:35: }
ld sp, ix
pop ix
ret
scsi_init_str_0:
@ -114,5 +133,8 @@ scsi_init_str_0:
DEFM "USB: MASS STORAGE @ $"
DEFB 0x00
scsi_init_str_1:
DEFM ":$"
DEFB 0x00
scsi_init_str_2:
DEFM " $"
DEFB 0x00

4
Source/HBIOS/ch376-native/source-doc/base-drv/dev_transfers.h

@ -37,9 +37,9 @@ typedef struct {
typedef struct {
COMMON_DEVICE_CONFIG // bytes: 0-2
endpoint_param endpoints[3]; // bytes: 3-5, 6-8, 9-11 bulk in/out and interrupt
endpoint_param endpoints[3]; // bytes: 3-5, 6-8, 9-11 bulk in/out and interrupt
uint32_t current_lba; // bytes 12-15
// uint8_t drive_index; // byte 16
uint8_t drive_index; // byte 16
} device_config_storage;
typedef struct {

4
Source/HBIOS/ch376-native/source-doc/base-drv/usb-base-drv.c

@ -1,7 +1,7 @@
#include "usb-base-drv.h"
/* The total number of mounted devices (scsi, ufi and keyboard) */
// uint8_t usb_device_count = 0;
/* The total number of storage devices (scsi, ufi) */
uint8_t storage_count = 0;
uint8_t chnative_seek(const uint32_t lba, device_config_storage *const storage_device) __sdcccall(1) {
storage_device->current_lba = lba;

2
Source/HBIOS/ch376-native/source-doc/base-drv/usb-base-drv.h

@ -4,7 +4,7 @@
#include <dev_transfers.h>
#include <stdint.h>
// extern uint8_t usb_device_count;
extern uint8_t storage_count;
extern uint8_t chnative_seek(const uint32_t lba, device_config_storage *const storage_device) __sdcccall(1);

4
Source/HBIOS/ch376-native/source-doc/scsi-drv/scsi-init.c

@ -23,8 +23,10 @@ void chscsi_init(void) {
if (t == USB_IS_MASS_STORAGE) {
print_string("\r\nUSB: MASS STORAGE @ $");
print_uint16(index);
print_string(":$");
print_uint16(storage_count);
print_string(" $");
storage_device->drive_index = storage_count++;
scsi_sense_init(storage_device);
dio_add_entry(ch_scsi_fntbl, storage_device);
}

3
Source/HBIOS/ch376-native/source-doc/ufi-drv/ufi-init.c

@ -22,7 +22,10 @@ void chufi_init(void) {
if (t == USB_IS_FLOPPY) {
print_string("\r\nUSB: FLOPPY @ $");
print_uint16(index);
print_string(":$");
print_uint16(storage_count);
print_string(" $");
storage_device->drive_index = storage_count++;
dio_add_entry(ch_ufi_fntbl, storage_device);
}

108
Source/HBIOS/ch376-native/ufi-drv/ufi-init.c.s

@ -56,7 +56,7 @@ _chufi_init:
push ix
ld ix,0
add ix,sp
dec sp
push af
;source-doc/ufi-drv/ufi-init.c:14: do {
ld (ix-1),0x01
l_chufi_init_00105:
@ -88,18 +88,37 @@ l_chufi_init_00105:
ld hl,ufi_init_str_1
call _print_string
pop de
;source-doc/ufi-drv/ufi-init.c:26: dio_add_entry(ch_ufi_fntbl, storage_device);
;source-doc/ufi-drv/ufi-init.c:26: print_uint16(storage_count);
ld hl,(_storage_count)
ld h,0x00
push de
call _print_uint16
ld hl,ufi_init_str_2
call _print_string
pop de
;source-doc/ufi-drv/ufi-init.c:28: storage_device->drive_index = storage_count++;
ld hl,0x0010
add hl, de
ld c, l
ld b, h
ld hl,_storage_count
ld a, (hl)
ld (ix-2),a
inc (hl)
ld a,(ix-2)
ld (bc), a
;source-doc/ufi-drv/ufi-init.c:29: dio_add_entry(ch_ufi_fntbl, storage_device);
ld hl,_ch_ufi_fntbl
call _dio_add_entry
l_chufi_init_00106:
;source-doc/ufi-drv/ufi-init.c:29: } while (++index != MAX_NUMBER_OF_DEVICES + 1);
;source-doc/ufi-drv/ufi-init.c:32: } while (++index != MAX_NUMBER_OF_DEVICES + 1);
inc (ix-1)
ld a,(ix-1)
sub 0x07
jr NZ,l_chufi_init_00105
l_chufi_init_00108:
;source-doc/ufi-drv/ufi-init.c:30: }
inc sp
;source-doc/ufi-drv/ufi-init.c:33: }
ld sp, ix
pop ix
ret
ufi_init_str_0:
@ -108,9 +127,12 @@ ufi_init_str_0:
DEFM "USB: FLOPPY @ $"
DEFB 0x00
ufi_init_str_1:
DEFM ":$"
DEFB 0x00
ufi_init_str_2:
DEFM " $"
DEFB 0x00
;source-doc/ufi-drv/ufi-init.c:32: uint32_t chufi_get_cap(device_config *const dev) {
;source-doc/ufi-drv/ufi-init.c:35: uint32_t chufi_get_cap(device_config *const dev) {
; ---------------------------------
; Function chufi_get_cap
; ---------------------------------
@ -121,7 +143,7 @@ _chufi_get_cap:
ld hl, -72
add hl, sp
ld sp, hl
;source-doc/ufi-drv/ufi-init.c:34: memset(&response, 0, sizeof(ufi_format_capacities_response));
;source-doc/ufi-drv/ufi-init.c:37: memset(&response, 0, sizeof(ufi_format_capacities_response));
ld hl,0
add hl, sp
ld b,0x12
@ -132,7 +154,7 @@ l_chufi_get_cap_00112:
ld (hl), a
inc hl
djnz l_chufi_get_cap_00112
;source-doc/ufi-drv/ufi-init.c:36: wait_for_device_ready(dev, 25);
;source-doc/ufi-drv/ufi-init.c:39: wait_for_device_ready(dev, 25);
ld a,0x19
push af
inc sp
@ -142,7 +164,7 @@ l_chufi_get_cap_00112:
call _wait_for_device_ready
pop af
inc sp
;source-doc/ufi-drv/ufi-init.c:40: ufi_inquiry(dev, &inquiry);
;source-doc/ufi-drv/ufi-init.c:43: ufi_inquiry(dev, &inquiry);
ld hl,36
add hl, sp
push hl
@ -151,7 +173,7 @@ l_chufi_get_cap_00112:
push hl
call _ufi_inquiry
pop af
;source-doc/ufi-drv/ufi-init.c:42: wait_for_device_ready(dev, 15);
;source-doc/ufi-drv/ufi-init.c:45: wait_for_device_ready(dev, 15);
ld h,0x0f
ex (sp),hl
inc sp
@ -161,7 +183,7 @@ l_chufi_get_cap_00112:
call _wait_for_device_ready
pop af
inc sp
;source-doc/ufi-drv/ufi-init.c:44: const usb_error result = ufi_read_frmt_caps(dev, &response);
;source-doc/ufi-drv/ufi-init.c:47: const usb_error result = ufi_read_frmt_caps(dev, &response);
ld hl,0
add hl, sp
push hl
@ -172,27 +194,27 @@ l_chufi_get_cap_00112:
pop af
pop af
ld a, l
;source-doc/ufi-drv/ufi-init.c:45: if (result != USB_ERR_OK)
;source-doc/ufi-drv/ufi-init.c:48: if (result != USB_ERR_OK)
or a
jr Z,l_chufi_get_cap_00102
;source-doc/ufi-drv/ufi-init.c:46: return 0;
;source-doc/ufi-drv/ufi-init.c:49: return 0;
ld hl,0x0000
ld e, l
ld d, l
jr l_chufi_get_cap_00103
l_chufi_get_cap_00102:
;source-doc/ufi-drv/ufi-init.c:48: return convert_from_msb_first(response.descriptors[0].number_of_blocks);
;source-doc/ufi-drv/ufi-init.c:51: return convert_from_msb_first(response.descriptors[0].number_of_blocks);
ld hl,4
add hl, sp
push hl
call _convert_from_msb_first
pop af
l_chufi_get_cap_00103:
;source-doc/ufi-drv/ufi-init.c:49: }
;source-doc/ufi-drv/ufi-init.c:52: }
ld sp, ix
pop ix
ret
;source-doc/ufi-drv/ufi-init.c:51: uint8_t chufi_read(device_config_storage *const dev, uint8_t *const buffer) {
;source-doc/ufi-drv/ufi-init.c:54: uint8_t chufi_read(device_config_storage *const dev, uint8_t *const buffer) {
; ---------------------------------
; Function chufi_read
; ---------------------------------
@ -203,7 +225,7 @@ _chufi_read:
ld hl, -20
add hl, sp
ld sp, hl
;source-doc/ufi-drv/ufi-init.c:53: if (wait_for_device_ready((device_config *)dev, 20) != 0)
;source-doc/ufi-drv/ufi-init.c:56: if (wait_for_device_ready((device_config *)dev, 20) != 0)
ld c,(ix+4)
ld b,(ix+5)
push bc
@ -218,18 +240,18 @@ _chufi_read:
pop bc
or a
jr Z,l_chufi_read_00102
;source-doc/ufi-drv/ufi-init.c:54: return -1; // Not READY!
;source-doc/ufi-drv/ufi-init.c:57: return -1; // Not READY!
ld l,0xff
jr l_chufi_read_00109
l_chufi_read_00102:
;source-doc/ufi-drv/ufi-init.c:59: memset(&sense_codes, 0, sizeof(sense_codes));
;source-doc/ufi-drv/ufi-init.c:62: memset(&sense_codes, 0, sizeof(sense_codes));
ld hl,0
add hl, sp
xor a
ld (hl), a
inc hl
ld (hl), a
;source-doc/ufi-drv/ufi-init.c:61: if (ufi_read_write_sector((device_config *)dev, false, dev->current_lba, 1, buffer, (uint8_t *)&sense_codes) != USB_ERR_OK)
;source-doc/ufi-drv/ufi-init.c:64: if (ufi_read_write_sector((device_config *)dev, false, dev->current_lba, 1, buffer, (uint8_t *)&sense_codes) != USB_ERR_OK)
ld e,(ix+4)
ld d,(ix+5)
ld hl,12
@ -262,11 +284,11 @@ l_chufi_read_00102:
pop bc
or a
jr Z,l_chufi_read_00104
;source-doc/ufi-drv/ufi-init.c:62: return -1; // general error
;source-doc/ufi-drv/ufi-init.c:65: return -1; // general error
ld l,0xff
jr l_chufi_read_00109
l_chufi_read_00104:
;source-doc/ufi-drv/ufi-init.c:65: memset(&response, 0, sizeof(response));
;source-doc/ufi-drv/ufi-init.c:68: memset(&response, 0, sizeof(response));
push bc
ld hl,4
add hl, sp
@ -279,7 +301,7 @@ l_chufi_read_00139:
inc hl
djnz l_chufi_read_00139
pop bc
;source-doc/ufi-drv/ufi-init.c:67: if ((result = ufi_request_sense((device_config *)dev, &response)) != USB_ERR_OK)
;source-doc/ufi-drv/ufi-init.c:70: if ((result = ufi_request_sense((device_config *)dev, &response)) != USB_ERR_OK)
ld hl,2
add hl, sp
push hl
@ -290,29 +312,29 @@ l_chufi_read_00139:
ld a, l
or a
jr Z,l_chufi_read_00106
;source-doc/ufi-drv/ufi-init.c:68: return -1; // error
;source-doc/ufi-drv/ufi-init.c:71: return -1; // error
ld l,0xff
jr l_chufi_read_00109
l_chufi_read_00106:
;source-doc/ufi-drv/ufi-init.c:72: const uint8_t sense_key = response.sense_key;
;source-doc/ufi-drv/ufi-init.c:75: const uint8_t sense_key = response.sense_key;
ld hl,4
add hl, sp
ld a, (hl)
;source-doc/ufi-drv/ufi-init.c:74: if (sense_key != 0)
;source-doc/ufi-drv/ufi-init.c:77: if (sense_key != 0)
and 0x0f
jr Z,l_chufi_read_00108
;source-doc/ufi-drv/ufi-init.c:75: return -1;
;source-doc/ufi-drv/ufi-init.c:78: return -1;
ld l,0xff
jr l_chufi_read_00109
l_chufi_read_00108:
;source-doc/ufi-drv/ufi-init.c:77: return USB_ERR_OK;
;source-doc/ufi-drv/ufi-init.c:80: return USB_ERR_OK;
ld l,0x00
l_chufi_read_00109:
;source-doc/ufi-drv/ufi-init.c:78: }
;source-doc/ufi-drv/ufi-init.c:81: }
ld sp, ix
pop ix
ret
;source-doc/ufi-drv/ufi-init.c:80: usb_error chufi_write(device_config_storage *const dev, uint8_t *const buffer) {
;source-doc/ufi-drv/ufi-init.c:83: usb_error chufi_write(device_config_storage *const dev, uint8_t *const buffer) {
; ---------------------------------
; Function chufi_write
; ---------------------------------
@ -323,7 +345,7 @@ _chufi_write:
ld hl, -20
add hl, sp
ld sp, hl
;source-doc/ufi-drv/ufi-init.c:82: if (wait_for_device_ready((device_config *)dev, 20) != 0)
;source-doc/ufi-drv/ufi-init.c:85: if (wait_for_device_ready((device_config *)dev, 20) != 0)
ld c,(ix+4)
ld b,(ix+5)
push bc
@ -338,18 +360,18 @@ _chufi_write:
pop bc
or a
jr Z,l_chufi_write_00102
;source-doc/ufi-drv/ufi-init.c:83: return -1; // Not READY!
;source-doc/ufi-drv/ufi-init.c:86: return -1; // Not READY!
ld l,0xff
jr l_chufi_write_00109
l_chufi_write_00102:
;source-doc/ufi-drv/ufi-init.c:87: memset(&sense_codes, 0, sizeof(sense_codes));
;source-doc/ufi-drv/ufi-init.c:90: memset(&sense_codes, 0, sizeof(sense_codes));
ld hl,0
add hl, sp
xor a
ld (hl), a
inc hl
ld (hl), a
;source-doc/ufi-drv/ufi-init.c:88: if ((ufi_read_write_sector((device_config *)dev, true, dev->current_lba, 1, buffer, (uint8_t *)&sense_codes)) != USB_ERR_OK) {
;source-doc/ufi-drv/ufi-init.c:91: if ((ufi_read_write_sector((device_config *)dev, true, dev->current_lba, 1, buffer, (uint8_t *)&sense_codes)) != USB_ERR_OK) {
ld e,(ix+4)
ld d,(ix+5)
ld hl,12
@ -382,11 +404,11 @@ l_chufi_write_00102:
pop bc
or a
jr Z,l_chufi_write_00104
;source-doc/ufi-drv/ufi-init.c:89: return -1;
;source-doc/ufi-drv/ufi-init.c:92: return -1;
ld l,0xff
jr l_chufi_write_00109
l_chufi_write_00104:
;source-doc/ufi-drv/ufi-init.c:93: memset(&response, 0, sizeof(response));
;source-doc/ufi-drv/ufi-init.c:96: memset(&response, 0, sizeof(response));
push bc
ld hl,4
add hl, sp
@ -399,7 +421,7 @@ l_chufi_write_00139:
inc hl
djnz l_chufi_write_00139
pop bc
;source-doc/ufi-drv/ufi-init.c:95: if ((ufi_request_sense((device_config *)dev, &response)) != USB_ERR_OK) {
;source-doc/ufi-drv/ufi-init.c:98: if ((ufi_request_sense((device_config *)dev, &response)) != USB_ERR_OK) {
ld hl,2
add hl, sp
push hl
@ -410,25 +432,25 @@ l_chufi_write_00139:
ld a, l
or a
jr Z,l_chufi_write_00106
;source-doc/ufi-drv/ufi-init.c:96: return -1;
;source-doc/ufi-drv/ufi-init.c:99: return -1;
ld l,0xff
jr l_chufi_write_00109
l_chufi_write_00106:
;source-doc/ufi-drv/ufi-init.c:101: const uint8_t sense_key = response.sense_key;
;source-doc/ufi-drv/ufi-init.c:104: const uint8_t sense_key = response.sense_key;
ld hl,4
add hl, sp
ld a, (hl)
;source-doc/ufi-drv/ufi-init.c:103: if (sense_key != 0)
;source-doc/ufi-drv/ufi-init.c:106: if (sense_key != 0)
and 0x0f
jr Z,l_chufi_write_00108
;source-doc/ufi-drv/ufi-init.c:104: return -1;
;source-doc/ufi-drv/ufi-init.c:107: return -1;
ld l,0xff
jr l_chufi_write_00109
l_chufi_write_00108:
;source-doc/ufi-drv/ufi-init.c:106: return USB_ERR_OK;
;source-doc/ufi-drv/ufi-init.c:109: return USB_ERR_OK;
ld l,0x00
l_chufi_write_00109:
;source-doc/ufi-drv/ufi-init.c:107: }
;source-doc/ufi-drv/ufi-init.c:110: }
ld sp, ix
pop ix
ret

4
Source/HBIOS/ch376.asm

@ -20,6 +20,10 @@ _delay:
call DELAY
call DELAY
call DELAY
call DELAY
call DELAY
call DELAY
call DELAY
pop af
ret

8
Source/HBIOS/ch376scsi.asm

@ -30,12 +30,12 @@ CH_SCSI_FNTBL:
#ENDIF
CH_SCSI_STATUS:
LD A, (IY)
; LD A, (IY)
XOR A
RET
CH_SCSI_RESET:
LD A, (IY)
; LD A, (IY)
XOR A
RET
@ -182,9 +182,9 @@ CH_SCSI_FORMAT:
; | | 9=Cartridge, 10=usb-scsi, 11=usb-ufi |
;
CH_SCSI_DEVICE:
LD C, %01111010 ; TODO?
LD C, %00111010 ; TODO?
LD D, DIODEV_USB
LD E, (iy+16)
LD E, (iy+16) ;???? device_config_storage.drive_index
LD H, 0
LD L, 0
XOR A

Loading…
Cancel
Save