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.
 
 
 
 
 
 

103 lines
1.5 KiB

/* editor.c 11/18/2012 dwg - */
#include "std.h"
#include "applvers.h"
#include "diagnose.h"
#include "cpmbdos.h"
#include "cpmbios.h"
#include "bdoscall.h"
#define VDA_N8 4
#define VDAINI 0x40
#define VDAQRY 0x41
#define VDARES 0x42
#define VDASCS 0x43
int vdaini(devunit,vidmode,bitmapp)
unsigned int devunit;
unsigned int vidmode;
unsigned int bitmapp;
{
hregbc = (VDAINI << 8) | devunit;
hregde = vidmode;
hreghl = bitmapp;
diagnose();
return hrega;
}
bitlook()
{
unsigned char *p;
int ascii,row;
p = 0x8000;
for(ascii=0;ascii<256;ascii++) {
printf("ascii = 0x%02x ",ascii);
for(row=0l;row<8;row++) {
printf("0x%02x ",*p++);
}
printf("\n");
}
}
int vdaqry(devunit,bitmapp)
unsigned int devunit;
unsigned int bitmapp;
{
hregbc = (VDAQRY << 8) | devunit;
hreghl = bitmapp;
diagnose();
return hrega;
}
flip()
{
unsigned char * p;
unsigned char byte;
int offs;
int retcode;
retcode = vdaqry(VDA_N8 << 4,0x8000);
p = 0x8000;
for(offs=0;offs<256*8;offs++) {
byte = *p;
byte = byte ^ 255;
*p = byte;
p++;
}
/* bitlook(); */
vdaini(VDA_N8 << 4, 0, 0x8000);
}
int main(argc,argv)
int argc;
char *argv[];
{
int bRunning;
bRunning = 1;
while(1 == bRunning) {
crtlc (
dregbc = 1;
bdoscall();
switch(drega) {
case 'f': flip(); break;
case 3: bRunning = 0; break;
default: printf("%c",7); break;
}
}
flip();
}