Top secrets sources NedoPC pentevo

Rev

Rev 706 | Rev 961 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE: 06.07.2019 savelij

                include ../../macros.a80
                include ../../define.a80
                include ../../global_vars.a80
                include ../../ports_ngs.a80
                include ../../sdcomand.a80
                include ../../ports_ide.a80
                include ../../nums_devices.a80

DRV_VAR         EQU 0X4000

                ORG DRV_VAR+0X200
                include fat_vars.a80

                ORG DRV_VAR+0X300

BUF_512_        EQU DRV_VAR                     ;200 “”… ‘…Š’Ž€
NUM_DEVICE      EQU DRV_VAR+0X2FF               ;1 ŽŒ… “‘’Ž‰‘’‚€ „‹Ÿ ‡€“‘Š€ ŠŽ„€
MAS_SLA         EQU NUM_DEVICE-1                ;1 Œ€‘Š€ „‹Ÿ MASTER/SLAVE
LOADSCS1        EQU MAS_SLA-2                   ;2 €„…‘ ‚›‡›‚€…ŒŽƒŽ „€‰‚…€
LENGHT          EQU LOADSCS1-2                  ;2 „‹ˆ€ ”€‰‹€ ‚ €‰’€•

;[’Ž—Š€ ‚•Ž„€]
;€ ‚•Ž„…: A-ŽŒ… ‚›€ŽƒŽ “‘’Ž‰‘’‚€
;       BCDE-ŽŒ… Š‹€‘’…€ ‡€“‘Š€…ŒŽƒŽ ”€‰‹€
                DI
                LD A,(NUM_DEVICE)
                CP _SD_SDZ
                LD HL,READ_SD                   ;„€‰‚… SD ZC Š€’›           
                JR Z,SETLOADER
                CP _SD_SDG
                LD HL,READNGS                   ;„€‰‚… SD NGS Š€’›
                JR Z,SETLOADER
                CP _HDD_NEMO_MASTER
                LD HL,RD_HDDN                   ;„€‰‚… HDD NEMO
                JR Z,SETLOADER
                CP _HDD_SMUC_MASTER
                LD HL,RD_HDDS                   ;„€‰‚… HDD SMUC
                JR Z,SETLOADER
                CP _HDD_DIVIDE_MASTER
                LD HL,RD_HDDD                   ;„€‰‚… HDD DIVIDE
                JR Z,SETLOADER
                LD HL,RD_HDDP                   ;„€‰‚… HDD PROFI
SETLOADER       LD (LOADSCS1),HL                ;“‘’€Ž‚ˆ‹ˆ €„…‘ —ˆ’€‹Šˆ ‘…Š’ŽŽ‚
                LD A,(MAS_SLA)
                AND A
                LD A,0XE0
                JR Z,SETMASL
                LD A,0XF0
SETMASL         LD (MAS_SLA),A
                LD HL,(FILE_SRC+0X14)
                LD (AFILCLS+2),HL
                LD HL,(FILE_SRC+0X1A)
                LD (AFILCLS),HL
                LD A,(FILE_SRC+9)
                CP "P"
                JP Z,RUNSPG2                    ;……•Ž„ € ‡€“‘Š SPG ”€‰‹€
                CP "N"
                JP Z,RUNSNA                     ;……•Ž„ € ‡€“‘Š SNA ”€‰‹€
                CALL REALSEC                    ;…Ž€‡Ž‚€‹ˆ ‚ ŽŒ… ‘…Š’Ž€
                CALL LOADLST                    ;‡€ƒ“‡ˆ‹ˆ ‚ “”…
                EXX
                LD HL,(BUF_512_+9)
                LD (0X5D45),HL                  ;€„…‘ ‘’€’€ ŠŽ„€
                LD HL,(BUF_512_+0X0B)
                LD (LENGHT),HL                  ;“‘’€Ž‚Š€ „‹ˆ› ”€‰‹€ ‚ €‰’€•
                LD DE,0X11
                ADD HL,DE                       ;Ž“‘Š HOBETA ‡€ƒŽ‹Ž‚Š€
                LD A,L
                AND A
                JR Z,READ01                     ;…‘‹ˆ Œ‹€„˜ˆ‰ €‰’ … 0
                INC H                           ;‘’€˜ˆ‰ +1
