курсор и прерывания теперь работают через дос

This commit is contained in:
Tolik 2025-04-26 02:32:08 +10:00
parent 6ddb8e2890
commit c64bb6b285
5 changed files with 3197 additions and 3171 deletions

File diff suppressed because it is too large Load Diff

View File

@ -118,7 +118,7 @@ SBuff2: db 0 ; 䠩
Begin: ; á®åà. íªà ­
call SaveScreen
; á®åà. ¯®«®¦. ªãàá®à  á¨áâ. íªà ­ 
ld c,8Eh
ld c,BIOS.LP_GET_PLACE
RST ToBIOS
ld (sys_cursor_coords),de
; ¨­¨æ. ¤à ©¢¥à ¬ë誨
@ -148,23 +148,23 @@ continue: call ReadInit ;
; ¢¥ªâ®à ¤«ï ®â®¡à ¦¥­¨ï ªãàá®à 
rst38: di
push iy
push ix
push hl
push de
push bc
push af
ld a,(CurILFl)
or a
call nz,PrnILCr
pop af
pop bc
pop de
pop hl
pop ix
pop iy
vect: jp 0x0000 ;  ¤à¥á á¨áâ. ¢¥ªâ®à 
; rst38: di
; push iy
; push ix
; push hl
; push de
; push bc
; push af
; ld a,(CurILFl)
; or a
; call nz,PrnILCr
; pop af
; pop bc
; pop de
; pop hl
; pop ix
; pop iy
; vect+1: jp 0x0000 ;  ¤à¥á á¨áâ. ¢¥ªâ®à 
@ -188,7 +188,7 @@ 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-2007 "
db " (c) 2005-2025 "
;
ds 562 ; 565 + start2 = 672 (_2 -_1)

476
RADIO.ASM
View File

