;LAST UPDATE: 09.12.2013 savelij
 
 
 
                DUPL 0X0805-$,0XFF
 
;        ORG    0X805
 
       ;DB -1
 
       ;DB " Message for hackers: "
 
       ;DB "Base version 5.03, "
 
       ;DB "High speed, Turbo Format. "
 
       ;DB 127
 
       ;DB "Copyright C.C. 1991"
 
DOSSYM
 
;jp из 0X3D82
 
;то,что раньше было в 0X3D82
 
        PUSH    HL
 
        PUSH    BC
 
        PUSH    DE
 
        PUSH    AF
 
        CALL    0X20F1
 
        POP     AF
 
        CALL    0X3D94
 
        CALL    0X20F1
 
        POP     DE
 
        POP     BC
 
        POP     HL
 
        RET     
 
                IF 0;       IFN 0
 
DOSRUS
 
;jp из 0X3D89 (вызова 0X3D89 не нахожу)
 
        AND     0X3F
 
        LD      L,A
 
        LD      H,0X00
 
        ADD     HL,HL
 
        ADD     HL,HL
 
        ADD     HL,HL
 
        LD      BC,0X0C00 ;русские буквы,(C) вместо Ъ
 
        ADD     HL,BC
 
        LD      DE,0X5C92;23698
 
        LD      BC,0X0008
 
        LDIR    
 
        LD      A,0XC9
 
        LD      (0X5C9A),A
 
        JP      0X5C9A
 
       ENDIF    
 
ASKREPFORM
 
;jp из 0X1FB6
 
;вместо 0X326B
 
        LD      A,(0X5CF6)
 
        CP      0X03
 
        JR      Z,LLc848
 
        LD      A,0X0D
 
        RST     0X10
 
        LD      HL,TPressR;0X335E
 
        RST     0X18
 
        CALL    0X1052 ;ввод клавиши с ожиданием
 
        CP      0X52
 
         JR     Z,LLc84b
 
LLc848   JP     0X01D3
 
LLc84b  RST     0X20
 
        DW      3438;0XD6E ;CLS без чего-то
 
LLc84e  RST     0X20
 
        DW      0X28E ;KEY_SCAN
 
        JR      NZ,LLc84e
 
        RST     0X20
 
        DW      0X31E ;K_TEST
 
        JR      C,LLc84e
 
        JP      wFORMAT ;продолжение...
 
 
 
;       DISPLAY "FREE BEFORE 0X900=",0X900-$
 
                DUPL 0X900-$,0XFF;        DS    0X900-$,0XFF
 
;родионовский вектор прерывания
 
                DUPL 257,0XFF;        DS        257,0XFF
 
       ;ORG 0XA01
 
MAGSTOPDISK
 
;call из 0X2A6F
 
;вместо out (0Xff),0X3c
 
        LD      A,0X3C
 
        OUT     (0XFF),A
 
      ;надо JP 0X2FC1
 
         LD     A,0XD0
 
         OUT    (0X1F),A
 
         RET    
 
;зачем 5C01?почему не коррекция сложением?
 
MAGregR
 
;jp из 0X2EBF
 
        LD      (0X5C01),A
 
        POP     AF
 
        JP      L2EC2
 
MAGsetR
 
;jp из 0X2F03
 
        LD      A,(0X5C01)
 
        LD      R,A
 
        POP     AF
 
        JP      0X5C00
 
MAGICER
 
;jp из 0X2A56
 
;вместо push af,bc,de
 
        PUSH    AF
 
        LD      A,R
 
        BIT     7,A
 
        JR      Z,LL8a27
 
        SUB     0X1F
 
        SET     7,A
 
        JR      LL8a2b
 
LL8a27  SUB     0X1F
 
        RES     7,A
 
LL8a2b  PUSH    AF
 
      ;DS 25
 
   ;опять защита от взлома Глюка!!!
 
       ;LD A,(0X5C7F)
 
       ;CP "D"
 
       ;JR NZ,LL8a45
 
       ;LD A,(0X5C80)
 
       ;CP "S"
 
       ;JR NZ,LL8a45
 
       ;LD A,(0X5C81)
 
       ;CP "C"
 
       ;JR NZ,LL8a45
 
       ;LD HL,(0X5CB3)
 
       ;JP (HL)
 
