DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC700 "Piccolo"

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC700 "Piccolo"

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦f64df1cb5⟧ TextFile

    Length: 1408 (0x580)
    Types: TextFile
    Names: »CDB2.C«

Derivation

└─⟦b35f94715⟧ Bits:30003295 BDS C version 1.50 arbejdsdiskette til RC703 Piccolo
└─⟦b35f94715⟧ Bits:30005324 BDS C version 1.50 arbejdsdiskette til RC703 Piccolo
    └─ ⟦this⟧ »CDB2.C« 

TextFile

#include "cdb2.h"

/* Copyright (c) 1982 by J. David Kirkland, Jr. */

/* cdb2 is the routine that initializes the package that is coresident in
 * memory with the target program.
 * "name" is the complete name of the COM file to be loaded.
 * "glob" is a pointer to the first global symbol table entry.
 * "loc"  is a pointer to the first local symbol table entry.
 */

cdb2 (name, glob, loc)  char *name, *glob, *loc; æ
	char fcbÆ40Å, *p;
	int *q, i;

	COPYRIGHT;

	/* set up table pointers */
	localp = loc;
	globalp = fntabend = glob;
	fntab = CDB2ADDR;
	fntab--;

	trace_full = 0;		/* empty trace table */
	ntraces = 0;
	curfnt = fntab;
	cursn = 0;
	walkcount = 1;		/* will cause a break at first RST */
#ifdef DEBUG
	debug = 0;
#endif
	q = ORIGIN + 0x0006;	/* get BDOS address for top of  */
	i = *q;			/* debug stack */
	q = i+1;

	initrst(*q);

	clearbreaks();

	/* load target file */
	if (ERROR==setfcb(fcb,name) øø 255==bdos(15,fcb) ) æ
		printf("no target file on diskØn");
		exit();
		å

	for (p=ORIGIN + 0x0100; ; p+=128) æ
		bdos(26,p);
		if (bdos(20,fcb))
			break;
		å

	globbase = externs();
	p = CCC_KHACK;		/* disable CCC's khack mechanism, which */
	*p = 0xc9;		/* sets the RST vector to a return      */

	call (ORIGIN + 0x0100); 	/* take off */
å
«eof»