3B2: Rename files in prep for Rev 3 support

This change lays the groundwork for adding support for Rev 3 3B2 models,
which includes the Model 500, Model 600, and Model 1000.

Rather than use the fixed strings "400" and "1000" in file names, the
strings "rev2" and "rev3" will be used, which allows greater flexibility
to implement various system configurations more easily.

Additionally, this change adds a copy of the Debug Monitor (DEMON) ROM
image for the Rev 2 board, to be used soon in a later checkin.
This commit is contained in:
Seth Morabito 2021-05-09 13:53:42 -07:00
parent 60a3c52e12
commit 92ff16ca7b
22 changed files with 4184 additions and 111 deletions

View file

@ -1,34 +0,0 @@
/* 3b2_1000_defs.h: AT&T 3B2 Model 400 Simulator Definitions
Copyright (c) 2020, Seth J. Morabito
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Except as contained in this notice, the name of the author shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from the author.
*/
#ifndef _3B2_1000_DEFS_H_
#define _3B2_1000_DEFS_H_
#endif

View file

@ -1,4 +1,4 @@
/* 3b2_400_cpu.c: AT&T 3B2 Model 400 CPU (WE32100) Implementation
/* 3b2_cpu.c: AT&T 3B2 CPU (WE32100 and WE32200) Implementation
Copyright (c) 2017, Seth J. Morabito
@ -29,8 +29,8 @@
*/
#include "3b2_defs.h"
#include "3b2_400_cpu.h"
#include "rom_400_bin.h"
#include "3b2_cpu.h"
#include "rom_rev2_bin.h"
#include <sim_defs.h>
#define MAX_SUB_RETURN_SKIP 9

View file

@ -1,4 +1,4 @@
/* 3b2_400_cpu.h: AT&T 3B2 Model 400 CPU (WE32100) Header
/* 3b2_cpu.h: AT&T 3B2 CPU (WE32100 and WE32200) Header
Copyright (c) 2017, Seth J. Morabito

View file

@ -35,17 +35,13 @@
#include "sim_tmxr.h"
#include <setjmp.h>
#if defined(REV3)
#include "3b2_1000_defs.h"
#else
#include "3b2_400_defs.h"
#include "3b2_400_cpu.h"
#include "3b2_400_mau.h"
#include "3b2_400_mmu.h"
#include "3b2_400_stddev.h"
#include "3b2_400_sys.h"
#include "3b2_cpu.h"
#include "3b2_rev2_defs.h"
#include "3b2_rev2_mau.h"
#include "3b2_rev2_mmu.h"
#include "3b2_rev2_stddev.h"
#include "3b2_rev2_sys.h"
#include "3b2_id.h"
#endif
#include "3b2_io.h"
#include "3b2_dmac.h"

View file

@ -1,4 +1,4 @@
/* 3b2_400_defs.h: AT&T 3B2 Model 400 Simulator Definitions
/* 3b2_rev2_defs.h: AT&T 3B2 Rev 2 (Model 400) Simulator Definitions
Copyright (c) 2017, Seth J. Morabito
@ -28,8 +28,8 @@
from the author.
*/
#ifndef _3B2_400_DEFS_H_
#define _3B2_400_DEFS_H_
#ifndef _3B2_REV2_DEFS_H_
#define _3B2_REV2_DEFS_H_
#include "sim_defs.h"
@ -108,4 +108,4 @@
#define DMA_C 0x48
#define DMA_IF 0x4E
#endif /* _3B2_400_DEFS_H_ */
#endif /* _3B2_REV2_DEFS_H_ */

View file

@ -1,5 +1,5 @@
/* 3b2_400_mau.c: AT&T 3B2 Model 400 Math Acceleration Unit (WE32106 MAU)
Implementation
/* 3b2_rev2_mau.c: AT&T 3B2 Rev 2 (Model 400) Math Acceleration
Unit (WE32106 MAU) Implementation
Copyright (c) 2019, Seth J. Morabito
@ -84,7 +84,7 @@
#include <math.h>
#include "3b2_defs.h"
#include "3b2_400_mau.h"
#include "3b2_rev2_mau.h"
#define MAU_ID 0 /* Coprocessor ID of MAU */

View file

