Blame |
    Last modification |
    View Log
    | Download
  
  
;конвертер спрайтов окна в нужный формат
 
;для вывода
 
;27.10.2005, (C) XOR
 
 
 
        ORG #6000
 
 
 
        LD HL,DATA
 
        LD DE,NEWDATA
 
 
 
        LD A,8
 
LOOP1   EX AF,AF'
 
        DUP 24
 
        LDI 
 
        EDUP 
 
 
 
        LD BC,23
 
        ADD HL,BC
 
 
 
        DUP 24
 
        LD A,(HL)
 
        LD (DE),A
 
        DEC HL
 
        INC DE
 
        EDUP 
 
 
 
        LD BC,25
 
        ADD HL,BC
 
 
 
        EX AF,AF'
 
        DEC A
 
        JP NZ,LOOP1
 
 
 
        PUSH DE
 
        LD D,H
 
        LD E,L
 
        LD BC,48
 
        ADD HL,BC
 
        LD B,D
 
        LD C,E
 
        POP DE
 
 
 
        LD A,48
 
        CALL LOOP2
 
 
 
;       LD (#7000),HL
 
 
 
;       RET
 
 
 
        PUSH DE
 
        LD B,H
 
        LD C,L
 
        LD DE,8
 
        ADD HL,DE
 
        POP DE
 
;       LD A,8
 
;       CALL LOOP2
 
 
 
        LD H,B
 
        LD L,C
 
        LD BC,16
 
        LDIR 
 
 
 
        JR EXAMPLE
 
 
 
LOOP2   EX AF,AF'
 
        LD A,(BC)
 
        LD (DE),A
 
        INC BC
 
        INC DE
 
        LD A,(HL)
 
        LD (DE),A
 
        INC HL
 
        INC DE
 
        EX AF,AF'
 
        DEC A
 
        JR NZ,LOOP2
 
        RET 
 
 
 
EXAMPLE
 
        LD HL,#5000
 
        LD DE,#50E0
 
        CALL PRW
 
 
 
        CALL PRW2
 
        RET 
 
 
 
;Вывод горизонтальных линий окна
 
PRW     DI 
 
        LD (BACK+1),SP
 
        LD SP,NEWDATA
 
 
 
        LD A,2
 
        EX AF,AF'
 
        LD A,4
 
PRWIN
 
        DUP 11
 
        POP BC
 
        LD (HL),C
 
        INC L
 
        LD (HL),B
 
        INC L
 
        EDUP 
 
 
 
        POP BC
 
        LD (HL),C
 
        INC L
 
        LD (HL),B
 
        INC H
 
 
 
        DUP 11
 
        POP BC
 
        LD (HL),C
 
        DEC L
 
        LD (HL),B
 
        DEC L
 
        EDUP 
 
 
 
        POP BC
 
        LD (HL),C
 
        DEC L
 
        LD (HL),B
 
        INC H
 
 
 
        DEC A
 
        JR NZ,PRWIN
 
        EX DE,HL
 
        EX AF,AF'
 
        DEC A
 
        JP NZ,PRWIN-3
 
 
 
BACK    LD SP,0
 
        EI 
 
        RET 
 
 
 
;Вывод вертикальных линий окна
 
PRW2    LD HL,NEWDATA+(24*16)
 
        LD DE,#5020
 
        LD BC,#5037
 
 
 
        LD A,6
 
PW2     EX AF,AF'
 
        DUP 8
 
        LD A,(HL)
 
        LD (DE),A
 
        INC HL
 
        INC D
 
        LD A,(HL)
 
        INC HL
 
        LD (BC),A
 
        INC B
 
        EDUP 
 
 
 
        LD D,#50
 
        LD B,D
 
 
 
        LD A,E
 
        ADD A,32
 
        LD E,A
 
 
 
        LD A,C
 
        ADD A,32
 
        LD C,A
 
 
 
        EX AF,AF'
 
        DEC A
 
        JR NZ,PW2
 
;       RET
 
 
 
;Вывод кнопок окна
 
PRW3    LD HL,NEWDATA+480
 
 
 
        LD DE,#4000
 
        LD BC,#4020
 
 
 
        DUP 7
 
        LD A,(HL)
 
        LD (DE),A
 
        INC HL
 
        INC D
 
        EDUP 
 
        LD A,(HL)
 
        LD (DE),A
 
        INC HL
 
 
 
        DUP 7
 
        LD A,(HL)
 
        LD (BC),A
 
        INC HL
 
        INC B
 
        EDUP 
 
        LD A,(HL)
 
        LD (BC),A
 
 
 
        RET 
 
 
 
 
 
        DUP 7
 
        LD A,(HL)
 
        LD (DE),A
 
        INC HL
 
        INC D
 
        LD A,(HL)
 
        LD (BC),A
 
        INC HL
 
        INC B
 
        EDUP 
 
        LD A,(HL)
 
        LD (DE),A
 
        INC HL
 
        INC D
 
        LD A,(HL)
 
        LD (BC),A
 
        RET 
 
 
 
        DISPLAY "длина процедуры вывода окна ",$-PRW
 
 
 
        ORG #8000-496
 
DATA    ;EQU #4000
 
 
 
+       INCBIN "A:TEXT_WIN.C"
 
 
 
NEWDATA EQU DATA+496
 
        ORG #6000