READ01          LD A,H
                SRL A                           ;„…‹ˆŒ € 2 ˆŽ € ”€’… ‘…Š’Ž 512 €‰’
                ADC A,0                         ;“—ˆ’›‚€…Œ —…’/…—…’
                DEC A                           ;…‚›‰ ‘…Š’Ž ‡€ƒ“†…, ƒ“‡ˆ’œ € 1 Œ…œ˜…
                EXX
                JP Z,LDIRBUF                    ;…‘‹ˆ ‘…Š’Ž 1 ……Ž‘ ˆ ‡€“‘Š
                LD IXL,A                        ;‡€ŽŒˆ‹ˆ ŠŽ‹ˆ—…‘’‚Ž ‘…Š’ŽŽ‚-1
                EXX
                CALL LD_ONES                    ;……Ž‘ Ž‘’€’ŠŽ‚ …‚ŽƒŽ ‘…Š’Ž€
                PUSH DE                         ;€„…‘ Š“„€ „€‹…… ƒ“‡ˆ’œ
                EXX
                LD HL,1                         ;Ž„ˆ ‘…Š’Ž “†… ‡€ƒ“†…
                ADD HL,DE                       ;„€‹…… ƒ“‡ˆ’œ ‘Ž ‘‹…„“ž™…ƒŽ ‘…Š’Ž€
                EX DE,HL
                JR NC,READ04
                INC BC                          ;BCDE=BCDE+1
READ04          POP HL                          ;‚ HL €„…‘ „‹Ÿ Ž„Ž‹†…ˆŸ ‡€ƒ“‡Šˆ
                LD IY,(BYTSSEC)                 ;LY=ŠŽ‹-‚Ž ‘…Š’ŽŽ‚ ‚ Š‹€‘’……
                LD A,IXL
                CP IYL                          ;‘…Š’ŽŽ‚ Ž‘’€‹Ž‘œ Œ…œ˜… —…Œ ‚ Š‹€‘’……
                JR C,READ02                     ;……•Ž„ € „Ž‡€ƒ“‡Š“ Ž‘’€’Š€ ‘…Š’ŽŽ‚
                INC IXL
                LD A,IYL
                CP 2
                JR C,READ07
                DEC A
                JR READ05

READ07          PUSH HL
                CALL RDFATZP                    ;Ž‹“—ˆ’œ ŽŒ… ‘‹…„“ž™…ƒŽ Š‹€‘’…€
                CALL LST_CLS                    ;Ž‚…Š€ € ŽŠŽ—€ˆ… FAT –…Ž—Šˆ
                POP HL
                JR C,RUNLOAD                    ;…‘‹ˆ Š‹€‘’…€ ‡€ŠŽ—ˆ‹ˆ‘œ, ’Ž ‡€“‘Š ‡€ƒ“†…ŽƒŽ
                PUSH HL
                CALL REALSEC                    ;…Ž€‡Ž‚€ˆ… ŽŒ…€ Š‹€‘’…€ ‚ ŽŒ… ‘…Š’Ž€
                POP HL
                LD A,IXL                        ;‘ŠŽ‹œŠŽ ‘…Š’ŽŽ‚ Ž‘’€‹Ž‘œ ‡€ƒ“‡ˆ’œ
                CP IYL                          ;‘€‚ˆ‚€…Œ ‘ €‡Œ…ŽŒ Š‹€‘’…€
                JR C,READ02                     ;…‘‹ˆ Ž‘’€‹Ž‘œ ‡€ƒ“‡ˆ’œ ‘…Š’ŽŽ‚ Œ…œ˜… —…Œ ‚ Š‹€‘’……, ’Ž „Ž‡€ƒ“†€…Œ Ž‘’€’ŽŠ
                LD A,IYL                        ;‘ŠŽ‹œŠŽ ‘…Š’ŽŽ‚ ‡€ƒ“†€’œ
READ05          CALL LOADSCS                    ;‡€ƒ“‡Š€ ‘…Š’ŽŽ‚
                LD A,IXL                        ;‘ŠŽ‹œŠŽ ‘…Š’ŽŽ‚ ‚‘…ƒŽ ‡€ƒ“†€’œ
                SUB IYL                         ;Œˆ“‘ ‘ŠŽ‹œŠŽ ‘…Š’ŽŽ‚ ’Ž‹œŠŽ —’Ž ‡€ƒ“‡ˆ‹ˆ
                JR Z,RUNLOAD                    ;‘…Š’Ž€ ŠŽ—ˆ‹ˆ‘œ, ……•Ž„ˆŒ € ‡€“‘Š
                LD IXL,A                        ;‘ŠŽ‹œŠŽ ‘…Š’ŽŽ‚ Ž‘’€‹Ž‘œ ‡€ƒ“‡ˆ’œ
                JR READ07                       ;Ž„Ž‹†€…Œ ‡€ƒ“‡Š“