@ -6,45 +6,44 @@
; <20>ãä¥à ¨¬¥­¨ ¬¥âª¨ ¤¨áª¥âë
LabelBuff:
db 11 ; Max input symbols
db 0 ; ReadyString
db 0 ; Pos X
db 0 ; Add X
db 0 ; Inp.Symb
LABEL: ds 12,0
LabelBuff: DB 11 ; Max input symbols
DB 0 ; ReadyString
DB 0 ; Pos X
DB 0 ; Add X
DB 0 ; Inp.Symb
LABEL: DS 12,0
cSystem:db 0 ; 01/00 - á®§¤./­¥ á®§¤. á¨áâ. ¤¨áª¥âã
cSystem: DB 0 ; 01/00 - á®§¤./­¥ á®§¤. á¨áâ. ¤¨áª¥âã
Mode0: db 0 ; "Standart mode"
Mode2: db 1 ; "Optimize sectors"
Mode1: db 0 ; "Quick format"
Mode0: DB 0 ; "Standart mode"
Mode2: DB 1 ; "Optimize sectors"
Mode1: DB 0 ; "Quick format"
CurElem0:dw 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox1- 
CurElem1:dw 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox2- 
CurElem0: DW 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox1- 
CurElem1: DW 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox2- 
CurILFl:db 0 ; ä« £ ªãàá®à  00-¢ëª«/01-¢ª«
Flag: db 0 ; ä« £ ªãàá®à  00-­¥â/01-¥áâì
Timer: db 1 ; â ©¬¥à
CursPos:dw 0 ; ¯®§¨æ¨ï ªãàá®à 
CurILFl: DB 0 ; ä« £ ªãàá®à  00-¢ëª«/01-¢ª«
;Flag: DB 0 ; ä« £ ªãàá®à  00-­¥â/01-¥áâì
Timer: DB 1 ; â ©¬¥à
CursPos: DW 0 ; ¯®§¨æ¨ï ªãàá®à 
_OS: db 0 ; 00/01/02 ⨯ Ž‘ (ms-dos/tr-dos/cpm)
_OS: DB 0 ; 00/01/02 ⨯ Ž‘ (ms-dos/tr-dos/cpm)
; Ž¯æ¨¨ ¢ë¡®à  ä®à¬ â  FDD
; ¤¨áª "A"
DriveA:
SetDriveA0:db 1 ; 1.44Mb 3.5"
SetDriveA1:db 0 ; 720kB 5.25"
SetDriveA2:db 0 ; None (ï祩ª  ­¥ ®âá«¥¦¨¢ ¥âáï)
SetDriveA0: DB 1 ; 1.44Mb 3.5"
SetDriveA1: DB 0 ; 720kB 5.25"
SetDriveA2: DB 0 ; None (ï祩ª  ­¥ ®âá«¥¦¨¢ ¥âáï)
; ¤¨áª "B"
DriveB:
SetDriveB0:db 0 ; 1.44Mb 3.5"
SetDriveB1:db 1 ; 720kB 5.25"
SetDriveB2:db 0 ; None
SetDriveB0: DB 0 ; 1.44Mb 3.5"
SetDriveB1: DB 1 ; 720kB 5.25"
SetDriveB2: DB 0 ; None
@ -86,13 +85,13 @@ PInpLine:
LD (IY+3),A ;+3 Yo
CALL GetPutA
EX DE,HL
ld a,(ColDialWn)
LD A,(ColDialWn)
LD C,A
LD A,(DE)
PInpLp1: INC DE
CP '~'
JR NZ,PInpN0
ld c,ColDhotkey
LD C,ColDhotkey
;LD C,A
LD A,(DE)
INC DE
@ -107,7 +106,7 @@ PInpLp1:INC DE
INC HL
INC DE
INC (IX+4)
ld a,(ColDialWn)
LD A,(ColDialWn)
LD C,A
LD A,(DE)
INC DE
@ -151,7 +150,7 @@ PInpN0: LD (HL),A
INC DE
PUSH HL
next1: LD HL,0
ld c,ColInpLine ; 梥â áâப¨ ¢¢®¤ 
LD C,ColInpLine ; 梥â áâப¨ ¢¢®¤ 
;LD C,A
PInpLp2: LD A,(DE)
INC DE
@ -231,8 +230,8 @@ PClRadioB:
LD A,"Ú"
LD (DE),A
INC DE
ld a,ColLstBxFr ; 梥â à ¬ª¨
ld (de),a
LD A,ColLstBxFr ; 梥â à ¬ª¨
LD (DE),A
INC DE
LD A," "
LD (DE),A
@ -260,15 +259,15 @@ PClRadioB:
clrd1: LD A,"Ä"
LD (DE),A
INC DE
ld a,ColLstBxFr ;
ld (de),a
LD A,ColLstBxFr ;
LD (DE),A
INC DE
DJNZ clrd1
ClRadN1: LD A,"¿"
LD (DE),A
inc de
ld a,ColLstBxFr ;
ld (de),a
INC DE
LD A,ColLstBxFr ;
LD (DE),A
INC (IX+5)
LD BC,6 ;Next element claster
ADD IY,BC
@ -280,16 +279,16 @@ ClRadN1:LD A,"
LD (HL),"³"
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
LD C,(IX+6)
LD B,0
ADD HL,BC
ADD HL,BC
LD (HL),"³"
inc hl
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC (IX+5)
EX DE,HL
;
@ -302,7 +301,7 @@ ClRadLp:LD C,(IX+4) ;pos element
LD (HL),"³"
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
INC HL
INC HL
@ -323,13 +322,13 @@ ClRadLp:LD C,(IX+4) ;pos element
INC HL
INC B
;
ld a,(ColDialWn) ;Put name element
LD A,(ColDialWn) ;Put name element
LD C,A
LD A,(DE)
ClRadL1: INC DE
CP '~'
JR NZ,ClRadN0
ld c,ColDhotkey
LD C,ColDhotkey
;LD C,A
LD A,(DE)
INC DE
@ -343,7 +342,7 @@ ClRadL1:INC DE
LD (HL),A
INC HL
INC DE
ld a,(ColDialWn)
LD A,(ColDialWn)
LD C,A
INC B
LD A,(DE)
@ -364,9 +363,9 @@ ClRadN0:LD (HL),A
ADD HL,BC
ADD HL,BC
LD (HL),"³"
inc hl
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
LD A,(IX+5) ;Current Y pos
ADD A,(IX+1) ;from begin screen
LD (IY+0),A
@ -409,20 +408,20 @@ ClRadN0:LD (HL),A
LD (HL),"À"
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
LD B,(IX+6)
clrd2: LD A,"Ä"
LD (HL),A
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
DJNZ clrd2
LD (HL),"Ù"
inc hl
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
EX DE,HL
PUSH IY
EXX
@ -486,8 +485,8 @@ PClCheckB:
LD A,"Ú"
LD (DE),A
INC DE
ld a,ColLstBxFr ;
ld (de),a
LD A,ColLstBxFr ;
LD (DE),A
INC DE
LD A," "
LD (DE),A
@ -515,15 +514,15 @@ PClCheckB:
clch1: LD A,"Ä"
LD (DE),A
INC DE
ld a,ColLstBxFr ;
ld (de),a
LD A,ColLstBxFr ;
LD (DE),A
INC DE
DJNZ clch1
ClChkN1: LD A,"¿"
LD (DE),A
inc de
ld a,ColLstBxFr ;
ld (de),a
INC DE
LD A,ColLstBxFr ;
LD (DE),A
INC (IX+5)
LD BC,6 ;Next element claster
ADD IY,BC
@ -535,16 +534,16 @@ ClChkN1:LD A,"
LD (HL),"³"
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
LD C,(IX+6)
LD B,0
ADD HL,BC
ADD HL,BC
LD (HL),"³"
inc hl
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC (IX+5)
EX DE,HL
; Next element
@ -556,7 +555,7 @@ ClChkLp:LD C,(IX+4) ;pos element
LD (HL),"³"
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
INC HL
INC HL
@ -577,13 +576,13 @@ ClChkLp:LD C,(IX+4) ;pos element
INC HL
INC B
;
ld a,(ColDialWn) ;Put name element
LD A,(ColDialWn) ;Put name element
LD C,A
LD A,(DE)
ClChkL1: INC DE
CP '~'
JR NZ,ClChkN0
ld c,ColDhotkey
LD C,ColDhotkey
;LD C,A
LD A,(DE)
INC DE
@ -597,7 +596,7 @@ ClChkL1:INC DE
LD (HL),A
INC HL
INC DE
ld a,(ColDialWn)
LD A,(ColDialWn)
LD C,A
INC B
LD A,(DE)
@ -618,9 +617,9 @@ ClChkN0:LD (HL),A
ADD HL,BC
ADD HL,BC
LD (HL),"³"
inc hl
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
;
LD A,(IX+5) ;Current Y pos
ADD A,(IX+1) ;from begin screen
@ -664,20 +663,20 @@ ClChkN0:LD (HL),A
LD (HL),"À"
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
LD B,(IX+6)
clch2: LD A,"Ä"
LD (HL),A
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
INC HL
DJNZ clch2
LD (HL),"Ù"
inc hl
INC HL
;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr
LD (HL),ColLstBxFr
EX DE,HL
PUSH IY
EXX
@ -697,90 +696,90 @@ clch2: LD A,"
; Input: HL-label
; Format mouse table: None
;
PFrame: ld c,(hl) ; X pos
inc hl
ld b,(hl) ; Y pos
inc hl ; X len
inc hl ; Y len
ld a,(hl)
push af ; á®åà. Y len
push bc
call GetPutA
ld a,"Ú"
ld (de),a
inc de
ld a,ColorFrame
ld (de),a
inc de
dec hl
ld b,(hl) ; X len
.loop1: ld a,"Ä"
ld (de),a
inc de
ld a,ColorFrame
ld (de),a
inc de
djnz .loop1
ld a,"¿"
ld (de),a
inc de
ld a,ColorFrame
ld (de),a
pop bc
.loop2: inc b
push bc
call GetPutA
ex de,hl
ld (hl),"³"
inc hl
ld (hl),ColorFrame
inc hl
ex de,hl
ld b,(hl) ; X len
.loop3: ld a," "
ld (de),a
inc de
ld a,ColorFrame ; 梥⠢­ãâਠä३¬ 
ld (de),a
inc de
djnz .loop3
ld a,"³"
ld (de),a
inc de
ld a,ColorFrame
ld (de),a
inc de
pop bc
inc hl
dec (hl)
dec hl
jr nz,.loop2
inc b
call GetPutA
ld a,"À"
ld (de),a
inc de
ld a,ColorFrame
ld (de),a
inc de
ld b,(hl) ; X len
inc hl
pop af
ld (hl),a ; ¢®ááâ. Y len
.loop4: ld a,"Ä"
ld (de),a
inc de
ld a,ColorFrame
ld (de),a
inc de
djnz .loop4
ld a,"Ù"
ld (de),a
inc de
ld a,ColorFrame
ld (de),a
inc hl
ret
PFrame: LD C,(HL) ; X pos
INC HL
LD B,(HL) ; Y pos
INC HL ; X len
INC HL ; Y len
LD A,(HL)
PUSH AF ; á®åà. Y len
PUSH BC
CALL GetPutA
LD A,"Ú"
LD (DE),A
INC DE
LD A,ColorFrame
LD (DE),A
INC DE
DEC HL
LD B,(HL) ; X len
.loop1: LD A,"Ä"
LD (DE),A
INC DE
LD A,ColorFrame
LD (DE),A
INC DE
DJNZ .loop1
LD A,"¿"
LD (DE),A
INC DE
LD A,ColorFrame
LD (DE),A
POP BC
.loop2: INC B
PUSH BC
CALL GetPutA
EX DE,HL
LD (HL),"³"
INC HL
LD (HL),ColorFrame
INC HL
EX DE,HL
LD B,(HL) ; X len
.loop3: LD A," "
LD (DE),A
INC DE
LD A,ColorFrame ; 梥⠢­ãâਠä३¬ 
LD (DE),A
INC DE
DJNZ .loop3
LD A,"³"
LD (DE),A
INC DE
LD A,ColorFrame
LD (DE),A
INC DE
POP BC
INC HL
DEC (HL)
DEC HL
JR NZ,.loop2
INC B
CALL GetPutA
LD A,"À"
LD (DE),A
INC DE
LD A,ColorFrame
LD (DE),A
INC DE
LD B,(HL) ; X len
INC HL
POP AF
LD (HL),A ; ¢®ááâ. Y len
.loop4: LD A,"Ä"
LD (DE),A
INC DE
LD A,ColorFrame
LD (DE),A
INC DE
DJNZ .loop4
LD A,"Ù"
LD (DE),A
INC DE
LD A,ColorFrame
LD (DE),A
INC HL
RET
@ -893,7 +892,7 @@ SetInLn:CALL MoveObj ;Select Input line
EI
InLnExt: LD HL,what
LD (HL),evNothing
jp GetFire
JP GetFire
; Work select input line
@ -1029,7 +1028,7 @@ EIcombK:BIT 7,(IX+1)
JP SetInLn ; ¢ë¤¥«¨âì ¯à¥¤. ®¡ê¥ªâ
;
EIcombn: PUSH IY
ld c,(hl) ; what+1
LD C,(HL) ; what+1
INC HL
LD A,(HL) ; what+2
LD L,(IX+9) ; Address buffer
@ -1038,8 +1037,8 @@ EIcombn:PUSH IY
PUSH DE
PUSH HL
POP IY
bit 7,c ; ªãàá®à­ë¥ ¨«¨ shift+... ?
jr nz,eicmb1 ; Shift+...
BIT 7,C ; ªãàá®à­ë¥ ¨«¨ shift+... ?
JR NZ,eicmb1 ; Shift+...
CP 54h
JR Z,ILleft ; ªãàá®à ¢«¥¢®
CP 56h
@ -1050,11 +1049,11 @@ EIcombn:PUSH IY
JP Z,ILHome ; ¢ ­ ç «® áâப¨
CP 51h
JP Z,ILEnd ; ¢ ª®­¥æ áâப¨
jr eicmb2
eicmb1: cp " "
jr c,eicmb2
cp "~"+1
jp c,ILwrk2 ; ­  ¢¢®¤ ᨬ¢®«®¢
JR eicmb2
eicmb1: CP " "
JR C,eicmb2
CP "~"+1
JP C,ILwrk2 ; ­  ¢¢®¤ ᨬ¢®«®¢
eicmb2: POP DE
POP IY
RET
@ -1231,15 +1230,11 @@ PrnInLn:LD A,(CurILFl)
NEG
LD L,A
LD E,H
;LD A,E
;CP 80
;JR NC,prne
;LD A,D
;CP 31
;JR NC,prne
LD (prnadd+1),HL
LD C,BIOS.LP_SET_PLACE ; ãáâ. ¯®§¨æ¨î ªãàá®à 
RST ToBIOS
;LD C,BIOS.LP_SET_PLACE ; ãáâ. ¯®§¨æ¨î ªãàá®à 
;RST ToBIOS
LD C,Dss.Locate
RST ToDSS
LD L,(IX+9) ;Address buffer
LD H,(IX+0Ah)
LD A,(IY+3)
@ -1343,71 +1338,100 @@ prne: LD A,(IY+2)
OUT (Page3),A
RET
;Šãàá®à ®¡ê¥ªâ  InputLine
PrnILCr:LD A,(Timer) ;¯ ã§  ¬¨£ ­¨ï
DEC A
CALL Z,PutILCr
LD (Timer),A
RET
PutILCr:LD A,(Flag)
CPL
LD (Flag),A
;;;;;;;;;;;;;;;;
PILCurs: LD DE,(CursPos) ; ãáâ. ªãàá®à
LD (CrPs+1),DE
LD (ResILCr.CrPs),DE
BIT 7,E
JR NZ,cre
;LD A,E
;CP 80
;JR NC,cre
;LD A,D
;CP 31
;JR NC,cre
LD C,0B4h ; ¯®«ãç¨âì ᨬ¢®«
SUB A
RST ToBIOS
LD A,(Flag)
OR A
LD B,1Bh
JR Z,NoILC
LD B,5Bh ; ªãàá®à ç¥àâ®çª®©
NoILC: LD C,0B5h ; ᨬ¢®« ­  íªà ­
SUB A
RST ToBIOS
cre: LD A,1
JR NZ,.cre
;
LD C,Dss.Locate
RST ToDSS
;
LD BC,Dss.K_SETUP.ShowCursor
RST ToDSS
;
.cre: LD A,1
LD (CurILFl),A
LD A,12
LD A,12 ;!FIXIT ­ ¤® «¨?
RET
;;;;;;;;;;;;;;;;
; ‘¡à®á¨âì ªãàá®à
ResILCr: LD A,(CurILFl)
OR A
RET Z
LD A,0FFh
LD (Flag),A
INC A
LD (CurILFl),A
LD A,12
LD (Timer),A
CrPs: LD DE,0
;
.CrPs+1: LD DE,0
BIT 7,E
RET NZ
;LD A,E
;CP 80
;RET NC
;LD A,D
;CP 31
;RET NC
LD C,0B4h ; ¯®«ãç¨âì ᨬ¢®«
SUB A
RST ToBIOS
LD BC,1BB5h ; ᨬ¢®« ­  íªà ­
SUB A
RST ToBIOS
;
LD BC,Dss.K_SETUP.HideCursor
RST ToDSS
XOR A
LD (CurILFl),A
RET
;;;;;;;;;;;;;;;;
;!FIXIT CURSOR ¯¥à¥¤¥« âì ªãàá®à ­  ¤®á ¨ ã¡à âì ¯¥à¥å¢ âì ¯à¥à뢠­¨©
;Šãàá®à ®¡ê¥ªâ  InputLine
; PrnILCr: LD A,(Timer) ;¯ ã§  ¬¨£ ­¨ï
; DEC A
; CALL Z,.PutILCr
; LD (Timer),A
; RET
; ;
; .PutILCr: LD A,(Flag)
; CPL
; LD (Flag),A
; PILCurs: LD DE,(CursPos) ; ãáâ. ªãàá®à
; LD (ResILCr.CrPs),DE
; BIT 7,E
; JR NZ,.cre
; ;
; LD C,0B4h ; ¯®«ãç¨âì ᨬ¢®«
; SUB A
; RST ToBIOS
; LD A,(Flag)
; OR A
; LD B,1Bh
; JR Z,.NoILC
; LD B,5Bh ; ªãàá®à ç¥àâ®çª®©
; .NoILC: LD C,0B5h ; ᨬ¢®« ­  íªà ­
; SUB A
; RST ToBIOS
; .cre: LD A,1
; LD (CurILFl),A
; LD A,12
; RET
;;;;;;;;;;;;;;;;
; ‘¡à®á¨âì ªãàá®à
; ResILCr: LD A,(CurILFl)
; OR A
; RET Z
; LD A,#FF
; LD (Flag),A
; INC A
; LD (CurILFl),A
; LD A,12
; LD (Timer),A
; .CrPs+1: LD DE,0
; BIT 7,E
; RET NZ
; ;
; LD C,#B4 ; ¯®«ãç¨âì ᨬ¢®«
; SUB A
; RST ToBIOS
; LD BC,1BB5h ; ᨬ¢®« ­  íªà ­
; SUB A
; RST ToBIOS
; RET
;;;;;;;
;
InpLineI:
LD E,(IX+2) ;Xo
@ -1435,7 +1459,7 @@ ClastI: LD E,(IX+2) ;Xo
SUB E
DEC A
LD C,A ;Len X
jp SetClasInv
JP SetClasInv
@ -1466,9 +1490,9 @@ SetClasInv:
EX DE,HL
LD (RClIbuf+2),HL
LD B,E
ld e,ColDialInv
LD E,ColDialInv
;LD E,A
ld d,ColDhotkey
LD D,ColDhotkey
;LD D,A
SetDin2: INC HL
LD A,(HL)
@ -1477,8 +1501,8 @@ SetDin2:INC HL
JR Z,.loc2 ;$+5
LD A,(HL)
;XOR E
and 0xF0 ;
or e ;
AND 0xF0 ;
OR E ;
LD (HL),A
.loc2: INC HL
DJNZ SetDin2
@ -1775,7 +1799,7 @@ ECnext: LD A,0
CALL NZ,ChangeB
EClexit: LD HL,what ;Event claster exit
LD (HL),evNothing
jp GetFire
JP GetFire

@ -1 +1 @@
Subproject commit 2b1e30c6108f0a5c271f84558e1e5f804a6d623a
Subproject commit a6c50f572424e88f6199d639fa8109d53b71142c

View File

@ -3,4 +3,4 @@
; ¢¥àá¨ï ¯à®£à ¬¬ë
major_version equ 1
minor_version equ 14
minor_version equ 15