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
Wrap
Text File
|
2001-07-29
|
5KB
|
222 lines
;╨ROCEDURY GRAFICZNE DLA ╓─├ 64K
;DOWOLNY TRYB
;TERAZ - 640X256 BEZ INTERLACE'A
;┘╘═/┴LLIANCE ALIAS ═ACIEJ ╫ITKOWIAK
;18-19.01.1998, 13.03.1998, 26.03.1998
SCRBASE = $00 ;POCZATEK EKRANU VDC
LINE = 80 ;LICZBA KOLUMN
VLINE = 255 ;LICZBA LINII
POMV = $FA
POMH = $FB
PL = $FC
PH = $FD
SL = $FE
SH = $FF
*= $1300
JMP INITVDC
JMP CLS
JMP SETPOINT
JMP LDSCR
JMP SVSCR
;---------------------------------------
;CLS - CZYSCI EKRAN GRAFICZNY
;---------------------------------------
CLS LDA #<SCRBASE
LDY #>SCRBASE
JSR SETADDY
LDY #0
STY SL
CLLP1 LDA #0
CLLP0 JSR BTOVDC
INY
BNE CLLP0
INC SL
LDA SL
CMP #>(LINE*VLINE)+$0100
BNE CLLP1
RTS
;---------------------------------------
;INITVDC - WLACZA EKRAN GRAFICZNY I INI-
; CJUJE VDC
;---------------------------------------
INITVDC LDY #0
INILP LDX INITAB,Y
BMI INIEND
INY
LDA INITAB,Y
JSR TOVDC
INY
BNE INILP
INIEND RTS
INITAB .BYTE $00,$7E,$02,$64
.BYTE $01,LINE
.BYTE $03,$49,$04,$28,$05,$E1
.BYTE $06,(VLINE/8)+1
.BYTE $07,$24,$08,$FC
.BYTE $09,$E7,$0A,$20,$0B,$07
.BYTE $0C,>SCRBASE
.BYTE $0D,<SCRBASE
.BYTE $0E,$00
.BYTE $0F,$00,$14,$08,$15,$00
.BYTE $17,$08,$18,$20,$19,$87
.BYTE $1A,$F0,$1B,$00,$1C,$FF
.BYTE $1D,$07,$22,$70,$23,$64
.BYTE $24,$F0,$16,$78
.BYTE $FF
;---------------------------------------
;SETPOINT: $0AXX - X; $YY - Y
;---------------------------------------
SETPOINT STA PH
STX MEMX
STX PL
LDA LNTABL,Y
STA SL
LDA LNTABH,Y
STA SH
LDY PL
LDA DIV8L,Y
STA PL
LDY PH
LDA DIV8H,Y
CLC
ADC PL
ADC SL
STA SL
LDA SH
ADC #0
STA SH
LDA MEMX
AND #%00000111
TAX
LDA BITAB,X
STA MEMEOR+1
LDA SL
LDY SH
JSR SETADDY
JSR BFROMVDC
MEMEOR EOR #1
PHA
LDA SL
LDY SH
JSR SETADDY
PLA
JSR BTOVDC
RTS
;---------------------------------------
;LDSCR - LADUJE EKRAN Z VDC POD $YYAA
;---------------------------------------
LDSCR STA SL
STY SH
LDA #<SCRBASE
LDY #>SCRBASE
JSR SETADDY
LDY #0
STY POMV
STY POMH
LSLP0 LDY #0
LSLP1 JSR BFROMVDC
STA (SL),Y
INC SL
BNE *+4
INC SH
INC POMH
LDA POMH
CMP #LINE
BNE LSLP1
LDA #0
STA POMH
INC POMV
LDA POMV
CMP #VLINE
BNE LSLP0
RTS
;---------------------------------------
;SVSCR - LADUJE EKRAN DO VDC SPOD $YYAA
;---------------------------------------
SVSCR STA SL
STY SH
LDA #<SCRBASE
LDY #>SCRBASE
JSR SETADDY
LDY #0
STY POMV
STY POMH
SSLP0 LDY #0
SSLP1 LDA (SL),Y
JSR BTOVDC
INC SL
BNE *+4
INC SH
INC POMH
LDA POMH
CMP #LINE
BNE SSLP1
LDA #0
STA POMH
INC POMV
LDA POMV
CMP #VLINE
BNE SSLP0
RTS
;---------------------------------------
SETADDY LDX #18
PHA
TYA
JSR TOVDC
INX
PLA
JSR TOVDC
RTS
BFROMVDC LDX #$1F
FROMVDC STX $D600
BIT $D600
BPL *-3
LDA $D601
RTS
BTOVDC LDX #$1F
TOVDC STX $D600
BIT $D600
BPL *-3
STA $D601
RTS
;---------------------------------------
MEMX .BYTE 0
;---------------------------------------
BITAB .BYTE $80,$40,$20,$10
.BYTE $08,$04,$02,$01
;---------------------------------------
LNTABL
.BLOCK
CO .VAR 0
ASSLB .LBL
.BYTE <SCRBASE+(CO*LINE)
CO .VAR CO+1
.IF CO-VLINE-1
.GOTO LBL
DO-V( .LBL
ICIT+Y CO+1
0ADDY
8 JSR 0 ST0
ASSLB .LBL
.BYTE <SCRBASE+(CO*LINE)
CO .VAR CO,CO,CO,CO)
CO .VAR CO,CO,CO,CO) CO-VLINE-1
.GOTO LBL
DO-V(32L
ICIT+Y CO+1
0ADDY
8 JSR 0 SH .VAR 2 BPL