From a1c8860f63132f34258053bb90884b35ff264022 Mon Sep 17 00:00:00 2001 From: jede Date: Sun, 1 Oct 2017 23:23:03 +0200 Subject: [PATCH 1/4] telestrat : cgetc add for conio --- libsrc/telestrat/cgetc.s | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 libsrc/telestrat/cgetc.s diff --git a/libsrc/telestrat/cgetc.s b/libsrc/telestrat/cgetc.s new file mode 100644 index 000000000..85ea4fccb --- /dev/null +++ b/libsrc/telestrat/cgetc.s @@ -0,0 +1,15 @@ +; +; jede jede@oric.org 2017-10-01 +; + .export _cgetc + + .include "telestrat.inc" + +.proc _cgetc +loop: + BRK_TELEMON XRD0 + bcc key_pressed + jmp loop +key_pressed: + rts +.endproc From 56360ea0542bffc8f3143b770180dca6ed78401e Mon Sep 17 00:00:00 2001 From: jede Date: Mon, 2 Oct 2017 12:20:52 +0200 Subject: [PATCH 2/4] optimize --- libsrc/telestrat/cgetc.s | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libsrc/telestrat/cgetc.s b/libsrc/telestrat/cgetc.s index 85ea4fccb..591f966bc 100644 --- a/libsrc/telestrat/cgetc.s +++ b/libsrc/telestrat/cgetc.s @@ -8,8 +8,6 @@ .proc _cgetc loop: BRK_TELEMON XRD0 - bcc key_pressed - jmp loop -key_pressed: + bcs loop rts .endproc From ff12835ee2f59ff147b67f9e8d194b46fea02f94 Mon Sep 17 00:00:00 2001 From: jede Date: Sun, 8 Oct 2017 18:11:09 +0200 Subject: [PATCH 3/4] Adding cgetc --- libsrc/telestrat/cgetc.s | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libsrc/telestrat/cgetc.s b/libsrc/telestrat/cgetc.s index 591f966bc..9bdbf4818 100644 --- a/libsrc/telestrat/cgetc.s +++ b/libsrc/telestrat/cgetc.s @@ -3,9 +3,24 @@ ; .export _cgetc + .import cursor + + .include "telestrat.inc" .proc _cgetc + ; this routine could be quicker if we wrote in page 2 variables, but it's better to use telemon routine in that case, because telemon can manage 4 I/O + lda cursor ; if cursor equal to 0, then switch off cursor + beq switchoff_cursor + + ldx #$00 ; x is the first screen + BRK_TELEMON(XCSSCR) ; display cursor + jmp loop ; could be replaced by a bne/beq but 'jmp' is cleaner than a bne/beq which could expect some + +switchoff_cursor: + ldx #$00 ; x is the first screen + BRK_TELEMON(XCOSCR) ; switch off cursor + loop: BRK_TELEMON XRD0 bcs loop From a01c8c238c44195f3e13226c9d3ca9efd10d7fc6 Mon Sep 17 00:00:00 2001 From: jede Date: Sun, 8 Oct 2017 18:14:26 +0200 Subject: [PATCH 4/4] Correcting comments --- libsrc/telestrat/cgetc.s | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libsrc/telestrat/cgetc.s b/libsrc/telestrat/cgetc.s index 9bdbf4818..2b0fc7758 100644 --- a/libsrc/telestrat/cgetc.s +++ b/libsrc/telestrat/cgetc.s @@ -4,25 +4,25 @@ .export _cgetc .import cursor - .include "telestrat.inc" .proc _cgetc - ; this routine could be quicker if we wrote in page 2 variables, but it's better to use telemon routine in that case, because telemon can manage 4 I/O - lda cursor ; if cursor equal to 0, then switch off cursor + ; this routine could be quicker if we wrote in page 2 variables, + ; but it's better to use telemon routine in that case, because telemon can manage 4 I/O + lda cursor ; if cursor equal to 0, then switch off cursor beq switchoff_cursor ldx #$00 ; x is the first screen BRK_TELEMON(XCSSCR) ; display cursor - jmp loop ; could be replaced by a bne/beq but 'jmp' is cleaner than a bne/beq which could expect some + jmp loop ; could be replaced by a bne/beq but 'jmp' is cleaner than a bne/beq which could expect some matters switchoff_cursor: ldx #$00 ; x is the first screen BRK_TELEMON(XCOSCR) ; switch off cursor loop: - BRK_TELEMON XRD0 + BRK_TELEMON XRD0 ; waits until key is pressed bcs loop rts .endproc