LL8a45  LD      A,0XF7
 
        IN      A,(0XFE)
 
        RRCA    
 
        JR      NC,MAG1
 
        RRCA    
 
        JR      NC,MAG2
 
        RRCA    
 
        JR      NC,MAG3
 
        RRCA    
 
        JR      C,LL8a45
 
;MAGIC+"4"=EXIT
 
        POP     AF
 
     ;надо RLCA:ADD A,0X17*2:RRCA
 
         BIT    7,A
 
         JR     Z,LL8a60
 
         ADD    A,0X17
 
         SET    7,A
 
         JR     LL8a64
 
LL8a60   ADD    A,0X17
 
         RES    7,A
 
LL8a64  LD      R,A
 
        POP     AF
 
        RETN    
 
;MAGIC+"1"=стандарт
 
MAG1
 
        POP     AF
 
        LD      R,A
 
        POP     AF
 
        JR      LL8a78
 
;MAGIC+"2"=стек внизу экрана
 
MAG2
 
        POP     AF
 
        POP     AF
 
        LD      (0X57FE),SP
 
        LD      SP,0X5800
 
LL8a78  PUSH    AF
 
        PUSH    BC
 
        PUSH    DE
 
        JP      L2A59
 
;MAGIC+"3"=STS0X57
 
MAG3
 
        POP     AF
 
        LD      R,A
 
        PUSH    HL
 
        LD      HL,0
 
        ADD     HL,SP
 
        INC     HL
 
        INC     HL
 
        LD      A,H
 
        POP     HL
 
        CP      0XC0
 
        JR      NC,LL8ac4
 
        LD      A,R
 
     ;надо RLCA:SUB 9*2:RRCA
 
         BIT    7,A
 
         JR     Z,LL8a9a
 
         SUB    9
 
         SET    7,A
 
         JR     LL8a9e
 
LL8a9a   SUB    9
 
         RES    7,A
 
LL8a9e  LD      R,A
 
        PUSH    BC
 
        LD      BC,0XFFFD
 
        LD      A,0X07
 
        OUT     (C),A
 
        LD      B,0XBF
 
        LD      A,0XFF
 
        OUT     (C),A ;глушит AY
 
        LD      A,0X57
 
        LD      BC,0X7FFD
 
        OUT     (C),A
 
        POP     BC
 
        POP     AF
 
        EX      (SP),HL
 
        LD      (0XFEE4),HL
 
        LD      (0XFEFE),HL
 
        EX      (SP),HL
 
LL8abf  INC     SP
 
        INC     SP
 
        JP      0XDB00
 
LL8ac4  LD      A,R
 
     ;надо RLCA:SUB 0X15*2:RRCA
 
         BIT    7,A
 
         JR     Z,LL8ad0
 
         SUB    0X15
 
         SET    7,A
 
         JR     LL8ad4
 
LL8ad0   SUB    0X15
 
         RES    7,A
 
LL8ad4  LD      R,A
 
        POP     AF
 
        LD      (0X5800),SP
 
        EX      (SP),HL
 
        LD      (0X5802),HL
 
        EX      (SP),HL
 
        LD      SP,0X5808
 
        PUSH    AF
 
        PUSH    BC
 
        LD      BC,0XFFFD
 
        LD      A,0X07
 
        OUT     (C),A
 
        LD      B,0XBF
 
        LD      A,0XFF
 
        OUT     (C),A ;глушит AY
 
        LD      A,0X57
 
        LD      BC,0X7FFD
 
        OUT     (C),A
 
        POP     BC
 
        POP     AF
 
        LD      SP,(0X5800)
 
        LD      (0XC000),HL
 
        LD      HL,(0X5802)
 
        LD      (0XFEE4),HL
 
        LD      (0XFEFE),HL
 
        LD      HL,(0XC000)
 
        JR      LL8abf
 
                IF 0;       IFN 0
 