@ -1,5 +1,5 @@
/* 3b2_400_mau.c: AT&T 3B2 Model 400 Math Acceleration Unit (WE32106 MAU)
Header
/* 3b2_rev2_mau.c: AT&T 3B2 Rev 2 (Model 400) Math Acceleration
Unit (WE32106 MAU) Header
Copyright (c) 2019, Seth J. Morabito
@ -139,8 +139,8 @@
*/
#ifndef _3B2_400_MAU_H_
#define _3B2_400_MAU_H_
#ifndef _3B2_REV2_MAU_H_
#define _3B2_REV2_MAU_H_
#include "sim_defs.h"
@ -380,4 +380,4 @@ t_stat mau_broadcast(uint32 cmd, uint32 src, uint32 dst);
CONST char *mau_description(DEVICE *dptr);
t_stat mau_broadcast(uint32 cmd, uint32 src, uint32 dst);
#endif /* _3B2_400_MAU_H_ */
#endif /* _3B2_REV2_MAU_H_ */

View file

@ -1,4 +1,4 @@
/* 3b2_400_mmu.c: AT&T 3B2 Model 400 MMU (WE32101) Implementation
/* 3b2_rev2_mmu.c: AT&T 3B2 Rev 2 (Model 400) MMU (WE32101) Implementation
Copyright (c) 2017, Seth J. Morabito
@ -29,7 +29,7 @@
*/
#include "3b2_defs.h"
#include "3b2_400_mmu.h"
#include "3b2_rev2_mmu.h"
UNIT mmu_unit = { UDATA(NULL, 0, 0) };

View file

@ -1,4 +1,4 @@
/* 3b2_400_mmu.c: AT&T 3B2 Model 400 MMU (WE32101) Header
/* 3b2_rev2_mmu.c: AT&T 3B2 Rev 2 (Model 400) MMU (WE32101) Header
Copyright (c) 2017, Seth J. Morabito
@ -28,11 +28,11 @@
from the author.
*/
#ifndef _3B2_400_MMU_H_
#define _3B2_400_MMU_H_
#ifndef _3B2_REV2_MMU_H_
#define _3B2_REV2_MMU_H_
#include "sim_defs.h"
#include "3b2_400_defs.h"
#include "3b2_rev2_defs.h"
/************************************************************************
*
@ -394,4 +394,4 @@ t_stat mmu_decode_va(uint32 va, uint8 r_acc, t_bool fc, uint32 *pa);
void mmu_enable();
void mmu_disable();
#endif /* _3B2_400_MMU_H_ */
#endif /* _3B2_REV2_MMU_H_ */

View file

@ -1,4 +1,4 @@
/* 3b2_400_stddev.h: AT&T 3B2 Model 400 System Devices implementation
/* 3b2_rev2_stddev.h: AT&T 3B2 Rev 2 (Model 400) System Devices Implementation
Copyright (c) 2017, Seth J. Morabito
@ -39,7 +39,7 @@
*/
#include "3b2_defs.h"
#include "3b2_400_stddev.h"
#include "3b2_rev2_stddev.h"
DEBTAB sys_deb_tab[] = {
{ "INIT", INIT_MSG, "Init" },

View file

@ -1,4 +1,4 @@
/* 3b2_400_stddev.h: AT&T 3B2 Model 400 System Devices (Header)
/* 3b2_rev2_stddev.h: AT&T 3B2 Rev 2 (Model 400) System Devices Header
Copyright (c) 2017, Seth J. Morabito
@ -28,8 +28,8 @@
from the author.
*/
#ifndef _3B2_SYSDEV_H_
#define _3B2_SYSDEV_H_
#ifndef _3B2_REV2_SYSDEV_H_
#define _3B2_REV2_SYSDEV_H_
#include "sim_defs.h"
@ -119,4 +119,5 @@ const char *tod_description(DEVICE *dptr);
t_stat tod_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr);
uint32 tod_read(uint32 pa, size_t size);
void tod_write(uint32, uint32 val, size_t size);
#endif
#endif /* _3B2_REV2_SYSDEV_H_ */

View file

@ -1,4 +1,4 @@
/* 3b2_defs.h: AT&T 3B2 Model 400 system-specific logic implementation
/* 3b2_rev2_defs.h: AT&T 3B2 Rev 2 (Model 400) system implementation
Copyright (c) 2017, Seth J. Morabito
@ -29,7 +29,7 @@
*/
#include "3b2_defs.h"
#include "3b2_400_sys.h"
#include "3b2_rev2_sys.h"
char sim_name[] = "AT&T 3B2 Model 400";

View file

