?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. ;конвертер спрайтов окна в нужный формат
  2. ;для вывода
  3. ;27.10.2005, (C) XOR
  4.  
  5.         ORG #6000
  6.  
  7.         LD HL,DATA
  8.         LD DE,NEWDATA
  9.  
  10.         LD A,8
  11. LOOP1   EX AF,AF'
  12.        DUP 24
  13.        LDI
  14.        EDUP
  15.  
  16.        LD BC,23
  17.        ADD HL,BC
  18.  
  19.        DUP 24
  20.        LD A,(HL)
  21.        LD (DE),A
  22.        DEC HL
  23.        INC DE
  24.        EDUP
  25.  
  26.        LD BC,25
  27.        ADD HL,BC
  28.  
  29.        EX AF,AF'
  30.         DEC A
  31.         JP NZ,LOOP1
  32.  
  33.         PUSH DE
  34.         LD D,H
  35.         LD E,L
  36.         LD BC,48
  37.         ADD HL,BC
  38.         LD B,D
  39.         LD C,E
  40.         POP DE
  41.  
  42.         LD A,48
  43.         CALL LOOP2
  44.  
  45. ;       LD (#7000),HL
  46.  
  47. ;       RET
  48.  
  49.         PUSH DE
  50.         LD B,H
  51.         LD C,L
  52.         LD DE,8
  53.         ADD HL,DE
  54.         POP DE
  55. ;       LD A,8
  56. ;       CALL LOOP2
  57.  
  58.         LD H,B
  59.         LD L,C
  60.         LD BC,16
  61.         LDIR
  62.  
  63.         JR EXAMPLE
  64.  
  65. LOOP2   EX AF,AF'
  66.        LD A,(BC)
  67.        LD (DE),A
  68.        INC BC
  69.        INC DE
  70.        LD A,(HL)
  71.        LD (DE),A
  72.        INC HL
  73.        INC DE
  74.        EX AF,AF'
  75.         DEC A
  76.         JR NZ,LOOP2
  77.         RET
  78.  
  79. EXAMPLE
  80.         LD HL,#5000
  81.         LD DE,#50E0
  82.         CALL PRW
  83.  
  84.         CALL PRW2
  85.         RET
  86.  
  87. ;Вывод горизонтальных линий окна
  88. PRW     DI
  89.         LD (BACK+1),SP
  90.         LD SP,NEWDATA
  91.  
  92.         LD A,2
  93.         EX AF,AF'
  94.        LD A,4
  95. PRWIN
  96.        DUP 11
  97.        POP BC
  98.        LD (HL),C
  99.        INC L
  100.        LD (HL),B
  101.        INC L
  102.        EDUP
  103.  
  104.        POP BC
  105.        LD (HL),C
  106.        INC L
  107.        LD (HL),B
  108.        INC H
  109.  
  110.        DUP 11
  111.        POP BC
  112.        LD (HL),C
  113.        DEC L
  114.        LD (HL),B
  115.        DEC L
  116.        EDUP
  117.  
  118.        POP BC
  119.        LD (HL),C
  120.        DEC L
  121.        LD (HL),B
  122.        INC H
  123.  
  124.        DEC A
  125.        JR NZ,PRWIN
  126.        EX DE,HL
  127.        EX AF,AF'
  128.         DEC A
  129.         JP NZ,PRWIN-3
  130.  
  131. BACK    LD SP,0
  132.         EI
  133.         RET
  134.  
  135. ;Вывод вертикальных линий окна
  136. PRW2    LD HL,NEWDATA+(24*16)
  137.         LD DE,#5020
  138.         LD BC,#5037
  139.  
  140.         LD A,6
  141. PW2     EX AF,AF'
  142.        DUP 8
  143.        LD A,(HL)
  144.        LD (DE),A
  145.        INC HL
  146.        INC D
  147.        LD A,(HL)
  148.        INC HL
  149.        LD (BC),A
  150.        INC B
  151.        EDUP
  152.  
  153.        LD D,#50
  154.        LD B,D
  155.  
  156.        LD A,E
  157.        ADD A,32
  158.        LD E,A
  159.  
  160.        LD A,C
  161.        ADD A,32
  162.        LD C,A
  163.  
  164.        EX AF,AF'
  165.         DEC A
  166.         JR NZ,PW2
  167. ;       RET
  168.  
  169. ;Вывод кнопок окна
  170. PRW3    LD HL,NEWDATA+480
  171.  
  172.         LD DE,#4000
  173.         LD BC,#4020
  174.  
  175.         DUP 7
  176.         LD A,(HL)
  177.         LD (DE),A
  178.         INC HL
  179.         INC D
  180.         EDUP
  181.         LD A,(HL)
  182.         LD (DE),A
  183.         INC HL
  184.  
  185.         DUP 7
  186.         LD A,(HL)
  187.         LD (BC),A
  188.         INC HL
  189.         INC B
  190.         EDUP
  191.         LD A,(HL)
  192.         LD (BC),A
  193.  
  194.         RET
  195.  
  196.  
  197.         DUP 7
  198.         LD A,(HL)
  199.         LD (DE),A
  200.         INC HL
  201.         INC D
  202.         LD A,(HL)
  203.         LD (BC),A
  204.         INC HL
  205.         INC B
  206.         EDUP
  207.         LD A,(HL)
  208.         LD (DE),A
  209.         INC HL
  210.         INC D
  211.         LD A,(HL)
  212.         LD (BC),A
  213.         RET
  214.  
  215.         DISPLAY "длина процедуры вывода окна ",$-PRW
  216.  
  217.         ORG #8000-496
  218. DATA    ;EQU #4000
  219.  
  220. +       INCBIN "A:TEXT_WIN.C"
  221.  
  222. NEWDATA EQU DATA+496
  223.         ORG #6000