?login_element?

Subversion Repositories NedoOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;      twind.as
  2.  
  3. ; 29.12.90
  4.  
  5. ;-----
  6. WT
  7.         CALL    EWT
  8.         XOR     A
  9.         LD      E,A
  10.         LD      D,A
  11.         JR      sR_BOX
  12. ;-----
  13. EWT
  14.         LD      E,(IX+3)
  15.         LD      D,(IX+2)
  16.         EXX
  17.         LD      C,(IX)
  18.         LD      B,(IX+1)
  19.         DEC     B
  20. WIND1
  21.         INC     B
  22.         PUSH    BC
  23.         CALL    sADDR
  24.         LD      B,E
  25. WIND    LD      A,0
  26.         OR      A
  27.         CALL    Z,sSPACE
  28.         DJNZ    WIND
  29.  
  30.         DEC     D
  31.         EXX
  32.         POP     BC
  33.         JR      NZ,WIND1
  34.  
  35.         LD      B,(IX+1)
  36.         CALL    sWATRB
  37.         LD      L,(IX+3)
  38.         LD      H,(IX+2)
  39.         CALL    sDRAW
  40.         CALL    sAT_NEXT
  41.         DEC     H
  42.         JR      NZ,WIND3
  43.  
  44.         LD      A,(IX+5)
  45.         JR      WIND4-1
  46. WIND3
  47.         CALL    sDRAW
  48.         LD      A,(IX+5)
  49.         BIT     7,A
  50.         JR      NZ,$+3
  51.  
  52.         LD      (DE),A
  53.  
  54.         CALL    sAT_NEXT
  55.         DEC     H
  56.         JR      NZ,WIND3
  57.  
  58.         INC     E
  59. WIND4
  60.         BIT     7,A
  61.         RET     NZ
  62.  
  63.         LD      (DE),A
  64.         INC     E
  65.         DEC     L
  66.         JR      NZ,WIND4
  67.         RET
  68. ;-----
  69. sR_WT
  70. ;97(61):wt    - Вывод окна. Подфункция в рег. A: A=0 окно с одинарной рамкой, А=1 без рамки, А=2 с двойной рамкой, A=3..127 без рамки, A=128..255 только подкраска. IX= вектор окна
  71.         LD      HL,WIND+1
  72.         LD      E,0
  73.         BIT     7,A
  74.         JR      Z,WT00
  75.  
  76.         RES     7,A
  77.         DEC     E
  78. WT00
  79.         LD      (HL),E
  80.         OR      A
  81.         JR      Z,WT
  82.  
  83.         DEC     A
  84.         JR      Z,EWT
  85.  
  86.         DEC     A
  87.         JR      NZ,EWT
  88.  
  89.         CALL    WT
  90.         XOR     A
  91.         LD      DE,#202
  92. sR_BOX
  93.         OR      A
  94.         JR      NZ,$+4
  95.  
  96.         LD      A,#F
  97.  
  98.         LD      (BXCSR),A
  99.         EX      AF,AF'
  100.         LD      A,E
  101.         AND     7
  102.         LD      C,A
  103.         LD      A,D
  104.         AND     7
  105.         LD      B,A
  106.         EX      AF,AF'
  107.         AND     128
  108.         JR      Z,BOX
  109. ;BOX_
  110.         EXX
  111.         XOR     A
  112.         LD      BC,#A62F
  113. ;      ORG  $-2
  114. ;      CPL
  115. ;      AND  (HL)
  116.         JR      NASTR
  117. BOX
  118.         EXX
  119.         LD      A,-1
  120. ; LD  BC,OR NOP
  121.         LD      BC,#B6
  122. ;      ORG  $-2
  123. ;      OR   (HL)
  124. ;      NOP
  125.  
  126. NASTR
  127.         LD      (LEND),BC
  128.         LD      (CCPL+1),A
  129.         LD      HL,SRS+1
  130.         RES     6,(HL)
  131.         INC     A
  132.         JR      NZ,$+4
  133.  
  134.         SET     6,(HL)
  135.  
  136.         PUSH    IX
  137.         LD      B,(IX+1)
  138.         LD      C,(IX)
  139.         CALL    sADDR
  140.         EXX
  141.         PUSH    DE
  142.         EXX
  143.         POP     HL
  144.         LD      E,(IX+3)
  145.         LD      D,(IX+2)
  146.         LD      IX,TCORR
  147.         LD      A,C
  148.         AND     7
  149.         RLCA
  150.         LD      (IX+DCORR),A
  151.         INC     A
  152.         LD      (IX+DCORR1),A
  153.         RLCA
  154.         RLCA
  155. SRS     XOR     #FA
  156.         PUSH    AF
  157.         BIT     0,(IX+RSCR)
  158.         JR      NZ,$+4
  159.         AND     #7F
  160.         LD      (IX+DSTL),A
  161.         POP     AF
  162.         XOR     #38
  163.         BIT     1,(IX+RSCR)
  164.         JR      NZ,$+4
  165.         AND     #7F
  166.         LD      (IX+DSTR),A
  167.         LD      A,H
  168.         ADD     A,B
  169.         LD      H,A
  170.         PUSH    HL
  171.         LD      A,D
  172.         DEC     E
  173.         RLCA
  174.         RLCA
  175.         SUB     B
  176.         RLCA
  177.         LD      B,A
  178.         JR      WD1
  179. ;-----
  180. BXCSR   DEFB    %1111
  181. RSCR    EQU     -1
  182. TCORR
  183.         DEFW    -1
  184.         DEFW    #FE7F
  185.         DEFW    #FC3F
  186.         DEFW    #F81F
  187.         DEFW    #F00F
  188.         DEFW    #E007
  189.         DEFW    #C003
  190.         DEFW    #8001
  191. ;-----
  192. sDRAW1:
  193.         INC     H
  194.         LD      A,7
  195.         AND     H
  196.         JR      NZ,WD1 ;NO !!
  197.  
  198.         LD      A,#20
  199.         ADD     A,L
  200.         LD      L,A
  201.         JR      C,WD1 ;NEXT BLOK
  202.  
  203.         LD      A,H
  204.         SUB     8
  205.         LD      H,A
  206. WD1:
  207.         SET     0,(HL)
  208.         LD      A,L
  209.         ADD     A,E
  210.         LD      L,A
  211. SETR:
  212.         SET     7,(HL)
  213.         SUB     E
  214.         LD      L,A
  215.         DJNZ    sDRAW1
  216.  
  217. CORR:   LD      B,(IX+0)
  218. CORR1:  LD      C,(IX+0)
  219.         INC     E
  220.         LD      D,E
  221.         BIT     3,(IX+RSCR)
  222.         CALL    NZ,LINE
  223.         POP     HL
  224.         LD      E,D
  225.         BIT     2,(IX+RSCR)
  226.         CALL    NZ,LINE
  227.         POP     IX
  228.         RET
  229. ;-----
  230.  
  231. LINE:
  232.         DEC     E
  233.         LD      A,B
  234.         JR      NZ,WD2
  235.  
  236.         AND     C
  237. LEND
  238.         CPL     ;NOP
  239.         AND     (HL)
  240.         LD      (HL),A
  241.         RET
  242. ;-----
  243. WD2:
  244.         CALL    LEND
  245. WD3:
  246.         INC     L
  247.         DEC     E
  248.         JR      Z,WD4
  249.  
  250. CCPL    LD      (HL),0
  251.         JR      WD3
  252. ;-----
  253. WD4:
  254.         LD      A,C
  255.         JR      LEND
  256. ;-----
  257. DSTL    EQU     WD1+1-TCORR
  258. DSTR    EQU     SETR+1-TCORR
  259. DCORR   EQU     CORR+2-TCORR
  260. DCORR1  EQU     CORR1+2-TCORR
  261. ;**;**
  262.