diff --git a/ESTEX.ASM b/ESTEX.ASM index 2130dd1..e94d25a 100755 --- a/ESTEX.ASM +++ b/ESTEX.ASM @@ -252,7 +252,7 @@ WriteSysFiles: ld a,(sFlag) ld (sFlag),a ret .sys_name: db "SYS.EXE " -.sys_prm_disk: db "A: 1" +.sys_prm_disk: dz "A: 1" ; SetDisketa: ; Уст. текущий диск на формат. дискету diff --git a/FMAIN.ASM b/FMAIN.ASM index 5c2d7fb..25722eb 100755 --- a/FMAIN.ASM +++ b/FMAIN.ASM @@ -136,7 +136,8 @@ NoMouse: db "Driver mouse not installed",0Dh,0Ah,0 Title: db " Floppy disk formatting utility. Version " db major_version + "0","." db (minor_version / 10) + "0",(minor_version % 10) + "0" - db " (c) 2005-2025 " + ;db " (c) 2005-2025 " + db " (c) 2005-2025 Sprinter Team " ; ;ds 562 ; 565 + start2 = 672 (_2 -_1) ;[]==============================================================[] diff --git a/FORMAT.ASM b/FORMAT.ASM index a463be7..07a3ee6 100755 --- a/FORMAT.ASM +++ b/FORMAT.ASM @@ -1093,13 +1093,6 @@ L09A8: ld de,L2400 ; ld hl,MS_Boot ; ms-dos boot-сектор ld bc,MS_Boot.SIZE ; длина boot-а ldir ;!TEST - assert MS_Boot.SIZE < 512,"DEL ME!!!" - ld bc,512-MS_Boot.SIZE - ld h,d - ld l,e - dec hl - ldir - ; ex de,hl ; hl = начало FAT в буфере loc07: ld bc,16896 ; 6656/16896 длина FAT-ов + Root dir ld e,0 ; байт заполнения @@ -1530,68 +1523,8 @@ MS_Boot: .serial: dw 0000,0000 ; серийный номер дискеты 2D3A:96C2 .label: db "NO NAME " ; 11 байт, метка дискеты db "FAT12 " ; 8 байт, ID файловой системы - ;--------------; -/* - db 0xFA,0x33,0xD2,0x8E,0xD2,0xBC,0xF0,0x7B - db 0xFB,0xB8,0xC0,0x07,0x8E,0xD8,0xE8,0x89 - db 0x00,0xBE,0xFE,0x00,0xFC,0xBB,0x70,0x00 - db 0xE8,0x25,0x00,0x32,0xE4,0xCD,0x16,0x3C - db 0x1B,0x74,0x18,0x3C,0x0D,0x74,0x08,0x3C - db 0x20,0x74,0x04,0x3C,0x6F,0x75,0xEC,0xBE - db 0xDF,0x01,0xE8,0x0B,0x00,0xBE,0xC1,0x01 - db 0xE8,0x05,0x00,0xE8,0x5C,0x00,0xCD,0x19 - db 0xAC,0x0A,0xC0,0x74,0x46,0x3C,0x01,0x75 - db 0x05,0xAC,0x8A,0xD8,0xEB,0xF2,0x3C,0x02 - db 0x75,0x0A,0xAD,0x8B,0xD0,0x56,0xE8,0x62 - db 0x00,0x5E,0xEB,0xE4,0x3C,0x03,0x75,0x0A - db 0xAC,0xA2,0x00,0x00,0x89,0x36,0x01,0x00 - db 0xEB,0xD6,0x3C,0x04,0x75,0x0C,0xFE,0x0E - db 0x00,0x00,0x74,0x04,0x8B,0x36,0x01,0x00 - db 0xEB,0xC6,0x33,0xC9,0xA8,0x80,0x74,0x05 - db 0x24,0x7F,0x8A,0xC8,0xAC,0x41,0xE8,0x17 - db 0x00,0xEB,0xB5,0x36,0xA1,0x6C,0x04,0x05 - db 0x04,0x00,0x36,0x39,0x06,0x6C,0x04,0x72 - db 0xF9,0xC3,0xB8,0x03,0x00,0xCD,0x10,0xC3 - db 0x56,0x3C,0x0A,0x74,0x10,0xB4,0x09,0xCD - db 0x10,0x02,0xD1,0x80,0xFA,0x50,0x73,0x05 - db 0xE8,0x08,0x00,0x5E,0xC3,0xFE,0xC6,0x32 - db 0xD2,0xEB,0xF5,0xB4,0x02,0xCD,0x10,0xC3 - ; 21 байт - db " FFORMAT Version " - db major_version + "0","." - db (minor_version / 10) + "0",(minor_version % 10) + "0" - ; - db 0xBA,0x20,0x01,0x1F,0x03,0x07,0xCF,0xB0 - db 0x04,0x91,0xB0,0x01,0x4E,0x80,0xC9,0xA7 - db 0xCD,0x80,0xBB,0x01,0x1F,0x93,0xB0,0x03 - db 0x06,0x91,0xB0,0x01,0x4E,0x80,0xBA,0xA7 - db 0x20,0x80,0xBA,0x01,0x07,0x81,0xB0,0x01 - db 0x1F,0x91,0xB0,0x04,0x91,0xB0,0x01,0x4E - db 0x80,0xC8,0xA7,0xCD,0x80,0xBC,0x01,0x07 - db 0x81,0xB0,0x01,0x1F,0x91,0xB0,0x93,0xB0 - db 0x01,0x07,0xA9,0xB0,0x01,0x1F,0x91,0xB0 - db 0x03,0x07,0xCF,0xB0,0x04,0x01,0x70 - ; 16 байт - db " RLE Boot record" - db 0xC6,0x20,0x01,0x4F,0x02,0x15,0x0A - ; 36 байт - db "Sorry, but this disk is not bootable" - db 0x02,0x16,0x0B - ; 33 байта - db "Insert SYSTEM disk into the drive" - db 0x01,0x7F,0x02,0x22,0x0D - ; не нажатый бутон - db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,"" - db 0x01,0x40,0x80,0xDC,0x02,0x23,0x0E,0x89 - db 0xDF,0x02,0x00,0x19,0x00,0x01,0x4E,0x02 - db 0x22,0x0D,0x20,0x01,0x7F - ; нажатый бутон - db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,"" - db 0x01,0x4E,0x02,0x23,0x0E,0x89,0x20,0x02 - db 0x00,0x19,0x00 - dw 0xAA55 -*/ - DB 0 + block 510-62,0 + dw #AA55 .SIZE EQU $-MS_Boot diff --git a/MAIN.ASM b/MAIN.ASM index de3ffec..dcfb9c6 100755 --- a/MAIN.ASM +++ b/MAIN.ASM @@ -55,7 +55,7 @@ dss_ver_ok: ; ld hl,no_mem_err jr Start.error_exit ; -.mem_ok: ld (SLOT1),a +.mem_ok: out (SLOT1),a LD HL,#6200 ;!HARDCODE LD BC,Dss.AppInfo.EXE_HomeDir RST ToDSS diff --git a/MAP.ASM b/MAP.ASM index 5dc8625..55912c2 100755 --- a/MAP.ASM +++ b/MAP.ASM @@ -57,170 +57,223 @@ count: db 5 ; Настройка окна процесса форматирования -Setup_Map: - xor a - ld (_OS),a - ld hl,553 - ld (L0BB6+1),hl - ld hl,512 - ld (MinusSc+1),hl - ld a,2 - ld (SecCode+1),a ; код размера сектора - ld hl,INTERL1 - ld (INTERL+1),hl ; уст. интерлив для < 21 сектора - ld hl,LABEL ; буфер имени метки - ld a,(hl) - or a - jr nz,.loc0 - ld hl,.loc22 ; "NO NAME " -.loc0: ld de,LABEL1 - ld b,11 -.loc1: ld a,(hl) - or a - jr z,.loc2 - ld (de),a - inc hl - inc de - djnz .loc1 - jr .loc3 -.loc2: ld a," " ; заполнить остаток "LABEL" пробелом - ld (de),a - inc de - djnz .loc2 -.loc3: ld hl,(CurElem1) ; тек. полож. указателя формата - ld a,h - add a,l - call Space - call SetCyl - call SetMedia - push af - cp 3 - jr z,.loc4 - cp 4 - jr z,.loc4 - cp 6 - jr z,.loc4 - cp 7 - jr z,.loc4 - cp 10 - jr z,.loc4 - cp 11 - jr z,.loc4 - ; 80 дорожек - ld a,0FFh - ld (metka1),a - ld (metka2),a - ld (metka4),a - ld (metka3),a - jr .loc5 - ; 82-83 дорожки -.loc4: ld a,"█" - ld (metka1),a - ld (metka2),a - ld a," " - ld (metka4),a - ld a,"0" - ld (metka3),a -.loc5: pop af - rlca - ld e,a - ld d,0 - ld hl,.loc6 - ld bc,7 - add hl,de - ld e,(hl) - inc hl - ld d,(hl) - ex de,hl - ld de,metka5 - ldir - ; - ld a,(_OS) - or a - jr z,.loc30 ; ос ms-dos - dec a - jr nz,.loc28 ; ос cpm-80 - ld a,(sFlag1) - or a - jr nz,.loc28 ; ошибки работы с файлом "boot.$b" - ld a,(cSystem) - or a - jr z,.loc28 - ld hl,.loc53 ; tr-dos "Boot disk " - jr .loc27 - ; ms-dos -.loc30: ld hl,.loc25 ; "System files" - ld a,(sFlag) - or a - jr nz,.loc28 ; ошибки работы с сист. файлами Estex - ld a,(cSystem) - or a - jr nz,.loc27 -.loc28: ld hl,.loc26 ; " " -.loc27: ld de,metka7 - ld bc,12 - ldir - ; настроить строку тек. режима - ld hl,(CurElem1) ; тек. полож. указателя формата - ld a,h - add a,l - ld hl,.loc52 ; " " - cp 13 ; пункт CPM-80 ? - jr z,.loc21 - ; ms-dos, tr-dos - ld hl,.loc29 ; "Optimize sectors" - ld a,(Mode2) - or a - jr nz,.loc21 - ld hl,.loc19 ; "Standart mode" - ld a,(Mode0) - or a - jr nz,.loc21 - ld hl,.loc20 ; "Quick format" -.loc21: ld bc,18 - ld de,metka6 ; строка в ListBox-е - ldir - ret - ; -.loc6: dw .loc7 - dw .loc8 - dw .loc9 - dw .loc10 - dw .loc11 - dw .loc12 - dw .loc13 - dw .loc14 - dw .loc15 - dw .loc16 - dw .loc17 - dw .loc18 - dw .loc50 - dw .loc51 - ; -.loc7: db "1.44 Mb" -.loc8: db "1.52 Mb" -.loc9: db "1.60 Mb" -.loc10: db "1.64 Mb" -.loc11: db "1.66 Mb" -.loc12: db "1.68 Mb" -.loc13: db "1.72 Mb" -.loc14: db "1.74 Mb" -.loc15: db "720 kB " -.loc16: db "800 kB " -.loc17: db "820 kB " -.loc18: db "830 kB " -.loc50: db "TR-DOS " -.loc51: db "CP/M-80" - - -.loc19: db "(Standart mode) " -.loc29: db "(Optimize sectors)" -.loc20: db "(Quick format) " -.loc52: db " " -.loc22: db "NO NAME " -.loc25: db "System files" -.loc53: db "Boot disk " -.loc26: db " " +Setup_Map: xor a + ld (_OS),a + ld hl,553 + ld (L0BB6+1),hl + ld hl,512 + ld (MinusSc+1),hl + ld a,2 + ld (SecCode+1),a ; код размера сектора + ld hl,INTERL1 + ld (INTERL+1),hl ; уст. интерлив для < 21 сектора + ; + ; + ld hl,LABEL ; буфер имени метки + ld a,(hl) + or a + jr nz,.loc0 + ; + ld hl,.loc22 ; "NO NAME " +.loc0: ld de,LABEL1 + ld b,11 + LD A,(HL) + CP ' '+1 + JR C,.no_name + ; +.loop1: LD A,(HL) + AND A + jr z,.empty + CP '*' + JR Z,.no_name + CP '.' + JR Z,.no_name + CP '"' + JR Z,.no_name + CP '+' + JR Z,.no_name + CP ',' + JR Z,.no_name + CP '/' + JR Z,.no_name + CP ':' + JR Z,.no_name + CP ';' + JR Z,.no_name + CP '<' + JR Z,.no_name + CP '=' + JR Z,.no_name + CP '>' + JR Z,.no_name + CP '[' + JR Z,.no_name + CP '\' + JR Z,.no_name + CP ']' + JR Z,.no_name + CP '|' + JR Z,.no_name + LD (DE),A + INC HL + INC DE + DJNZ .loop1 + jr .loc3 + ; +.empty: ld a,b + cp 11 + jr z,.no_name + ; + ex de,hl +.loop2: ld (hl)," " + inc hl + djnz .loop2 + jr .loc3 + ; +.no_name: ld hl,.loc22 + ld de,LABEL1 + ld bc,11 + push hl + ldir + pop hl + ld de,LABEL + ld c,11 + ldir + ; + ; +.loc3: ld hl,(CurElem1) ; тек. полож. указателя формата + ld a,h + add a,l + call Space + call SetCyl + call SetMedia + push af + cp 3 + jr z,.loc4 + cp 4 + jr z,.loc4 + cp 6 + jr z,.loc4 + cp 7 + jr z,.loc4 + cp 10 + jr z,.loc4 + cp 11 + jr z,.loc4 + ; 80 дорожек + ld a,0FFh + ld (metka1),a + ld (metka2),a + ld (metka4),a + ld (metka3),a + jr .loc5 + ; 82-83 дорожки +.loc4: ld a,"█" + ld (metka1),a + ld (metka2),a + ld a," " + ld (metka4),a + ld a,"0" + ld (metka3),a +.loc5: pop af + rlca + ld e,a + ld d,0 + ld hl,.loc6 + ld bc,7 + add hl,de + ld e,(hl) + inc hl + ld d,(hl) + ex de,hl + ld de,metka5 + ldir + ; + ld a,(_OS) + or a + jr z,.loc30 ; ос ms-dos + dec a + jr nz,.loc28 ; ос cpm-80 + ld a,(sFlag1) + or a + jr nz,.loc28 ; ошибки работы с файлом "boot.$b" + ld a,(cSystem) + or a + jr z,.loc28 + ld hl,.loc53 ; tr-dos "Boot disk " + jr .loc27 + ; ms-dos +.loc30: ld hl,.loc25 ; "System files" + ld a,(sFlag) + or a + jr nz,.loc28 ; ошибки работы с сист. файлами Estex + ld a,(cSystem) + or a + jr nz,.loc27 +.loc28: ld hl,.loc26 ; " " +.loc27: ld de,metka7 + ld bc,12 + ldir + ; настроить строку тек. режима + ld hl,(CurElem1) ; тек. полож. указателя формата + ld a,h + add a,l + ld hl,.loc52 ; " " + cp 13 ; пункт CPM-80 ? + jr z,.loc21 + ; ms-dos, tr-dos + ld hl,.loc29 ; "Optimize sectors" + ld a,(Mode2) + or a + jr nz,.loc21 + ld hl,.loc19 ; "Standart mode" + ld a,(Mode0) + or a + jr nz,.loc21 + ld hl,.loc20 ; "Quick format" +.loc21: ld bc,18 + ld de,metka6 ; строка в ListBox-е + ldir + ret + ; +.loc6: dw .loc7 + dw .loc8 + dw .loc9 + dw .loc10 + dw .loc11 + dw .loc12 + dw .loc13 + dw .loc14 + dw .loc15 + dw .loc16 + dw .loc17 + dw .loc18 + dw .loc50 + dw .loc51 + ; +.loc7: db "1.44 Mb" +.loc8: db "1.52 Mb" +.loc9: db "1.60 Mb" +.loc10: db "1.64 Mb" +.loc11: db "1.66 Mb" +.loc12: db "1.68 Mb" +.loc13: db "1.72 Mb" +.loc14: db "1.74 Mb" +.loc15: db "720 kB " +.loc16: db "800 kB " +.loc17: db "820 kB " +.loc18: db "830 kB " +.loc50: db "TR-DOS " +.loc51: db "CP/M-80" +; +.loc19: db "(Standart mode) " +.loc29: db "(Optimize sectors)" +.loc20: db "(Quick format) " +.loc52: db " " +.loc22: db "NO NAME " +.loc25: db "System files" +.loc53: db "Boot disk " +.loc26: db " " @@ -843,33 +896,75 @@ CreateLabel: ; ld c,12h ; RST ToDSS ; .loc1: jp RestPath ; восст. диск и путь - ld hl,LABEL - ld de,L2400 + BOOT_SECTOR.FAT.LABEL ;!TEST - ld b,11 - ; -.loop: ld a,(hl) - and a - jr z,.empty - ld (de),a - inc de - inc hl - djnz .loop - ret - ; -.empty: ld a,b - cp 11 - jr z,.no_name - ; - ex de,hl -.loop2: ld (hl)," " - inc hl - djnz .loop2 - ret -.no_name: - ld hl,MS_Boot.label - ld bc,11 - ldir - ret +; ><|?*/\:" + ld hl,LABEL1 + ld de,L2400 + BOOT_SECTOR.FAT.LABEL + LD BC,11 ; счетчик + LDIR + RET +; ; +; LD A,(HL) +; CP ' '+1 +; JR C,.no_name +; .loop1: LD A,(HL) +; AND A +; jr z,.empty +; CP '*' +; JR Z,.no_name +; CP '.' +; JR Z,.no_name +; CP '"' +; JR Z,.no_name +; CP '+' +; JR Z,.no_name +; CP ',' +; JR Z,.no_name +; CP '/' +; JR Z,.no_name +; CP ':' +; JR Z,.no_name +; CP ';' +; JR Z,.no_name +; CP '<' +; JR Z,.no_name +; CP '=' +; JR Z,.no_name +; CP '>' +; JR Z,.no_name +; CP '[' +; JR Z,.no_name +; CP '\' +; JR Z,.no_name +; CP ']' +; JR Z,.no_name +; CP '|' +; JR Z,.no_name +; LD (DE),A +; INC HL +; INC DE +; DJNZ .loop1 +; RET +; ; +; .empty: ld a,b +; cp 11 +; jr z,.no_name +; ; +; ex de,hl +; .loop2: ld (hl)," " +; inc hl +; djnz .loop2 +; ret +; ; +; .no_name: ld hl,Setup_Map.loc22 +; ld de,L2400 + BOOT_SECTOR.FAT.LABEL +; ld bc,11 +; push hl +; ldir +; pop hl +; ld de,LABEL +; ld c,11 +; ldir +; ret ; Выходные значения: ; D - день @@ -886,9 +981,7 @@ CreateSerialNumber: ; ex de,hl add ix,de - ld a,xl - ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER + 3),a - ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER + 1),ix + ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER + 2),ix ; ld a,d ld d,b @@ -902,8 +995,8 @@ CreateSerialNumber: ; ld e,a add hl,de - ld e,l - ld l,h - ld h,e + ; ld e,l + ; ld l,h + ; ld h,e ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER),hl ret \ No newline at end of file diff --git a/RADIO.ASM b/RADIO.ASM index 653f569..2ca441b 100755 --- a/RADIO.ASM +++ b/RADIO.ASM @@ -804,29 +804,29 @@ EImouse: LD E,(HL) ;Xcoord INC HL LD D,(HL) ;Ycoord LD A,D - CP (IX+4) ;Y pos input line + CP (IX+4) ;Y pos input line RET NZ LD A,E BIT 7,(IX+2) JR NZ,$+6 - CP (IX+2) ;Xo pos + CP (IX+2) ;Xo pos RET C BIT 7,(IX+3) RET NZ - CP (IX+3) ;Xi pos + CP (IX+3) ;Xi pos RET NC BIT 7,(IX+1) JR Z,SetInLn BIT 7,(IX+6) JR NZ,$+6 - CP (IX+6) ;Xo inp.line + CP (IX+6) ;Xo inp.line RET C - SUB (IX+6) ;shift from begin + SUB (IX+6) ;shift from begin LD C,A LD L,(IX+9) LD H,(IX+0Ah) INC HL - LD (HL),0 ;Flag + LD (HL),0 ;Flag INC HL CP (HL) RET Z diff --git a/Shared_Includes b/Shared_Includes index 1b6a539..a0e68ce 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 1b6a539aea8d46b09a617a90a04a2e45dcb37b3f +Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1