home *** CD-ROM | disk | FTP | other *** search
/ ftp.elysium.pl / ftp.elysium.pl.tar / ftp.elysium.pl / gnu-generation / YTM / vdc-graph.src.gz / vdc-graph.src
Text File  |  2001-07-29  |  5KB  |  222 lines

  1. ;╨ROCEDURY GRAFICZNE DLA ╓─├ 64K
  2. ;DOWOLNY TRYB
  3. ;TERAZ - 640X256 BEZ INTERLACE'A
  4. ;┘╘═/┴LLIANCE ALIAS ═ACIEJ ╫ITKOWIAK
  5. ;18-19.01.1998, 13.03.1998, 26.03.1998
  6.  
  7. SCRBASE    = $00    ;POCZATEK EKRANU VDC
  8. LINE       = 80     ;LICZBA KOLUMN
  9. VLINE      = 255    ;LICZBA LINII
  10.  
  11. POMV       = $FA
  12. POMH       = $FB
  13. PL         = $FC
  14. PH         = $FD
  15. SL         = $FE
  16. SH         = $FF
  17.  
  18.            *= $1300
  19.  
  20.            JMP INITVDC
  21.            JMP CLS
  22.            JMP SETPOINT
  23.            JMP LDSCR
  24.            JMP SVSCR
  25. ;---------------------------------------
  26. ;CLS - CZYSCI EKRAN GRAFICZNY
  27. ;---------------------------------------
  28. CLS        LDA #<SCRBASE
  29.            LDY #>SCRBASE
  30.            JSR SETADDY
  31.            LDY #0
  32.            STY SL
  33. CLLP1      LDA #0
  34. CLLP0      JSR BTOVDC
  35.            INY
  36.            BNE CLLP0
  37.            INC SL
  38.            LDA SL
  39.            CMP #>(LINE*VLINE)+$0100
  40.            BNE CLLP1
  41.            RTS
  42. ;---------------------------------------
  43. ;INITVDC - WLACZA EKRAN GRAFICZNY I INI-
  44. ;          CJUJE VDC
  45. ;---------------------------------------
  46. INITVDC    LDY #0
  47. INILP      LDX INITAB,Y
  48.            BMI INIEND
  49.            INY
  50.            LDA INITAB,Y
  51.            JSR TOVDC
  52.            INY
  53.            BNE INILP
  54. INIEND     RTS
  55.  
  56. INITAB     .BYTE $00,$7E,$02,$64
  57.            .BYTE $01,LINE
  58.            .BYTE $03,$49,$04,$28,$05,$E1
  59.            .BYTE $06,(VLINE/8)+1
  60.            .BYTE $07,$24,$08,$FC
  61.            .BYTE $09,$E7,$0A,$20,$0B,$07
  62.            .BYTE $0C,>SCRBASE
  63.            .BYTE $0D,<SCRBASE
  64.            .BYTE $0E,$00
  65.            .BYTE $0F,$00,$14,$08,$15,$00
  66.            .BYTE $17,$08,$18,$20,$19,$87
  67.            .BYTE $1A,$F0,$1B,$00,$1C,$FF
  68.            .BYTE $1D,$07,$22,$70,$23,$64
  69.            .BYTE $24,$F0,$16,$78
  70.            .BYTE $FF
  71. ;---------------------------------------
  72. ;SETPOINT: $0AXX - X; $YY - Y
  73. ;---------------------------------------
  74. SETPOINT   STA PH
  75.            STX MEMX
  76.            STX PL
  77.  
  78.            LDA LNTABL,Y
  79.            STA SL
  80.            LDA LNTABH,Y
  81.            STA SH
  82.            LDY PL
  83.            LDA DIV8L,Y
  84.            STA PL
  85.            LDY PH
  86.            LDA DIV8H,Y
  87.            CLC
  88.            ADC PL
  89.            ADC SL
  90.            STA SL
  91.            LDA SH
  92.            ADC #0
  93.            STA SH
  94.            LDA MEMX
  95.            AND #%00000111
  96.            TAX
  97.            LDA BITAB,X
  98.            STA MEMEOR+1
  99.            LDA SL
  100.            LDY SH
  101.            JSR SETADDY
  102.            JSR BFROMVDC
  103.  
  104. MEMEOR     EOR #1
  105.  
  106.            PHA
  107.            LDA SL
  108.            LDY SH
  109.            JSR SETADDY
  110.            PLA
  111.            JSR BTOVDC
  112.            RTS
  113. ;---------------------------------------
  114. ;LDSCR - LADUJE EKRAN Z VDC POD $YYAA
  115. ;---------------------------------------
  116. LDSCR      STA SL
  117.            STY SH
  118.            LDA #<SCRBASE
  119.            LDY #>SCRBASE
  120.            JSR SETADDY
  121.            LDY #0
  122.            STY POMV
  123.            STY POMH
  124. LSLP0      LDY #0
  125. LSLP1      JSR BFROMVDC
  126.            STA (SL),Y
  127.            INC SL
  128.            BNE *+4
  129.            INC SH
  130.            INC POMH
  131.            LDA POMH
  132.            CMP #LINE
  133.            BNE LSLP1
  134.            LDA #0
  135.            STA POMH
  136.            INC POMV
  137.            LDA POMV
  138.            CMP #VLINE
  139.            BNE LSLP0
  140.            RTS
  141. ;---------------------------------------
  142. ;SVSCR - LADUJE EKRAN DO VDC SPOD $YYAA
  143. ;---------------------------------------
  144. SVSCR      STA SL
  145.            STY SH
  146.            LDA #<SCRBASE
  147.            LDY #>SCRBASE
  148.            JSR SETADDY
  149.            LDY #0
  150.            STY POMV
  151.            STY POMH
  152. SSLP0      LDY #0
  153. SSLP1      LDA (SL),Y
  154.            JSR BTOVDC
  155.            INC SL
  156.            BNE *+4
  157.            INC SH
  158.            INC POMH
  159.            LDA POMH
  160.            CMP #LINE
  161.            BNE SSLP1
  162.            LDA #0
  163.            STA POMH
  164.            INC POMV
  165.            LDA POMV
  166.            CMP #VLINE
  167.            BNE SSLP0
  168.            RTS
  169. ;---------------------------------------
  170. SETADDY    LDX #18
  171.            PHA
  172.            TYA
  173.            JSR TOVDC
  174.            INX
  175.            PLA
  176.            JSR TOVDC
  177.            RTS
  178.  
  179. BFROMVDC   LDX #$1F
  180. FROMVDC    STX $D600
  181.            BIT $D600
  182.            BPL *-3
  183.            LDA $D601
  184.            RTS
  185.  
  186. BTOVDC     LDX #$1F
  187. TOVDC      STX $D600
  188.            BIT $D600
  189.            BPL *-3
  190.            STA $D601
  191.            RTS
  192. ;---------------------------------------
  193. MEMX       .BYTE 0
  194. ;---------------------------------------
  195. BITAB      .BYTE $80,$40,$20,$10
  196.            .BYTE $08,$04,$02,$01
  197. ;---------------------------------------
  198. LNTABL
  199.            .BLOCK
  200. CO         .VAR 0
  201. ASSLB      .LBL
  202.            .BYTE <SCRBASE+(CO*LINE)
  203. CO         .VAR CO+1
  204.            .IF CO-VLINE-1
  205.            .GOTO LBL
  206.  DO-V(    .LBL
  207.        ICIT+Y CO+1
  208.        0ADDY
  209.          
  210. 8          JSR 0   ST0
  211. ASSLB      .LBL
  212.            .BYTE <SCRBASE+(CO*LINE)
  213. CO         .VAR CO,CO,CO,CO)
  214. CO         .VAR CO,CO,CO,CO) CO-VLINE-1
  215.            .GOTO LBL
  216.  DO-V(32L
  217.        ICIT+Y CO+1
  218.        0ADDY
  219.          
  220. 8          JSR 0   SH       .VAR      2  BPL
  221.  
  222.