1
0
mirror of synced 2026-05-03 14:38:32 +00:00

bug fixes

This commit is contained in:
brad
2010-04-02 12:39:42 +00:00
parent 0b97f3b310
commit 3900d9ef3d
2 changed files with 17 additions and 2 deletions

Binary file not shown.

View File

@@ -169,7 +169,8 @@
#define NAMELEN 128 #define NAMELEN 128
#define SYMBOL_COLUMNS 5 #define SYMBOL_COLUMNS 5
#define SYMLEN 7 #define SYMLEN 7
#define SYMBOL_TABLE_SIZE 8192 //#define SYMBOL_TABLE_SIZE 8192
#define SYMBOL_TABLE_SIZE (1024*64)
#define MAC_MAX_ARGS 20 /* Must be < 26 */ #define MAC_MAX_ARGS 20 /* Must be < 26 */
#define MAC_MAX_LENGTH 8192 #define MAC_MAX_LENGTH 8192
#define MAC_TABLE_LENGTH 1024 /* Must be <= 4096. */ #define MAC_TABLE_LENGTH 1024 /* Must be <= 4096. */
@@ -488,6 +489,8 @@ SYM_T permanent_symbols[] =
/* Keyboard/Reader */ /* Keyboard/Reader */
{ FIXED, "KSF", 06031 }, /* SKIP ON KEYBOARD FLAG */ { FIXED, "KSF", 06031 }, /* SKIP ON KEYBOARD FLAG */
{ FIXED, "KCC", 06032 }, /* CLEAR KEYBOARD FLAG */ { FIXED, "KCC", 06032 }, /* CLEAR KEYBOARD FLAG */
// { FIXED, "KSR", 06033 }, /* SKIP, CLEAR KEYBOARD FLAG */
{ FIXED, "KSR", 06031 },
{ FIXED, "KRS", 06034 }, /* READ KEYBOARD BUFFER (STATIC) */ { FIXED, "KRS", 06034 }, /* READ KEYBOARD BUFFER (STATIC) */
{ FIXED, "KRB", 06036 }, /* READ KEYBOARD BUFFER & CLEAR FLAG */ { FIXED, "KRB", 06036 }, /* READ KEYBOARD BUFFER & CLEAR FLAG */
/* Teleprinter/Punch */ /* Teleprinter/Punch */
@@ -954,6 +957,11 @@ void getArgs( int argc, char *argv[] )
xref = TRUE; xref = TRUE;
break; break;
case 'o':
pathname = argv[++ix];
goto nextarg;
break;
default: default:
fprintf( stderr, "%s: unknown flag: %s\n", argv[0], argv[ix] ); fprintf( stderr, "%s: unknown flag: %s\n", argv[0], argv[ix] );
fprintf( stderr, " -d -- dump symbol table\n" ); fprintf( stderr, " -d -- dump symbol table\n" );
@@ -969,9 +977,12 @@ void getArgs( int argc, char *argv[] )
else else
{ {
filix_start = ix; filix_start = ix;
pathname = argv[ix]; if (pathname == NULL)
pathname = argv[ix];
break; break;
} }
nextarg:
;
} /* end for */ } /* end for */
if( pathname == NULL ) if( pathname == NULL )
@@ -996,6 +1007,9 @@ void getArgs( int argc, char *argv[] )
jx--; jx--;
} }
if (jx < 0)
jx = len;
switch( pathname[jx] ) switch( pathname[jx] )
{ {
case '.': case '.':
@@ -1163,6 +1177,7 @@ void onePass()
{ {
if( sym->val != (clc & 07777) && pass == 2 ) if( sym->val != (clc & 07777) && pass == 2 )
{ {
printf("pass %d, val %o, clc %o\n", pass, sym->val, clc);
errorSymbol( &duplicate_label, sym->name, lexstart ); errorSymbol( &duplicate_label, sym->name, lexstart );
} }
sym->type = sym->type | DUPLICATE; sym->type = sym->type | DUPLICATE;