From be6067585059da92ec2674091bedf341e9219f09 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Wed, 23 Apr 2025 02:39:28 +1000 Subject: [PATCH] ... --- constants/SP2000.inc | 4 +-- structures/ATA_ATAPI.INC | 54 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/constants/SP2000.inc b/constants/SP2000.inc index 06bf712..ca6282d 100644 --- a/constants/SP2000.inc +++ b/constants/SP2000.inc @@ -771,8 +771,8 @@ SYS_PAGE EQU #FE //°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° .MS_BPB EQU #C400 ; ¡ãä¥à BPB //°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° -; IDENTIFY ATA buffer -.HD_IDF_ADR EQU #C600 ; !FIXIT áâàãªâãன ᤥ« âì!!! +; IDENTIFY ATA buffer ; !FIXIT áâàãªâãன ᤥ« âì!!! +.HD_IDF_ADR EQU #C600 ; á çñâ­®£®  ¤à¥á . ˆá¯®«ì§ã¥âáï ¢ HDD_PROG tr-dos .HD_IDF_ADR.sec_cyl EQU .HD_IDF_ADR+4 .HD_IDF_ADR.heads EQU .HD_IDF_ADR+6 ; Number of heads .HD_IDF_ADR.sectors EQU .HD_IDF_ADR+12 ; Number of sectors per track diff --git a/structures/ATA_ATAPI.INC b/structures/ATA_ATAPI.INC index 19c7d09..147991d 100644 --- a/structures/ATA_ATAPI.INC +++ b/structures/ATA_ATAPI.INC @@ -648,4 +648,56 @@ Description 08h - 1Eh Reserved 1Fh Unknown or no device type The Peripheral Device Type shall be set to 05h to indicate a CD-ROM Device. -*/ \ No newline at end of file +*/ + +/* ZIP DRIVE +…᫨ ­  ¯à¨¢®¤¥ ­ ¦ â  ª­®¯ª  ¢ë¡à®á , â® ¯®«ãç¨âì íâã ¨­ä®à¬ æ¨ï ¬®¦­® ®â¯à ¢¨¢ ATAPI ª®¬ ­¤ã 06 - MODE NON SENSE +2-© ¡ ©â 2-© áâà ­¨æë == 1 ¥á«¨ ­ ¦ â eject, 0 ¥á«¨ ­¥ ­ ¦ â. + * ZIP100 CMD - 06h + * Three pages: + * 00 - 6 bytes + * 01 - 88 bytes + * 02 - 64 bytes - ZIP disk id + +const uint8_t zip_disk_100[3][88] = { + { 0x00, 0x04, 0x00, 0x01, 0x02, 0x03 }, + { 0x01, 0x56, 0x01, 0x00, 0x00, 0x02, 0x06, 0x48, 0x06, 0x01, 0x06, 0x48, 0x06, 0x00, 0x00, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x18, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x02, 0x3e, 0x00, 0x02, 0x00, 0x00, 0x02, 0xff, 0xff, 0x00, 0x00, 0x02, 0x00, 0x00, 0x7e, 0x00, + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x30, 0x34, 0x35, 0x31, 0x30, 0x32, 0x34, 0x33, 0x35, + 0x35, 0x33, 0x39, 0x39, 0x30, 0x33, 0x38, 0x30, 0x33, 0x5a, 0x49, 0x50, 0x31, 0x20, 0x20, + 0x20, 0x4b, 0x41, 0x41, 0x32, 0x31, 0x30, 0x30, 0x45, 0x33, 0x31, 0x31, 0x20, 0x20, 0x20, + 0x20, 0x00, 0x12 } + }; + + +const uint8_t zip_disk_250[3][88] = { + { 0x00, 0x04, 0x00, 0x01, 0x02, 0x03 }, + { 0x01, 0x56, 0x02, 0x00, 0x00, 0x00, 0x12, 0xf6, 0x12, 0x2e, 0x12, 0xf6, 0x12, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x17, 0x01, + 0x10, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3e, 0x24, + 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x17, 0x29, 0x31, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00 }, + { 0x02, 0x3e, 0x00, 0x02, 0x00, 0x00, 0x07, 0x78, 0x3b, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x31, 0x39, 0x39, + 0x33, 0x35, 0x31, 0x38, 0x31, 0x32, 0x37, 0x31, 0x30, 0x30, 0x30, 0x32, + 0x37, 0x30, 0x33, 0x5a, 0x49, 0x50, 0x32, 0x20, 0x20, 0x20, 0x41, 0x41, + 0x41, 0x41, 0x53, 0x30, 0x36, 0x36, 0x33, 0x76, 0x47, 0x20, 0x20, 0x20, + 0x20, 0x10, 0x10 } + }; + +‘¨£­ «¨§¨à®¢ âì ¯à¨¢®¤ã ®â¤ âì ¤¨áª¥âã ¬®¦­® ç¥à¥§ ¯à®¯à¨¥â à­ãî ª®¬ ­¤ã 0x0D, ¢ âà¥â쥬 ¡ ©â¥ ãáâ ­®¢¨âì ä« £. (“ ¬¥­ï ¢ ª®¤¥ ¢á¥ ­ ®¡®à®â) +…᫨ ª®­¥ç­® ®â¤ ç  ¤¨áª¥âë ­¥ § ¡«®ª¨à®¢ ­  ª®¬ ­¤®© "0x1E: // PREVENT/ALLOW MEDIUM REMOVAL" +// ZIP VENDOR SPECIFIC +// (0d 00 0a 01 00 00 00 00 00 00 00 00 00 - Eject disk if not prohibited) +// (0d 00 0a 00 00 00 00 00 00 00 00 00 00 - Clear Eject flag) + uint8_t eject = packet[3]; + log_debug("ZIP disk eject: %s\n",eject?"EJECT":"CLEAR EJECT"); + */ \ No newline at end of file