/************************************************* * VERAREGS - Display Contents of Vera Registers * *************************************************/ //Specify System Header using -H option #include #include #include #include #include #include #include #include #include "include/veramem.h02" //Vera Memory Access #include "include/veradsp.h02" //Vera Display Controller #include "include/veraclr.h02" //Vera Color Palette #include "include/veralyr.h02" //Vera Layer Control //#include "include/veraspr.h02" //Vera Sprites /* Globals */ char i,j,k; //Loop Indexes char aa,yy,xx; //Function Paramaters char zz; //Function Variable int yx; //Function Paramater /* Display Composer */ char vmode,mono,field; //Video Output Mode, Monochrome Flag, Current Field char hscale,vscale; //Video Scaling char bcpidx; //Border Color Palette Index int bcolor; //Border Color Value int hstart,hstop; //Horizontal Start and Stop int vstart,vstop; //Vertical Start and Stop /* Layer 0/1 */ char layer; //Layer Number char lmode; //Layer Mode char height,width; //Map/Tile Height and Width //Print Vera Address void prtadr(aa,yx) { puts("ADDRESS: $"); putnyb(aa); putwrd(yx); } //Print Masked Bits (byte, mask) void prtmsk(aa,yy) { xx = $80; do { zz = (aa&xx) ? '1' : '0'; if (yy&xx) putchr(zz); xx>>; } while(xx); } //Print Three Values Enclosed in Parentheses void prtprn(aa,yy,xx) { printf(aa,"($%x"); printf(yy,",$%x"); printf(xx,",$%x)"); } main: clrscr(); //Clear Screen putln("DISPLAY COMPOSER"); puts(" VIDEO MODE: "); vmode,mono,field = getvid(); select (vmode) { case 0: puts("DISABLED"); case 1: puts("VGA"); case 2: puts("NTSC"); case 3: puts("RGB"); default: puts("UNDEFINED"); } if (mono) puts(" MONOCHROME"); else puts(" COLOR"); if (field) puts(", ODD"); else puts(", EVEN"); putln(" FIELD"); bcpidx = getbdr(); printf(bcpidx, " BORDER PALETTE INDEX: $%x"); bcolor = getclr(bcpidx); puts(setdst(bcolor)); printf(", COLOR=$%w "); prtprn(clrrgb(bcolor)); newlin(); hscale,vscale = getscl(); hstart = gethsr(); hstop = gethsp(); vstart = getvsr(); vstop = getvsp(); printf(hscale, " HORIZONTAL SCALE: %d, "); setdst(hstart); printf("START: %i, "); setdst(hstop); printf("STOP: %i%n"); printf(vscale, " VERTICAL SCALE: %d, "); setdst(vstart); printf("START: %i, "); setdst(vstop); printf("STOP: %i%n"); setdst(getiql()); printf(" IRQ LINE: $%i%n"); newlin(); /*************************************************************************/ putln("PALETTE COLORS"); putrps(5); i=0 ;do {printf(i," %x "); i=i+16; } while(i) ; newlin(); for (i=0;i<16;i++) { printf(i," %x "); j=0; do { k = i + j; setdst(getclr(k)); printf(k,"%q "); j = j + 16; } while (j); newlin(); } newlin(); /*************************************************************************/ for (layer=0; layer<2; layer++) { printf(layer, "LAYER %d%n"); puts(" MODE: "); lmode = getmod(layer); select(getmod(layer)) { case 0: puts("16 COLOR TEXT"); case 1: puts("256 COLOR TEXT"); case 2: puts("TILE 2BPP"); case 3: puts("TILE 4BPP"); case 4: puts("TILE 8BPP"); case 5: puts("BITMAP 2BPP"); case 6: puts("BITMAP 4BPP"); case 7: puts("BITMAP 8BPP"); default: puts("UNDEFINED"); } if (getenb(layer)) putln(", ENABLED"); else putln(", DISABLED"); width, height = getmsz(layer); setdst(mapsiz(width)); printf(width," MAP WIDTH: %d (%i PIXELS)"); setdst(mapsiz(height)); printf(height,", HEIGHT: %d (%i PIXELS)%n"); width, height = gettsz(layer); printf(width," TILE WIDTH: %d"); printf(tilsiz(width)," (%d PIXELS)"); printf(height,", HEIGHT: %d"); printf(tilsiz(height)," (%d PIXELS)%n"); setdst(getmbs(layer)); printf(" MAP BASE: $%w, "); prtadr(getmba(layer)); newlin(); setdst(gettbs(layer)); printf(" TILE BASE: $%w, "); prtadr(gettba(layer)); newlin(); setdst(gethsc(layer)); printf(" HORIZONTAL SCROLL: $%i"); setdst(getvsc(layer)); printf(", VERTICAL SCROLL: $%i%n"); printf(getbpo(layer)); printf(" BITMAP PALETTE OFFSET: $%x%n"); newlin(); } /*************************************************************************/ //puts("SPRITES "); if (getspe()) puts("ENABLED"); else puts("DISABLED"); //puts(", COLLISION STATUS: %"); putmsk(getsps(),$0f); newlin(); goto exit;