mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 09:21:46 +03:00
LP_PR_LINE_DIR - добавлен параметр для отключения скролла при печати
TRAY_FN - исправлен баг с извлечением носителя
This commit is contained in:
parent
6eda6215d8
commit
0188b1dfce
@ -343,64 +343,8 @@ ATAPI_5x_LONG_WRITE:
|
||||
SCF ;write
|
||||
EX AF,AF'
|
||||
JR ATAPI_BEGIN_RW
|
||||
;
|
||||
; SAFE_PORTY_2
|
||||
; PUSH BC
|
||||
; PUSH IX
|
||||
; PUSH HL
|
||||
; ;
|
||||
; CALL RW_ATAPI_SECTORs
|
||||
; ;
|
||||
; JP ATA_5x_LONG_READ.shared
|
||||
;[]================================================================[#53]
|
||||
|
||||
;[]================================================================[#57]
|
||||
;Function: Detect Disk
|
||||
; A - Disk
|
||||
;Return: CF=0 - A=Drive type
|
||||
; B=MediaParameters byte ; [ ] media change
|
||||
; CF=1 - drive not present, A=#02
|
||||
; ATAPI_5x_DETECT: LD C,IDE.Device.ATAPI
|
||||
; AND %1011'1111
|
||||
; .shared: LD D,A
|
||||
; LD E,C
|
||||
; PUSH DE
|
||||
; CALL DRV_DETECT
|
||||
; POP DE
|
||||
; RET C
|
||||
; ;
|
||||
; PUSH AF
|
||||
; LD C,SLOT3
|
||||
; IN B,(C)
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (C),A
|
||||
; INC HL ;!HARDCODE HDD_INIT_TABLE
|
||||
; INC HL
|
||||
; INC HL
|
||||
; LD A,(HL)
|
||||
; OUT (C),B
|
||||
; LD B,A
|
||||
; AND %0000'0011 ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ „‘‘? ; !FIXIT
|
||||
; JR NZ,.error
|
||||
; ;
|
||||
; .exit: POP AF
|
||||
; RET
|
||||
; ;
|
||||
; .error: AND %0000'0010
|
||||
; JR NZ,.UnitAttention
|
||||
; ;
|
||||
; LD A,D
|
||||
; LD C,E
|
||||
; CALL SELECT_DRIVE
|
||||
; CALL ATAPI_CHECK_MEDIA_CHANGED
|
||||
; JR NC,.exit
|
||||
; POP BC
|
||||
; RET
|
||||
; ;
|
||||
; .UnitAttention: POP AF
|
||||
; LD A,BIOS.Error.ATAPI.UnitAttention
|
||||
; SCF
|
||||
; RET
|
||||
;[]================================================================[#57]
|
||||
;[]================================================================[#57]
|
||||
;Function: Detect Disk
|
||||
; A - Disk
|
||||
@ -469,20 +413,6 @@ ATAPI_CHECK_MEDIA_CHANGED:
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; ATAPI_CHECK_ERROR:
|
||||
; CALL ATAPI_GET_ERROR_REG
|
||||
; ;CP BIOS.Error.ATAPI.NoSence
|
||||
; ;JP Z,ATAPI_MEDIA_ERROR
|
||||
; CP BIOS.Error.ATAPI.NotReady
|
||||
; JP Z,ATAPI_MEDIA_ERROR
|
||||
; CP BIOS.Error.ATAPI.UnitAttention
|
||||
; JP Z,ATAPI_MEDIA_ERROR
|
||||
; ;
|
||||
; SCF
|
||||
; RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; HL - 㪠§ â¥«ì ¯ ª¥âãî ª®¬ ¤ã (¯¥à¢ë© ¨«¨ ¢â®à®© á«®â)
|
||||
@ -501,14 +431,14 @@ TRAY_FN: LD HL,ATAPI_CMD_PACKET.CLOSE
|
||||
DEC A
|
||||
JR Z,EXEC_PACKET_COMMAND.start
|
||||
LD HL,ATAPI_CMD_PACKET.OPEN
|
||||
;JR EXEC_PACKET_COMMAND
|
||||
JR EXEC_PACKET_COMMAND.start
|
||||
|
||||
; INPUT: HL - AP packet (12bytes)
|
||||
; DE - address for/with data if needed
|
||||
; A' - ç «ì ï áâà ¨æ ¤«ï R/W Long
|
||||
;
|
||||
; RETURN: CF - ERROR
|
||||
; ;!FIXIT ®¬¥à ¥¯à ¢¨«ìë¥
|
||||
; !FIXIT ®¬¥à ¥¯à ¢¨«ìë¥
|
||||
; !TODO CD ERRORS to INCLUDES
|
||||
; #01 - RECOVERED ERROR
|
||||
; #02 - NOT READY
|
||||
@ -520,10 +450,6 @@ TRAY_FN: LD HL,ATAPI_CMD_PACKET.CLOSE
|
||||
; #0B - ABORTED COMMAND
|
||||
; #80 - TIME OUT
|
||||
EXEC_PACKET_COMMAND:
|
||||
; .error_APLOOP: LD A,BIOS.Error.ATAPI.UnitAttention
|
||||
; RET
|
||||
;CALL ATAPI_GET_ERROR_REG
|
||||
|
||||
.error_ex: EX DE,HL
|
||||
.error: CP #FF
|
||||
.error_fail: SCF
|
||||
@ -685,7 +611,6 @@ EXEC_PACKET_COMMAND:
|
||||
;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
ATAPI_IdlePasses:
|
||||
;CALL ATAPI_WAITPRT.wait_NZ
|
||||
LD B,_ZIP_WAITS_
|
||||
DJNZ $
|
||||
CALL ATAPI_CHECK_DRV
|
||||
@ -757,18 +682,6 @@ ATAPI_CHECK_DRV:
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
; .zeroWait: ;LD B,2
|
||||
; LD HL,#800
|
||||
; .loop: LD A,high IDE.Read.Status
|
||||
; IN A,(low IDE.Read.Status)
|
||||
; AND A
|
||||
; RET NZ
|
||||
; DEC HL
|
||||
; LD A,H
|
||||
; OR L
|
||||
; JR NZ,.loop
|
||||
; ;DJNZ .loop
|
||||
; RET
|
||||
|
||||
ATAPI_PREPARE_RW:
|
||||
LD BC,IDE.Read.ByteCountLow
|
||||
@ -790,30 +703,6 @@ ATAPI_PREPARE_RW:
|
||||
LD BC,IDE.Read.Data
|
||||
SCF
|
||||
RET
|
||||
|
||||
|
||||
; .AddrOverflow: EX DE,HL
|
||||
; AND A
|
||||
; SBC HL,DE
|
||||
; EX DE,HL
|
||||
; RET
|
||||
|
||||
;
|
||||
; !TODO 宫®á⮥ ç⥨¥
|
||||
; .error_buffer: AND A
|
||||
; SBC HL,DE
|
||||
;.NULL:
|
||||
;.RD_N_CD: IN A,(C)
|
||||
; DEC B
|
||||
; IN A,(C)
|
||||
; DEC B
|
||||
; DEC DE
|
||||
; DEC DE
|
||||
; LD A,D
|
||||
; OR E
|
||||
; JR NZ,.RD_N_CD
|
||||
; ; DE = 0
|
||||
; JR .AP_LOOP
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
@ -855,145 +744,14 @@ ATAPI_WAITPRT: LD DE,256*IDE.CtrlByte.Busy + 0
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,.LOOP
|
||||
;
|
||||
; LD A,high IDE.Read.Status
|
||||
; IN A,(low IDE.Read.Status)
|
||||
; CP #FF
|
||||
; SCF
|
||||
; RET Z
|
||||
;
|
||||
; 1ÿ392ÿ512ÿ256
|
||||
DJNZ .LOOP
|
||||
;
|
||||
; LD A,high IDE.Read.Status
|
||||
; IN A,(low IDE.Read.Status)
|
||||
; INC A ;CP #FF
|
||||
; SCF
|
||||
; RET Z
|
||||
;
|
||||
LD A,BIOS.Error.Busy
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
; .wait_NZ: LD B,2 ; 50 - § ¤¥à¦ª ®¯à¥¤¥«ñ ï â¥áâ ¬¨ IOMEGA ZIP Drive
|
||||
; .NZ_loop: LD A,high IDE.Read.Status
|
||||
; IN A,(low IDE.Read.Status)
|
||||
; LD C,A
|
||||
; AND A
|
||||
; CALL NZ,PutHexNumb
|
||||
; ;INC A
|
||||
; ;RET NZ
|
||||
; ;AND IDE.CtrlByte.Busy + IDE.CtrlByte.DataRequest + IDE.CtrlByte.CheckCondition
|
||||
; ;INC A
|
||||
; ;AND A
|
||||
; ;RET NZ
|
||||
; DJNZ .NZ_loop
|
||||
; RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
;<3B>à®æ¥¤ãà ¯à¥®¡à §®¢ ¨ï 8¡¨â®¢ëå ç¨á¥« ¢ è¥áâ ¤æ. ⥪áâ
|
||||
;<3B> ¢å®¤:
|
||||
; HL - ¤à¥á ¡ãä¥à
|
||||
; € - ¡ ©â
|
||||
;<3B> ¢ë室:
|
||||
; DE - ¤¢ ¡ ©â è¥áâ ¤æ â¥à¨ç®£® ⥪áâ
|
||||
; PutHexNumb: PUSH IX
|
||||
; PUSH IY
|
||||
; PUSH AF
|
||||
; EX AF,AF'
|
||||
; PUSH AF
|
||||
; EX AF,AF'
|
||||
; PUSH DE
|
||||
; PUSH HL
|
||||
; PUSH BC
|
||||
; LD A,C
|
||||
; EXX
|
||||
; PUSH DE
|
||||
; PUSH HL
|
||||
; PUSH BC
|
||||
; ;
|
||||
; PUSH AF
|
||||
; RRCA
|
||||
; RRCA
|
||||
; RRCA
|
||||
; RRCA
|
||||
; AND #0F
|
||||
; ADD A,#90
|
||||
; DAA
|
||||
; ADC A,#40
|
||||
; DAA
|
||||
; LD E,A
|
||||
; POP AF
|
||||
; AND #0F
|
||||
; ADD A,#90
|
||||
; DAA
|
||||
; ADC A,#40
|
||||
; DAA
|
||||
; LD D,A
|
||||
; ;
|
||||
; LD HL," "
|
||||
; PUSH HL
|
||||
; PUSH DE
|
||||
; LD L,0
|
||||
; ADD HL,SP
|
||||
; ;
|
||||
; SCF
|
||||
; LD B,COLORS.CGA.INK.LGRAY + COLORS.CGA.PAPER.BLACK
|
||||
; EX AF,AF'
|
||||
; AND A
|
||||
; LD A,B
|
||||
; CALL LP_PR_LINE_DIR.START
|
||||
; POP HL
|
||||
; POP HL
|
||||
; ;
|
||||
; POP BC
|
||||
; POP HL
|
||||
; POP DE
|
||||
; EXX
|
||||
; POP BC
|
||||
; POP HL
|
||||
; POP DE
|
||||
; POP AF
|
||||
; EX AF,AF'
|
||||
; POP AF
|
||||
; POP IY
|
||||
; POP IX
|
||||
; RET
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; D - MASK, E - PATTERN
|
||||
; !!! ¥ª®â®àë¥ äãªæ¨¨ ¤¥îâáï, çâ® ¢ë室¥ ¢á¥£¤ ZF
|
||||
; ¥ ¤®«¦ âண âì ॣ. C
|
||||
; ATAPI_WAITPRT: LD DE,256*IDE.CtrlByte.Busy + 0
|
||||
; .Custom:
|
||||
; .LOOP: LD A,high IDE.Read.Status
|
||||
; IN A,(low IDE.Read.Status)
|
||||
; CP #FF
|
||||
; JR Z,.error
|
||||
; ;
|
||||
; AND D
|
||||
; CP E
|
||||
; RET Z
|
||||
; JR .LOOP
|
||||
; ;
|
||||
; ; LD A,high IDE.Read.Status
|
||||
; ; IN A,(low IDE.Read.Status)
|
||||
; ; INC A ;CP #FF
|
||||
; ; SCF
|
||||
; ; RET Z
|
||||
; ; ;
|
||||
; ; LD A,BIOS.Error.Busy
|
||||
; ; RET
|
||||
; ;
|
||||
; .error: SCF
|
||||
; RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; DE - buffer
|
||||
ATAPI_READ_CAPACITY_DATA:
|
||||
@ -1036,13 +794,6 @@ ATAPI_READ_CAPACITY_DATA:
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; ATAPI_TEST: LD HL,ATAPI_CMD_PACKET.TEST_UNIT_READY
|
||||
; LD DE,0 ; ¬ થà ⮣®, çâ® ¥ 㦮 ç¨â âì á ãáâனá⢠¢ އ“
|
||||
; JP EXEC_PACKET_COMMAND
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
ATAPI_MEDIA_ERROR:
|
||||
PUSH IX
|
||||
@ -1078,27 +829,6 @@ ATAPI_MEDIA_ERROR:
|
||||
LD (IY + IDE.HDD_INIT_TABLE.MediaParameters),A
|
||||
;
|
||||
CALL GET_ATAPI_CAPACITY
|
||||
; LD DE,SYS_PAGE.TMP_BUFFER
|
||||
; CALL ATAPI_READ_CAPACITY_DATA
|
||||
; ;
|
||||
; LD HL,#FFFF
|
||||
; LD C,BIOS.Error.ATAPI.MediumError
|
||||
; JR C,.No_Media
|
||||
; ;
|
||||
; LD HL,(SYS_PAGE.TMP_BUFFER) ; media size high
|
||||
; LD (IY+IDE.HDD_INIT_TABLE.MediaSizeHigh),H
|
||||
; LD (IY+IDE.HDD_INIT_TABLE.MediaSizeHigh+1),L
|
||||
; LD HL,(SYS_PAGE.TMP_BUFFER + 2) ; media size low
|
||||
; LD (IY+IDE.HDD_INIT_TABLE.MediaSizeLow),H
|
||||
; LD (IY+IDE.HDD_INIT_TABLE.MediaSizeLow+1),L
|
||||
; LD HL,(SYS_PAGE.TMP_BUFFER + 6) ; sector size
|
||||
; ;
|
||||
; LD C,BIOS.Error.ATAPI.UnitAttention
|
||||
; .No_Media: LD (IY+IDE.HDD_INIT_TABLE.SectorSize),H ;[ ] sector size
|
||||
; LD (IY+IDE.HDD_INIT_TABLE.SectorSize + 1),L
|
||||
; JR NC,.exit
|
||||
; SET 2,(IY + IDE.HDD_INIT_TABLE.MediaParameters)
|
||||
;
|
||||
.exit: POP AF
|
||||
POP HL
|
||||
POP IX
|
||||
@ -1184,7 +914,6 @@ ATAPI_CMD_PACKET:
|
||||
DB #00
|
||||
;
|
||||
.WRITE: DB #2E,#00 ; write and verify
|
||||
;DB #2A,#00 ; write
|
||||
DB #00,#00,#00,#00 ; sector dword
|
||||
DB #00
|
||||
DB #00,#01,#00,#00 ; counter dword
|
||||
@ -1198,24 +927,12 @@ ATAPI_CMD_PACKET:
|
||||
DB MAX_DATA_PACKET_FOR_REQUEST_SENSE
|
||||
DB #00,#00,#00,#00,#00,#00,#00
|
||||
;
|
||||
|
||||
ATAPI_PACKET:
|
||||
.SECTOR EQU 2
|
||||
.COUNTER EQU 7
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
;
|
||||
; E - Second * 10
|
||||
; PAUSE LD HL,#0000
|
||||
; PAUSE1 DEC L
|
||||
; JR NZ,PAUSE1
|
||||
; DEC H
|
||||
; JR NZ,PAUSE1
|
||||
; DEC E
|
||||
; JR NZ,PAUSE1
|
||||
; RET
|
||||
;
|
||||
/*
|
||||
…᫨ «®¢¨âáï ®è¨¡ª media changed, â® ¡¨®á ¤®«¦¥ ¢ëáâ ¢«ïâì ¢ HDD_INIT_TABLE.MediaParameters = 3
|
||||
¨ § â¨à âì FF SectorSize.
|
||||
„®á ¯®á«¥ ¯®«ã票ï â ª®© ®è¨¡ª¨ ¤®«¦¥ ¢ë§ë¢ âì BIOS.DRV_DETECT ¨ ¥á«¨ ¢áñ ŽŠ, â® ReScanDRV
|
||||
*/
|
||||
|
||||
|
||||
; …᫨ «®¢¨âáï ®è¨¡ª media changed, â® ¡¨®á ¤®«¦¥ ¢ëáâ ¢«ïâì ¢ HDD_INIT_TABLE.MediaParameters = 3
|
||||
; ¨ § â¨à âì FF SectorSize.
|
||||
; „®á ¯®á«¥ ¯®«ã票ï â ª®© ®è¨¡ª¨ ¤®«¦¥ ¢ë§ë¢ âì BIOS.DRV_DETECT ¨ ¥á«¨ ¢áñ ŽŠ, â® ReScanDRV
|
||||
@ -33,7 +33,6 @@ DRV_LIST:
|
||||
OUT (SLOT3),A ; !TODO ᤥ« âì áâàãªâãன
|
||||
XOR A
|
||||
LD (IX+0),#04 ; DB 0 ;LEN ;!HARDCODE
|
||||
;LD (IX+1),A ; DB 0 ;FDD COUNT
|
||||
LD (IX+1),#02 ; DB 0 ;FDD COUNT
|
||||
LD (IX+2),A ; DB 0 ;HDD COUNT
|
||||
LD (IX+3),A ; DB 0 ;CDROM COUNT
|
||||
|
||||
@ -1656,6 +1656,7 @@ LP_PR_LINE_DIR:
|
||||
JP LP_END_P
|
||||
;;;;;;;;;;;;;;;;;
|
||||
; A - âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®« ¥á«¨ CF'
|
||||
; A' - ¥á«¨ !=0 â® ¡¥§ áªà®««
|
||||
; CF - XY-mode
|
||||
; DE - ¬¥á⮠ᨬ¢®« ¢ ®ª¥, ¥á«¨ CF=1
|
||||
; HL - ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
|
||||
@ -1674,10 +1675,11 @@ LP_PR_LINE_DIR:
|
||||
LD C,A
|
||||
CALL LP_BEG_P
|
||||
CALL C,LP_SET_CUR ; mode for DE
|
||||
POP AF ; attr-mode
|
||||
LD A,B
|
||||
; ¤ «¥¥ ॣ B ᢮¡®¤¥, ¬®¦® § ¤¥©á⢮¢ âì
|
||||
LD (SYS_PAGE.SYS_WORK2),A ; 梥⠪®á®«¨
|
||||
POP AF ; attr-mode, scroll on/off
|
||||
LD B,A ; scroll on/off
|
||||
EXX
|
||||
RL C ; C' - attr-mode. ¢ë¢®¤¨âì âਡãâ
|
||||
.loop: LD A,D
|
||||
@ -1840,6 +1842,13 @@ LP_NEXT_HL_DIR: LD A,SYS_PAGE
|
||||
.end_line: LD A,L
|
||||
SUB 4 ;!HARDCODE ¤«¨ ®¤®£® ®¯¨á â¥«ï ª¢ ¤à ⨪
|
||||
LD L,A
|
||||
; ¨£®à¨¬ áªà஫« ¨«¨ ¥â?
|
||||
EXX
|
||||
LD A,B
|
||||
EXX
|
||||
AND A
|
||||
RET NZ ; ZF=0 ¨£®à áªà®««
|
||||
;
|
||||
PUSH HL
|
||||
DEC L
|
||||
PUSH BC
|
||||
|
||||
Binary file not shown.
@ -1,8 +1,7 @@
|
||||
TODO:
|
||||
- ¯ãªâ ¢ á¥â ¯¥ "á®åà ïâì áâà ¨æë ᯥªâà㬠¯à¨ ¯¥à¥§ £à㧪¥"
|
||||
- ¯¥à¥¤ ¨¨æ¨ «¨§ 樥© áâà ¨æ ᯥªâà㬠¨ áâà ¨æë 41 ¯à®¢¥àïâì, ¥ § ïâë «¨ ®¨ à ¬¤¨áª®¬
|
||||
-? ¯ãªâ ¢ á¥â ¯¥ "á®åà ïâì áâà ¨æë ᯥªâà㬠¯à¨ ¯¥à¥§ £à㧪¥"
|
||||
- η¨αβ¨βμ ‘γδ₯ΰ ͺ« ’λ ₯ ’βγ―γξ, ͺ ͺ¨¬¨-¨‘γ€μ ͺ<>¬ € ¬¨ €«ο νβ¨ε ’αοͺ¨ε SIO/PIO, ₯᫨ ₯αβμ
|
||||
-+ ! ¢ Setup ¤®¡ ¢¨âì ¯ãªâ áâனª¨ ¢à¥¬¥¨ ¨ ¤ âë
|
||||
|
||||
|
||||
Done:
|
||||
+ ₯¬<C2AC>£<EFBFBD> €<>ΰ ‘<C2A0>β α¨αβ₯¬ ―₯ΰ₯ε’ β ΰ₯α₯β €«ο γαβΰ ₯¨ο ₯ͺ<E282AF>β<EFBFBD>ΰλε £«ξͺ<CEBE>’ ¨ ‘γ€γι₯₯
|
||||
|
||||
Loading…
Reference in New Issue
Block a user