mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-29 16:51:10 +00:00
72 lines
1.7 KiB
Plaintext
72 lines
1.7 KiB
Plaintext
/************************************
|
|
* SCRNTST - Test C02 screen module *
|
|
************************************/
|
|
|
|
//use -h amd -s options on command line
|
|
#include <screen.h02>
|
|
|
|
char col, row, wdth, hght;
|
|
char mode, modex;
|
|
char a, c, f, i, m;
|
|
char aa, yy;
|
|
|
|
const char modes = {#SMTEXT, #SMWIDE};
|
|
|
|
void prtaxy(aa,yy) {
|
|
if (aa & $F0) prbyte(aa); else prhex(aa);
|
|
putchr('X');
|
|
if (yy & $F0) prbyte(yy); else prhex(yy);
|
|
}
|
|
|
|
void putlin() {putstr(); newlin();}
|
|
|
|
main:
|
|
|
|
for (modex=0; modex<@modes; modex++) {
|
|
|
|
mode = modes[modex];
|
|
if (mode == $FF) continue; //Unsupported Mode
|
|
|
|
if (setscr(mode)=$FF) putlin("ERROR IN SETSCR()");
|
|
m = getscr();
|
|
if (m <> mode) putlin("ERROR IN GETSCR()");
|
|
putstr("MODE="); prbyte(m); newlin();
|
|
|
|
wdth, hght = getsiz(); //Get Screen Width & Height
|
|
prtaxy(wdth,hght); newlin();
|
|
|
|
for (i=1; i<6; i++) putchr('.');
|
|
col, row = getpos(); //Get Cursor Position
|
|
prtaxy(col,row);
|
|
crsrhm(); prtaxy(getpos());
|
|
getchr(); newlin(); //Wait For keypress
|
|
|
|
clrscr(); //Clear Screen
|
|
col, row = getpos(); //Get Cursor Position
|
|
prtaxy(col, row);
|
|
f = (col == 255) ? 0 : $FF;
|
|
getchr();
|
|
|
|
if (f) clrscr(); else newlin();
|
|
|
|
if (wdth:- or hght:-) goto exit;
|
|
for (c='@'; c<'`'; c++) {
|
|
if (!f) newlin();
|
|
for (row=hght-2; row; row--) {
|
|
if (!f) putchr(' ');
|
|
for (col=wdth-2; col; col--) {
|
|
if (f) setpos(col,row);
|
|
putchr(c);
|
|
}
|
|
if (!f) newlin();
|
|
if (getkey() == #ESCKEY) goto exit;
|
|
}
|
|
if (!f) getchr();
|
|
}
|
|
if (f) getchr(); //Wait For keypress
|
|
newlin();
|
|
|
|
} //for modex
|
|
|
|
goto exit;
|