X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fapple2.c;h=5f545c40030c48f7352ec7fa9685de8283c57b81;hp=184ff68fc184b4a4eb6e33ed5a6ea09d9f71f7a7;hb=ffd8c0873576a9e3065696a624dce6b766b77062;hpb=96a411663168b0ba5432b407a83be55f3df0c802 diff --git a/hacks/apple2.c b/hacks/apple2.c index 184ff68f..5f545c40 100644 --- a/hacks/apple2.c +++ b/hacks/apple2.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1998-2003 Jamie Zawinski +/* xscreensaver, Copyright (c) 1998-2004 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -71,14 +71,16 @@ void a2_scroll(apple2_state_t *st) { int i; + st->textlines[st->cursy][st->cursx] |= 0xc0; /* turn off cursor */ + for (i=0; i<23; i++) { memcpy(st->textlines[i],st->textlines[i+1],40); } memset(st->textlines[23],0xe0,40); } -void -a2_printc(apple2_state_t *st, char c) +static void +a2_printc_1(apple2_state_t *st, char c, int scroll_p) { st->textlines[st->cursy][st->cursx] |= 0xc0; /* turn off blink */ @@ -86,7 +88,8 @@ a2_printc(apple2_state_t *st, char c) { if (st->cursy==23) { - a2_scroll(st); + if (scroll_p) + a2_scroll(st); } else { @@ -118,7 +121,8 @@ a2_printc(apple2_state_t *st, char c) st->cursx++; if (st->cursx==40) { if (st->cursy==23) { - a2_scroll(st); + if (scroll_p) + a2_scroll(st); } else { st->cursy++; } @@ -129,6 +133,19 @@ a2_printc(apple2_state_t *st, char c) st->textlines[st->cursy][st->cursx] &= 0x7f; /* turn on blink */ } +void +a2_printc(apple2_state_t *st, char c) +{ + a2_printc_1(st, c, 1); +} + +void +a2_printc_noscroll(apple2_state_t *st, char c) +{ + a2_printc_1(st, c, 0); +} + + void a2_prints(apple2_state_t *st, char *s) { @@ -138,6 +155,8 @@ a2_prints(apple2_state_t *st, char *s) void a2_goto(apple2_state_t *st, int r, int c) { + if (r > 23) r = 23; + if (c > 39) r = 39; st->textlines[st->cursy][st->cursx] |= 0xc0; /* turn off blink */ st->cursy=r; st->cursx=c;