1
0
mirror of synced 2026-02-08 01:02:11 +00:00

changes for building tss8 variants

This commit is contained in:
brad
2016-01-01 21:55:02 +00:00
parent 538ee18f3f
commit c164b2a51d
14 changed files with 486 additions and 11 deletions

View File

@@ -7,6 +7,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
typedef unsigned short u12;
@@ -19,6 +20,9 @@ char filled[7][4096];
u12 rf[RFSIZE];
int rf_size;
int rf_fd;
int clear_flag;
int patch_flag;
int debug;
#define MEMSIZE (32*1024)
@@ -26,10 +30,24 @@ int disk_load(char *filename)
{
int fd, ret;
rf_fd = open(filename, O_RDWR);
if (rf_fd < 0) {
perror(filename);
return -1;
if (clear_flag) {
rf_size = 524288 / 2;
memset((void *)rf, 0, sizeof(rf));
printf("creating rf disk, word size %d\n", rf_size);
rf_fd = open(filename, O_CREAT | O_RDWR, 0666);
if (rf_fd < 0) {
perror(filename);
return -1;
}
}
else
{
rf_fd = open(filename, O_RDWR);
if (rf_fd < 0) {
perror(filename);
return -1;
}
}
ret = read(rf_fd, rf, sizeof(rf));
@@ -41,7 +59,7 @@ int disk_load(char *filename)
ret = 0;
}
printf("rf_fd %d\n", rf_fd);
if (debug) printf("rf_fd %d\n", rf_fd);
return ret;
}
@@ -171,6 +189,9 @@ int field_load(int dstfield, char *filename)
csum = 0;
bad = 0;
field = -1;
newfield = dstfield;
for (o = 0; o < binfile_size && !done; o++) {
ch = binfile[o];
@@ -220,7 +241,7 @@ int field_load(int dstfield, char *filename)
int ignore, allow;
if (field > 7 || origin >= MEMSIZE) {
printf("%s: too big\n", filename);
printf("%s: too big; field %o, origin %o\n", filename, field, origin);
bad++;
}
@@ -296,6 +317,11 @@ int eval_scriptline(char *line)
count = sscanf(line, "%s %s %s", word1, word2, word3);
if (strcmp(word1, "clear") == 0) {
rf_size = 524288 / 2;
memset((void *)rf, 0, sizeof(rf));
}
if (strcmp(word1, "disk") == 0) {
if (count < 2) {
fprintf(stderr, "missing disk arg\n");
@@ -305,6 +331,10 @@ int eval_scriptline(char *line)
return disk_load(word2);
}
if (strcmp(word1, "patch") == 0) {
patch_flag++;
}
if (strcmp(word1, "field") == 0) {
if (count < 3) {
fprintf(stderr, "missing field arg\n");
@@ -317,7 +347,8 @@ int eval_scriptline(char *line)
}
field_load(fld, word3);
field_patch(fld);
if (patch_flag)
field_patch(fld);
field_save(fld);
if (fld == 3)
field_save(4);
@@ -372,15 +403,33 @@ int eval_scriptfile(char *filename)
return 0;
}
extern char *optarg;
extern int optind;
main(int argc, char **argv)
{
int c;
char *scriptfile;
scriptfile = "script";
scriptfile = NULL/*"script"*/;
clear_flag = 0;
if (argc > 1)
scriptfile = argv[1];
while ((c = getopt(argc, argv, "cs:")) != -1) {
switch (c) {
case 'c':
clear_flag++;
break;
case 's':
scriptfile = strdup(optarg);
break;
}
}
if (optind < argc && scriptfile == NULL) {
scriptfile = argv[optind];
}
printf("scriptfile: %s\n", scriptfile);
if (eval_scriptfile(scriptfile))
exit(1);

View File

@@ -1,5 +1,6 @@
#
disk tss8_rf.dsk
patch
field 0 ../../tss8.2/si.bin
field 1 ../../tss8.2/fip.bin
field 2 ../../tss8.2/init.bin

9
utils/maker/script2 Normal file
View File

@@ -0,0 +1,9 @@
#
disk tss8_rf_uwm.dsk
field 0 ../../tss8_uwm/si.bin
field 1 ../../tss8_uwm/fip.bin
field 2 ../../tss8_uwm/init.bin
field 2 ../../tss8_uwm/INIT.XD.bin
field 3 ../../tss8_uwm/ts8.bin
field 4 ../../tss8_uwm/ts8ii.bin
save

10
utils/maker/script3 Normal file
View File

@@ -0,0 +1,10 @@
#
disk tss8_rf_23.dsk
#clear
field 0 ../../tss8.23/si.bin
field 1 ../../tss8.23/fip.bin
field 2 ../../tss8.23/init.bin
field 2 ../../tss8.23/INIT.XD.bin
field 3 ../../tss8.23/ts8.bin
field 4 ../../tss8.23/ts8ii.bin
save

5
utils/maker/tss8.23.cmd Normal file
View File

@@ -0,0 +1,5 @@
load ../../tss8.23/init.bin
set df disabled
set rf enabled
att rf tss8_rf_23.dsk
run 24200

View File

@@ -1,4 +1,4 @@
load ../tss8.2/init.bin
load ../../tss8.2/init.bin
set df disabled
set rf enabled
att rf tss8_rf.dsk

5
utils/maker/tss8_uwm.cmd Normal file
View File

@@ -0,0 +1,5 @@
load ../../tss8_uwm/init.bin
set df disabled
set rf enabled
att rf tss8_rf_uwm.dsk
run 24200