?login_element?

Subversion Repositories NedoOS

Rev

Rev 1210 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;   6.1.97  PYXEL
  2. ; 19.11.94  -1 byte
  3. ; 29.10.94  ROM
  4. ; 24.11.92  -BEEP
  5. ; 10.11.92  -CR^..
  6. ; 17.10.92  -INIWT
  7. ;  13.9.92
  8. ; 20.02.91
  9.  
  10. ; wtro.asm (tbwt.as)
  11.  
  12. ;=156/239
  13.  
  14. ttyout  EQU     #A
  15. g_tydv  EQU     #13
  16. l_im2   EQU     #1E
  17.  
  18.        if 0
  19. $STR
  20.         LD      C,ttyout
  21. 1$
  22.         LD      A,(HL)
  23.         CP      #D
  24.         RET     Z
  25.  
  26.         RST     16
  27.         INC     HL
  28.         JR      1$
  29. ;-----
  30. $G_SCR
  31.         LD      HL,$PAPER
  32.         EXX
  33. $EMPTY  RET
  34. ;-----
  35. $WTPOS
  36.         LD      A,(IX+1)
  37.         ADD     A,H
  38.         LD      H,A
  39.         LD      A,(IX+6)
  40.         ADD     A,L
  41.         LD      L,A
  42. EPOS1
  43.         LD      ($XYpos),HL
  44.         LD      B,H
  45.         LD      C,L
  46.         CALL    sPRAD
  47. E_POS
  48.         EXX
  49.         LD      ($xypos),DE
  50.         EXX
  51.         RET
  52. ;-----
  53. $UNVAN
  54.         PUSH    HL
  55.         EXX
  56.         POP     HL
  57.         LD      B,A
  58.         EX      AF,AF'
  59. 1$
  60.         LD      A,(HL)
  61.         CP      -1
  62.         JR      Z,2$
  63.  
  64.         CP      B
  65.         JR      Z,2$
  66.  
  67.         INC     HL
  68.         INC     HL
  69.         INC     HL
  70.         JR      1$
  71. ;-----
  72. 2$
  73.         INC     HL
  74.         LD      C,(HL)
  75.         INC     HL
  76.         LD      B,(HL)
  77.         PUSH    BC
  78.         EXX
  79.         EX      AF,AF'
  80.         RET
  81.        endif
  82. ;-----
  83. sLWT
  84. ;101(65):lwt   - Распечатка заданного количества строк в окне; A - номер строки (начала), IX - вектор окна, HL - адрес строк текста для печати, B - количество строк, которое необходимо распечатать
  85.         LD      D,B ;lines to print
  86.         INC     D
  87.         LD      E,(IX+7) ;menuwid
  88.         LD      C,(IX+6) ;menux_chrs
  89.         ADD     A,B
  90.         ADD     A,(IX+1) ;y
  91.         LD      B,A ;last y
  92.         JR      PRWT
  93. ;-----
  94.        if 0
  95. $ADRWT
  96.         PUSH    IX
  97.         POP     HL
  98.         LD      DE,8
  99.         ADD     HL,DE
  100. $LENWT
  101.         LD      D,(IX+2)
  102.         DEC     D
  103.         LD      E,(IX+7)
  104.         LD      A,(IX+1)
  105.         ADD     A,D
  106.         LD      B,A
  107.         LD      C,(IX+6)
  108.        endif
  109. PRWT
  110.         PUSH    BC
  111. PRWT0
  112.         DEC     D ;lines to print
  113.         POP     BC
  114.         RET     Z
  115.  
  116.         CALL    PRWT5
  117.         PUSH    BC
  118.         LD      B,E ;menuwid
  119. PRWT1
  120.         LD      A,(HL)
  121.         CP      3
  122.         JR      Z,PRWT6
  123.  
  124.         CP      #D
  125.         JR      Z,PRWT2
  126.  
  127.         CALL    sPRCHR
  128.         INC     HL
  129.         DJNZ    PRWT1
  130.  
  131.         LD      A,(HL)
  132.         CP      #D
  133.         JR      NZ,PRWT0
  134.  
  135.         INC     HL
  136.         JR      PRWT0
  137. ;-----
  138. PRWT2
  139.         LD      A," "
  140.         CALL    sPRCHR
  141.         DJNZ    PRWT2
  142.  
  143.         INC     HL
  144.         JR      PRWT0
  145. ;-----
  146. PRWT6
  147.         LD      A," "
  148.         CALL    sPRCHR
  149.         DJNZ    PRWT6
  150.  
  151.         DEC     D ;lines to print
  152.         POP     BC
  153.         RET     Z
  154.  
  155.         CALL    PRWT5
  156.         PUSH    BC
  157. PRWT3
  158.         LD      B,E ;menuwid
  159.         JR      PRWT6
  160. ;-----
  161. PRWT5
  162.         LD      A,D ;lines to print
  163.         PUSH    BC
  164.         EXX
  165.         POP     BC
  166.         SUB     B ;last y
  167.         NEG
  168.         LD      B,A
  169.         JP      sPRAD ;setxy
  170. ;-----
  171.        if 1 ;todo textmode
  172. AWTCM
  173.         ADD     A,(IX+1) ;hinty
  174.         LD      B,A
  175.         PUSH    BC
  176.         CALL    sWATRB
  177.         POP     BC
  178.         LD      A,C
  179.         LD      B,(IX+3)
  180.         RET
  181. ;-----
  182. ;99(63):awt   - Подкрашивает строку внутри окна, c рамкой. Вход: IX = адрес вектора окна, A = номер строки, которую необходимо подсветить (нумерация от 1), B = цвет
  183. sAWT
  184.         LD      C,B ;color
  185.         CALL    AWTCM
  186. AWT_1
  187.         LD      (DE),A
  188.         INC     DE
  189.         DJNZ    $-2
  190.         RET
  191. ;-----
  192. ;100(64):awtc  - Подкрашивает строку внутри окна, не затрагивая рамку, IX=вектор окна, A=номер строки, B=цвет
  193. sAWTC
  194.         LD      C,B
  195.         CALL    AWTCM
  196.         DEC     B
  197.         DEC     B
  198.         INC     DE
  199.         JR      AWT_1
  200.        endif
  201. ;-----
  202. sDRAW
  203.         LD      B,L
  204.         LD      A,(IX+4)
  205. DRAW_1
  206.         LD      (DE),A
  207.         INC     E
  208.         DJNZ    $-2
  209.  
  210.         RET
  211. ;-----
  212.        if 0
  213. $PYXEL
  214.        LD   DE,#5800
  215.         ADD     HL,DE
  216.         EX      DE,HL
  217.         JR      DRAW_1
  218.        endif
  219. ;-----
  220. sWATRB ;TODO переделать под textmode
  221.         LD      C,(IX)
  222.         CALL    sADDR
  223.         EXX
  224.         LD      A,D
  225.         AND     #18
  226.         RRCA
  227.         RRCA
  228.         RRCA
  229.         OR      #58
  230.         LD      D,A
  231.         RET
  232. ;-----
  233. sAT_NEXT ;TODO переделать под textmode
  234.         EX      AF,AF'
  235.         LD      A,E
  236.         SUB     L
  237.         ADD     A,#20
  238.         LD      E,A
  239.         JR      NC,$+3
  240.  
  241.         INC     D
  242.  
  243.         EX      AF,AF'
  244.         RET
  245. ;-----
  246. sATRB ;TODO переделать под textmode
  247.         PUSH    AF
  248.         EXX
  249.         LD      C,E
  250.         LD      A,D
  251.         RRCA
  252.         RRCA
  253.         RRCA
  254.         AND     3
  255.         OR      #58
  256.         LD      B,A
  257.         POP     AF
  258.         LD      (BC),A
  259.         EXX
  260.         RET
  261. ;-----
  262. sADDR ;TODO переделать под textmode
  263.         LD      A,B
  264.         RRCA
  265.         RRCA
  266.         RRCA
  267.         AND     #E0
  268.         LD      L,A
  269.         LD      A,B
  270.         AND     #18
  271.         OR      #40
  272.         LD      H,A
  273.         LD      B,0
  274.         ADD     HL,BC
  275.         EX      DE,HL
  276.         EXX
  277.         RET
  278. ;-----
  279. sSPACE ;TODO переделать под textmode
  280.        if PRSTDIO
  281.         push bc
  282.         push de
  283.         push hl
  284.         push ix
  285.         ld a,' '
  286.         call sendchar
  287.         pop ix
  288.         pop hl
  289.         pop de
  290.         pop bc
  291.         ret
  292.        else
  293.         EXX
  294.         XOR     A
  295.         LD      B,D
  296.         LD      (DE),A
  297.         INC     D
  298.         LD      (DE),A
  299.         INC     D
  300.         LD      (DE),A
  301.         INC     D
  302.         LD      (DE),A
  303.         INC     D
  304.         LD      (DE),A
  305.         INC     D
  306.         LD      (DE),A
  307.         INC     D
  308.         LD      (DE),A
  309.         INC     D
  310.         LD      (DE),A
  311.         INC     D
  312.         INC     E
  313.         JR      Z,$+3
  314.         LD      D,B
  315.  
  316.         EXX
  317.         RET
  318.        endif
  319. ;-----
  320.        if 0
  321. $CLS
  322.         OR      A
  323.         JR      NZ,1$
  324.  
  325.         LD      HL,#4000
  326.         LD      BC,#17FF
  327.         CALL    2$
  328.         LD      A,($PAPER)
  329.         CALL    1$
  330.         LD      BC,$ABORD
  331.         LD      A,($BORD)
  332.         AND     7
  333.         OUT     (C),A
  334.         RET
  335. ;-----
  336. 1$
  337.         LD      HL,#5800
  338.         LD      BC,#2FF
  339. 2$
  340.         LD      (HL),A
  341.         LD      E,L
  342.         LD      D,H
  343.         INC     DE
  344.         LDIR
  345.         RET
  346.        endif
  347. ;-----
  348.  
  349.        if 0
  350. ; 29.10.94  16:41 ROM
  351. ; 24.11.92   0:13 -BEEP
  352. ; 13.11.92   1:20 DI, EI
  353. ; 11.11.92  21:15 Y_+^ON
  354. ; 29.11.90  22:30
  355.  
  356. ; hmnwt.as
  357. ;=242/346/329/351
  358. $Y____
  359.         DI
  360.         EXX
  361.         LD      BC,($XYpos)
  362. ;Setcr
  363.         LD      A,B
  364.         LD      ($XSCRS+1),A
  365.         LD      A,($BYTST)
  366.         LD      B,A
  367.         XOR     A
  368.  
  369.         ADD     A,C
  370.         DJNZ    $-1
  371.  
  372.         LD      ($XSCRS),A
  373.         EXX
  374.         CALL    $PUTCR
  375.         OR      -1
  376.         LD      HL,$CURS
  377.         LD      C,l_im2
  378.         RST     16
  379.         CALL    $ONCUR
  380.         EI
  381.         RET
  382. ;-----
  383. $N____
  384.         DI
  385.         XOR     A
  386.         LD      HL,$CURS
  387.         LD      C,l_im2
  388.         RST     16
  389.         PUSH    AF
  390.         CALL    $GETCR
  391.         POP     AF
  392.         EI
  393.         RET
  394. ;-----
  395. $CONYX
  396.         PUSH    DE
  397.         POP     HL
  398.         SRL     H
  399.         RR      L
  400.         SRL     H
  401.         RR      L
  402.         SRL     H
  403.         RR      L
  404.         LD      A,D
  405.         AND     #18
  406.         OR      #47 ;7-NOMER  BYTE V LITERE ,PO KOTOROI POLZAET KURSOR
  407.         LD      H,A
  408.         RET
  409. ;______
  410. $INNI
  411.         LD      A,($BYTST)
  412.         LD      B,A
  413.         LD      DE,($XSCRS)
  414.         RET
  415. ;-----
  416.         IF      0
  417.  
  418.         DEFB    -1,#1F,1,1
  419. VCT
  420.         DEFB    2,3,15,20
  421.  
  422.         LD      IX,VCT
  423.         CALL    $EWINI
  424.  
  425.         CALL    $UPSCR
  426.         CALL    $UPSCR
  427.         CALL    $UPSCR
  428.         CALL    $UPSCR
  429.         CALL    $UPSCR
  430.         CALL    $UPSCR
  431.         RET
  432.         ENDIF
  433.  
  434. ; 24.10.91  03:11 PSKOV
  435.  
  436. ;      rolwt.as
  437.  
  438. ;LFT    EQU  -4
  439. ;RT     EQU  -3
  440. Delay   EQU     -2
  441. Scroll  EQU     -1;8,4,2 OR 1
  442. X_COOR  EQU     0 ;UPlefr UGL
  443. Y_COOR  EQU     1 ;KOORD.
  444. Y_SIZE  EQU     2 ;RAZMER
  445. X_SIZE  EQU     3 ;OKNA
  446.  
  447. $EWINI
  448.         LD      A,(IX+Delay)
  449.         LD      ($SPD+2),A
  450.         LD      ($CDE+1),HL
  451.  
  452.         LD      B,(IX+Scroll)
  453.         LD      C,B
  454.         LD      A,16
  455.  
  456.         RRCA
  457.         RRC     C
  458.         JR      NC,$-3
  459.  
  460.         LD      ($UPSCR+1),A
  461.         LD      ($DWSCR+1),A
  462.         LD      C,B
  463.         LD      H,(IX+Y_SIZE)
  464.         DEC     H
  465.         DEC     H
  466.         LD      D,(IX+Y_COOR)
  467.         INC     D
  468.         LD      E,(IX+X_COOR)
  469.         INC     E
  470.         LD      A,H
  471.         LD      ($Z2^+1),A
  472.         RLCA
  473.         RLCA
  474.         RLCA
  475.         SUB     B
  476.         LD      ($UP+1),A
  477.         LD      ($DOWN+1),A
  478.         LD      A,(IX+X_SIZE)
  479.         DEC     A
  480.         DEC     A
  481.         LD      ($LDIRR+1),A
  482.         EX      DE,HL
  483.         PUSH    HL
  484.         CALL    1$
  485.         LD      ($UPDE+1),HL
  486.  
  487.         CALL    $INCH
  488.         DJNZ    $-3
  489.  
  490.         LD      ($UPHL+1),HL
  491.         POP     HL
  492.         LD      A,H
  493.         ADD     A,D
  494.         LD      H,A
  495.         CALL    1$
  496.         CALL    $DECH
  497.         DEC     H
  498.         LD      ($DNDE+1),HL
  499.         LD      B,C
  500.  
  501.         CALL    $DECH
  502.         DEC     H
  503.         DJNZ    $-4
  504.  
  505.         LD      ($DNHL+1),HL
  506.         RET
  507. ;-----
  508. 1$
  509.         LD      A,H
  510.         RRCA
  511.         RRCA
  512.         RRCA
  513.         XOR     L
  514.         AND     #E0
  515.         XOR     L
  516.         LD      L,A
  517.         LD      A,H
  518.         AND     #18
  519.         OR      #40
  520.         LD      H,A
  521.         RET
  522. ;-----
  523. $INCH
  524.         INC     H    ; ROM
  525.         LD      A,7
  526.         AND     H
  527.         RET     NZ
  528.  
  529.         LD      A,#20
  530.         ADD     A,L
  531.         LD      L,A
  532.         RET     C
  533.  
  534.         LD      A,H
  535.         SUB     8
  536.         LD      H,A
  537.         RET
  538. ;**;**
  539.        endif
  540.