;‡€ƒ“‡Š€ ŠŽ‹ˆ—…‘’‚€ ‘…Š’ŽŽ‚, …‘‹ˆ Ž‘’€‹Ž‘œ Œ……… €‡Œ…€ Š‹€‘’…€
READ02          AND A
                JR Z,READ03
                CALL LOADSCS
READ03          PUSH HL
                LD A,IXL
                LD L,A
                LD H,0
                ADD HL,DE
                EX DE,HL
                JR NC,READ06
                INC BC
READ06          CALL LOADLST
                LD BC,(LENGHT)
                EX DE,HL
                LD HL,0X11
                ADD HL,BC
                LD B,H
                LD C,L
                EX DE,HL
                POP DE
                LD A,B
                AND 1
                LD B,A
                OR C
                JR Z,RUNLOAD
                LDIR
;[‡€“‘Š ‡€ƒ“†…ŽƒŽ]
RUNLOAD         LD HL,0X2758
                EXX
                LD IY,0X5C3A
                EI
                JP 0X1B7D                       ;‡€“‘Š ………‘…Ž‰ …‰‘ˆŠ Žƒˆ

LDIRBUF         LD HL,0X200-0X11
                LD DE,(BUF_512_+0X0B)
                AND A
                SBC HL,DE
                JR NC,LDIRBUF1
                CALL LD_ONES
                JP RUNLOAD

LDIRBUF1        LD HL,BUF_512_+0X11
                LD DE,(BUF_512_+9)
                LD BC,(BUF_512_+0X0B)
                LDIR
                JP RUNLOAD

;[……Ž‘ Š“‘Š€ ˆ‡ “†… ‡€ƒ“†…ŽƒŽ ‘…Š’Ž€, …‘‹ˆ ”€‰‹=501 €‰’ ˆ Œ………]
LD_ONES         LD HL,BUF_512_+0X11
                LD DE,(BUF_512_+9)
                LD BC,0X200-0X11
                LDIR
                RET

;[‡€ƒ“‡ˆ’œ ‘…Š’Ž€ ‘ ‚›€ŽƒŽ “‘’Ž‰‘’‚€]
LOADSCS         PUSH HL
                LD HL,(LOADSCS1)
                EX (SP),HL
                RET

;[—’…ˆ… ”€‰‹€]
;IXL-€‡Œ… Š‹€‘’…€
;IXH-TEMP VAR        
;IYL-ŠŽ‹ˆ—…‘’‚Ž ‘…Š’ŽŽ‚ „‹Ÿ ‡€ƒ“‡Šˆ
;IYH-‘Œ…™…ˆ… ‚ Š‹€‘’……
LD_FILE         PUSH BC                         ;‘’€˜ˆ… 16 ˆ’ ŽŒ…€ Š‹€‘’…€
                PUSH DE                         ;Œ‹€„˜ˆ… 16 ˆ’ ŽŒ…€ Š‹€‘’…€
                PUSH HL                         ;‘Ž•€ˆ‹ˆ €„…‘ ‡€ƒ“‡Šˆ
                CALL REALSEC                    ;……‚…‹ˆ ŽŒ… Š‹€‘’…€ ‚ ŽŒ… ‘…Š’Ž€
                LD IX,(BYTSSEC)
                LD A,IYH                        ;‘Œ…™…ˆ… ‚ Š‹€‘’……
                LD L,A
                LD H,0
                ADD HL,DE
                EX DE,HL
                JR NC,LDFILE1
                INC BC                          ;BCDE=ŽŒ… ‘…Š’Ž€ Ž’Š“„€ ƒ“‡ˆ’œ
LDFILE1         LD A,IYL                        ;ŠŽ‹ˆ—…‘’‚Ž ‘…Š’ŽŽ‚ „‹Ÿ ‡€ƒ“‡Šˆ
                CP IXL                          ;€‡Œ… Š‹€‘’…€
                JP C,LDFILE2
                LD A,IXL                        ;€‡Œ… Š‹€‘’…€
