summaryrefslogtreecommitdiff
path: root/trs_imp_exp.c
diff options
context:
space:
mode:
Diffstat (limited to 'trs_imp_exp.c')
-rw-r--r--trs_imp_exp.c446
1 files changed, 223 insertions, 223 deletions
diff --git a/trs_imp_exp.c b/trs_imp_exp.c
index 739b760..73f5498 100644
--- a/trs_imp_exp.c
+++ b/trs_imp_exp.c
@@ -50,64 +50,64 @@ void do_emt_system()
int res;
if (trs_emtsafe) {
error("potentially dangerous emulator trap blocked");
- REG_A = EACCES;
- REG_F &= ~ZERO_MASK;
+ reg_A = EACCES;
+ reg_F &= ~ZERO_MASK;
return;
}
- res = system((char *)mem_pointer(REG_HL, 0));
+ res = system((char *)mem_pointer(reg_HL, 0));
if (res == -1) {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
} else {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
}
- REG_BC = res;
+ reg_BC = res;
}
void do_emt_mouse()
{
int x, y;
unsigned int buttons, sens;
- switch (REG_B) {
+ switch (reg_B) {
case 1:
trs_get_mouse_pos(&x, &y, &buttons);
- REG_HL = x;
- REG_DE = y;
- REG_A = buttons;
- if (REG_A) {
- REG_F &= ~ZERO_MASK;
+ reg_HL = x;
+ reg_DE = y;
+ reg_A = buttons;
+ if (reg_A) {
+ reg_F &= ~ZERO_MASK;
} else {
- REG_F |= ZERO_MASK;
+ reg_F |= ZERO_MASK;
}
break;
case 2:
- trs_set_mouse_pos(REG_HL, REG_DE);
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ trs_set_mouse_pos(reg_HL, reg_DE);
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
break;
case 3:
trs_get_mouse_max(&x, &y, &sens);
- REG_HL = x;
- REG_DE = y;
- REG_A = sens;
- if (REG_A) {
- REG_F &= ~ZERO_MASK;
+ reg_HL = x;
+ reg_DE = y;
+ reg_A = sens;
+ if (reg_A) {
+ reg_F &= ~ZERO_MASK;
} else {
- REG_F |= ZERO_MASK;
+ reg_F |= ZERO_MASK;
}
break;
case 4:
- trs_set_mouse_max(REG_HL, REG_DE, REG_C);
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ trs_set_mouse_max(reg_HL, reg_DE, reg_C);
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
break;
case 5:
- REG_A = trs_get_mouse_type();
- if (REG_A) {
- REG_F &= ~ZERO_MASK;
+ reg_A = trs_get_mouse_type();
+ if (reg_A) {
+ reg_F &= ~ZERO_MASK;
} else {
- REG_F |= ZERO_MASK;
+ reg_F |= ZERO_MASK;
}
break;
default:
@@ -118,28 +118,28 @@ void do_emt_mouse()
void do_emt_getddir()
{
- if (REG_HL + REG_BC > 0x10000 ||
- REG_HL + strlen(trs_disk_dir) + 1 > REG_HL + REG_BC) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ if (reg_HL + reg_BC > 0x10000 ||
+ reg_HL + strlen(trs_disk_dir) + 1 > reg_HL + reg_BC) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
- strcpy((char *)mem_pointer(REG_HL, 1), trs_disk_dir);
- REG_A = 0;
- REG_F |= ZERO_MASK;
- REG_BC = strlen(trs_disk_dir);
+ strcpy((char *)mem_pointer(reg_HL, 1), trs_disk_dir);
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
+ reg_BC = strlen(trs_disk_dir);
}
void do_emt_setddir()
{
if (trs_emtsafe) {
error("potentially dangerous emulator trap blocked");
- REG_A = EACCES;
- REG_F &= ~ZERO_MASK;
+ reg_A = EACCES;
+ reg_F &= ~ZERO_MASK;
return;
}
- trs_disk_dir = strdup((char *)mem_pointer(REG_HL, 0));
+ trs_disk_dir = strdup((char *)mem_pointer(reg_HL, 0));
if (trs_disk_dir[0] == '~' &&
(trs_disk_dir[1] == '/' || trs_disk_dir[1] == '\0')) {
char* home = getenv("HOME");
@@ -150,14 +150,14 @@ void do_emt_setddir()
trs_disk_dir = p;
}
}
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
}
void do_emt_open()
{
int fd, oflag, eoflag;
- eoflag = REG_BC;
+ eoflag = reg_BC;
switch (eoflag & EO_ACCMODE) {
case EO_RDONLY:
default:
@@ -177,52 +177,52 @@ void do_emt_open()
if (trs_emtsafe && oflag != O_RDONLY) {
error("potentially dangerous emulator trap blocked");
- REG_A = EACCES;
- REG_F &= ~ZERO_MASK;
+ reg_A = EACCES;
+ reg_F &= ~ZERO_MASK;
return;
}
- fd = open((char *)mem_pointer(REG_HL, 0), oflag, REG_DE);
+ fd = open((char *)mem_pointer(reg_HL, 0), oflag, reg_DE);
if (fd >= 0) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
- REG_DE = fd;
+ reg_DE = fd;
}
void do_emt_close()
{
int res;
- res = close(REG_DE);
+ res = close(reg_DE);
if (res >= 0) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
}
void do_emt_read()
{
int size;
- if (REG_HL + REG_BC > 0x10000) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ if (reg_HL + reg_BC > 0x10000) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
- size = read(REG_DE, mem_pointer(REG_HL, 1), REG_BC);
+ size = read(reg_DE, mem_pointer(reg_HL, 1), reg_BC);
if (size >= 0) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
- REG_BC = size;
+ reg_BC = size;
}
@@ -231,50 +231,50 @@ void do_emt_write()
int size;
if (trs_emtsafe) {
error("potentially dangerous emulator trap blocked");
- REG_A = EACCES;
- REG_F &= ~ZERO_MASK;
+ reg_A = EACCES;
+ reg_F &= ~ZERO_MASK;
return;
}
- if (REG_HL + REG_BC > 0x10000) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ if (reg_HL + reg_BC > 0x10000) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
- size = write(REG_DE, mem_pointer(REG_HL, 0), REG_BC);
+ size = write(reg_DE, mem_pointer(reg_HL, 0), reg_BC);
if (size >= 0) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
- REG_BC = size;
+ reg_BC = size;
}
void do_emt_lseek()
{
int i;
off_t offset;
- if (REG_HL + 8 > 0x10000) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
+ if (reg_HL + 8 > 0x10000) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
return;
}
offset = 0;
for (i=0; i<8; i++) {
- offset = offset + (mem_read(REG_HL + i) << i*8);
+ offset = offset + (mem_read(reg_HL + i) << i*8);
}
- offset = lseek(REG_DE, offset, REG_BC);
+ offset = lseek(reg_DE, offset, reg_BC);
if (offset != (off_t) -1) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
- for (i=REG_HL; i<8; i++) {
- mem_write(REG_HL + i, offset & 0xff);
+ for (i=reg_HL; i<8; i++) {
+ mem_write(reg_HL + i, offset & 0xff);
offset >>= 8;
}
}
@@ -283,40 +283,40 @@ void do_emt_strerror()
{
char *msg;
int size;
- if (REG_HL + REG_BC > 0x10000) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ if (reg_HL + reg_BC > 0x10000) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
errno = 0;
- msg = strerror(REG_A);
+ msg = strerror(reg_A);
size = strlen(msg);
if (errno != 0) {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
- } else if (REG_BC < size + 2) {
- REG_A = ERANGE;
- REG_F &= ~ZERO_MASK;
- size = REG_BC - 1;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
+ } else if (reg_BC < size + 2) {
+ reg_A = ERANGE;
+ reg_F &= ~ZERO_MASK;
+ size = reg_BC - 1;
} else {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
}
- memcpy(mem_pointer(REG_HL, 1), msg, size);
- mem_write(REG_HL + size++, '\r');
- mem_write(REG_HL + size, '\0');
+ memcpy(mem_pointer(reg_HL, 1), msg, size);
+ mem_write(reg_HL + size++, '\r');
+ mem_write(reg_HL + size, '\0');
if (errno == 0) {
- REG_BC = size;
+ reg_BC = size;
} else {
- REG_BC = 0xFFFF;
+ reg_BC = 0xFFFF;
}
}
void do_emt_time()
{
time_t now = time(0);
- if (REG_A == 1) {
+ if (reg_A == 1) {
#if __alpha
struct tm *loctm = localtime(&now);
now += loctm->tm_gmtoff;
@@ -349,11 +349,11 @@ void do_emt_time()
error("trouble computing local time in emt_time");
}
#endif
- } else if (REG_A != 0) {
+ } else if (reg_A != 0) {
error("unsupported function code to emt_time");
}
- REG_BC = (now >> 16) & 0xffff;
- REG_DE = now & 0xffff;
+ reg_BC = (now >> 16) & 0xffff;
+ reg_DE = now & 0xffff;
}
void do_emt_opendir()
@@ -363,77 +363,77 @@ void do_emt_opendir()
if (dir[i] == NULL) break;
}
if (i == MAX_OPENDIR) {
- REG_DE = 0xffff;
- REG_A = EMFILE;
+ reg_DE = 0xffff;
+ reg_A = EMFILE;
return;
}
- dir[i] = opendir((char *)mem_pointer(REG_HL, 0));
+ dir[i] = opendir((char *)mem_pointer(reg_HL, 0));
if (dir[i] == NULL) {
- REG_DE = 0xffff;
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_DE = 0xffff;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
} else {
- REG_DE = i;
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_DE = i;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
}
}
void do_emt_closedir()
{
- int i = REG_DE;
+ int i = reg_DE;
int ok;
if (i < 0 || i >= MAX_OPENDIR || dir[i] == NULL) {
- REG_A = EBADF;
- REG_F &= ~ZERO_MASK;
+ reg_A = EBADF;
+ reg_F &= ~ZERO_MASK;
return;
}
ok = closedir(dir[i]);
dir[i] = NULL;
if (ok >= 0) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
}
void do_emt_readdir()
{
- int size, i = REG_DE;
+ int size, i = reg_DE;
struct dirent *result;
if (i < 0 || i >= MAX_OPENDIR || dir[i] == NULL) {
- REG_A = EBADF;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ reg_A = EBADF;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
- if (REG_HL + REG_BC > 0x10000) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ if (reg_HL + reg_BC > 0x10000) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
result = readdir(dir[i]);
if (result == NULL) {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
size = strlen(result->d_name);
- if (size + 1 > REG_BC) {
- REG_A = ERANGE;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ if (size + 1 > reg_BC) {
+ reg_A = ERANGE;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
- strcpy((char *)mem_pointer(REG_HL, 1), result->d_name);
- REG_A = 0;
- REG_F |= ZERO_MASK;
- REG_BC = size;
+ strcpy((char *)mem_pointer(reg_HL, 1), result->d_name);
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
+ reg_BC = size;
}
void do_emt_chdir()
@@ -441,47 +441,47 @@ void do_emt_chdir()
int ok;
if (trs_emtsafe) {
error("potentially dangerous emulator trap blocked");
- REG_A = EACCES;
- REG_F &= ~ZERO_MASK;
+ reg_A = EACCES;
+ reg_F &= ~ZERO_MASK;
return;
}
- ok = chdir((char *)mem_pointer(REG_HL, 0));
+ ok = chdir((char *)mem_pointer(reg_HL, 0));
if (ok < 0) {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
} else {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
}
}
void do_emt_getcwd()
{
char *result;
- if (REG_HL + REG_BC > 0x10000) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ if (reg_HL + reg_BC > 0x10000) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
- result = getcwd((char *)mem_pointer(REG_HL, 1), REG_BC);
+ result = getcwd((char *)mem_pointer(reg_HL, 1), reg_BC);
if (result == NULL) {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
- REG_BC = 0xFFFF;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
+ reg_BC = 0xFFFF;
return;
}
- REG_A = 0;
- REG_F |= ZERO_MASK;
- REG_BC = strlen(result);
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
+ reg_BC = strlen(result);
}
void do_emt_misc()
{
- switch (REG_A) {
+ switch (reg_A) {
case 0:
trs_disk_change_all();
- REG_HL = trs_disk_changecount;
+ reg_HL = trs_disk_changecount;
break;
case 1:
trs_exit();
@@ -493,60 +493,60 @@ void do_emt_misc()
trs_reset(0);
break;
case 4:
- REG_HL = trs_disk_changecount;
+ reg_HL = trs_disk_changecount;
break;
case 5:
- REG_HL = trs_model;
+ reg_HL = trs_model;
break;
case 6:
- REG_HL = trs_disk_getsize(REG_BC);
+ reg_HL = trs_disk_getsize(reg_BC);
break;
case 7:
- trs_disk_setsize(REG_BC, REG_HL);
+ trs_disk_setsize(reg_BC, reg_HL);
break;
case 8:
- REG_HL = trs_disk_getstep(REG_BC);
+ reg_HL = trs_disk_getstep(reg_BC);
break;
case 9:
- trs_disk_setstep(REG_BC, REG_HL);
+ trs_disk_setstep(reg_BC, reg_HL);
break;
case 10:
- REG_HL = grafyx_get_microlabs();
+ reg_HL = grafyx_get_microlabs();
break;
case 11:
- grafyx_set_microlabs(REG_HL);
+ grafyx_set_microlabs(reg_HL);
break;
case 12:
- REG_HL = z80_state.delay;
- REG_BC = trs_autodelay;
+ reg_HL = z80_state.delay;
+ reg_BC = trs_autodelay;
break;
case 13:
- z80_state.delay = REG_HL;
- trs_autodelay = REG_BC;
+ z80_state.delay = reg_HL;
+ trs_autodelay = reg_BC;
break;
case 14:
- REG_HL = stretch_amount;
+ reg_HL = stretch_amount;
break;
case 15:
- stretch_amount = REG_HL;
+ stretch_amount = reg_HL;
break;
case 16:
- REG_HL = trs_disk_doubler;
+ reg_HL = trs_disk_doubler;
break;
case 17:
- trs_disk_doubler = REG_HL;
+ trs_disk_doubler = reg_HL;
break;
case 18:
- REG_HL = sb_get_volume();
+ reg_HL = sb_get_volume();
break;
case 19:
- sb_set_volume(REG_HL);
+ sb_set_volume(reg_HL);
break;
case 20:
- REG_HL = trs_disk_truedam;
+ reg_HL = trs_disk_truedam;
break;
case 21:
- trs_disk_truedam = REG_HL;
+ trs_disk_truedam = reg_HL;
break;
default:
error("unsupported function code to emt_misc");
@@ -560,37 +560,37 @@ void do_emt_ftruncate()
off_t offset;
if (trs_emtsafe) {
error("potentially dangerous emulator trap blocked");
- REG_A = EACCES;
- REG_F &= ~ZERO_MASK;
+ reg_A = EACCES;
+ reg_F &= ~ZERO_MASK;
return;
}
- if (REG_HL + 8 > 0x10000) {
- REG_A = EFAULT;
- REG_F &= ~ZERO_MASK;
+ if (reg_HL + 8 > 0x10000) {
+ reg_A = EFAULT;
+ reg_F &= ~ZERO_MASK;
return;
}
offset = 0;
for (i=0; i<8; i++) {
- offset = offset + (mem_read(REG_HL + i) << i*8);
+ offset = offset + (mem_read(reg_HL + i) << i*8);
}
- result = ftruncate(REG_DE, offset);
+ result = ftruncate(reg_DE, offset);
if (result == 0) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
}
void do_emt_opendisk()
{
- char *name = (char *)mem_pointer(REG_HL, 0);
+ char *name = (char *)mem_pointer(reg_HL, 0);
char *qname;
int i;
int oflag, eoflag;
- eoflag = REG_BC;
+ eoflag = reg_BC;
switch (eoflag & EO_ACCMODE) {
case EO_RDONLY:
default:
@@ -610,8 +610,8 @@ void do_emt_opendisk()
if (trs_emtsafe && oflag != O_RDONLY) {
error("potentially dangerous emulator trap blocked");
- REG_A = EACCES;
- REG_F &= ~ZERO_MASK;
+ reg_A = EACCES;
+ reg_F &= ~ZERO_MASK;
return;
}
@@ -627,56 +627,56 @@ void do_emt_opendisk()
if (!od[i].inuse) break;
}
if (i == MAX_OPENDISK) {
- REG_DE = 0xffff;
- REG_A = EMFILE;
- REG_F &= ~ZERO_MASK;
+ reg_DE = 0xffff;
+ reg_A = EMFILE;
+ reg_F &= ~ZERO_MASK;
free(qname);
return;
}
- od[i].fd = open(qname, oflag, REG_DE);
+ od[i].fd = open(qname, oflag, reg_DE);
free(qname);
if (od[i].fd >= 0) {
od[i].inuse = 1;
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
- REG_DE = od[i].fd;
+ reg_DE = od[i].fd;
}
void do_emt_closedisk()
{
int i;
int res;
- if (REG_DE == 0xffff) {
+ if (reg_DE == 0xffff) {
for (i = 0; i < MAX_OPENDISK; i++) {
if (od[i].inuse) {
close(od[i].fd);
od[i].inuse = 0;
}
}
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
return;
}
for (i = 0; i < MAX_OPENDISK; i++) {
- if (od[i].inuse && od[i].fd == REG_DE) break;
+ if (od[i].inuse && od[i].fd == reg_DE) break;
}
if (i == MAX_OPENDISK) {
- REG_A = EBADF;
- REG_F &= ~ZERO_MASK;
+ reg_A = EBADF;
+ reg_F &= ~ZERO_MASK;
return;
}
od[i].inuse = 0;
res = close(od[i].fd);
if (res >= 0) {
- REG_A = 0;
- REG_F |= ZERO_MASK;
+ reg_A = 0;
+ reg_F |= ZERO_MASK;
} else {
- REG_A = errno;
- REG_F &= ~ZERO_MASK;
+ reg_A = errno;
+ reg_F &= ~ZERO_MASK;
}
}