This commit is contained in:
Tolik 2025-04-27 00:31:42 +10:00
commit cc0a75f6bc
3 changed files with 107 additions and 41 deletions

View File

@ -36,6 +36,50 @@
.ID_2 _ZX_TASK_DATA
.ID_3 _ZX_TASK_DATA
ENDS
; MODULE FDD_INIT_TABLE
; FDD EQU 3
; FDD_0 EQU SYS_PAGE.FDD_0
; .DISK EQU FDD_0+0
; .F144 EQU .DISK
; .SECTORS EQU FDD_0+1
; .MS_SECS EQU .SECTORS
; .HEADS EQU FDD_0+2
; .CYLINDL EQU FDD_0+3
; .CYLINDH EQU FDD_0+4
; .BytesPerSector EQU FDD_0+5 ;WORD B_P_S
; .ID EQU .BytesPerSector + 2
; ; FDD_1 EQU SYS_PAGE.FDD_1
; ; .DISK EQU FDD_1+0
; ; .F144 EQU .DISK
; ; .SECTORS EQU FDD_1+1
; ; .MS_SECS EQU .SECTORS
; ; .HEADS EQU FDD_1+2
; ; .CYLINDL EQU FDD_1+3
; ; .CYLINDH EQU FDD_1+4
; ; .BytesPerSector EQU FDD_1+5 ;WORD B_P_S
; ; .ID EQU .BytesPerSector + 1
; ENDMODULE
;
STRUCT FDD_1440_TABLE
.DISK BYTE #80 ;FDD_0+0 ; bit0 - fdd number, bit7 - 720/1440
.SECTORS BYTE #12 ;FDD_0+1
.HEADS BYTE #02 ;FDD_0+2
.CYLINDL BYTE #50 ;FDD_0+3
.CYLINDH BYTE #00 ;FDD_0+4
.BytesPerSector WORD #0200 ;FDD_0+5 ;WORD B_P_S
.ID BYTE #03 ;.BytesPerSector + 2
ENDS
;
STRUCT FDD_720_TABLE
.DISK BYTE #00 ;FDD_0+0 ; bit0 - fdd number, bit7 - 720/1440
.SECTORS BYTE #09 ;FDD_0+1
.HEADS BYTE #02 ;FDD_0+2
.CYLINDL BYTE #50 ;FDD_0+3
.CYLINDH BYTE #00 ;FDD_0+4
.BytesPerSector WORD #0200 ;FDD_0+5 ;WORD B_P_S
.ID BYTE #03 ;.BytesPerSector + 2 ; å¥à ¥£® §­ ¥â, çâ® §  ¯ à ¬¥âà
ENDS
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -740,9 +784,12 @@ SYS_PAGE EQU #FE
.IDE_3 EQU #C1D0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;=======================================================================
.FDD_0 EQU #C1E0
.FDD_1 EQU #C1E8
.FDD_TBL.Size EQU #10
;.FDD_0 EQU #C1E0
.FDD_TABLE FDD_1440_TABLE = #C1E0
.FDD_TABLE.Size EQU FDD_1440_TABLE
;.FDD_1 EQU #C1E8
;.FDD_1_TABLE: FDD_720_TABLE = #C1E8
;.FDD_TBL.Size EQU #10
;
; ª®¯¨¨ à ¬¤¨áª®¢ ¤«ï ¯¥à¥ª«î祭¨ï ¬¥¦¤ã ०¨¬ ¬¨ Spectrum / Sprinter
.Sp_RAMD_KEYS EQU #C1F0
@ -771,8 +818,8 @@ SYS_PAGE EQU #FE
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
.MS_BPB EQU #C400 ; ¡ãä¥à BPB
//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
; IDENTIFY ATA buffer
.HD_IDF_ADR EQU #C600 ; !FIXIT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன ᤥ<><E1A4A5><EFBFBD><EFBFBD>!!!
; 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
@ -820,41 +867,6 @@ SYS_PAGE EQU #FE
;
; STRUCT FDD_INIT_TABLE
; DISK BYTE 0
; F144 EQU FDD_0+0
; SECTORS EQU FDD_0+1
; MS_SECS EQU .SECTORS
; HEADS EQU FDD_0+2
; CYLINDL EQU FDD_0+3
; CYLINDH EQU FDD_0+4
; B_P_S EQU FDD_0+5
; ENDS
;
MODULE FDD_INIT_TABLE ; !FIXIT <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> FDD <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD>ਢ易<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FDD EQU 3 ; ????? <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FDD_0 EQU SYS_PAGE.FDD_0
.DISK EQU FDD_0+0
.F144 EQU .DISK
.SECTORS EQU FDD_0+1
.MS_SECS EQU .SECTORS
.HEADS EQU FDD_0+2
.CYLINDL EQU FDD_0+3
.CYLINDH EQU FDD_0+4
.BytesPerSector EQU FDD_0+5 ;WORD B_P_S
FDD_1 EQU SYS_PAGE.FDD_1
.DISK EQU FDD_1+0
.F144 EQU .DISK
.SECTORS EQU FDD_1+1
.MS_SECS EQU .SECTORS
.HEADS EQU FDD_1+2
.CYLINDL EQU FDD_1+3
.CYLINDH EQU FDD_1+4
.BytesPerSector EQU FDD_1+5 ;WORD B_P_S
ENDMODULE
;
;
STRUCT BIOS_DATE_FORMAT ; !FIXIT ¯¥à¥¤¥« âì ¯®¤ áâàãªâãà㠢ᥠ¯¥à¥¬¥­­ë¥ #FE
hour BYTE

View File

@ -140,6 +140,8 @@ Dss:
.K_SETUP.SetLayout EQU 0*256 + .K_SETUP
.K_SETUP.GetSoundVars EQU 1*256 + .K_SETUP
.K_SETUP.SetSoundVars EQU 2*256 + .K_SETUP
.K_SETUP.ShowCursor EQU 3*256 + .K_SETUP
.K_SETUP.HideCursor EQU 4*256 + .K_SETUP
.TestKey EQU #37
;
; Memory

View File

@ -649,3 +649,55 @@ Description
1Fh Unknown or no device type
The Peripheral Device Type shall be set to 05h to indicate a CD-ROM Device.
*/
/* 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");
*/