;               DUPL 0X0C00-$,0XFF;        DS   0XC00-$,0XFF
 
       ;ORG 0XC00
 
;               binclude rusletts.bin;        INCBIN    "rusletts"
 
bootkus1
 
;       ENT     
 
;его и 0X344D копирует 0X3AE7
 
                PHASE 0XF500;       DISP        0XF500
 
bootst1
 
        DI      
 
        PUSH    AF
 
        PUSH    HL
 
        PUSH    DE
 
        PUSH    BC
 
        EXX     
 
        PUSH    HL
 
        LD      HL,(0X5C3D)
 
        LD      (0XF632),HL
 
        LD      A,(0X5D19)
 
        LD      (0X5CF6),A
 
        ADD     A,0X3C
 
        LD      (0X5D16),A
 
        LD      HL,0X3C00
 
        LD      DE,0X8000
 
        PUSH    DE
 
        LD      (0X5C36),DE
 
        LD      BC,0X0400
 
        LDIR    
 
         LD     (IY+0X47),0X00
 
        POP     HL
 
        LD      BC,0X0080
 
LL0e30  PUSH    BC
 
        INC     HL
 
        INC     HL
 
        INC     HL
 
        LD      B,0X03
 
LL0e36  LD      D,(HL)
 
        LD      A,D
 
        RLA     
 
        OR      D
 
        LD      (HL),A
 
        INC     HL
 
        DJNZ    LL0e36
 
        POP     BC
 
        DEC     BC
 
        INC     HL
 
        INC     HL
 
        LD      A,B
 
        OR      C
 
        JR      NZ,LL0e30
 
        XOR     A
 
        OUT     (0XFE),A
 
        LD      A,0X44
 
        LD      (0X5C48),A
 
        DEC     A
 
        DEC     A
 
        LD      (0X5C8D),A
 
        CALL    0X0D6B
 
LL0e56  DI      
 
        XOR     A
 
        LD      (0XF86E),A
 
        LD      HL,0XFA09
 
        PUSH    HL
 
        LD      (0X5C3D),SP
 
         LD     (IY+0X00),0XFF
 
        LD      A,(0X5D19)
 
        LD      C,0X01
 
        CALL    0X3D13
 
        LD      HL,0X9000
 
         LD     DE,0X0000
 
        LD      BC,0X0805
 
        CALL    0X3D13
 
        LD      A,(IY+0X00)
 
        CP      0XFF
 
        JR      NZ,LL0e56
 
        LD      HL,0XF556
 
        LD      (0XF55C),HL
 
        EXX     
 
        LD      DE,0XA000
 
        EXX     
 
        LD      HL,0X9000
 
        LD      DE,0X0008
 
        LD      A,(HL)
 
        OR      A
 
        JP      Z,0XF887
 
LL0e98  LD      DE,0X0008
 
        ADD     HL,DE
 
        LD      A,(HL)
 
        CP      0X42
 
        CALL    Z,0XF836
 
        ADD     HL,DE
 
        LD      A,(HL)
 
        OR      A
 
        JR      NZ,LL0e98
 
        LD      A,(0XF86E)
 
        OR      A
 
        JP      Z,0XF887
 
        LD      B,0X3F
 
        SBC     A,B
 
        JP      NC,0XF8A6
 
        LD      A,(0XF86E)
 
        DEC     A
 
        LD      (0XF86F),A
 
        CALL    0XF9BB
 
        LD      (0XF653),A
 
        CALL    0X0D6B
 
        DI      
 
        CALL    0XF870
 
        LD      A,0X02
 
        CALL    0XF8CB
 
        LD      A,0X02
 
        CALL    0X1601
 
         LD     (IY+0X47),0X00
 
        LD      DE,0XA000
 
        LD      HL,0X0008
 
