Merge deletion of many undead files.
This commit is contained in:
commit
c40034452e
@ -20,7 +20,7 @@
|
|||||||
#include "sizes.h"
|
#include "sizes.h"
|
||||||
|
|
||||||
extern char options[];
|
extern char options[];
|
||||||
extern arith full_mask[/*MAXSIZE*/]; /* cstoper.c */
|
extern arith full_mask[/*MAXSIZE + 1*/]; /* cstoper.c */
|
||||||
char *symbol2str();
|
char *symbol2str();
|
||||||
|
|
||||||
ch3mon(oper, expp)
|
ch3mon(oper, expp)
|
||||||
|
|||||||
@ -16,7 +16,8 @@
|
|||||||
#include "Lpars.h"
|
#include "Lpars.h"
|
||||||
#include "assert.h"
|
#include "assert.h"
|
||||||
|
|
||||||
arith full_mask[MAXSIZE];/* full_mask[1] == 0XFF, full_mask[2] == 0XFFFF, .. */
|
/* full_mask[1] == 0XFF, full_mask[2] == 0XFFFF, .. */
|
||||||
|
arith full_mask[MAXSIZE + 1];
|
||||||
#ifndef NOCROSS
|
#ifndef NOCROSS
|
||||||
arith max_int; /* maximum integer on target machine */
|
arith max_int; /* maximum integer on target machine */
|
||||||
arith max_unsigned; /* maximum unsigned on target machine */
|
arith max_unsigned; /* maximum unsigned on target machine */
|
||||||
@ -247,7 +248,7 @@ init_cst()
|
|||||||
|
|
||||||
while (!(bt < 0)) {
|
while (!(bt < 0)) {
|
||||||
bt = (bt << 8) + 0377, i++;
|
bt = (bt << 8) + 0377, i++;
|
||||||
if (i == MAXSIZE)
|
if (i > MAXSIZE)
|
||||||
fatal("array full_mask too small for this machine");
|
fatal("array full_mask too small for this machine");
|
||||||
full_mask[i] = bt;
|
full_mask[i] = bt;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -353,7 +353,7 @@ C_magic()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*** the compact code generating routines ***/
|
/*** the compact code generating routines ***/
|
||||||
#define fit16i(x) ((x) >= (long)0xFFFF8000 && (x) <= (long)0x00007FFF)
|
#define fit16i(x) ((x) >= (long)(-0x8000) && (x) <= (long)0x7FFF)
|
||||||
#define fit8u(x) ((x) <= 0xFF) /* x is already unsigned */
|
#define fit8u(x) ((x) <= 0xFF) /* x is already unsigned */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
! If you ever need to change the boot code, this needs adjusting. I recommend
|
! If you ever need to change the boot code, this needs adjusting. I recommend
|
||||||
! a hex editor.
|
! a hex editor.
|
||||||
|
|
||||||
PADDING = 0xB9
|
PADDING = 0xB7
|
||||||
|
|
||||||
! Some definitions.
|
! Some definitions.
|
||||||
|
|
||||||
@ -45,8 +45,8 @@ start2:
|
|||||||
|
|
||||||
mov ax, cs
|
mov ax, cs
|
||||||
mov ds, ax
|
mov ds, ax
|
||||||
mov es, ax
|
|
||||||
mov ss, ax
|
mov ss, ax
|
||||||
|
! Defer setting es until after probing the drive.
|
||||||
|
|
||||||
! Initialise the stack, which will start at the top of our segment and work
|
! Initialise the stack, which will start at the top of our segment and work
|
||||||
! down.
|
! down.
|
||||||
@ -65,10 +65,13 @@ start2:
|
|||||||
call write_string
|
call write_string
|
||||||
|
|
||||||
! Probe the drive to figure out its geometry.
|
! Probe the drive to figure out its geometry.
|
||||||
|
! This might clobber es.
|
||||||
|
|
||||||
push dx
|
push dx
|
||||||
mov ax, 0x0800 ! service number
|
mov ax, 0x0800 ! service number
|
||||||
int 0x13
|
int 0x13
|
||||||
|
mov ax, cs ! restore es
|
||||||
|
mov es, ax
|
||||||
pop ax
|
pop ax
|
||||||
jc cant_boot
|
jc cant_boot
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "ack.h"
|
#include "ack.h"
|
||||||
@ -83,19 +84,26 @@ char *firstblank(str) char *str ; {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* VARARGS1 */
|
/* VARARGS1 */
|
||||||
fatal(fmt,p1,p2,p3,p4,p5,p6,p7) char *fmt ; {
|
void fatal(const char* fmt, ...)
|
||||||
|
{
|
||||||
/* Fatal internal error */
|
/* Fatal internal error */
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, fmt);
|
||||||
fprintf(STDOUT,"%s: fatal internal error, ",progname) ;
|
fprintf(STDOUT,"%s: fatal internal error, ",progname) ;
|
||||||
fprintf(STDOUT,fmt,p1,p2,p3,p4,p5,p6,p7);
|
vfprintf(STDOUT, fmt, ap);
|
||||||
fprintf(STDOUT,"\n") ;
|
fprintf(STDOUT,"\n") ;
|
||||||
quit(-2) ;
|
quit(-2) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* VARARGS1 */
|
/* VARARGS1 */
|
||||||
vprint(fmt,p1,p2,p3,p4,p5,p6,p7) char *fmt ; {
|
void vprint(const char* fmt, ...)
|
||||||
|
{
|
||||||
/* Diagnostic print, no auto NL */
|
/* Diagnostic print, no auto NL */
|
||||||
fprintf(STDOUT,fmt,p1,p2,p3,p4,p5,p6,p7);
|
va_list ap;
|
||||||
|
va_start(ap, fmt);
|
||||||
|
vfprintf(STDOUT, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@ -108,30 +116,38 @@ prns(s) register char *s ; {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* VARARGS1 */
|
/* VARARGS1 */
|
||||||
fuerror(fmt,p1,p2,p3,p4,p5,p6,p7) char *fmt ; {
|
void fuerror(const char *fmt, ...) {
|
||||||
/* Fatal user error */
|
/* Fatal user error */
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, fmt);
|
||||||
fprintf(STDOUT,"%s: ",progname) ;
|
fprintf(STDOUT,"%s: ",progname) ;
|
||||||
fprintf(STDOUT,fmt,p1,p2,p3,p4,p5,p6,p7);
|
vfprintf(STDOUT, fmt, ap);
|
||||||
fprintf(STDOUT,"\n") ;
|
fprintf(STDOUT,"\n") ;
|
||||||
quit(-1) ;
|
quit(-1) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* VARARGS1 */
|
/* VARARGS1 */
|
||||||
werror(fmt,p1,p2,p3,p4,p5,p6,p7) char *fmt ; {
|
void werror(const char *fmt, ...) {
|
||||||
/* Warning user error, w_flag */
|
/* Warning user error, w_flag */
|
||||||
|
va_list ap;
|
||||||
if ( w_flag ) return ;
|
if ( w_flag ) return ;
|
||||||
|
va_start(ap, fmt);
|
||||||
fprintf(STDOUT,"%s: warning, ",progname) ;
|
fprintf(STDOUT,"%s: warning, ",progname) ;
|
||||||
fprintf(STDOUT,fmt,p1,p2,p3,p4,p5,p6,p7);
|
vfprintf(STDOUT, fmt, ap);
|
||||||
fprintf(STDOUT,"\n") ;
|
fprintf(STDOUT,"\n") ;
|
||||||
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* VARARGS1 */
|
/* VARARGS1 */
|
||||||
error(fmt,p1,p2,p3,p4,p5,p6,p7) char *fmt ; {
|
void error(const char *fmt, ...) {
|
||||||
/* User error, it is the callers responsibility to quit */
|
/* User error, it is the callers responsibility to quit */
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, fmt);
|
||||||
fprintf(STDOUT,"%s: ",progname) ;
|
fprintf(STDOUT,"%s: ",progname) ;
|
||||||
fprintf(STDOUT,fmt,p1,p2,p3,p4,p5,p6,p7);
|
vfprintf(STDOUT, fmt, ap);
|
||||||
fprintf(STDOUT,"\n") ;
|
fprintf(STDOUT,"\n") ;
|
||||||
n_error++ ;
|
n_error++ ;
|
||||||
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
do_flush() {
|
do_flush() {
|
||||||
|
|||||||
@ -140,42 +140,29 @@ void emits(struct outsect* section)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void iconvert(char* buf, char* str, char* fmt)
|
/* Macros from modules/src/object/obj.h */
|
||||||
{
|
#define Xchar(ch) ((ch) & 0377)
|
||||||
register char *nf, *ni, *no ;
|
#define uget2(c) (Xchar((c)[0]) | ((unsigned) Xchar((c)[1]) << 8))
|
||||||
int last, i ;
|
#define get4(c) (uget2(c) | ((long) uget2((c)+2) << 16))
|
||||||
long value ;
|
|
||||||
ni=buf ; no=str ; nf=fmt ;
|
|
||||||
while ( last = *nf++ ) {
|
|
||||||
last -= '0' ;
|
|
||||||
if ( last<1 || last >9 ) fatal("illegal out.h format string\n");
|
|
||||||
value=0 ;
|
|
||||||
i=last ;
|
|
||||||
while ( i-- ) {
|
|
||||||
value = (value<<8) + (ni[i]&0xFF) ;
|
|
||||||
}
|
|
||||||
switch ( last ) {
|
|
||||||
case 0 : break ;
|
|
||||||
case 1 : *no= value ; break ;
|
|
||||||
case 2 : *(unsigned short *)no = value ; break ;
|
|
||||||
case 4 : *(long *)no = value ; break ;
|
|
||||||
default :
|
|
||||||
fatal("illegal out.h format string\n");
|
|
||||||
}
|
|
||||||
ni += last ; no += last ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Read the ack.out file header. */
|
/* Read the ack.out file header. */
|
||||||
|
|
||||||
int rhead(FILE* f, struct outhead* head)
|
int rhead(FILE* f, struct outhead* head)
|
||||||
{
|
{
|
||||||
char buf[sizeof(struct outhead)];
|
char buf[SZ_HEAD], *c;
|
||||||
|
|
||||||
if (fread(buf, sizeof(buf), 1, f) != 1)
|
if (fread(buf, sizeof(buf), 1, f) != 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
iconvert(buf, (char*) head, SF_HEAD);
|
c = buf;
|
||||||
|
head->oh_magic = uget2(c); c += 2;
|
||||||
|
head->oh_stamp = uget2(c); c += 2;
|
||||||
|
head->oh_flags = uget2(c); c += 2;
|
||||||
|
head->oh_nsect = uget2(c); c += 2;
|
||||||
|
head->oh_nrelo = uget2(c); c += 2;
|
||||||
|
head->oh_nname = uget2(c); c += 2;
|
||||||
|
head->oh_nemit = get4(c); c += 4;
|
||||||
|
head->oh_nchar = get4(c);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,12 +170,17 @@ int rhead(FILE* f, struct outhead* head)
|
|||||||
|
|
||||||
int rsect(FILE* f, struct outsect* sect)
|
int rsect(FILE* f, struct outsect* sect)
|
||||||
{
|
{
|
||||||
char buf[sizeof(struct outsect)];
|
char buf[SZ_SECT], *c;
|
||||||
|
|
||||||
if (fread(buf, sizeof(buf), 1, f) != 1)
|
if (fread(buf, sizeof(buf), 1, f) != 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
iconvert(buf, (char*) sect, SF_SECT);
|
c = buf;
|
||||||
|
sect->os_base = get4(c); c += 4;
|
||||||
|
sect->os_size = get4(c); c += 4;
|
||||||
|
sect->os_foff = get4(c); c += 4;
|
||||||
|
sect->os_flen = get4(c); c += 4;
|
||||||
|
sect->os_lign = get4(c);
|
||||||
return 1 ;
|
return 1 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -189,7 +189,13 @@ cons_t xgetarb(l,f) int l; FILE *f ; {
|
|||||||
|
|
||||||
shift=0 ; val=0 ;
|
shift=0 ; val=0 ;
|
||||||
while ( l-- ) {
|
while ( l-- ) {
|
||||||
val += ((cons_t)(c = ctrunc(xgetc(f))))<<shift ;
|
// val += ((cons_t)(c = ctrunc(xgetc(f))))<<shift ;
|
||||||
|
// Bug here: shifts with too large shift counts
|
||||||
|
// get unspecified results. --Ceriel
|
||||||
|
c = ctrunc(xgetc(f));
|
||||||
|
if (shift < 8 * sizeof(cons_t)) {
|
||||||
|
val += ((cons_t)c)<<shift ;
|
||||||
|
}
|
||||||
shift += 8 ;
|
shift += 8 ;
|
||||||
}
|
}
|
||||||
if (c == 0377 && shift > 8 && ((shift>>3)&1)) {
|
if (c == 0377 && shift > 8 && ((shift>>3)&1)) {
|
||||||
|
|||||||
@ -849,8 +849,28 @@ extxcon(header) {
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Added atol() that ignores overflow. --Ceriel */
|
||||||
|
long atol(s)
|
||||||
|
register char *s;
|
||||||
|
{
|
||||||
|
register long total = 0;
|
||||||
|
register unsigned digit;
|
||||||
|
int minus = 0;
|
||||||
|
|
||||||
|
while (*s == ' ' || *s == '\t') s++;
|
||||||
|
if (*s == '+') s++;
|
||||||
|
else if (*s == '-') {
|
||||||
|
s++;
|
||||||
|
minus = 1;
|
||||||
|
}
|
||||||
|
while ((digit = *s++ - '0') < 10) {
|
||||||
|
total *= 10;
|
||||||
|
total += digit;
|
||||||
|
}
|
||||||
|
return(minus ? -total : total);
|
||||||
|
}
|
||||||
|
|
||||||
extvcon(header) {
|
extvcon(header) {
|
||||||
extern long atol() ;
|
|
||||||
/*
|
/*
|
||||||
* generate data for a constant initialized by a string.
|
* generate data for a constant initialized by a string.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -357,22 +357,22 @@ DoCFU()
|
|||||||
wtrap(WILLCONV, EILLINS);
|
wtrap(WILLCONV, EILLINS);
|
||||||
}
|
}
|
||||||
f = fpop(4L);
|
f = fpop(4L);
|
||||||
npush((long) f, 2L);
|
npush((unsigned long) f, 2L);
|
||||||
return;
|
return;
|
||||||
case 44:
|
case 44:
|
||||||
f = fpop(4L);
|
f = fpop(4L);
|
||||||
npush((long) f, 4L);
|
npush((unsigned long) f, 4L);
|
||||||
return;
|
return;
|
||||||
case 82:
|
case 82:
|
||||||
if (wsize == 4) {
|
if (wsize == 4) {
|
||||||
wtrap(WILLCONV, EILLINS);
|
wtrap(WILLCONV, EILLINS);
|
||||||
}
|
}
|
||||||
f = fpop(8L);
|
f = fpop(8L);
|
||||||
npush((long) f, 2L);
|
npush((unsigned long) f, 2L);
|
||||||
return;
|
return;
|
||||||
case 84:
|
case 84:
|
||||||
f = fpop(8L);
|
f = fpop(8L);
|
||||||
npush((long) f, 4L);
|
npush((unsigned long) f, 4L);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
wtrap(WILLCONV, EILLINS);
|
wtrap(WILLCONV, EILLINS);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user