@ -1,4 +1,4 @@
/* 3b2_400_sys.h: AT&T 3B2 Model 400 system-specific logic headers
/* 3b2_rev2_sys.h: AT&T 3B2 Rev 2 (Model 400) system header
Copyright (c) 2017, Seth J. Morabito
@ -28,8 +28,8 @@
from the author.
*/
#ifndef _3B2_400_SYS_H_
#define _3B2_400_SYS_H_
#ifndef _3B2_REV2_SYS_H_
#define _3B2_REV2_SYS_H_
#include "sim_defs.h"
@ -39,4 +39,4 @@ t_stat parse_sym(CONST char *cptr, t_addr addr, UNIT *uptr, t_value *val,
int32 sw);
t_stat fprint_sym(FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw);
#endif /* _3B2_400_SYS_H_ */
#endif /* _3B2_REV2_SYS_H_ */

View file

@ -1,15 +1,15 @@
#ifndef _ROM_400_bin_H
#define _ROM_400_bin_H
#ifndef ROM_rom_rev2_bin_H
#define ROM_rom_rev2_bin_H 0
/*
3B2/rom_400_bin.h produced at Sat Feb 27 20:44:17 2016
from 3B2/rom_400.bin which was last modified at Sat Feb 27 20:41:02 2016
3B2/rom_rev2_bin.h produced at Sun May 9 13:35:55 2021
from 3B2/rom_rev2.bin which was last modified at Fri Sep 11 14:28:01 2020
file size: 32768 (0x8000) - checksum: 0xFFD55762
This file is a generated file and should NOT be edited or changed by hand.
*/
#define BOOT_CODE_SIZE 0x8000
#define BOOT_CODE_FILENAME "rom_400.bin"
#define BOOT_CODE_ARRAY rom_400_bin
unsigned char rom_400_bin[] = {
#define BOOT_CODE_FILENAME "rom_rev2.bin"
#define BOOT_CODE_ARRAY rom_rev2_bin
unsigned char rom_rev2_bin[] = {
0x00,0x00,0x05,0x48,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
@ -2058,4 +2058,4 @@ unsigned char rom_400_bin[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x72,
0x22,0x22,0x22,0x22,0x03,0x02,0x01,0x30,0x03,0x02,0x01,0x0E,0x03,0x02,0x01,0x0B,};
#endif /* _ROM_400_bin_H */
#endif /* ROM_rom_rev2_bin_H */

BIN
3B2/rom_rev2_demon.bin Normal file

Binary file not shown.

4109
3B2/rom_rev2_demon_bin.h Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,15 +1,15 @@
#ifndef ROM_rom_1000_bin_H
#define ROM_rom_1000_bin_H 0
#ifndef ROM_rom_rev3_bin_H
#define ROM_rom_rev3_bin_H 0
/*
3B2/rom_1000_bin.h produced at Thu Mar 26 15:10:06 2020
from 3B2/rom_1000.bin which was last modified at Thu Mar 26 13:28:00 2020
3B2/rom_rev3_bin.h produced at Sun May 9 13:35:55 2021
from 3B2/rom_rev3.bin which was last modified at Fri Sep 11 14:28:01 2020
file size: 131072 (0x20000) - checksum: 0xFFDC0EB8
This file is a generated file and should NOT be edited or changed by hand.
*/
#define BOOT_CODE_SIZE 0x20000
#define BOOT_CODE_FILENAME "rom_1000.bin"
#define BOOT_CODE_ARRAY rom_1000_bin
unsigned char rom_1000_bin[] = {
#define BOOT_CODE_FILENAME "rom_rev3.bin"
#define BOOT_CODE_ARRAY rom_rev3_bin
unsigned char rom_rev3_bin[] = {
0x00,0x00,0x05,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
@ -8202,4 +8202,4 @@ unsigned char rom_1000_bin[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x95,
0x06,0x06,0x06,0x06,0x03,0x02,0x01,0x78,0x03,0x02,0x01,0x1A,0x03,0x02,0x01,0x21,};
#endif /* ROM_rom_1000_bin_H */
#endif /* ROM_rom_rev3_bin_H */

View file

@ -192,7 +192,7 @@
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
>
<File
RelativePath="..\3B2\3b2_400_cpu.c"
RelativePath="..\3B2\3b2_cpu.c"
>
</File>
<File
@ -220,11 +220,11 @@
>
</File>
<File
RelativePath="..\3B2\3b2_400_mau.c"
RelativePath="..\3B2\3b2_rev2_mau.c"
>
</File>
<File
RelativePath="..\3B2\3b2_400_mmu.c"
RelativePath="..\3B2\3b2_rev2_mmu.c"
>
</File>
<File
@ -236,11 +236,11 @@
>
</File>
<File
RelativePath="..\3B2\3b2_400_sys.c"
RelativePath="..\3B2\3b2_rev2_sys.c"
>
</File>
<File
RelativePath="..\3B2\3b2_400_stddev.c"
RelativePath="..\3B2\3b2_rev2_stddev.c"
>
</File>
<File
@ -480,7 +480,7 @@
Filter="h;hpp;hxx;hm;inl;inc"
>
<File
RelativePath="..\3B2\3b2_400_cpu.h"
RelativePath="..\3B2\3b2_cpu.h"
>
</File>
<File
@ -492,7 +492,7 @@
>
</File>
<File
RelativePath="..\3B2\3b2_400_defs.h"
RelativePath="..\3B2\3b2_rev2_defs.h"
>
</File>
<File
@ -516,11 +516,11 @@
>
</File>
<File
RelativePath="..\3B2\3b2_400_mau.h"
RelativePath="..\3B2\3b2_rev2_mau.h"
>
</File>
<File
RelativePath="..\3B2\3b2_400_mmu.h"
RelativePath="..\3B2\3b2_rev2_mmu.h"
>
</File>
<File
@ -532,11 +532,11 @@
>
</File>
<File
RelativePath="..\3B2\3b2_400_sys.h"
RelativePath="..\3B2\3b2_rev2_sys.h"
>
</File>
<File
RelativePath="..\3B2\3b2_400_stddev.h"
RelativePath="..\3B2\3b2_rev2_stddev.h"
>
</File>
<File

View file

@ -2025,9 +2025,9 @@ KL10 = ${KL10D}/kx10_cpu.c ${KL10D}/kx10_sys.c ${KL10D}/kx10_df.c \
KL10_OPT = -DKL=1 -DUSE_INT64 -I $(KL10D) -DUSE_SIM_CARD ${NETWORK_OPT}
ATT3B2D = ${SIMHD}/3B2
ATT3B2M400 = ${ATT3B2D}/3b2_400_cpu.c ${ATT3B2D}/3b2_400_sys.c \
${ATT3B2D}/3b2_400_stddev.c ${ATT3B2D}/3b2_400_mmu.c \
${ATT3B2D}/3b2_400_mau.c ${ATT3B2D}/3b2_iu.c \
ATT3B2M400 = ${ATT3B2D}/3b2_cpu.c ${ATT3B2D}/3b2_rev2_sys.c \
${ATT3B2D}/3b2_rev2_stddev.c ${ATT3B2D}/3b2_rev2_mmu.c \
${ATT3B2D}/3b2_rev2_mau.c ${ATT3B2D}/3b2_iu.c \
${ATT3B2D}/3b2_if.c ${ATT3B2D}/3b2_id.c \
${ATT3B2D}/3b2_dmac.c ${ATT3B2D}/3b2_io.c \
${ATT3B2D}/3b2_ports.c ${ATT3B2D}/3b2_ctc.c \

View file

@ -70,8 +70,9 @@ struct ROM_File_Descriptor {
{"PDP11/dazzledart/dazzle.lda", "PDP11/pdp11_dazzle_dart_rom.h", 6096, 0xFFF83848, "dazzle_lda"},
{"PDP11/11logo/11logo.lda", "PDP11/pdp11_11logo_rom.h", 26009, 0xFFDD77F7, "logo_lda"},
{"swtp6800/swtp6800/swtbug.bin", "swtp6800/swtp6800/swtp_swtbug_bin.h", 1024, 0xFFFE4FBC, "swtp_swtbug_bin"},
{"3B2/rom_400.bin", "3B2/rom_400_bin.h", 32768, 0xFFD55762, "rom_400_bin"},
{"3B2/rom_1000.bin", "3B2/rom_1000_bin.h", 131072, 0xFFDC0EB8, "rom_1000_bin"},
{"3B2/rom_rev2.bin", "3B2/rom_rev2_bin.h", 32768, 0xFFD55762, "rom_rev2_bin"},
{"3B2/rom_rev2_demon.bin", "3B2/rom_rev2_demon_bin.h", 65536, 0xFFB345BB, "rom_rev2_demon_bin"},
{"3B2/rom_rev3.bin", "3B2/rom_rev3_bin.h", 131072, 0xFFDC0EB8, "rom_rev3_bin"},
};