LDFILE2         ADD A,IYH                       ;‘Œ…™…ˆ… ‚ Š‹€‘’……
                CP IXL                          ;€‡Œ… Š‹€‘’…€
                LD A,IYL                        ;ŠŽ‹ˆ—…‘’‚Ž ‘…Š’ŽŽ‚ „‹Ÿ ‡€ƒ“‡Šˆ
                JP C,LDFILE5
                LD A,IXL                        ;€‡Œ… Š‹€‘’…€
                SUB IYH                         ;‘Œ…™…ˆ… ‚ Š‹€‘’……
LDFILE5         LD IXH,A                        ;TEMP VAR, ‘ŠŽ‹œŠŽ ‘…Š’ŽŽ‚ ‘…‰—€‘ ƒ“‡ˆŒ
                POP HL                          ;‚Ž‘‘’€Ž‚ˆ‹ˆ €„…‘ ‡€ƒ“‡Šˆ
                CALL LOADSCS                    ;‡€ƒ“‡ˆ‹ˆ ‘…Š’Ž€
                POP DE
                POP BC                          ;‚Ž‘‘’€Ž‚ˆ‹ˆ ŽŒ… Š‹€‘’…€
                LD A,IYH                        ;‘Œ…™…ˆ… ‚ Š‹€‘’……
                ADD A,IXH                       ;TEMP VAR
                CP IXL                          ;€‡Œ… Š‹€‘’…€
                JP C,LDFILE3
                SUB IXL                         ;€‡Œ… Š‹€‘’…€
LDFILE3         LD IYH,A                        ;‘Œ…™…ˆ… ‚ Š‹€‘’……
                JP C,LDFILE4
                PUSH HL                         ;‘Ž•€ˆ‹ˆ €„…‘ ‡€ƒ“‡Šˆ
                CALL RDFATZP                    ;Ž—ˆ’€‹ˆ ŽŒ… ‘‹…„“ž™…ƒŽ Š‹€‘’…€
                CALL LST_CLS                    ;Ž‚…ˆ‹ˆ, € ŒŽ†…’ ’Ž Ž‘‹…„ˆ‰ Š‹€‘’…?
                POP HL                          ;‚Ž‘‘’€Ž‚ˆ‹ˆ €„…‘ ‡€ƒ“‡Šˆ
                RET C                           ;…‘‹ˆ Ž‘‹…„ˆ‰, ‚›•Ž„ˆŒ
LDFILE4         LD A,IYL                        ;ŠŽ‹ˆ—…‘’‚Ž ‘…Š’ŽŽ‚ „‹Ÿ ‡€ƒ“‡Šˆ
                SUB IXH                         ;TEMP VAR
                RET Z
                LD IYL,A                        ;ŠŽ‹ˆ—…‘’‚Ž ‘…Š’ŽŽ‚ „‹Ÿ ‡€ƒ“‡Šˆ
                JP NZ,LD_FILE
                RET

;[Ž‚…Š€ ŽŒ…€ Š‹€‘’…€]
LST_CLS         LD A,(CAL_FAT)
                AND A
                JR NZ,LST_CL1
                LD HL,0X0FF7
                SBC HL,DE
                RET

LST_CL1         DEC A
                JR NZ,LST_CL2
                LD HL,0XFFF7
                SBC HL,DE
                RET

LST_CL2         LD HL,0X0FFF
                SBC HL,BC
                RET NZ
                LD HL,0XFFF7
                SBC HL,DE
                RET

;[—’…ˆ… ‘‹…„“ž™…ƒŽ Š‹€‘’…€]
RDFATZP         LD BC,(AFILCLS+2)
                LD DE,(AFILCLS)
                LD A,(CAL_FAT)
                AND A
                JR Z,RDFATS0
                DEC A
                JR Z,RDFATS1
                EX DE,HL
                ADD HL,HL
                EX DE,HL
                LD HL,0
                ADC HL,BC
                ADD HL,BC
                LD A,E
                LD E,D
                LD D,L
                LD C,H
                LD B,0
                CALL RDFATS2
                INC HL
                LD C,(HL)
                INC HL
                LD B,(HL)
RDFATS5         LD (AFILCLS+2),BC
                LD (AFILCLS),DE
                RET

RDFATS1         LD BC,0
                LD A,E
                LD E,D
                LD D,C
RDFATS2         PUSH AF
                PUSH BC
                LD HL,FATSTR
                CALL BCDEHLP
                CALL LOADLST
                POP BC
                POP AF
                LD E,A
                LD D,0
                ADD HL,DE
                ADD HL,DE
                LD E,(HL)
                INC HL
                LD D,(HL)
                JR RDFATS5

