Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

;конвертер спрайтов окна в нужный формат
;для вывода
;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