HDD Autodetect - FDD & HDD loader.

Buzz #17
-------------------------------------------------- 
-------------( C) FASTeR / TNL E-MAIL: faster@usa.net

(8422) 37-68-85 (ask SASHA!)
-------------------------------------------------- -------------
                                                    FAST M UP!!!

                     · ∙ ° FDD unvs HDD?!? ° ∙ ·

 Hello! To date, 99.9% of the programs in their work
use a direct appeal to WG93, and 99% of the programs track
current drive (very happy!). However, there is a lotion, a HDD 
(on SCORPION'e)! A program that supports the work of the HDD 
can be counted on the fingers! Curiously enough this may seem 
like an ordinary user, a program that supports GENERAL SOUND! 
But! These programs only allow select the disk (TURBO LOADER: 
ON / OFF), instead of automatically use the HDD, if such a 
device there! So I decided to fill this gap (HDD userz

also entitled to a comfortable existence, so if 'vbuhali'
in its SCORP many attendants!) and offer you a 2 in 1 (FDD 'HDD)
LOADER!

P.S. By the way SMUC DEVICE I do not have! ;)
P.P.S. All of the above is true only (!) For devices C and D,

       as on these devices usually hang screw!


                                                     FASTeR / 
TNL! 


                                                     CYE L8ER 
... 

;------------------------------------------------- 
-------------; 

        DI

        LD A, (# 08)

        CP # C3

        JR NZ, FDD; IS A NOT SCORPION 256!

        LD C, # 2009

        LD HL, BUFFER; 512 BYTES!

        RST # 08

        DEFB # 01

        LD C, # 22; TEST OF SYSTEM!

        RST # 08

        DEFB # 81

        JR NC, HDD; HDD PRESENT!
;------------------------- FDD LD A, (# 5CF6); IN A NUMBER OF 
DRIVE. 0-A ,1-B ... 

        OR # 2C

        LD (DRV +1), A

        SET 4, A

        LD (DRV +5), A


        LD IX, # 4000

        LD DE, (# 5CF4)

        LD B, # 1B

        LD (TR_SEC), DE

        CALL LOAD_

        RET
;------------------------- HDD LD HL, # 4000

        LD DE, (# 5CF4)

        LD BC, # 1B05

        CALL # 3D14; (# 3D13)

        RET
;------------------------------------------------- 
-------------; 

; REGISTORS USE: AF, IX, HL, BC, DE, AF ', HL', BC ', DE'.

; STACK USE: BY 10 BYTES.

LOAD_ LD DE, (TR_SEC)
LOAD LD A, D

        SRL A

        LD C, # 7F

        CALL DOS
DRV LD A, # 2C

        JR C, SIDE

        LD A, # 3C
SIDE LD HL, # 1FF3

        CALL DOS1

        LD A, # 18

        LD HL, # 2FC3

        CALL DOS1
N_SEC XOR A

        OR B

        LD (TR_SEC), DE

        RET Z
ERROR LD A, E

        INC A

        LD C, # 5F

        CALL DOS

        PUSH IX

        EXX

        LD DE, # 20AA

        LD B, 1

        LD C, # 7F

        POP HL

        CALL DOS2

        XOR A

        OR B

        EXX

        JR Z, ERROR

        INC HX

        DEC B

        INC E

        BIT 4, E

        JP Z, N_SEC

        LD E, 0

        INC D

        JP LOAD

DOS LD HL, # 2A53; OUT (C), A
DOS1 PUSH HL

        JP # 3D30; (# 3D2F)

DOS2 PUSH DE

        LD DE, # 2090

        PUSH DE

        JP # 3D30; (# 3D2F)
;------------------------- TR_SEC DEFW 0
;------------------------- BUFFER DEFS 512,0
;------------------------------------------------- 
-------------; 

  @@@@@@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @TM

    @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

    @ @ @ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @ @ @ @

    @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

    @@@@ @ @ @ @ @ @ @ @ @ @@@@@ @ @ @ @ @ @


          @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

           @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

           @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

           @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

          @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @


                   @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

                  @ @ @ @ @ @ @ @ @ @

                   @ @ @ @ @ @ @ @ @ @

                    @ @ @ @ @ @ @ @

                  @ @ @ @ @ @ @ @ @ @ @ @ @ (C) FASTeR / TNL
;------------------------------------------------- 
-------------;