Top secrets sources NedoPC pentevo

Rev

Rev 952 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE: 27.02.2021 savelij

VIEW_CHS        EQU 1

HDD_DETECTOR    LD IX,.HDDDETECT
                RST8 _WINW
                LD HL,ADR_CAT
                RST8 _COM_DEV,_COMHDDN,_DEV_INIT
                LD A,H
                AND A
                JR Z,.MASTER_FOUND
                DEC A
                CALL Z,.CDDVDFOUNDM
                JR Z,.SLAVE
                PUSH HL
                LD HL,.MASTERNONE
                RST8 _PRINT_MESSAGE
                POP HL
                JR .SLAVE

.MASTER_FOUND   LD C,1
                CALL .HDD_INFO
.SLAVE          LD A,L
                AND A
                JR Z,.SLAVE_FOUND
                DEC A
                CALL Z,.CDDVDFOUNDS
                JP Z,.ENDTEST
                LD HL,.SLAVENONE
                RST8 _PRINT_MESSAGE
                JR .ENDTEST

.SLAVE_FOUND    LD C,2
                CALL .HDD_INFO
.ENDTEST        LD HL,.TXTANYKEY
                RST8 _PRINT_MESSAGE
.WAITENTER      EI
                HALT
                BIT 5,(IY+1)
                JR Z,.WAITENTER
                LD A,(LAST_K)
                CP 0X0D
                JR NZ,.WAITENTER
                JP RESTART

.HDD_INFO       PUSH HL
                DEC C
                LD HL,.MASTERFOUND
                JR Z,.HDDI1
                LD HL,.SLAVEFOUND
.HDDI1          RST8 _PRINT_MESSAGE
                LD A,C
                EX AF,AF'
                LD HL,ADR_CAT
                RST8 _COM_DEV,_COMHDDN,_DEV_READID
                LD HL,ADR_CAT+46
                PUSH HL
                LD B,0X18
.MF01           LD A,(HL)
                INC HL
                LD E,(HL)
                DEC HL
                LD (HL),E
                INC HL
                LD (HL),A
                INC HL
                DJNZ .MF01
                LD HL,ADR_CAT+46+42
        IF VIEW_CHS
                LD (HL),"\r"
                INC HL
        ENDIF
                LD (HL),0
                POP HL
                RST8 _PRINT_MESSAGE             ;¨¬ï ¢¨­â 
        IF VIEW_CHS
                LD HL,.CHS
                RST8 _PRINT_MESSAGE
                LD HL,ADR_CAT+0X200
                LD DE,(ADR_CAT + 1 * WORD)      ;ª®«¨ç¥á⢮ 樫¨­¤à®¢
                RST8 _MATH,_HEX2DECTXT
                RST8 _PRINT_MESSAGE
                LD A,"/"
                RST8 _PRINT_A
                LD DE,(ADR_CAT + 3 * WORD)      ;ª®«¨ç¥á⢮ £®«®¢®ª
                RST8 _MATH,_HEX1DECTXT
                RST8 _PRINT_MESSAGE
                LD A,"/"
                RST8 _PRINT_A
                LD DE,(ADR_CAT + 6 * WORD)      ;ª®«¨ç¥á⢮ ᥪâ®à®¢
                RST8 _MATH,_HEX1DECTXT
                RST8 _PRINT_MESSAGE
        ENDIF
                LD HL,.TXTSIZE
                RST8 _PRINT_MESSAGE
                LD IXL,0                        ; ⥪áâ "MB"
;               LD HL,.NEWLINE
;               RST8 _PRINT_MESSAGE
; ¯à®¢¥àª  ¡¨â  ¯®¤¤¥à¦ª¨ LBA48
                LD HL,(ADR_CAT + 83 * WORD)
                LD A,H
                AND %00000100                   ; ¡¨â 10 ¢ á«®¢¥ 83
                JR Z,.LBA28
; ¤«ï LBA48
.LBA48
                LD HL,(ADR_CAT + 100 * WORD + 1); à §¬¥à ¢ ᥪâ®à å /256
                LD DE,(ADR_CAT + 101 * WORD + 1)
                LD BC,(ADR_CAT + 102 * WORD + 1)
                LD B,3
                CALL .DIV_LBA
                LD A,C
                AND A
                JR Z,.L3
                LD IXL,1                        ; ⥪áâ "GB"
                LD B,2
                LD L,H
                LD H,E
                LD E,D
                LD D,C
                LD C,0
                CALL .DIV_LBA
                JR .L3

; ¤«ï LBA28
.LBA28
                LD HL,(ADR_CAT + 60 * WORD + 1)
                LD DE,(ADR_CAT + 61 * WORD + 1) ; à §¬¥à ¢ LBA ᥪâ®à å
                LD BC,3 << 8 + 0
                CALL .DIV_LBA
.L3             LD B,D
                LD C,E
                EX DE,HL
                LD HL,ADR_CAT+0X200
                RST8 _MATH,_HEX4DECTXT
                RST8 _PRINT_MESSAGE
                LD A,IXL
                AND A
                LD HL,.TXTMB
                JR Z,.L4
                LD HL,.TXTGB
.L4             RST8 _PRINT_MESSAGE
                POP HL
                RET

.DIV_LBA
.L1             SRL C
                RR D
                RR E
                RR H
                RR L
                DJNZ .L1
                RET

.CDDVDFOUNDS    PUSH HL
                LD HL,.SLAVECDDVD
                JR .CDDVDFOUND

.CDDVDFOUNDM    PUSH HL
                LD HL,.MASTERCDDVD
.CDDVDFOUND     PUSH AF
                RST8 _PRINT_MESSAGE
                POP AF
                POP HL
                RET

.HDDDETECT      DB 0,0,24,32,0X07,0X1F,%01010000,0
                DW 0,0,.TXTHDDDET,0,0,0

.TXTHDDDET      DB "\1\x17\XFF\3HDD detector\r\0"

.TXTSIZE        DB "\rSize:\0"
.TXTMB          DB " MB\r\0"
.TXTGB          DB " GB\r\0"
.MASTERFOUND    DB "\rHDD master found\r\0"
.SLAVEFOUND     DB "\rHDD slave found\r\0"
.MASTERNONE     DB "\rHDD master not found\r\0"
.SLAVENONE      DB "\rHDD slave not found\r\0"
.MASTERCDDVD    DB "\rCD/DVD-ROM master found\r\0"
.SLAVECDDVD     DB "\rCD/DVD-ROM slave found\r\0"
.CHS            DB "C/H/S: \0"
.NEWLINE        DB "\r\0"
.TXTANYKEY      DB "\x16\x17\0\3Press ENTER to main menu\0"