Rev 639 |
    Blame |
    Compare with Previous |
    Last modification |
    View Log
    | Download
    | RSS feed
  
  
 
 
;LAST UPDATE: 28.03.2014 savelij
 
 
 
;ПРОВЕРКА РАСШИРЕНИЯ ИЗ ЗАГРУЖЕННОГО HEADER
 
CMP_FILEEXT     LD HL,zmbuff
 
CMPFILEEXT1     LD A,(HL)
 
                INC HL
 
                AND A
 
                JR NZ,CMPFILEEXT1
 
                LD DE,-4
 
                ADD HL,DE
 
                LD DE,FILE_EXT
 
                CALL CP_EXT
 
                RET Z                           ;ВЫХОД ЕСЛИ РАСШИРЕНИЕ НЕ ПОДДЕРЖИВАЕТСЯ
 
                LD (NUM4EXT),A
 
                CALL CONV_SIZE
 
                LD A,(NUM4EXT)
 
                DEC A
 
                LD L,A
 
                LD H,0
 
                LD DE,FUNC4EXT
 
                ADD HL,HL
 
                ADD HL,DE
 
                LD E,(HL)
 
                INC HL
 
                LD D,(HL)
 
                EX DE,HL
 
                JP (HL)
 
 
 
CONV_SIZE       LD BC,0X1400
 
                LD DE,TXT_NAME
 
                LD HL,zmbuff
 
CONVSIZE3       LD A,(HL)
 
                CP "."
 
                JR Z,CONVSIZE2
 
                LDI
 
                DJNZ CONVSIZE3
 
                LD A,">"
 
                LD (DE),A
 
                INC DE
 
CONVSIZE1       LD A,(HL)
 
                INC HL
 
                CP "."
 
                JR NZ,CONVSIZE1
 
                DEC HL
 
CONVSIZE2       LDI
 
                LDI
 
                LDI
 
                LDI
 
CONVSIZE4       LD A,(HL)
 
                INC HL
 
                CP " "
 
                JR NZ,CONVSIZE4
 
                DEC HL
 
                DEC HL
 
                LD DE,TXT_FULLSIZE_
 
CONVSIZE5       LD A,(HL)
 
                AND A
 
                JR Z,CONVSIZE6
 
                LDD
 
                JR CONVSIZE5
 
 
 
CONVSIZE6       LD BC,0
 
                LD DE,0
 
                LD HL,TXT_SIZERECV
 
                CALL HEX4DEC
 
                LD HL,TXT_FILENAME
 
                CALL PRINT_MSG
 
                LD HL,TXT_FILESIZE
 
                JP PRINT_MSG
 
 
 
UPDATE_CHISLO   LD BC,(rxbytes+2)
 
                LD DE,(rxbytes)
 
                LD HL,TXT_SIZERECV
 
                CALL HEX4DEC
 
                LD HL,TXT_SIZE
 
                JP PRINT_MSG
 
 
 
;ИНИТ И ВКЛЮЧЕНИЕ НАЧАЛЬНОЙ СТРАНИЦЫ ДЛЯ ЗАГРУЗКИ TAP ФАЙЛА
 
EXT_TAP         
 
                LD A,PAGE4TAP
 
                JP INIT_PAGE
 
 
 
;ИНИТ И ВКЛЮЧЕНИЕ НАЧАЛЬНОЙ СТРАНИЦЫ ДЛЯ ЗАГРУЗКИ TRD ФАЙЛА
 
EXT_TRD         
 
                IF MEMTYPE=PROFI
 
                LD A,0X3F
 
                ELSEIF MEMTYPE=PENT22
 
                XOR A
 
                ELSE
 
                LD A,PAGE_DATARAMD
 
                ENDIF
 
                JP INIT_PAGE
 
 
 
CP_EXT          LD C,0
 
CPETR2          LD A,(DE)
 
                AND A
 
                JR Z,CPETR1+1
 
                INC C
 
                PUSH DE
 
                PUSH HL
 
                CALL COMPARF
 
                POP HL
 
                POP DE
 
                JR Z,CPETR1
 
                INC DE
 
                INC DE
 
                INC DE
 
                JR CPETR2
 
 
 
CPETR1          LD A,C
 
                AND A
 
                RET
 
 
 
COMPARF         LD A,(DE)
 
                CP (HL)
 
                RET NZ
 
                INC HL
 
                INC DE
 
                LD A,(DE)
 
                CP (HL)
 
                RET NZ
 
                INC HL
 
                INC DE
 
                LD A,(DE)
 
                CP (HL)
 
                RET
 
 
 
NUM4EXT         DB 0                    ;НОМЕР ЗАГРУЖАЕМОГО РАСШИРЕНИЯ
 
FILE_EXT        IF PROFI=1
 
                DZ "TRDtrd"
 
                ELSE
 
                DZ "TAPtapTRDtrd"       ;СПИСОК ПРИНИМАЕМЫХ РАСШИРЕНИЙ
 
                ENDIF
 
 
 
FUNC4EXT        IF PROFI=1
 
                DW EXT_TRD
 
                DW EXT_TRD
 
                ELSE
 
                DW EXT_TAP
 
                DW EXT_TAP
 
                DW EXT_TRD
 
                DW EXT_TRD
 
                ENDIF