Subversion Repositories NedoOS

Rev

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

  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
  86.         INC     D
  87.         LD      E,(IX+7)
  88.         LD      C,(IX+6)
  89.         ADD     A,B
  90.         ADD     A,(IX+1)
  91.         LD      B,A
  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
  113.         POP     BC
  114.         RET     Z
  115.  
  116.         CALL    PRWT5
  117.         PUSH    BC
  118.         LD      B,E
  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
  152.         POP     BC
  153.         RET     Z
  154.  
  155.         CALL    PRWT5
  156.         PUSH    BC
  157. PRWT3
  158.         LD      B,E
  159.         JR      PRWT6
  160. ;-----
  161. PRWT5
  162.         LD      A,D
  163.         PUSH    BC
  164.         EXX
  165.         POP     BC
  166.         SUB     B
  167.         NEG
  168.         LD      B,A
  169.         JP      sPRAD
  170. ;-----
  171. AWTCM
  172.         ADD     A,(IX+1)
  173.         LD      B,A
  174.         PUSH    BC
  175.         CALL    sWATRB
  176.         POP     BC
  177.         LD      A,C
  178.         LD      B,(IX+3)
  179.         RET
  180. ;-----
  181. sAWT
  182.         LD      C,B
  183.         CALL    AWTCM
  184. AWT_1
  185.         LD      (DE),A
  186.         INC     DE
  187.         DJNZ    $-2
  188.         RET
  189. ;-----
  190. sAWTC
  191.         LD      C,B
  192.         CALL    AWTCM
  193.         DEC     B
  194.         DEC     B
  195.         INC     DE
  196.         JR      AWT_1
  197. ;-----
  198. sDRAW
  199.         LD      B,L
  200.         LD      A,(IX+4)
  201. DRAW_1
  202.         LD      (DE),A
  203.         INC     E
  204.         DJNZ    $-2
  205.  
  206.         RET
  207. ;-----
  208.        if 0
  209. $PYXEL
  210.        LD   DE,#5800
  211.         ADD     HL,DE
  212.         EX      DE,HL
  213.         JR      DRAW_1
  214.        endif
  215. ;-----
  216. sWATRB ;TODO переделать под textmode
  217.         LD      C,(IX)
  218.         CALL    sADDR
  219.         EXX
  220.         LD      A,D
  221.         AND     #18
  222.         RRCA
  223.         RRCA
  224.         RRCA
  225.         OR      #58
  226.         LD      D,A
  227.         RET
  228. ;-----
  229. sAT_NEXT ;TODO переделать под textmode
  230.         EX      AF,AF'
  231.         LD      A,E
  232.         SUB     L
  233.         ADD     A,#20
  234.         LD      E,A
  235.         JR      NC,$+3
  236.  
  237.         INC     D
  238.  
  239.         EX      AF,AF'
  240.         RET
  241. ;-----
  242. sATRB ;TODO переделать под textmode
  243.         PUSH    AF
  244.         EXX
  245.         LD      C,E
  246.         LD      A,D
  247.         RRCA
  248.         RRCA
  249.         RRCA
  250.         AND     3
  251.         OR      #58
  252.         LD      B,A
  253.         POP     AF
  254.         LD      (BC),A
  255.         EXX
  256.         RET
  257. ;-----
  258. sADDR ;TODO переделать под textmode
  259.         LD      A,B
  260.         RRCA
  261.         RRCA
  262.         RRCA
  263.         AND     #E0
  264.         LD      L,A
  265.         LD      A,B
  266.         AND     #18
  267.         OR      #40
  268.         LD      H,A
  269.         LD      B,0
  270.         ADD     HL,BC
  271.         EX      DE,HL
  272.         EXX
  273.         RET
  274. ;-----
  275. sSPACE ;TODO переделать под textmode
  276.         EXX
  277.         XOR     A
  278.         LD      B,D
  279.         LD      (DE),A
  280.         INC     D
  281.         LD      (DE),A
  282.         INC     D
  283.         LD      (DE),A
  284.         INC     D
  285.         LD      (DE),A
  286.         INC     D
  287.         LD      (DE),A
  288.         INC     D
  289.         LD      (DE),A
  290.         INC     D
  291.         LD      (DE),A
  292.         INC     D
  293.         LD      (DE),A
  294.         INC     D
  295.         INC     E
  296.         JR      Z,$+3
  297.  
  298.         LD      D,B
  299.  
  300.         EXX
  301.         RET
  302. ;-----
  303.        if 0
  304. $CLS
  305.         OR      A
  306.         JR      NZ,1$
  307.  
  308.         LD      HL,#4000
  309.         LD      BC,#17FF
  310.         CALL    2$
  311.         LD      A,($PAPER)
  312.         CALL    1$
  313.         LD      BC,$ABORD
  314.         LD      A,($BORD)
  315.         AND     7
  316.         OUT     (C),A
  317.         RET
  318. ;-----
  319. 1$
  320.         LD      HL,#5800
  321.         LD      BC,#2FF
  322. 2$
  323.         LD      (HL),A
  324.         LD      E,L
  325.         LD      D,H
  326.         INC     DE
  327.         LDIR
  328.         RET
  329.        endif
  330. ;-----
  331.  
  332.        if 0
  333. ; 29.10.94  16:41 ROM
  334. ; 24.11.92   0:13 -BEEP
  335. ; 13.11.92   1:20 DI, EI
  336. ; 11.11.92  21:15 Y_+^ON
  337. ; 29.11.90  22:30
  338.  
  339. ; hmnwt.as
  340. ;=242/346/329/351
  341. $Y____
  342.         DI
  343.         EXX
  344.         LD      BC,($XYpos)
  345. ;Setcr
  346.         LD      A,B
  347.         LD      ($XSCRS+1),A
  348.         LD      A,($BYTST)
  349.         LD      B,A
  350.         XOR     A
  351.  
  352.         ADD     A,C
  353.         DJNZ    $-1
  354.  
  355.         LD      ($XSCRS),A
  356.         EXX
  357.         CALL    $PUTCR
  358.         OR      -1
  359.         LD      HL,$CURS
  360.         LD      C,l_im2
  361.         RST     16
  362.         CALL    $ONCUR
  363.         EI
  364.         RET
  365. ;-----
  366. $N____
  367.         DI
  368.         XOR     A
  369.         LD      HL,$CURS
  370.         LD      C,l_im2
  371.         RST     16
  372.         PUSH    AF
  373.         CALL    $GETCR
  374.         POP     AF
  375.         EI
  376.         RET
  377. ;-----
  378. $CONYX
  379.         PUSH    DE
  380.         POP     HL
  381.         SRL     H
  382.         RR      L
  383.         SRL     H
  384.         RR      L
  385.         SRL     H
  386.         RR      L
  387.         LD      A,D
  388.         AND     #18
  389.         OR      #47 ;7-NOMER  BYTE V LITERE ,PO KOTOROI POLZAET KURSOR
  390.         LD      H,A
  391.         RET
  392. ;______
  393. $INNI
  394.         LD      A,($BYTST)
  395.         LD      B,A
  396.         LD      DE,($XSCRS)
  397.         RET
  398. ;-----
  399.         IF      0
  400.  
  401.         DEFB    -1,#1F,1,1
  402. VCT
  403.         DEFB    2,3,15,20
  404.  
  405.         LD      IX,VCT
  406.         CALL    $EWINI
  407.  
  408.         CALL    $UPSCR
  409.         CALL    $UPSCR
  410.         CALL    $UPSCR
  411.         CALL    $UPSCR
  412.         CALL    $UPSCR
  413.         CALL    $UPSCR
  414.         RET
  415.         ENDIF
  416.  
  417. ; 24.10.91  03:11 PSKOV
  418.  
  419. ;      rolwt.as
  420.  
  421. ;LFT    EQU  -4
  422. ;RT     EQU  -3
  423. Delay   EQU     -2
  424. Scroll  EQU     -1;8,4,2 OR 1
  425. X_COOR  EQU     0 ;UPlefr UGL
  426. Y_COOR  EQU     1 ;KOORD.
  427. Y_SIZE  EQU     2 ;RAZMER
  428. X_SIZE  EQU     3 ;OKNA
  429.  
  430. $EWINI
  431.         LD      A,(IX+Delay)
  432.         LD      ($SPD+2),A
  433.         LD      ($CDE+1),HL
  434.  
  435.         LD      B,(IX+Scroll)
  436.         LD      C,B
  437.         LD      A,16
  438.  
  439.         RRCA
  440.         RRC     C
  441.         JR      NC,$-3
  442.  
  443.         LD      ($UPSCR+1),A
  444.         LD      ($DWSCR+1),A
  445.         LD      C,B
  446.         LD      H,(IX+Y_SIZE)
  447.         DEC     H
  448.         DEC     H
  449.         LD      D,(IX+Y_COOR)
  450.         INC     D
  451.         LD      E,(IX+X_COOR)
  452.         INC     E
  453.         LD      A,H
  454.         LD      ($Z2^+1),A
  455.         RLCA
  456.         RLCA
  457.         RLCA
  458.         SUB     B
  459.         LD      ($UP+1),A
  460.         LD      ($DOWN+1),A
  461.         LD      A,(IX+X_SIZE)
  462.         DEC     A
  463.         DEC     A
  464.         LD      ($LDIRR+1),A
  465.         EX      DE,HL
  466.         PUSH    HL
  467.         CALL    1$
  468.         LD      ($UPDE+1),HL
  469.  
  470.         CALL    $INCH
  471.         DJNZ    $-3
  472.  
  473.         LD      ($UPHL+1),HL
  474.         POP     HL
  475.         LD      A,H
  476.         ADD     A,D
  477.         LD      H,A
  478.         CALL    1$
  479.         CALL    $DECH
  480.         DEC     H
  481.         LD      ($DNDE+1),HL
  482.         LD      B,C
  483.  
  484.         CALL    $DECH
  485.         DEC     H
  486.         DJNZ    $-4
  487.  
  488.         LD      ($DNHL+1),HL
  489.         RET
  490. ;-----
  491. 1$
  492.         LD      A,H
  493.         RRCA
  494.         RRCA
  495.         RRCA
  496.         XOR     L
  497.         AND     #E0
  498.         XOR     L
  499.         LD      L,A
  500.         LD      A,H
  501.         AND     #18
  502.         OR      #40
  503.         LD      H,A
  504.         RET
  505. ;-----
  506. $INCH
  507.         INC     H    ; ROM
  508.         LD      A,7
  509.         AND     H
  510.         RET     NZ
  511.  
  512.         LD      A,#20
  513.         ADD     A,L
  514.         LD      L,A
  515.         RET     C
  516.  
  517.         LD      A,H
  518.         SUB     8
  519.         LD      H,A
  520.         RET
  521. ;**;**
  522.        endif
  523.