1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-17 00:29:31 +00:00

Merge pull request #627 from jedeoric/master

[Telestrat target] fix fwrite bug, cputc, chline, remove & mkdir added
This commit is contained in:
Oliver Schmidt 2018-04-16 22:46:56 +02:00 committed by GitHub
commit d314a27e76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 73 additions and 9 deletions

View File

@ -172,7 +172,8 @@ XMUSIC = $45
XZAP = $46
XSHOOT = $47
XMKDIR = $4B ; create a folder. Only available in telemon 3.x
XSOUT = $67 ; send A register to RS232, available in telemon 2.4 & 3.x
XRM = $4D ; remove a folder or a file. Only available in telemon 3.x
XSOUT = $67 ; send accumulator value (A) to RS232, available in telemon 2.4 & 3.x : if RS232 buffer is full, the Oric Telestrat freezes
XHRSSE = $8C ; set hires position cursor
XDRAWA = $8D ; draw a line
XDRAWR = $8E ; draw a line

22
libsrc/telestrat/chline.s Normal file
View File

@ -0,0 +1,22 @@
;
; jede jede@oric.org 2018-04-17
;
; void chline (unsigned char length);
;
.export _chline
.include "telestrat.inc"
.include "zeropage.inc"
.proc _chline
sta tmp1
@loop:
lda #'-' ; horizontal line screen code
BRK_TELEMON XWR0 ; macro send char to screen (channel 0 in telemon terms)
dec tmp1
bne @loop
rts
.endproc

15
libsrc/telestrat/cputc.s Normal file
View File

@ -0,0 +1,15 @@
; 2018-04-13, Jede (jede@oric.org)
;
; void cputc (char c);
;
.export _cputc
.include "telestrat.inc"
.proc _cputc
BRK_TELEMON XWR0 ; macro send char to screen (channel 0 in telemon terms)
rts
.endproc

View File

@ -0,0 +1,16 @@
;
; Jede, 10.11.2017
;
; unsigned char __fastcall__ _sysremove (const char* name);
;
.export __sysremove
.include "zeropage.inc"
.include "telestrat.inc"
__sysremove:
; Push name
BRK_TELEMON(XRM)
rts

View File

@ -17,7 +17,7 @@
sta ptr2
txa
eor #$FF
sta ptr2+1 ; Remember -count-1
sta ptr2+1 ; remember -count-1
jsr popax ; get buf
sta ptr1
@ -32,7 +32,7 @@ next:
cmp #1
beq L1
; Here it's a file opened
; here it's a file opened
lda ptr1
sta PTR_READ_DEST
lda ptr1+1
@ -40,6 +40,16 @@ next:
lda ptr3
ldy ptr3+1
BRK_TELEMON XFWRITE
; compute nb of bytes written
lda PTR_READ_DEST+1
sec
sbc ptr1+1
tax
lda PTR_READ_DEST
sec
sbc ptr1
rts
@ -50,23 +60,23 @@ L1: inc ptr2
L2: ldy #0
lda (ptr1),y
tax
cpx #$0A ; Check for \n
cpx #$0A ; check for \n
bne L3
BRK_TELEMON XWR0 ; Macro send char to screen (channel 0 in telemon terms)
lda #$0D ; return to the beggining of the line
BRK_TELEMON XWR0 ; Macro ;
BRK_TELEMON XWR0 ; macro send char to screen (channel 0 in telemon terms)
lda #$0D ; return to the beggining of the line
BRK_TELEMON XWR0 ; macro
ldx #$0D
L3:
BRK_TELEMON XWR0 ; Macro
BRK_TELEMON XWR0 ; macro
inc ptr1
bne L1
inc ptr1+1
jmp L1
; No error, return count
; No error, return count
L9: lda ptr3
ldx ptr3+1