RDFATS0         LD H,D
                LD L,E
                ADD HL,HL
                ADD HL,DE
                SRL H
                RR L
                LD A,E
                LD E,H
                LD D,0
                LD B,D
                LD C,D
                SRL E
                PUSH AF
                PUSH HL
                LD HL,FATSTR
                CALL BCDEHLP
                CALL LOADLST
                POP BC
                LD A,B
                AND 1
                LD B,A
                ADD HL,BC
                LD B,(HL)
                INC HL
                LD A,H
                CP HIGH (BUF_512_)+2
                JR NZ,RDFATS4
                PUSH BC
                LD BC,0
                INC DE
                CALL LOADLST
                POP BC
RDFATS4         POP AF
                LD D,(HL)
                LD E,B
                LD BC,0
                RRA
                JR NC,RDFATS3
                REPT 4
                SRL D
                RR E
                ENDM
RDFATS3         LD A,D
                AND 0X0F
                LD D,A
                JR RDFATS5

;[…Ž€‡Ž‚€ˆ… ŽŒ…€ Š‹€‘’…€]
;‚›—ˆ‘‹…ˆ… …€‹œŽƒŽ ‘…Š’Ž€
;€ ‚•Ž„… BCDE=ŽŒ… FAT
;€ ‚›•Ž„… BCDE=€„…‘ ‘…Š’Ž€
REALSEC         LD BC,(AFILCLS+2)
                LD DE,(AFILCLS)
                LD A,B
                OR C
                OR D
                OR E
                JR NZ,REALSE1
                LD DE,(FATSTR)
                LD BC,(FATSTR+2)
                LD HL,SEC_FAT
                PUSH HL
                CALL BCDEHLP
                POP HL
                JP BCDEHLP

REALSE1         LD HL,0XFFFE
                EX DE,HL
                ADD HL,DE
                EX DE,HL
                INC HL
                ADC HL,BC                       ;ŽŒ… Š‹€‘’…€-2
                LD A,(BYTSSEC)
                JR REALSE3

REALSE2         SLA E
                RL D
                RL L
                RL H
REALSE3         RRCA
                JR NC,REALSE2                   ;“ŒŽ†ˆ‹ˆ € €‡Œ… Š‹€‘’…€
                LD B,H
                LD C,L
                LD HL,STARTRZ
                CALL BCDEHLP                    ;ˆ€‚ˆ‹ˆ ‘Œ…™…ˆ… Ž’ €—€‹€ „ˆ‘Š€
                LD HL,FRSTDAT
                JP BCDEHLP                      ;ˆ€‚ˆ‹ˆ ‘Œ…™…ˆ… Ž’ €—€‹€ €‡„…‹€

;[BCDE/512]
BCDE200         LD E,D
                LD D,C
                LD C,B
                LD B,0
                LD A,2
                JR BCDE_A

;[BCDE>>A=BCDE]
BCDE_A1         SRL B
                RR C
                RR D
                RR E
BCDE_A          RRCA
                JR NC,BCDE_A1
                RET

;[(ADR)-BCDE=BCDE]
BCDEHLM         LD A,(HL)
                INC HL
                SUB E
                LD E,A
                LD A,(HL)
                INC HL
                SBC A,D
                LD D,A
                LD A,(HL)
                INC HL
                SBC A,C
                LD C,A
                LD A,(HL)
                SBC A,B
                LD B,A
                RET

;[(ADR)+BCDE=BCDE]
BCDEHLP         LD A,(HL)
                INC HL
                ADD A,E
                LD E,A
                LD A,(HL)
                INC HL
                ADC A,D
                LD D,A
                LD A,(HL)
                INC HL
                ADC A,C
                LD C,A
                LD A,(HL)
                ADC A,B
                LD B,A
                RET

;[HLDE+BC=HLDE]
HLDEPBC         EX DE,HL
                ADD HL,BC
                EX DE,HL
                LD BC,0
                ADC HL,BC
                RET

;[‡€ƒ“‡Š€ ‘…Š’Ž€ ‚ “”…]
LOADLST         LD HL,BUF_512_
                PUSH HL
                LD A,1
                CALL LOADSCS
                POP HL
                RET

;[INCLUDES]
                include drivers/drv_zc.a80
                include drivers/drv_neogs.a80
                include drivers/drv_nemo.a80
                include drivers/drv_smuc.a80
                include drivers/drv_divide.a80
                include drivers/drv_profi.a80
                include spg2_run.a80
                include sna_run.a80