From 4e0958eae6a8ff3361506aea09c1fb356ac46e93 Mon Sep 17 00:00:00 2001 From: jede Date: Tue, 14 Nov 2017 22:04:57 +0100 Subject: [PATCH 1/4] Bug corrected : Fwrite did not return number of byte written. --- libsrc/telestrat/write.s | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/libsrc/telestrat/write.s b/libsrc/telestrat/write.s index 8c2bc08f7..4e059a311 100644 --- a/libsrc/telestrat/write.s +++ b/libsrc/telestrat/write.s @@ -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 From e34ef0fc17378df795a1fa01c2cefae0abb34d09 Mon Sep 17 00:00:00 2001 From: jede Date: Sat, 14 Apr 2018 21:52:11 +0200 Subject: [PATCH 2/4] add cputc & remove --- asminc/telestrat.inc | 3 ++- libsrc/telestrat/cputc.s | 16 ++++++++++++++++ libsrc/telestrat/sysremove.s | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 libsrc/telestrat/cputc.s create mode 100644 libsrc/telestrat/sysremove.s diff --git a/asminc/telestrat.inc b/asminc/telestrat.inc index cb28919c2..956d31be3 100644 --- a/asminc/telestrat.inc +++ b/asminc/telestrat.inc @@ -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 diff --git a/libsrc/telestrat/cputc.s b/libsrc/telestrat/cputc.s new file mode 100644 index 000000000..d107446c3 --- /dev/null +++ b/libsrc/telestrat/cputc.s @@ -0,0 +1,16 @@ +; 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 + diff --git a/libsrc/telestrat/sysremove.s b/libsrc/telestrat/sysremove.s new file mode 100644 index 000000000..565dfc111 --- /dev/null +++ b/libsrc/telestrat/sysremove.s @@ -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 From 626fed88b7b3bd30390be7b6e8da31581b6e8a9c Mon Sep 17 00:00:00 2001 From: jede Date: Sat, 14 Apr 2018 22:05:03 +0200 Subject: [PATCH 3/4] chline added --- libsrc/telestrat/chline.s | 22 ++++++++++++++++++++++ libsrc/telestrat/cputc.s | 1 - 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 libsrc/telestrat/chline.s diff --git a/libsrc/telestrat/chline.s b/libsrc/telestrat/chline.s new file mode 100644 index 000000000..16e57d5fd --- /dev/null +++ b/libsrc/telestrat/chline.s @@ -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 + diff --git a/libsrc/telestrat/cputc.s b/libsrc/telestrat/cputc.s index d107446c3..b4f2966a4 100644 --- a/libsrc/telestrat/cputc.s +++ b/libsrc/telestrat/cputc.s @@ -5,7 +5,6 @@ ; .export _cputc - .include "telestrat.inc" From cc2b5af6014a2ab60ed8cf446eca382039ffd727 Mon Sep 17 00:00:00 2001 From: jede Date: Mon, 16 Apr 2018 21:51:15 +0200 Subject: [PATCH 4/4] Fix comment --- libsrc/telestrat/chline.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsrc/telestrat/chline.s b/libsrc/telestrat/chline.s index 16e57d5fd..6ead10eee 100644 --- a/libsrc/telestrat/chline.s +++ b/libsrc/telestrat/chline.s @@ -13,7 +13,7 @@ .proc _chline sta tmp1 @loop: - lda #'-' ; Horizontal line screen code + lda #'-' ; horizontal line screen code BRK_TELEMON XWR0 ; macro send char to screen (channel 0 in telemon terms) dec tmp1 bne @loop