mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.4 KiB
104 lines
2.4 KiB
/* remote.c 11/20/2012 dwg - */
|
|
|
|
/* Ther purpose of this program is to read the VRAM of the
|
|
TMS9918 video processor and display the contents in the
|
|
most usable form. First is the raw hexadecimal dump of
|
|
the first 16K of the VRAM, followed by a hexadecimal
|
|
dump of the name table by line number, and finally the
|
|
charactert generator bitmaps in ASCII order.
|
|
*/
|
|
#include "portab.h"
|
|
#include "globals.h"
|
|
|
|
#include "stdio.h"
|
|
#include "stdlib.h"
|
|
#include "memory.h"
|
|
#include "applvers.h"
|
|
#include "n8chars.h"
|
|
#include "tms9918.h"
|
|
#include "std.h"
|
|
#include "ctermcap.h"
|
|
#include "cpmbdos.h"
|
|
#include "bdoscall.h"
|
|
#include "hbios.h"
|
|
#include "asmiface.h"
|
|
#include "diagnose.h"
|
|
#include "cnfgdata.h"
|
|
#include "syscfg.h"
|
|
#include "cpmbind.h"
|
|
#include "infolist.h"
|
|
#include "metadata.h"
|
|
#include "clogical.h"
|
|
|
|
#define HIGHSEG 0x0C000 /* memory address of system config */
|
|
|
|
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
|
|
|
|
|
|
char szTemp[128];
|
|
char linenum;
|
|
char counter;
|
|
|
|
char outer;
|
|
char inner;
|
|
char limit;
|
|
|
|
int index;
|
|
|
|
unsigned int line;
|
|
unsigned char ubyte;
|
|
unsigned char bitmask;
|
|
|
|
int row;
|
|
int bit;
|
|
int ascii;
|
|
int bool;
|
|
|
|
struct CNFGDATA * pCNFGDATA;
|
|
struct SYSCFG * pSYSCFG;
|
|
|
|
FILE * fd;
|
|
|
|
int main(argc,argv)
|
|
int argc;
|
|
char *argv[];
|
|
{
|
|
char column;
|
|
|
|
hregbc = GETSYSCFG; /* function = Get System Config */
|
|
hregde = HIGHSEG; /* addr of dest (must be high) */
|
|
diagnose(); /* invoke the NBIOS function */
|
|
pSYSCFG = HIGHSEG;
|
|
crtinit(pSYSCFG->cnfgdata.termtype);
|
|
crtclr();
|
|
|
|
vdp_wrvram(0);
|
|
in(DATAP);
|
|
in(DATAP);
|
|
for(line=0;line<24;line++) {
|
|
crtlc(line+1,0);
|
|
printf("line %2d |",line+1);
|
|
for(column=0;column<40;column++) {
|
|
ubyte = in(DATAP);
|
|
switch(ubyte) {
|
|
case 0x0d: ubyte = 0; break;
|
|
case 0x0a: ubyte = 0; break;
|
|
case 0x09: ubyte = 0; break;
|
|
case 0x00: ubyte = 0x20; break;
|
|
}
|
|
if(0 != ubyte ) printf("%c",ubyte);
|
|
}
|
|
crtlc(line+1,50);
|
|
printf("|");
|
|
if(line==0) printf(" remote.com 11/21/2012 dwg");
|
|
if(line==1) printf(" display tms9918 screen");
|
|
if(line==4) printf(" Note: semi-graphics not");
|
|
if(line==5) printf(" supported.");
|
|
}
|
|
|
|
printf(" (press enter to exit)");
|
|
dregbc=1;
|
|
bdoscall();
|
|
}
|
|
|
|
|