From 125fcfc979cf705d7bc6723ebc1c4dc9a6388e8e Mon Sep 17 00:00:00 2001 From: leo Date: Sun, 7 Jan 1996 21:10:37 +0000 Subject: [PATCH] These files can now be found in tostools. --- sys/arch/atari/stand/chg_pid/chg_pid.c | 240 ------------- sys/arch/atari/stand/loadbsd/loadbsd.c | 438 ----------------------- sys/arch/atari/stand/loadbsd/loader.h | 89 ----- sys/arch/atari/stand/rawwrite/rawwrite.c | 115 ------ 4 files changed, 882 deletions(-) delete mode 100644 sys/arch/atari/stand/chg_pid/chg_pid.c delete mode 100644 sys/arch/atari/stand/loadbsd/loadbsd.c delete mode 100644 sys/arch/atari/stand/loadbsd/loader.h delete mode 100644 sys/arch/atari/stand/rawwrite/rawwrite.c diff --git a/sys/arch/atari/stand/chg_pid/chg_pid.c b/sys/arch/atari/stand/chg_pid/chg_pid.c deleted file mode 100644 index 926519b8075e..000000000000 --- a/sys/arch/atari/stand/chg_pid/chg_pid.c +++ /dev/null @@ -1,240 +0,0 @@ -/* $NetBSD: chg_pid.c,v 1.1.1.1 1995/03/26 07:12:04 leo Exp $ */ - -/* - * Copyright (c) 1995 L. Weppelman - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Leo Weppelman. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * - * This program changes the partition id field (p_id) in the GEM - * partition info. NetBSD uses these id-fields to determine the kind - * of partition. Sensible id's to set are: - * NBU : NetBSD User partition - * NBR : NetBSD Root partition - * NBS : NetBSD Swap partition - * - * When NetBSD auto boots, the first 'NBR' partition found when scanning the - * SCSI-disks becomes the active root partition. The same goes for 'NBS'. - * Drives are scanned in 'SCSI-id' order. - */ -#include -#include - -/* - * Format of GEM root sector - */ -typedef struct gem_part { - u_char p_flg; /* bit 0 is in-use flag */ - u_char p_id[3]; /* id: GEM, BGM, XGM, UNX, MIX */ - u_long p_st; /* block where partition starts */ - u_long p_size; /* partition size */ -} GEM_PART; - -#define NGEM_PARTS 4 /* Max. partition infos in root sector */ - -typedef struct gem_root { - u_char fill[0x1c2]; /* Filler, can be boot code */ - u_long hd_siz; /* size of entire volume */ - GEM_PART parts[NGEM_PARTS]; /* see above */ - u_long bsl_st; /* start of bad-sector list */ - u_long bsl_cnt; /* nr. blocks in bad-sector list*/ - u_short csum; /* checksum correction */ -} GEM_ROOT; - -main(argc, argv) -int argc; -char *argv[]; -{ - int driveno = 0; - int partno = 0; - char *newname; - int c; - - if(argc != 4) - usage(); - driveno = atoi(argv[1]); - partno = atoi(argv[2]); - newname = argv[3]; - - printf("Note: drives start numbering at 0!\n"); - printf("About to change id of partition %d on drive %d to %s\n", - partno, driveno, newname); - printf("Are you sure (y/n)? "); - c = getchar(); - switch(c) { - case 'y': - case 'Y': - if(chg_tosparts(partno, driveno, newname)) - printf("Done\n"); - else printf("Partion number not found\n"); - break; - default : - printf("Aborted\n"); - } -} - -usage() -{ - printf("Usage: chg_pid \n"); - exit(1); -} - -int chg_tosparts(chg_part, drive, newname) -int chg_part, drive; -char *newname; -{ - GEM_ROOT *g_root; - GEM_PART g_local[NGEM_PARTS]; - char buf[512]; - int pno = 1; - int i; - - /* - * Read root sector - */ - if(read_block(buf, 0, drive) == 0) { - fprintf(stderr, "Cannot read block 0\n"); - exit(1); - } - - /* - * Make local copy of partition info, we may need to re-use - * the buffer in case of 'XGM' partitions. - */ - g_root = (GEM_ROOT*)buf; - bcopy(g_root->parts, g_local, NGEM_PARTS*sizeof(GEM_PART)); - - - for(i = 0; i < NGEM_PARTS; i++) { - if(!(g_local[i].p_flg & 1)) - continue; - if(!strncmp(g_local[i].p_id, "XGM", 3)) { - int j; - daddr_t new_root = g_local[i].p_st; - - /* - * Loop through extended partition list - */ - for(;;) { - if(read_block(buf, new_root, drive) == 0) { - fprintf(stderr, "Cannot read block %d\n", new_root); - exit(1); - } - for(j = 0; j < NGEM_PARTS; j++) { - if(!(g_root->parts[j].p_flg & 1)) - continue; - if(!strncmp(g_root->parts[j].p_id, "XGM", 3)) { - new_root = g_local[i].p_st + g_root->parts[j].p_st; - break; - } - else { - if(pno == chg_part) { - change_it(pno,g_root->parts[j].p_id, newname); - if(write_block(buf, new_root, drive) == 0) { - fprintf(stderr, "Cannot write block %d\n", - new_root); - exit(1); - } - return(1); - } - pno++; - } - } - if(j == NGEM_PARTS) - break; - } - } - else { - if(pno == chg_part) { - /* - * Re-read block 0 - */ - if(read_block(buf, 0, drive) == 0) { - fprintf(stderr, "Cannot read block 0\n"); - exit(1); - } - change_it(pno, g_root->parts[i].p_id, newname); - set_csum(buf); - if(write_block(buf, 0, drive) == 0) { - fprintf(stderr, "Cannot write block 0\n"); - exit(1); - } - return(1); - } - pno++; - } - } - return(0); -} - -change_it(pno, p_id, newname) -int pno; -char *p_id, *newname; -{ - char s1[4], s2[4]; - - strncpy(s1, p_id, 3); - strncpy(s2, newname, 3); - s1[3] = s2[3] = '\0'; - printf("Changing partition %d: %s -> %s ...", pno, s1, s2); - p_id[0] = s2[0]; p_id[1] = s2[1]; p_id[2] = s2[2]; -} - -read_block(buf, blkno, drive) -void *buf; -int blkno; -int drive; -{ - if(Dmaread(blkno, 1, buf, drive + 8) != 0) - return(0); - return(1); -} - -write_block(buf, blkno, drive) -void *buf; -int blkno; -int drive; -{ - if(Dmawrite(blkno, 1, buf, drive + 8) != 0) - return(0); - return(1); -} - -set_csum(buf) -char *buf; -{ - unsigned short *p = (unsigned short *)buf; - unsigned short csum = 0; - int i; - - p[255] = 0; - for(i = 0; i < 256; i++) - csum += *p++; - *--p = (0x1234 - csum) & 0xffff; -} diff --git a/sys/arch/atari/stand/loadbsd/loadbsd.c b/sys/arch/atari/stand/loadbsd/loadbsd.c deleted file mode 100644 index f28074a8a7d8..000000000000 --- a/sys/arch/atari/stand/loadbsd/loadbsd.c +++ /dev/null @@ -1,438 +0,0 @@ -/* $NetBSD: loadbsd.c,v 1.9 1995/09/23 20:31:21 leo Exp $ */ - -/* - * Copyright (c) 1995 L. Weppelman - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Leo Weppelman. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * NetBSD loader for the Atari-TT. - */ - -#include -#include -#include -#include -#include -#include "loader.h" - -char *Progname; /* How are we called */ -int t_flag = 0; /* Just test, do not execute */ -int d_flag = 0; /* Output debugging output? */ -int s_flag = 0; /* St-ram only */ - -char version[] = "$Revision: 1.9 $"; - -/* - * Default name of kernel to boot, large enough to patch - */ -char kname[80] = "n:/netbsd"; - -static struct { - u_char *kp; /* 00: Kernel load address */ - long ksize; /* 04: Size of loaded kernel */ - u_long entry; /* 08: Kernel entry point */ - long stmem_size; /* 12: Size of st-ram */ - long ttmem_size; /* 16: Size of tt-ram */ - long cputype; /* 20: Type of cpu */ - long boothowto; /* 24: How to boot */ - long ttmem_start; /* 28: Start of tt-ram */ - long esym_loc; /* 32: End of symbol table */ -} kparam; - -void get_sys_info(void); -void error(char *fmt, ...); -void help(void); -void usage(void); -void start_kernel(void); -void do_exit(int); - -int main(argc, argv) -int argc; -char **argv; -{ - /* - * Option parsing - */ - extern int optind; - extern char *optarg; - int ch; - int fd; - long textsz, stringsz; - struct exec ehdr; - - Progname = argv[0]; - - kparam.boothowto = RB_SINGLE; - - while ((ch = getopt(argc, argv, "abdhstvDS:T:")) != EOF) { - switch(ch) { - case 'a': - kparam.boothowto &= ~(RB_SINGLE); - kparam.boothowto |= RB_AUTOBOOT; - break; - case 'b': - kparam.boothowto |= RB_ASKNAME; - break; - case 'd': - kparam.boothowto |= RB_KDB; - break; - case 'D': - d_flag = 1; - break; - case 's': - s_flag = 1; - break; - case 'S': - kparam.stmem_size = atoi(optarg); - break; - case 't': - t_flag = 1; - break; - case 'T': - kparam.ttmem_size = atoi(optarg); - break; - case 'v': - fprintf(stdout,"%s\r\n", version); - break; - case 'h': - help(); - default: - usage(); - } - } - argc -= optind; - argv += optind; - if(argc == 1) - strcpy(kname, argv[0]); - - /* - * Get system info to pass to NetBSD - */ - get_sys_info(); - - /* - * Find the kernel to boot and read it's exec-header - */ - if((fd = open(kname, O_RDONLY)) < 0) - error("Cannot open kernel '%s'", kname); - if(read(fd, &ehdr, sizeof(ehdr)) != sizeof(ehdr)) - error("Cannot read exec-header of '%s'", kname); - if((ehdr.a_magic & 0xffff) != NMAGIC) /* XXX */ - error("Not an NMAGIC file '%s'", kname); - - /* - * Extract various sizes from the kernel executable - */ - textsz = (ehdr.a_text + __LDPGSZ - 1) & ~(__LDPGSZ - 1); - kparam.esym_loc = 0; - kparam.ksize = textsz + ehdr.a_data + ehdr.a_bss; - kparam.entry = ehdr.a_entry; - - if(ehdr.a_syms) { - if(lseek(fd,ehdr.a_text+ehdr.a_data+ehdr.a_syms+sizeof(ehdr), 0) <= 0) - error("Cannot seek to string table in '%s'", kname); - if(read(fd, &stringsz, sizeof(long)) != sizeof(long)) - error("Cannot read string-table size"); - if(lseek(fd, sizeof(ehdr), 0) <= 0) - error("Cannot seek back to text start"); - kparam.ksize += ehdr.a_syms + sizeof(long) + stringsz; - } - - if((kparam.kp = (u_char *)malloc(kparam.ksize)) == NULL) - error("Cannot malloc kernel image space"); - - /* - * Read text & data, clear bss - */ - if((read(fd, kparam.kp, ehdr.a_text) != ehdr.a_text) - || (read(fd, kparam.kp + textsz, ehdr.a_data) != ehdr.a_data)) - error("Unable to read kernel image\n"); - memset(kparam.kp + textsz + ehdr.a_data, 0, ehdr.a_bss); - - /* - * Read symbol and string table - */ - if(ehdr.a_syms) { - long *p; - - p = (long *)(kparam.kp + textsz + ehdr.a_data + ehdr.a_bss); - *p++ = ehdr.a_syms; - if(read(fd, (char *)p, ehdr.a_syms) != ehdr.a_syms) - error("Cannot read symbol table\n"); - p = (long *)((char *)p + ehdr.a_syms); - if(read(fd, (char *)p, stringsz) != stringsz) - error("Cannot read string table\n"); - kparam.esym_loc = (long)((char *)p-(char *)kparam.kp +stringsz); - } - - if(d_flag) { - fprintf(stdout, "\r\nKernel info:\r\n"); - fprintf(stdout, "Kernel loadaddr\t: 0x%08x\r\n", kparam.kp); - fprintf(stdout, "Kernel size\t: %10d bytes\r\n", kparam.ksize); - fprintf(stdout, "Kernel entry\t: 0x%08x\r\n", kparam.entry); - fprintf(stdout, "Kernel esym\t: 0x%08x\r\n", kparam.esym_loc); - } - - if(!t_flag) - start_kernel(); - /* NOT REACHED */ - - fprintf(stdout, "Kernel '%s' was loaded OK\r\n", kname); - do_exit(0); -} - -/* - * Extract memory and cpu/fpu info from system. - */ -void get_sys_info() -{ - long stck; - long *jar; - OSH *oshdr; - - kparam.cputype = 0; - - stck = Super(0); - - /* - * Some GEMDOS versions use a different year-base in the RTC. - */ - oshdr = *ADDR_OSHEAD; - oshdr = oshdr->os_beg; - if((oshdr->os_version >= 0x0300) && (oshdr->os_version < 0x0306)) - kparam.cputype |= ATARI_CLKBROKEN; - - if(kparam.stmem_size <= 0) - kparam.stmem_size = *ADDR_PHYSTOP; - - if(kparam.ttmem_size) - kparam.ttmem_start = TTRAM_BASE; - else { - if(!s_flag && (*ADDR_CHKRAMTOP == RAM_TOP_MAGIC)) { - kparam.ttmem_size = *ADDR_RAMTOP; - if(kparam.ttmem_size > TTRAM_BASE) { - kparam.ttmem_size -= TTRAM_BASE; - kparam.ttmem_start = TTRAM_BASE; - } - else kparam.ttmem_size = 0; - } - } - - /* - * Scan cookiejar for cpu types - */ - jar = *ADDR_P_COOKIE; - if(jar != NULL) { - do { - if(jar[0] == 0x5f435055) { /* _CPU */ - switch(jar[1]) { - case 0: - kparam.cputype |= ATARI_68000; - break; - case 10: - kparam.cputype |= ATARI_68010; - break; - case 20: - kparam.cputype |= ATARI_68020; - break; - case 30: - kparam.cputype |= ATARI_68030; - break; - case 40: - kparam.cputype |= ATARI_68040; - break; - default: - error("Unknown CPU-type"); - } - } - if(jar[0] == 0x42504658) { /* BPFX */ - unsigned long *p; - - p = (unsigned long*)jar[1]; - - kparam.ttmem_start = p[1]; - kparam.ttmem_size = p[2]; - } - jar = &jar[2]; - } while(jar[-2]); - } - if(!(kparam.cputype & ATARI_ANYCPU)) - error("Cannot determine CPU-type"); - - Super(stck); - - if(d_flag) { - fprintf(stdout, "Machine info:\r\n"); - fprintf(stdout, "ST-RAM size\t: %10d bytes\r\n", kparam.stmem_size); - fprintf(stdout, "TT-RAM size\t: %10d bytes\r\n", kparam.ttmem_size); - fprintf(stdout, "TT-RAM start\t: 0x%08x\r\n", kparam.ttmem_start); - fprintf(stdout, "Cpu-type\t: 0x%08x\r\n", kparam.cputype); - } -} - -void error(char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - - fprintf(stdout, "%s: ", Progname); - vfprintf(stdout, fmt, ap); - fprintf(stdout, "\r\n"); - do_exit(1); - /*NOTREACHED*/ -} - -void help() -{ - fprintf(stdout, "\r -NetBSD loader for the Atari-TT\r -\r -Usage: %s [-abdhstvD] [-S ] [kernel]\r -\r -Description of options:\r -\r -\t-a Boot up to multi-user mode.\r -\t-b Ask for root device to use.\r -\t-d Enter kernel debugger.\r -\t-h What your getting right now.\r -\t-s Use only ST-compatible RAM\r -\t-S Set amount of ST-compatible RAM\r -\t-T Set amount of TT-compatible RAM\r -\t-t Test the loader. It will do everything except executing the\r -\t loaded kernel.\r -\t-D printout debugging information while loading\r -\t-v Print loader version.\r -", Progname); - do_exit(0); -} - -void usage() -{ - fprintf(stdout, "Usage: %s [-abdhtv] [kernel]\r\n", Progname); - do_exit(1); -} - -void do_exit(code) -int code; -{ - fprintf(stdout, "\r\nHit to continue..."); - (void)getchar(); - fprintf(stdout, "\r\n"); - exit(code); -} - -void start_kernel() -{ - long stck; - - stck = Super(0); - startit(); - /* NOT REACHED */ - - Super(stck); -} - -asm(" - .text - .globl _startit - -_startit: - move.w #0x2700,sr - - | the BSD kernel wants values into the following registers: - | d0: ttmem-size - | d1: stmem-size - | d2: cputype - | d3: boothowto - | d4: length of loaded kernel - | d5: start of fastram - | a0: start of loaded kernel - | a1: end of symbols (esym) - | All other registers zeroed for possible future requirements. - - lea _kparam, a3 | a3 points to parameter block - lea _startit,sp | make sure we have a good stack *** - move.l (a3),a0 | loaded kernel - move.l 8(a3),-(sp) | push entry point *** - move.l a0,d0 | offset of loaded kernel - add.l d0,(sp) | add offset - move.l 12(a3),d1 | stmem-size - move.l 16(a3),d0 | ttmem-size - move.l 20(a3),d2 | cputype - move.l 24(a3),d3 | boothowto - move.l 4(a3),d4 | length of loaded kernel - move.l 28(a3),d5 | start of fastram - move.l 32(a3),a1 | end of symbols - sub.l a5,a5 | target, load to 0 - btst #4, d2 | Is this an 68040? - beq not040 - - | Turn off 68040 MMU - .word 0x4e7b,0xd003 | movec a5,tc - .word 0x4e7b,0xd806 | movec a5,urp - .word 0x4e7b,0xd807 | movec a5,srp - .word 0x4e7b,0xd004 | movec a5,itt0 - .word 0x4e7b,0xd005 | movec a5,itt1 - .word 0x4e7b,0xd006 | movec a5,dtt0 - .word 0x4e7b,0xd007 | movec a5,dtt1 - bra nott - -not040: - lea zero,a3 - pmove (a3),tcr | Turn off MMU - lea nullrp,a3 - pmove (a3),crp | Turn off MMU some more - pmove (a3),srp | Really, really, turn off MMU - - | Turn off 68030 TT registers - btst #3, d2 | Is this an 68030? - beq.b nott - lea zero,a3 - pmove (a3),tt0 - pmove (a3),tt1 - -nott: - moveq.l #0,d6 | would have known contents) - moveq.l #0,d7 - movea.l d6,a2 - movea.l d6,a3 - movea.l d6,a4 - movea.l d6,a5 - movea.l d6,a6 - rts | enter kernel at address on stack *** - - -| A do-nothing MMU root pointer (includes the following long as well) - -nullrp: .long 0x80000202 -zero: .long 0 -svsp: .long 0 - -"); diff --git a/sys/arch/atari/stand/loadbsd/loader.h b/sys/arch/atari/stand/loadbsd/loader.h deleted file mode 100644 index 4c86a7aa614c..000000000000 --- a/sys/arch/atari/stand/loadbsd/loader.h +++ /dev/null @@ -1,89 +0,0 @@ -/* $NetBSD: loader.h,v 1.5 1995/08/29 20:35:16 leo Exp $ */ - -/* - * Copyright (c) 1995 L. Weppelman - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Leo Weppelman. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * NetBSD loader for the Atari-TT. - * - * Assume compiling under TOS or MINT. The page-size will always - * be incorrect then (if it is defined anyway). - */ -#ifdef __LDPGSZ -#undef __LDPGSZ -#endif - -#define __LDPGSZ (8*1024) /* Page size for NetBSD */ - -#define TTRAM_BASE 0x1000000 /* Fastram always starts here */ - -/* - * System var's used in low-memory - */ -#define ADDR_RAMTOP ((long*)0x5a4) /* End of TT-ram (unofficial) */ -#define ADDR_CHKRAMTOP ((long*)0x5a8) /* above is valid (unofficial)*/ -#define ADDR_PHYSTOP ((long*)0x42e) /* End of ST-ram */ -#define ADDR_P_COOKIE ((long**)0x5a0) /* Pointer to cookie jar */ -#define ADDR_OSHEAD ((OSH**)0x4f2) /* Pointer Os-header */ - -#define RAM_TOP_MAGIC (0x1357bd13) /* Magic nr. for ADDR_CHKRAMTOP */ - -/* - * These should match with the values NetBSD uses! - */ -#define ATARI_68000 1 /* 68000 CPU */ -#define ATARI_68010 (1<<1) /* 68010 CPU */ -#define ATARI_68020 (1<<2) /* 68020 CPU */ -#define ATARI_68030 (1<<3) /* 68030 CPU */ -#define ATARI_68040 (1<<4) /* 68040 CPU */ -#define ATARI_TT (1L<<11) /* This is a TT030 */ -#define ATARI_FALCON (1L<<12) /* This is a Falcon */ - -#define ATARI_CLKBROKEN (1<<16) /* GEMDOS has faulty year base */ - -#define ATARI_ANYCPU (0x1f) - -/* - * Definitions for boothowto - */ -#define RB_AUTOBOOT 0x00 -#define RB_ASKNAME 0x01 -#define RB_SINGLE 0x02 -#define RB_KDB 0x40 - -/* - * Sufficient but incomplete definition os Os-header - */ -typedef struct osh { - unsigned short os_entry; - unsigned short os_version; - void *reseth; - struct osh *os_beg; -} OSH; diff --git a/sys/arch/atari/stand/rawwrite/rawwrite.c b/sys/arch/atari/stand/rawwrite/rawwrite.c deleted file mode 100644 index 24699fc17693..000000000000 --- a/sys/arch/atari/stand/rawwrite/rawwrite.c +++ /dev/null @@ -1,115 +0,0 @@ -/* $NetBSD: rawwrite.c,v 1.1.1.1 1995/04/06 21:04:54 leo Exp $ */ - -/* - * Copyright (c) 1995 Leo Weppelman. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Leo Weppelman. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#define SECT_SIZE 512 /* Sector size */ -#define NSECT_DD 18 /* Sectors per track 720Kb */ -#define NSECT_HD 36 /* Sectors per track 1.44Mb */ -#define NTRK 80 /* Number of tracks */ - -static void usage(); -static void brwrite(); - -char buf[NSECT_HD * SECT_SIZE]; -int vflag = 0; -char *progname; - -main(argc, argv) -int argc; -char *argv[]; -{ - extern int optind; - extern char *optarg; - int ch; - char *infile; - int fd; - int i; - int nsect; - - progname = argv[0]; - while ((ch = getopt(argc, argv, "v")) != EOF) { - switch(ch) { - case 'v': - vflag = 1; - break; - default : - usage(); - break; - } - } - if(optind >= argc) - usage(); - - infile = argv[optind]; - nsect = NSECT_DD; - - if((fd = open(infile, O_RDONLY)) < 0) { - fprintf(stderr, "%s: Cannot open '%s'\n", progname, infile); - exit(1); - } - - for(i = 0; i < NTRK; i++) { - if(read(fd, buf, nsect * SECT_SIZE) != (nsect * SECT_SIZE)) { - fprintf(stderr, "\nRead error on '%s'\n", progname, infile); - exit(1); - } - if(vflag) { - if(i && !(i % 40)) - printf("\n"); - fprintf(stderr, "."); - } - brwrite(buf, nsect * i, nsect); - } - close(fd); - if(vflag) - printf("\n"); -} - -static void brwrite(buf, blk, cnt) -char *buf; -int blk, cnt; -{ - if(Rwabs(3, buf, cnt, blk, 0) != 0) { - fprintf(stderr, "\n%s: Write error on floppy\n", progname); - exit(1); - } -} - -static void usage() -{ - fprintf(stderr, "usage: rawwrite [-v] \n"); - exit(1); -}