LL0edc  LD      A,0X20
 
        RST     0X10
 
        LD      A,0X20
 
        RST     0X10
 
        LD      BC,0X0008
 
        PUSH    DE
 
        CALL    0X203C
 
        POP     DE
 
                EX DE,HL;        EXD    
 
        ADC     HL,DE
 
                EX DE,HL;        EXD    
 
         LD     A,(0XF86E)
 
         DEC    A
 
         LD     (0XF86E),A
 
        JR      Z,LL0f35
 
        LD      A,0X20
 
        RST     0X10
 
        LD      A,0X20
 
        RST     0X10
 
        LD      BC,0X0008
 
        PUSH    DE
 
        CALL    0X203C
 
        POP     DE
 
                EX DE,HL;        EXD    
 
        ADC     HL,DE
 
                EX DE,HL;        EXD    
 
         LD     A,(0XF86E)
 
         DEC    A
 
         LD     (0XF86E),A
 
        JR      Z,LL0f35
 
        LD      A,0X20
 
        RST     0X10
 
        LD      A,0X20
 
        RST     0X10
 
        LD      BC,0X0008
 
        PUSH    DE
 
        CALL    0X203C
 
        POP     DE
 
                EX DE,HL;        EXD    
 
        ADC     HL,DE
 
                EX DE,HL;        EXD    
 
        LD      A,(0XF86E)
 
        DEC     A
 
        LD      (0XF86E),A
 
        JR      Z,LL0f35
 
        LD      A,0X06
 
        RST     0X10
 
        JR      LL0edc
 
         NOP    
 
         NOP    
 
         NOP    
 
LL0f35  LD      HL,0X5802
 
        CALL    0XF816
 
        LD      DE,0X000A
 
        LD      IX,0XF634
 
         LD     (IX+0X00),0X00
 
LL0f46  EI      
 
        RES     5,(IY+0X01)
 
        HALT    
 
        PUSH    HL
 
        PUSH    IX
 
        CALL    0XF9BB
 
        CP      0X40
 
        JP      NZ,0XF792
 
        CALL    0XF989
 
        POP     IX
 
        POP     HL
 
        BIT     5,(IY+0X01)
 
        JR      Z,LL0f46
 
        LD      A,(0X5C08)
 
        CP      8
 
        JP      Z,0XF6ED
 
        CP      "o"
 
        JR      Z,LL0fed
 
        CP      "6"
 
        JR      Z,LL0fed
 
        CP      9
 
        JP      Z,0XF70C
 
        CP      "p"
 
        JP      Z,0XF70C
 
        CP      "7"
 
        JP      Z,0XF70C
 
        CP      11
 
        JP      Z,0XF72E
 
        CP      "q"
 
        JP      Z,0XF72E
 
        CP      "9"
 
        JP      Z,0XF72E
 
        CP      10
 
        JP      Z,0XF764
 
        CP      "a"
 
        JP      Z,0XF764
 
        CP      "8"
 
        JP      Z,0XF764
 
        CP      "d"
 
        JP      Z,0XFA1B
 
        CP      "1"
 
        JR      Z,LL0fd0
 
        CP      "2"
 
        JR      Z,LL0fd0
 
        CP      "3"
 
        JR      Z,LL0fd0
 
        CP      "4"
 
        JR      Z,LL0fd0
 
        PUSH    AF
 
        LD      A,0XFE
 
        IN      A,(0XFE)
 
        RRA     
 
        JR      NC,LL0f46
 
        POP     AF
 
        CP      13
 
        JP      Z,0XF79D
 
        CP      "0"
 
        JP      Z,0XF79D
 
        CP      32
 
        JP      Z,0XF79D
 
        JP      0XF646
 
LL0fd0  PUSH    AF
 
        CALL    0X0D6B
 
        LD      A,0X03
 
        CALL    0XF8CB
 
        POP     AF
 
        SUB     0X31
 
        LD      C,0X01
 
        LD      (0X5CF8),A
 
        LD      (0X5CF9),A
 
        LD      (0X5D19),A
 
        CALL    0X3D13
 
        JP      0XF556
 
LL0fed
 
        CALL    0XF870
 
        CALL    0XF826
 
                DB 0XDD,0X35;         DEC       (IX)
 
;        ORG    $-1
 
bootst2
 
bootln1 := $-bootst1
 
;       ENT     
 
;        ORG    ROM
 
;       DISP    0
 
;        ORG    bootkus1+bootln1
 
                DEPHASE
 
       ENDIF