prepare osic1p cpeekc/cpeekcolor/cpeekrevers, replaces #532

This commit is contained in:
mrdudz
2025-05-25 01:38:32 +02:00
parent 8d42c4a8c5
commit 5c72deb0b9
5 changed files with 47 additions and 3 deletions

17
libsrc/osic1p/cpeekc.s Normal file
View File

@@ -0,0 +1,17 @@
;
; 2017-06-21, Greg King
;
; char cpeekc (void);
;
; Get a character from OSI C1P screen RAM.
;
.export _cpeekc
.include "extzp.inc"
_cpeekc:
ldy CURS_X
lda (SCREEN_PTR),y
ldx #>$0000
rts

View File

@@ -0,0 +1,8 @@
;
; 2017-06-03, Greg King
;
; unsigned char cpeekcolor (void);
;
.import return1
.export _cpeekcolor := return1 ; always COLOR_WHITE

View File

@@ -0,0 +1,9 @@
;
; 2017-06-15, Greg King
;
; unsigned char cpeekrevers (void);
;
; Get a reverse attribute from screen RAM
;
.import return0
.export _cpeekrevers := return0 ; No attribute

View File

@@ -624,6 +624,7 @@ EXELIST_pce = \
# stroserror-test strqtok-test uname-test # stroserror-test strqtok-test uname-test
EXELIST_osic1p = \ EXELIST_osic1p = \
minimal \ minimal \
conio \
cursor \ cursor \
mul-test mul-test

View File

@@ -15,12 +15,16 @@
#include <stdlib.h> #include <stdlib.h>
#include <joystick.h> #include <joystick.h>
#if defined(__GAMATE__) #if defined(__GAMATE__) || defined(__OSIC1P__)
/* there is not enough screen space to show all 256 characters at the bottom */ /* there is not enough screen space to show all 256 characters at the bottom */
#define NUMCHARS 128 #define NUMCHARS 128
#define NUMCOLS 4
#else #else
#define NUMCHARS 256 #define NUMCHARS 256
#endif
#if defined(__GAMATE__)
#define NUMCOLS 4
#else
#define NUMCOLS 16 #define NUMCOLS 16
#endif #endif
@@ -79,6 +83,7 @@ void peektest(void)
revers(rbuf[j]); revers(rbuf[j]);
cputc(buf[j]); cputc(buf[j]);
} }
#if !defined (__OSIC1P__)
gotoxy(0, LINE_PEEKTEST); gotoxy(0, LINE_PEEKTEST);
cpeeks(buf, NUMCOLS); cpeeks(buf, NUMCOLS);
(void)textcolor(1); (void)textcolor(1);
@@ -87,6 +92,7 @@ void peektest(void)
for (j = 0; j < NUMCOLS; ++j) { for (j = 0; j < NUMCOLS; ++j) {
cputc(buf[j]); cputc(buf[j]);
} }
#endif
} }
void main(void) void main(void)
@@ -134,7 +140,8 @@ void main(void)
} }
} }
gotoxy(0, ysize - 2 - ((NUMCHARS + xsize) / xsize)); gotoxy(0, ysize - 3 - ((NUMCHARS + xsize) / xsize));
// one line with 0123..pattern
revers(1); revers(1);
for (i = 0; i < xsize; ++i) { for (i = 0; i < xsize; ++i) {
cputc('0' + i % 10); cputc('0' + i % 10);
@@ -147,9 +154,11 @@ void main(void)
cputc(' '); cputc(' ');
} }
} }
// fill last line of the block with '#'
while(wherex() > 0) { while(wherex() > 0) {
cputc('#'); cputc('#');
} }
// one more line with 0123..pattern
revers(1); revers(1);
for (i = 0; i < xsize; ++i) { for (i = 0; i < xsize; ++i) {
cputc('0' + i % 10); cputc('0' + i % 10);