1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-08 15:29:37 +00:00

toascii.s added, doc updated, tgi_line & tgi_outtext are available

This commit is contained in:
jede 2017-10-22 23:06:56 +02:00
parent 2b7d4fff5a
commit 93f202850a
5 changed files with 117 additions and 13 deletions

View File

@ -152,7 +152,7 @@ SCREEN := $BB80
XRD0 = $08
XRDW0 = $0C
XWR0 = $10
XWSTR0 = $14
XWSTR0 = $14 ; write a string in text mode
XTEXT = $19
XHIRES = $1A
XFILLM = $1C
@ -165,14 +165,14 @@ XCSSCR = $35 ; switch on cursor
XCLOSE = $3A ; only in TELEMON 3.x Close file
XFWRITE = $3B ; only in TELEMON 3.x write file
XSONPS = $40
XOUPS = $42
XOUPS = $42 ; sends Oups sound into PSG
XPLAY = $43
XSOUND = $44
XMUSIC = $45
XZAP = $46
XSHOOT = $47
XSOUT = $67 ; Send A register to RS232, available in telemon 2.4 & 3.x
XHRSSE = $8C ; Put in X and Y
XHRSSE = $8C ; Set hires position cursor
XDRAWA = $8D ; Draw a line
XDRAWR = $8E ; Draw a line
XCIRCL = $8F
@ -184,7 +184,7 @@ XBOX = $94
XABOX = $95
XFILL = $96
XCHAR = $97
XSCHAR = $98 ; Draw a string
XSCHAR = $98 ; Draw a string in hires
XEXPLO = $9C
XPING = $9D

View File

@ -9,7 +9,7 @@
<date>2017-01-22
<abstract>
An overview over the Telestrat (Telemon 3.0 : http://orix.oric.org) runtime system as it is implemented for the cc65 C
An overview over the Telestrat (Telemon 2.4 & Telemon 3.x : http://orix.oric.org) runtime system as it is implemented for the cc65 C
compiler.)
</abstract>
@ -113,6 +113,21 @@ structures; accessing the struct fields will access the chip registers.
<sect>Loadable drivers<p>
<sect1>TGI<p>
TGI drivers is available on Oric Telestrat with some functions :
<itemize>
<item>
<item>tgi_install
<item>tgi_init
<item>tgi_clear
<item>tgi_setpixel
<item>tgi_getmaxx
<item>tgi_getmaxy
</itemize>
<sect1>Extended memory drivers<p>
No extended memory drivers are currently available for the Telestrat.
@ -139,7 +154,7 @@ Telestrat manages also mouse, but it had been no handled yet in this version.
<descrip>
Telestrat has a RS232 port, but it's not used
Telestrat has a RS232 port, but it's not usable in cc65.
</descrip>

View File

@ -286,9 +286,27 @@ GETPIXEL:
LINE:
; not done yet
lda X1
sta HRS1
lda Y1
sta HRS2
lda X2
sta HRS3
lda Y2
sta HRS4
lda #$ff
sta HRSPAT
BRK_TELEMON(XDRAWA)
rts
CIRCLE:
; not done yet
rts
@ -332,5 +350,25 @@ TEXTSTYLE:
;
OUTTEXT:
; not done yet
; put hires cursor in X & Y
lda #$00
jsr SETPIXELSETMODE
; count the length of the string
ldy #$00
loop:
lda (ptr3),y
beq out
iny
bne loop
out:
; XSCHAR routine from telemon needs to have the length of the string in X register
; copy Y register to X register. It could be optimized in 65C02 with TYX
tya
tax
lda ptr3 ; XSCHAR needs in A and Y the adress of the string
ldy ptr3+1
BRK_TELEMON(XSCHAR)
rts

View File

@ -125,7 +125,7 @@ INIT:
; Switch into graphics mode
BRK_TELEMON(XHIRES)
; Done, reset the error code
lda #TGI_ERR_OK
@ -248,14 +248,16 @@ GETDEFPALETTE:
;
SETPIXEL:
lda #$80 ; curset on
SETPIXELSETMODE:
sta HRSFB
lda X1
sta HRS1
lda Y1
sta HRS2
lda #$80 ; curset on
sta HRSFB
BRK_TELEMON(XCURSE)
@ -278,9 +280,24 @@ GETPIXEL:
;
LINE:
; not done yet
rts
lda X1
sta HRS1
lda Y1
sta HRS2
lda X2
sta HRS3
lda Y2
sta HRS4
lda #$ff
sta HRSPAT
BRK_TELEMON(XDRAWA)
rts
CIRCLE:
; not done yet
rts
@ -325,5 +342,25 @@ TEXTSTYLE:
;
OUTTEXT:
; Not done yet
; put hires cursor in X & Y
lda #$00
jsr SETPIXELSETMODE
; count the length of the string
ldy #$00
loop:
lda (ptr3),y
beq out
iny
bne loop
out:
; XSCHAR routine from telemon needs to have the length of the string in X register
; copy Y register to X register. It could be optimized in 65C02 with TYX
tya
tax
lda ptr3 ; XSCHAR needs in A and Y the adress of the string
ldy ptr3+1
BRK_TELEMON(XSCHAR)
rts

View File

@ -0,0 +1,14 @@
;
; char __fastcall__ toascii (char c);
; /* Convert a target-specific character to ASCII. */
;
.export _toascii
.proc _toascii
; .X must be zero, on return.
ldx #>$0000
rts
.endproc