Merge remote-tracking branch 'origin/master' into Operator-Commands
This commit is contained in:
commit
99c13051e6
94 changed files with 2165 additions and 1737 deletions
2
.gitattributes
vendored
2
.gitattributes
vendored
|
@ -3,3 +3,5 @@
|
||||||
*.vcproj binary
|
*.vcproj binary
|
||||||
*.exe binary
|
*.exe binary
|
||||||
*.bin binary
|
*.bin binary
|
||||||
|
sim_rev.h export-subst
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
||||||
/* altairz80_cpu_opt.c: MITS Altair CPU (8080 and Z80)
|
/* altairz80_cpu_opt.c: MITS Altair CPU (8080 and Z80)
|
||||||
|
|
||||||
Copyright (c) 2002-2011, Peter Schorn
|
Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* altairz80_defs.h: MITS Altair simulator definitions
|
/* altairz80_defs.h: MITS Altair simulator definitions
|
||||||
|
|
||||||
Copyright (c) 2002-2011, Peter Schorn
|
Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
||||||
/* altairz80_dsk.c: MITS Altair 88-DISK Simulator
|
/* altairz80_dsk.c: MITS Altair 88-DISK Simulator
|
||||||
|
|
||||||
Copyright (c) 2002-2011, Peter Schorn
|
Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -483,6 +483,7 @@ int32 dsk11(const int32 port, const int32 io, const int32 data) {
|
||||||
current_disk, PCX);
|
current_disk, PCX);
|
||||||
}
|
}
|
||||||
current_track[current_disk]++;
|
current_track[current_disk]++;
|
||||||
|
current_flag[current_disk] &= 0xbf; /* mwd 1/29/13: track zero now false */
|
||||||
if (current_track[current_disk] > (tracks[current_disk] - 1))
|
if (current_track[current_disk] > (tracks[current_disk] - 1))
|
||||||
current_track[current_disk] = (tracks[current_disk] - 1);
|
current_track[current_disk] = (tracks[current_disk] - 1);
|
||||||
if (dirty) /* implies that current_disk < NUM_OF_DSK */
|
if (dirty) /* implies that current_disk < NUM_OF_DSK */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* altairz80_hdsk.c: simulated hard disk device to increase capacity
|
/* altairz80_hdsk.c: simulated hard disk device to increase capacity
|
||||||
|
|
||||||
Copyright (c) 2002-2011, Peter Schorn
|
Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include "altairz80_defs.h"
|
#include "altairz80_defs.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include "sim_imd.h"
|
||||||
|
|
||||||
/* Debug flags */
|
/* Debug flags */
|
||||||
#define READ_MSG (1 << 0)
|
#define READ_MSG (1 << 0)
|
||||||
|
@ -43,6 +44,9 @@ static t_stat show_format(FILE *st, UNIT *uptr, int32 val, void *desc);
|
||||||
static t_stat hdsk_reset(DEVICE *dptr);
|
static t_stat hdsk_reset(DEVICE *dptr);
|
||||||
static t_stat hdsk_attach(UNIT *uptr, char *cptr);
|
static t_stat hdsk_attach(UNIT *uptr, char *cptr);
|
||||||
static t_stat hdsk_detach(UNIT *uptr);
|
static t_stat hdsk_detach(UNIT *uptr);
|
||||||
|
static uint32 is_imd(const UNIT *uptr);
|
||||||
|
static void assignFormat(UNIT *uptr);
|
||||||
|
static void verifyDiskInfo(const DISK_INFO info, const char unitChar);
|
||||||
|
|
||||||
#define UNIT_V_HDSK_WLK (UNIT_V_UF + 0) /* write locked */
|
#define UNIT_V_HDSK_WLK (UNIT_V_UF + 0) /* write locked */
|
||||||
#define UNIT_HDSK_WLK (1 << UNIT_V_HDSK_WLK)
|
#define UNIT_HDSK_WLK (1 << UNIT_V_HDSK_WLK)
|
||||||
|
@ -118,6 +122,7 @@ typedef struct {
|
||||||
#define SPT16 16
|
#define SPT16 16
|
||||||
#define SPT32 32
|
#define SPT32 32
|
||||||
#define SPT26 26
|
#define SPT26 26
|
||||||
|
#define SPT52 52
|
||||||
|
|
||||||
static HDSK_INFO hdsk_info_data = { { 0x0000, 0, 0xFD, 1 } };
|
static HDSK_INFO hdsk_info_data = { { 0x0000, 0, 0xFD, 1 } };
|
||||||
|
|
||||||
|
@ -126,18 +131,18 @@ static int32 standard8[SPT26] = { 0, 6, 12, 18, 24, 4, 10, 16,
|
||||||
19, 25, 5, 11, 17, 23, 3, 9,
|
19, 25, 5, 11, 17, 23, 3, 9,
|
||||||
15, 21 };
|
15, 21 };
|
||||||
|
|
||||||
static int32 appple_ii_DOS[SPT16] = { 0, 6, 12, 3, 9, 15, 14, 5,
|
static int32 apple_ii_DOS[SPT16] = { 0, 6, 12, 3, 9, 15, 14, 5,
|
||||||
11, 2, 8, 7, 13, 4, 10, 1 };
|
11, 2, 8, 7, 13, 4, 10, 1 };
|
||||||
|
|
||||||
static int32 appple_ii_DOS2[SPT32] = { 0, 1, 12, 13, 24, 25, 6, 7,
|
static int32 apple_ii_DOS2[SPT32] = { 0, 1, 12, 13, 24, 25, 6, 7,
|
||||||
18, 19, 30, 31, 28, 29, 10, 11,
|
18, 19, 30, 31, 28, 29, 10, 11,
|
||||||
22, 23, 4, 5, 16, 17, 14, 15,
|
22, 23, 4, 5, 16, 17, 14, 15,
|
||||||
26, 27, 8, 9, 20, 21, 2, 3 };
|
26, 27, 8, 9, 20, 21, 2, 3 };
|
||||||
|
|
||||||
static int32 appple_ii_PRODOS[SPT16] = { 0, 9, 3, 12, 6, 15, 1, 10,
|
static int32 apple_ii_PRODOS[SPT16] = { 0, 9, 3, 12, 6, 15, 1, 10,
|
||||||
4, 13, 7, 8, 2, 11, 5, 14 };
|
4, 13, 7, 8, 2, 11, 5, 14 };
|
||||||
|
|
||||||
static int32 appple_ii_PRODOS2[SPT32] = { 0, 1, 18, 19, 6, 7, 24, 25,
|
static int32 apple_ii_PRODOS2[SPT32] = { 0, 1, 18, 19, 6, 7, 24, 25,
|
||||||
12, 13, 30, 31, 2, 3, 20, 21,
|
12, 13, 30, 31, 2, 3, 20, 21,
|
||||||
8, 9, 26, 27, 14, 15, 16, 17,
|
8, 9, 26, 27, 14, 15, 16, 17,
|
||||||
4, 5, 22, 23, 10, 11, 28, 29 };
|
4, 5, 22, 23, 10, 11, 28, 29 };
|
||||||
|
@ -197,17 +202,44 @@ static DPB dpb[] = {
|
||||||
{ "SSSD8S", 256256, SPT26, 0x03, 0x07, 0x00, 242, 0x003F,
|
{ "SSSD8S", 256256, SPT26, 0x03, 0x07, 0x00, 242, 0x003F,
|
||||||
0xC0, 0x00, 0x0000, 0x0002, 0x00, 0x00, 0, 0, standard8 }, /* Standard 8" SS SD with skew */
|
0xC0, 0x00, 0x0000, 0x0002, 0x00, 0x00, 0, 0, standard8 }, /* Standard 8" SS SD with skew */
|
||||||
|
|
||||||
|
{ "SSDD8", 512512, SPT52, 0x04, 0x0F, 0x01, 242, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, NULL }, /* Standard 8" SS DD */
|
||||||
|
|
||||||
|
{ "SSDD8S", 512512, SPT52, 0x04, 0x0F, 0x01, 242, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, standard8 }, /* Standard 8" SS DD with skew */
|
||||||
|
|
||||||
|
{ "DSDD8", 1025024, SPT52, 0x04, 0x0F, 0x00, 493, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, NULL }, /* Standard 8" DS DD */
|
||||||
|
|
||||||
|
{ "DSDD8S", 1025024, SPT52, 0x04, 0x0F, 0x00, 493, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x01, 0x01, 0, 0, NULL }, /* Standard 8" DS DD with skew */
|
||||||
|
|
||||||
|
{"512SSDD8",591360, 60, 0x04, 0x0F, 0x00, 280, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x02, 0x03, 0, 0, NULL }, /* Standard 8" SS DD with 512 byte sectors */
|
||||||
|
|
||||||
|
{"512DSDD8",1182720, 60, 0x04, 0x0F, 0x00, 569, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x02, 0x03, 0, 0, NULL }, /* Standard 8" DS DD with 512 byte sectors */
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* CP/M 3 BIOS currently does not support physical sector size 1024 */
|
||||||
|
{"1024SSDD8",630784, 64, 0x04, 0x0F, 0x00, 299, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x03, 0x07, 0, 0, NULL }, /* Standard 8" SS DD with 1024 byte sectors */
|
||||||
|
|
||||||
|
{"1024DSDD8",1261568, 64, 0x04, 0x0F, 0x00, 607, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x03, 0x07, 0, 0, NULL }, /* Standard 8" DS DD with 1024 byte sectors */
|
||||||
|
#endif
|
||||||
|
|
||||||
{ "APPLE-DO",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
{ "APPLE-DO",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
||||||
0xC0, 0x00, 0x0000, 0x0003, 0x01, 0x01, 0, 0, appple_ii_DOS }, /* Apple II DOS 3.3 */
|
0xC0, 0x00, 0x0000, 0x0003, 0x01, 0x01, 0, 0, apple_ii_DOS }, /* Apple II DOS 3.3 */
|
||||||
|
|
||||||
{ "APPLE-PO",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
{ "APPLE-PO",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
||||||
0xC0, 0x00, 0x0000, 0x0003, 0x01, 0x01, 0, 0, appple_ii_PRODOS }, /* Apple II PRODOS */
|
0xC0, 0x00, 0x0000, 0x0003, 0x01, 0x01, 0, 0, apple_ii_PRODOS }, /* Apple II PRODOS */
|
||||||
|
|
||||||
{ "APPLE-D2",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
{ "APPLE-D2",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
||||||
0xC0, 0x00, 0x0000, 0x0003, 0x00, 0x00, 0, 0, appple_ii_DOS2 }, /* Apple II DOS 3.3, deblocked */
|
0xC0, 0x00, 0x0000, 0x0003, 0x00, 0x00, 0, 0, apple_ii_DOS2 }, /* Apple II DOS 3.3, deblocked */
|
||||||
|
|
||||||
{ "APPLE-P2",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
{ "APPLE-P2",143360, SPT32, 0x03, 0x07, 0x00, 127, 0x003F,
|
||||||
0xC0, 0x00, 0x0000, 0x0003, 0x00, 0x00, 0, 0, appple_ii_PRODOS2 }, /* Apple II PRODOS, deblocked */
|
0xC0, 0x00, 0x0000, 0x0003, 0x00, 0x00, 0, 0, apple_ii_PRODOS2 }, /* Apple II PRODOS, deblocked */
|
||||||
|
|
||||||
{ "MITS", 337568, SPT32, 0x03, 0x07, 0x00, 254, 0x00FF,
|
{ "MITS", 337568, SPT32, 0x03, 0x07, 0x00, 254, 0x00FF,
|
||||||
0xFF, 0x00, 0x0000, 0x0006, 0x00, 0x00, 137, 3, mits }, /* MITS Altair original */
|
0xFF, 0x00, 0x0000, 0x0006, 0x00, 0x00, 137, 3, mits }, /* MITS Altair original */
|
||||||
|
@ -215,6 +247,20 @@ static DPB dpb[] = {
|
||||||
{ "MITS2", 1113536, SPT32, 0x04, 0x0F, 0x00, 0x1EF, 0x00FF,
|
{ "MITS2", 1113536, SPT32, 0x04, 0x0F, 0x00, 0x1EF, 0x00FF,
|
||||||
0xF0, 0x00, 0x0000, 0x0006, 0x00, 0x00, 137, 3, mits }, /* MITS Altair original, extra */
|
0xF0, 0x00, 0x0000, 0x0006, 0x00, 0x00, 137, 3, mits }, /* MITS Altair original, extra */
|
||||||
|
|
||||||
|
/*
|
||||||
|
dw 40 ;#128 byte records/track
|
||||||
|
db 4,0fh ;block shift mask (2K)
|
||||||
|
db 1 ;extent mask
|
||||||
|
dw 194 ;maximun block number
|
||||||
|
dw 127 ;max number of dir entry - 1
|
||||||
|
db 0C0H,00h ;alloc vector for directory
|
||||||
|
dw 0020h ;checksum size
|
||||||
|
dw 2 ;offset for sys tracks
|
||||||
|
db 2,3 ;physical sector shift (512 sector)
|
||||||
|
*/
|
||||||
|
{ "V1050", 409600, 40, 0x04, 0x0F, 0x01, 194, 0x007F,
|
||||||
|
0xC0, 0x00, 0x0000, 0x0002, 0x02, 0x03, 0, 0, NULL }, /* Visual Technology Visual 1050, http://www.metabarn.com/v1050/index.html */
|
||||||
|
|
||||||
{ "", 0 }
|
{ "", 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -228,6 +274,7 @@ static UNIT hdsk_unit[] = {
|
||||||
{ UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) },
|
{ UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) },
|
||||||
{ UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }
|
{ UDATA (NULL, UNIT_FIX + UNIT_ATTABLE + UNIT_DISABLE + UNIT_ROABLE, HDSK_CAPACITY) }
|
||||||
};
|
};
|
||||||
|
static DISK_INFO* hdsk_imd[HDSK_NUMBER];
|
||||||
|
|
||||||
static REG hdsk_reg[] = {
|
static REG hdsk_reg[] = {
|
||||||
{ DRDATA (HDCMD, hdskLastCommand, 32), REG_RO },
|
{ DRDATA (HDCMD, hdskLastCommand, 32), REG_RO },
|
||||||
|
@ -281,27 +328,16 @@ static t_stat hdsk_reset(DEVICE *dptr) {
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Attach routine */
|
#ifdef _WIN32
|
||||||
static t_stat hdsk_attach(UNIT *uptr, char *cptr) {
|
#define strcasecmp _stricmp
|
||||||
t_stat r;
|
#endif
|
||||||
|
static uint32 is_imd(const UNIT *uptr) {
|
||||||
|
return ((uptr != NULL) && (uptr -> filename != NULL) && (strlen(uptr -> filename) > 3) &&
|
||||||
|
(strcasecmp(".IMD", uptr -> filename + strlen(uptr -> filename) - 4) == 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void assignFormat(UNIT *uptr) {
|
||||||
uint32 i;
|
uint32 i;
|
||||||
char unitChar;
|
|
||||||
|
|
||||||
r = attach_unit(uptr, cptr); /* attach unit */
|
|
||||||
if ( r != SCPE_OK) /* error? */
|
|
||||||
return r;
|
|
||||||
|
|
||||||
/* Step 1: Determine capacity of this disk */
|
|
||||||
uptr -> capac = sim_fsize(uptr -> fileref); /* the file length is a good indication */
|
|
||||||
if (uptr -> capac == 0) { /* file does not exist or has length 0 */
|
|
||||||
uptr -> capac = uptr -> HDSK_NUMBER_OF_TRACKS *
|
|
||||||
uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE;
|
|
||||||
if (uptr -> capac == 0)
|
|
||||||
uptr -> capac = HDSK_CAPACITY;
|
|
||||||
} /* post condition: uptr -> capac > 0 */
|
|
||||||
assert(uptr -> capac);
|
|
||||||
|
|
||||||
/* Step 2: Determine format based on disk capacity */
|
|
||||||
uptr -> HDSK_FORMAT_TYPE = -1; /* default to unknown format type */
|
uptr -> HDSK_FORMAT_TYPE = -1; /* default to unknown format type */
|
||||||
for (i = 0; dpb[i].capac != 0; i++) { /* find disk parameter block */
|
for (i = 0; dpb[i].capac != 0; i++) { /* find disk parameter block */
|
||||||
if (dpb[i].capac == uptr -> capac) { /* found if correct capacity */
|
if (dpb[i].capac == uptr -> capac) { /* found if correct capacity */
|
||||||
|
@ -309,13 +345,89 @@ static t_stat hdsk_attach(UNIT *uptr, char *cptr) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void verifyDiskInfo(const DISK_INFO info, const char unitChar) {
|
||||||
|
uint32 track, head;
|
||||||
|
if (info.ntracks < 1)
|
||||||
|
printf("HDSK%c (IMD): WARNING: Number of tracks is 0.\n", unitChar);
|
||||||
|
if (info.nsides < 1) {
|
||||||
|
printf("HDSK%c (IMD): WARNING: Number of sides is 0.\n", unitChar);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (track = 0; track < info.ntracks / info.nsides; track++)
|
||||||
|
for (head = 0; head < info.nsides; head++) {
|
||||||
|
if (info.track[track][head].nsects != info.track[1][0].nsects)
|
||||||
|
printf("HDSK%c (IMD): WARNING: For track %i and head %i expected number of sectors "
|
||||||
|
"%i but got %i.\n", unitChar, track, head,
|
||||||
|
info.track[1][0].nsects, info.track[track][head].nsects);
|
||||||
|
if (info.track[track][head].sectsize != info.track[1][0].sectsize)
|
||||||
|
printf("HDSK%c (IMD): WARNING: For track %i and head %i expected sector size "
|
||||||
|
"%i but got %i.\n", unitChar, track, head,
|
||||||
|
info.track[1][0].sectsize, info.track[track][head].sectsize);
|
||||||
|
if (info.track[track][head].start_sector != info.track[1][0].start_sector)
|
||||||
|
printf("HDSK%c (IMD): WARNING: For track %i and head %i expected start sector "
|
||||||
|
"%i but got %i.\n", unitChar, track, head,
|
||||||
|
info.track[1][0].start_sector, info.track[track][head].start_sector);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Attach routine */
|
||||||
|
static t_stat hdsk_attach(UNIT *uptr, char *cptr) {
|
||||||
|
int32 thisUnitIndex;
|
||||||
|
char unitChar;
|
||||||
|
const t_stat r = attach_unit(uptr, cptr); /* attach unit */
|
||||||
|
if (r != SCPE_OK) /* error? */
|
||||||
|
return r;
|
||||||
|
|
||||||
|
assert(uptr != NULL);
|
||||||
|
thisUnitIndex = find_unit_index(uptr);
|
||||||
|
unitChar = '0' + thisUnitIndex;
|
||||||
|
assert((0 <= thisUnitIndex) && (thisUnitIndex < HDSK_NUMBER));
|
||||||
|
|
||||||
|
if (is_imd(uptr)) {
|
||||||
|
if ((sim_fsize(uptr -> fileref) == 0) &&
|
||||||
|
(diskCreate(uptr -> fileref, "$Id: SIMH hdsk.c $") != SCPE_OK)) {
|
||||||
|
printf("HDSK%c (IMD): Failed to create IMD disk.\n", unitChar);
|
||||||
|
detach_unit(uptr);
|
||||||
|
return SCPE_OPENERR;
|
||||||
|
}
|
||||||
|
hdsk_imd[thisUnitIndex] = diskOpen(uptr -> fileref, sim_deb && (hdsk_dev.dctrl & VERBOSE_MSG));
|
||||||
|
if (hdsk_imd[thisUnitIndex] == NULL)
|
||||||
|
return SCPE_IOERR;
|
||||||
|
verifyDiskInfo(*hdsk_imd[thisUnitIndex], '0' + thisUnitIndex);
|
||||||
|
uptr -> HDSK_NUMBER_OF_TRACKS = hdsk_imd[thisUnitIndex] -> ntracks;
|
||||||
|
uptr -> HDSK_SECTORS_PER_TRACK = hdsk_imd[thisUnitIndex] -> track[1][0].nsects;
|
||||||
|
uptr -> HDSK_SECTOR_SIZE = hdsk_imd[thisUnitIndex] -> track[1][0].sectsize;
|
||||||
|
uptr -> capac = ((uptr -> HDSK_NUMBER_OF_TRACKS) *
|
||||||
|
(uptr -> HDSK_SECTORS_PER_TRACK) *
|
||||||
|
(uptr -> HDSK_SECTOR_SIZE));
|
||||||
|
assignFormat(uptr);
|
||||||
|
if (uptr -> HDSK_FORMAT_TYPE == -1) { /* Case 1: no disk parameter block found*/
|
||||||
|
uptr -> HDSK_FORMAT_TYPE = 0;
|
||||||
|
printf("HDSK%c (IMD): WARNING: Unsupported disk capacity, assuming HDSK type "
|
||||||
|
"with capacity %iKB.\n", unitChar, uptr -> capac / 1000);
|
||||||
|
uptr -> flags |= UNIT_HDSK_WLK;
|
||||||
|
printf("HDSK%c (IMD): WARNING: Forcing WRTLCK.\n", unitChar);
|
||||||
|
}
|
||||||
|
return SCPE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Step 1: Determine capacity of this disk */
|
||||||
|
uptr -> capac = sim_fsize(uptr -> fileref); /* the file length is a good indication */
|
||||||
|
if (uptr -> capac == 0) { /* file does not exist or has length 0 */
|
||||||
|
uptr -> capac = (uptr -> HDSK_NUMBER_OF_TRACKS *
|
||||||
|
uptr -> HDSK_SECTORS_PER_TRACK * uptr -> HDSK_SECTOR_SIZE);
|
||||||
|
if (uptr -> capac == 0)
|
||||||
|
uptr -> capac = HDSK_CAPACITY;
|
||||||
|
} /* post condition: uptr -> capac > 0 */
|
||||||
|
assert(uptr -> capac);
|
||||||
|
|
||||||
|
/* Step 2: Determine format based on disk capacity */
|
||||||
|
assignFormat(uptr);
|
||||||
|
|
||||||
/* Step 3: Set number of sectors per track and sector size */
|
/* Step 3: Set number of sectors per track and sector size */
|
||||||
if (uptr -> HDSK_FORMAT_TYPE == -1) { /* Case 1: no disk parameter block found */
|
if (uptr -> HDSK_FORMAT_TYPE == -1) { /* Case 1: no disk parameter block found */
|
||||||
for (i = 0; i < hdsk_dev.numunits; i++) /* find affected unit number */
|
|
||||||
if (&hdsk_unit[i] == uptr)
|
|
||||||
break; /* found */
|
|
||||||
unitChar = '0' + i;
|
|
||||||
uptr -> HDSK_FORMAT_TYPE = 0;
|
uptr -> HDSK_FORMAT_TYPE = 0;
|
||||||
printf("HDSK%c: WARNING: Unsupported disk capacity, assuming HDSK type with capacity %iKB.\n",
|
printf("HDSK%c: WARNING: Unsupported disk capacity, assuming HDSK type with capacity %iKB.\n",
|
||||||
unitChar, uptr -> capac / 1000);
|
unitChar, uptr -> capac / 1000);
|
||||||
|
@ -350,8 +462,16 @@ static t_stat hdsk_attach(UNIT *uptr, char *cptr) {
|
||||||
|
|
||||||
static t_stat hdsk_detach(UNIT *uptr) {
|
static t_stat hdsk_detach(UNIT *uptr) {
|
||||||
t_stat result;
|
t_stat result;
|
||||||
|
int32 unitIndex;
|
||||||
if (uptr == NULL)
|
if (uptr == NULL)
|
||||||
return SCPE_IERR;
|
return SCPE_IERR;
|
||||||
|
if (is_imd(uptr)) {
|
||||||
|
unitIndex = find_unit_index(uptr);
|
||||||
|
if (unitIndex == -1)
|
||||||
|
return SCPE_IERR;
|
||||||
|
assert((0 <= unitIndex) && (unitIndex < HDSK_NUMBER));
|
||||||
|
diskClose(&hdsk_imd[unitIndex]);
|
||||||
|
}
|
||||||
result = detach_unit(uptr);
|
result = detach_unit(uptr);
|
||||||
uptr -> capac = HDSK_CAPACITY;
|
uptr -> capac = HDSK_CAPACITY;
|
||||||
uptr -> HDSK_FORMAT_TYPE = 0;
|
uptr -> HDSK_FORMAT_TYPE = 0;
|
||||||
|
@ -603,12 +723,46 @@ static int32 doSeek(void) {
|
||||||
return CPM_OK;
|
return CPM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 hdskbuf[HDSK_MAX_SECTOR_SIZE] = { 0 }; /* data buffer */
|
static uint8 hdskbuf[HDSK_MAX_SECTOR_SIZE] = { 0 }; /* data buffer */
|
||||||
|
|
||||||
/* pre-condition: checkParameters has been executed to repair any faulty parameters */
|
/* pre-condition: checkParameters has been executed to repair any faulty parameters */
|
||||||
static int32 doRead(void) {
|
static int32 doRead(void) {
|
||||||
int32 i;
|
int32 i;
|
||||||
|
t_stat result;
|
||||||
|
DISK_INFO *thisDisk;
|
||||||
|
int32 hostSector;
|
||||||
|
int32 sectorSize;
|
||||||
|
uint32 flags;
|
||||||
|
uint32 readlen;
|
||||||
|
uint32 cylinder;
|
||||||
|
uint32 head;
|
||||||
UNIT *uptr = &hdsk_dev.units[selectedDisk];
|
UNIT *uptr = &hdsk_dev.units[selectedDisk];
|
||||||
|
if (is_imd(uptr)) {
|
||||||
|
thisDisk = hdsk_imd[selectedDisk];
|
||||||
|
hostSector = ((dpb[uptr -> HDSK_FORMAT_TYPE].skew == NULL) ?
|
||||||
|
selectedSector : dpb[uptr -> HDSK_FORMAT_TYPE].skew[selectedSector]) + thisDisk -> track[1][0].start_sector;
|
||||||
|
sectorSize = ((dpb[uptr -> HDSK_FORMAT_TYPE].physicalSectorSize == 0) ?
|
||||||
|
uptr -> HDSK_SECTOR_SIZE :
|
||||||
|
dpb[uptr -> HDSK_FORMAT_TYPE].physicalSectorSize);
|
||||||
|
flags = 0;
|
||||||
|
readlen = 0;
|
||||||
|
cylinder = selectedTrack;
|
||||||
|
head = 0;
|
||||||
|
if (cylinder >= thisDisk -> ntracks / thisDisk -> nsides) {
|
||||||
|
head = 1;
|
||||||
|
cylinder -= thisDisk -> ntracks / thisDisk -> nsides;
|
||||||
|
}
|
||||||
|
result = sectRead(thisDisk, cylinder, head, hostSector, hdskbuf, sectorSize,
|
||||||
|
&flags, &readlen);
|
||||||
|
if (result != SCPE_OK) {
|
||||||
|
for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++)
|
||||||
|
hdskbuf[i] = CPM_EMPTY;
|
||||||
|
sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d (IMD): " ADDRESS_FORMAT
|
||||||
|
" . Could not read Sector=%02d Track=%04d.\n",
|
||||||
|
selectedDisk, PCX, selectedSector, selectedTrack);
|
||||||
|
return CPM_ERROR;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (doSeek())
|
if (doSeek())
|
||||||
return CPM_ERROR;
|
return CPM_ERROR;
|
||||||
|
|
||||||
|
@ -620,6 +774,7 @@ static int32 doRead(void) {
|
||||||
selectedDisk, PCX, selectedSector, selectedTrack);
|
selectedDisk, PCX, selectedSector, selectedTrack);
|
||||||
return CPM_OK; /* allows the creation of empty hard disks */
|
return CPM_OK; /* allows the creation of empty hard disks */
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++)
|
for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++)
|
||||||
PutBYTEWrapper(selectedDMA + i, hdskbuf[i]);
|
PutBYTEWrapper(selectedDMA + i, hdskbuf[i]);
|
||||||
return CPM_OK;
|
return CPM_OK;
|
||||||
|
@ -628,9 +783,43 @@ static int32 doRead(void) {
|
||||||
/* pre-condition: checkParameters has been executed to repair any faulty parameters */
|
/* pre-condition: checkParameters has been executed to repair any faulty parameters */
|
||||||
static int32 doWrite(void) {
|
static int32 doWrite(void) {
|
||||||
int32 i;
|
int32 i;
|
||||||
|
t_stat result;
|
||||||
|
DISK_INFO *thisDisk;
|
||||||
|
int32 hostSector;
|
||||||
|
int32 sectorSize;
|
||||||
|
uint32 flags;
|
||||||
|
uint32 writelen;
|
||||||
|
uint32 cylinder;
|
||||||
|
uint32 head;
|
||||||
size_t rtn;
|
size_t rtn;
|
||||||
UNIT *uptr = &hdsk_dev.units[selectedDisk];
|
UNIT *uptr = &hdsk_dev.units[selectedDisk];
|
||||||
if (((uptr -> flags) & UNIT_HDSK_WLK) == 0) { /* write enabled */
|
if (((uptr -> flags) & UNIT_HDSK_WLK) == 0) { /* write enabled */
|
||||||
|
if (is_imd(uptr)) {
|
||||||
|
for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++)
|
||||||
|
hdskbuf[i] = GetBYTEWrapper(selectedDMA + i);
|
||||||
|
thisDisk = hdsk_imd[selectedDisk];
|
||||||
|
hostSector = ((dpb[uptr -> HDSK_FORMAT_TYPE].skew == NULL) ?
|
||||||
|
selectedSector : dpb[uptr -> HDSK_FORMAT_TYPE].skew[selectedSector]) + thisDisk -> track[1][0].start_sector;
|
||||||
|
sectorSize = ((dpb[uptr -> HDSK_FORMAT_TYPE].physicalSectorSize == 0) ?
|
||||||
|
uptr -> HDSK_SECTOR_SIZE :
|
||||||
|
dpb[uptr -> HDSK_FORMAT_TYPE].physicalSectorSize);
|
||||||
|
flags = 0;
|
||||||
|
writelen = 0;
|
||||||
|
cylinder = selectedTrack;
|
||||||
|
head = 0;
|
||||||
|
if (cylinder >= thisDisk -> ntracks / thisDisk -> nsides) {
|
||||||
|
head = 1;
|
||||||
|
cylinder -= thisDisk -> ntracks / thisDisk -> nsides;
|
||||||
|
}
|
||||||
|
result = sectWrite(thisDisk, cylinder, head, hostSector, hdskbuf,
|
||||||
|
sectorSize, &flags, &writelen);
|
||||||
|
if (result != SCPE_OK) {
|
||||||
|
sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d (IMD): " ADDRESS_FORMAT
|
||||||
|
" . Could not write Sector=%02d Track=%04d.\n",
|
||||||
|
selectedDisk, PCX, selectedSector, selectedTrack);
|
||||||
|
return CPM_ERROR;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (doSeek())
|
if (doSeek())
|
||||||
return CPM_ERROR;
|
return CPM_ERROR;
|
||||||
for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++)
|
for (i = 0; i < uptr -> HDSK_SECTOR_SIZE; i++)
|
||||||
|
@ -643,6 +832,7 @@ static int32 doWrite(void) {
|
||||||
return CPM_ERROR;
|
return CPM_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT
|
sim_debug(VERBOSE_MSG, &hdsk_dev, "HDSK%d: " ADDRESS_FORMAT
|
||||||
" Could not write to locked disk Sector=%02d Track=%04d.\n",
|
" Could not write to locked disk Sector=%02d Track=%04d.\n",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* altairz80_net.c: networking capability
|
/* altairz80_net.c: networking capability
|
||||||
|
|
||||||
Copyright (c) 2002-2011, Peter Schorn
|
Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -77,16 +77,14 @@ static struct {
|
||||||
static UNIT net_unit = {
|
static UNIT net_unit = {
|
||||||
UDATA (&net_svc, UNIT_ATTABLE, 0),
|
UDATA (&net_svc, UNIT_ATTABLE, 0),
|
||||||
0, /* wait, set in attach */
|
0, /* wait, set in attach */
|
||||||
0, /* u3 = Port */
|
0, /* u3, unused */
|
||||||
0, /* u4 = IP of host */
|
0, /* u4, unused */
|
||||||
0, /* u5, unused */
|
0, /* u5, unused */
|
||||||
0, /* u6, unused */
|
0, /* u6, unused */
|
||||||
};
|
};
|
||||||
|
|
||||||
static REG net_reg[] = {
|
static REG net_reg[] = {
|
||||||
{ DRDATA (POLL, net_unit.wait, 32) },
|
{ DRDATA (POLL, net_unit.wait, 32) },
|
||||||
{ HRDATA (IPHOST, net_unit.u4, 32), REG_RO },
|
|
||||||
{ DRDATA (PORT, net_unit.u3, 32), REG_RO },
|
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* altairz80_sio.c: MITS Altair serial I/O card
|
/* altairz80_sio.c: MITS Altair serial I/O card
|
||||||
|
|
||||||
Copyright (c) 2002-2011, Peter Schorn
|
Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -72,7 +72,7 @@ uint8 *URLContents(const char *URL, uint32 *length) {
|
||||||
char *result;
|
char *result;
|
||||||
strncat(str, URL, RESULT_BUFFER_LENGTH - strlen(RESULT_LEAD_IN) - strlen(RESULT_LEAD_OUT) - 1);
|
strncat(str, URL, RESULT_BUFFER_LENGTH - strlen(RESULT_LEAD_IN) - strlen(RESULT_LEAD_OUT) - 1);
|
||||||
strcat(str, RESULT_LEAD_OUT);
|
strcat(str, RESULT_LEAD_OUT);
|
||||||
result = malloc(strlen(str));
|
result = (char*)malloc(strlen(str));
|
||||||
strcpy(result, str);
|
strcpy(result, str);
|
||||||
*length = strlen(str);
|
*length = strlen(str);
|
||||||
return (uint8*)result;
|
return (uint8*)result;
|
||||||
|
@ -733,8 +733,10 @@ static int32 sio0dCore(const int32 port, const int32 io, const int32 data) {
|
||||||
ch = sio_unit.flags & UNIT_SIO_ANSI ? data & 0x7f : data; /* clear highest bit in ANSI mode */
|
ch = sio_unit.flags & UNIT_SIO_ANSI ? data & 0x7f : data; /* clear highest bit in ANSI mode */
|
||||||
if ((ch != CONTROLG_CHAR) || !(sio_unit.flags & UNIT_SIO_BELL)) {
|
if ((ch != CONTROLG_CHAR) || !(sio_unit.flags & UNIT_SIO_BELL)) {
|
||||||
voidSleep();
|
voidSleep();
|
||||||
if ((sio_unit.flags & UNIT_ATT) && (!sio_unit.u4)) /* attached to a port and not to a file */
|
if ((sio_unit.flags & UNIT_ATT) && (!sio_unit.u4)) { /* attached to a port and not to a file */
|
||||||
tmxr_putc_ln(&TerminalLines[spi.terminalLine], ch); /* status ignored */
|
tmxr_putc_ln(&TerminalLines[spi.terminalLine], ch); /* status ignored */
|
||||||
|
tmxr_poll_tx(&altairTMXR); /* poll xmt */
|
||||||
|
}
|
||||||
else
|
else
|
||||||
sim_putchar(ch);
|
sim_putchar(ch);
|
||||||
}
|
}
|
||||||
|
@ -1265,8 +1267,8 @@ static void attachCPM(UNIT *uptr) {
|
||||||
if (uptr == &ptr_unit)
|
if (uptr == &ptr_unit)
|
||||||
sim_switches = SWMASK('R') | SWMASK('Q');
|
sim_switches = SWMASK('R') | SWMASK('Q');
|
||||||
else if (uptr == &ptp_unit)
|
else if (uptr == &ptp_unit)
|
||||||
sim_switches = SWMASK('W') | SWMASK('C') | SWMASK('Q');
|
sim_switches = SWMASK('W') | SWMASK('N') | SWMASK('Q');
|
||||||
/* 'C' option makes sure that file is properly truncated if it had existed before */
|
/* 'N' option makes sure that file is properly truncated if it had existed before */
|
||||||
sim_quiet = sim_switches & SWMASK ('Q'); /* -q means quiet */
|
sim_quiet = sim_switches & SWMASK ('Q'); /* -q means quiet */
|
||||||
lastCPMStatus = attach_unit(uptr, cpmCommandLine);
|
lastCPMStatus = attach_unit(uptr, cpmCommandLine);
|
||||||
if (lastCPMStatus != SCPE_OK) {
|
if (lastCPMStatus != SCPE_OK) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* altairz80_sys.c: MITS Altair system interface
|
/* altairz80_sys.c: MITS Altair system interface
|
||||||
|
|
||||||
Copyright (c) 2002-2011, Peter Schorn
|
Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -138,13 +138,13 @@ const char *sim_stop_messages[] = {
|
||||||
static char *const Mnemonics8080[] = {
|
static char *const Mnemonics8080[] = {
|
||||||
/* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */
|
/* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */
|
||||||
"NOP", "LXI B,#h", "STAX B", "INX B", "INR B", "DCR B", "MVI B,*h", "RLC", /* 00-07 */
|
"NOP", "LXI B,#h", "STAX B", "INX B", "INR B", "DCR B", "MVI B,*h", "RLC", /* 00-07 */
|
||||||
"DB 09h", "DAD B", "LDAX B", "DCX B", "INR C", "DCR C", "MVI C,*h", "RRC", /* 08-0f */
|
"_NOP", "DAD B", "LDAX B", "DCX B", "INR C", "DCR C", "MVI C,*h", "RRC", /* 08-0f */
|
||||||
"DB 10h", "LXI D,#h", "STAX D", "INX D", "INR D", "DCR D", "MVI D,*h", "RAL", /* 10-17 */
|
"_NOP", "LXI D,#h", "STAX D", "INX D", "INR D", "DCR D", "MVI D,*h", "RAL", /* 10-17 */
|
||||||
"DB 18h", "DAD D", "LDAX D", "DCX D", "INR E", "DCR E", "MVI E,*h", "RAR", /* 18-1f */
|
"_NOP", "DAD D", "LDAX D", "DCX D", "INR E", "DCR E", "MVI E,*h", "RAR", /* 18-1f */
|
||||||
"DB 20h", "LXI H,#h", "SHLD #h", "INX H", "INR H", "DCR H", "MVI H,*h", "DAA", /* 20-27 */
|
"_NOP", "LXI H,#h", "SHLD #h", "INX H", "INR H", "DCR H", "MVI H,*h", "DAA", /* 20-27 */
|
||||||
"DB 28h", "DAD H", "LHLD #h", "DCX H", "INR L", "DCR L", "MVI L,*h", "CMA", /* 28-2f */
|
"_NOP", "DAD H", "LHLD #h", "DCX H", "INR L", "DCR L", "MVI L,*h", "CMA", /* 28-2f */
|
||||||
"DB 30h", "LXI SP,#h", "STA #h", "INX SP", "INR M", "DCR M", "MVI M,*h", "STC", /* 30-37 */
|
"_NOP", "LXI SP,#h", "STA #h", "INX SP", "INR M", "DCR M", "MVI M,*h", "STC", /* 30-37 */
|
||||||
"DB 38h", "DAD SP", "LDA #h", "DCX SP", "INR A", "DCR A", "MVI A,*h", "CMC", /* 38-3f */
|
"_NOP", "DAD SP", "LDA #h", "DCX SP", "INR A", "DCR A", "MVI A,*h", "CMC", /* 38-3f */
|
||||||
"MOV B,B", "MOV B,C", "MOV B,D", "MOV B,E", "MOV B,H", "MOV B,L", "MOV B,M", "MOV B,A", /* 40-47 */
|
"MOV B,B", "MOV B,C", "MOV B,D", "MOV B,E", "MOV B,H", "MOV B,L", "MOV B,M", "MOV B,A", /* 40-47 */
|
||||||
"MOV C,B", "MOV C,C", "MOV C,D", "MOV C,E", "MOV C,H", "MOV C,L", "MOV C,M", "MOV C,A", /* 48-4f */
|
"MOV C,B", "MOV C,C", "MOV C,D", "MOV C,E", "MOV C,H", "MOV C,L", "MOV C,M", "MOV C,A", /* 48-4f */
|
||||||
"MOV D,B", "MOV D,C", "MOV D,D", "MOV D,E", "MOV D,H", "MOV D,L", "MOV D,M", "MOV D,A", /* 50-57 */
|
"MOV D,B", "MOV D,C", "MOV D,D", "MOV D,E", "MOV D,H", "MOV D,L", "MOV D,M", "MOV D,A", /* 50-57 */
|
||||||
|
@ -162,13 +162,13 @@ static char *const Mnemonics8080[] = {
|
||||||
"ORA B", "ORA C", "ORA D", "ORA E", "ORA H", "ORA L", "ORA M", "ORA A", /* b0-b7 */
|
"ORA B", "ORA C", "ORA D", "ORA E", "ORA H", "ORA L", "ORA M", "ORA A", /* b0-b7 */
|
||||||
"CMP B", "CMP C", "CMP D", "CMP E", "CMP H", "CMP L", "CMP M", "CMP A", /* b8-bf */
|
"CMP B", "CMP C", "CMP D", "CMP E", "CMP H", "CMP L", "CMP M", "CMP A", /* b8-bf */
|
||||||
"RNZ", "POP B", "JNZ #h", "JMP #h", "CNZ #h", "PUSH B", "ADI *h", "RST 0", /* c0-c7 */
|
"RNZ", "POP B", "JNZ #h", "JMP #h", "CNZ #h", "PUSH B", "ADI *h", "RST 0", /* c0-c7 */
|
||||||
"RZ", "RET", "JZ #h", "DB CBh", "CZ #h", "CALL #h", "ACI *h", "RST 1", /* c8-cf */
|
"RZ", "RET", "JZ #h", "_JMP #h", "CZ #h", "CALL #h", "ACI *h", "RST 1", /* c8-cf */
|
||||||
"RNC", "POP D", "JNC #h", "OUT *h", "CNC #h", "PUSH D", "SUI *h", "RST 2", /* d0-d7 */
|
"RNC", "POP D", "JNC #h", "OUT *h", "CNC #h", "PUSH D", "SUI *h", "RST 2", /* d0-d7 */
|
||||||
"RC", "DB D9h", "JC #h", "IN *h", "CC #h", "DB DDh", "SBI *h", "RST 3", /* d8-df */
|
"RC", "_RET", "JC #h", "IN *h", "CC #h", "_CALL #h", "SBI *h", "RST 3", /* d8-df */
|
||||||
"RPO", "POP H", "JPO #h", "XTHL", "CPO #h", "PUSH H", "ANI *h", "RST 4", /* e0-e7 */
|
"RPO", "POP H", "JPO #h", "XTHL", "CPO #h", "PUSH H", "ANI *h", "RST 4", /* e0-e7 */
|
||||||
"RPE", "PCHL", "JPE #h", "XCHG", "CPE #h", "DB EDh", "XRI *h", "RST 5", /* e8-ef */
|
"RPE", "PCHL", "JPE #h", "XCHG", "CPE #h", "_CALL #h", "XRI *h", "RST 5", /* e8-ef */
|
||||||
"RP", "POP PSW", "JP #h", "DI", "CP #h", "PUSH PSW", "ORI *h", "RST 6", /* f0-f7 */
|
"RP", "POP PSW", "JP #h", "DI", "CP #h", "PUSH PSW", "ORI *h", "RST 6", /* f0-f7 */
|
||||||
"RM", "SPHL", "JM #h", "EI", "CM #h", "DB FDh", "CPI *h", "RST 7" /* f8-ff */
|
"RM", "SPHL", "JM #h", "EI", "CM #h", "_CALL #h", "CPI *h", "RST 7" /* f8-ff */
|
||||||
};
|
};
|
||||||
|
|
||||||
static char *const MnemonicsZ80[256] = {
|
static char *const MnemonicsZ80[256] = {
|
||||||
|
|
|
@ -209,7 +209,7 @@ t_stat sim_instr_8086(void) {
|
||||||
while (switch_cpu_now == TRUE) { /* loop until halted */
|
while (switch_cpu_now == TRUE) { /* loop until halted */
|
||||||
if (sim_interval <= 0) { /* check clock queue */
|
if (sim_interval <= 0) { /* check clock queue */
|
||||||
#if !UNIX_PLATFORM
|
#if !UNIX_PLATFORM
|
||||||
if ((reason = sim_os_poll_kbd()) == SCPE_STOP) /* poll on platforms without reliable signalling */
|
if ((reason = sim_poll_kbd()) == SCPE_STOP) /* poll on platforms without reliable signalling */
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
if ( (reason = sim_process_event()) )
|
if ( (reason = sim_process_event()) )
|
||||||
|
|
|
@ -206,7 +206,7 @@ static uint8 mfdc_rom[256] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Reset routine */
|
/* Reset routine */
|
||||||
t_stat mfdc_reset(DEVICE *dptr)
|
static t_stat mfdc_reset(DEVICE *dptr)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i;
|
||||||
PNP_INFO *pnp = (PNP_INFO *)dptr->ctxt;
|
PNP_INFO *pnp = (PNP_INFO *)dptr->ctxt;
|
||||||
|
@ -228,7 +228,7 @@ t_stat mfdc_reset(DEVICE *dptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Attach routine */
|
/* Attach routine */
|
||||||
t_stat mfdc_attach(UNIT *uptr, char *cptr)
|
static t_stat mfdc_attach(UNIT *uptr, char *cptr)
|
||||||
{
|
{
|
||||||
t_stat r;
|
t_stat r;
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
|
@ -283,7 +283,7 @@ t_stat mfdc_attach(UNIT *uptr, char *cptr)
|
||||||
|
|
||||||
|
|
||||||
/* Detach routine */
|
/* Detach routine */
|
||||||
t_stat mfdc_detach(UNIT *uptr)
|
static t_stat mfdc_detach(UNIT *uptr)
|
||||||
{
|
{
|
||||||
t_stat r;
|
t_stat r;
|
||||||
int8 i;
|
int8 i;
|
||||||
|
|
|
@ -285,7 +285,7 @@ static t_stat disk2_attach(UNIT *uptr, char *cptr)
|
||||||
|
|
||||||
|
|
||||||
/* Detach routine */
|
/* Detach routine */
|
||||||
t_stat disk2_detach(UNIT *uptr)
|
static t_stat disk2_detach(UNIT *uptr)
|
||||||
{
|
{
|
||||||
t_stat r;
|
t_stat r;
|
||||||
int8 i;
|
int8 i;
|
||||||
|
|
|
@ -351,7 +351,7 @@ static t_stat disk3_attach(UNIT *uptr, char *cptr)
|
||||||
|
|
||||||
|
|
||||||
/* Detach routine */
|
/* Detach routine */
|
||||||
t_stat disk3_detach(UNIT *uptr)
|
static t_stat disk3_detach(UNIT *uptr)
|
||||||
{
|
{
|
||||||
DISK3_DRIVE_INFO *pDrive;
|
DISK3_DRIVE_INFO *pDrive;
|
||||||
t_stat r;
|
t_stat r;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
IMSAI FIF Disk Controller by Ernie Price
|
IMSAI FIF Disk Controller by Ernie Price
|
||||||
|
|
||||||
Based on altairz80_dsk.c, Copyright (c) 2002-2011, Peter Schorn
|
Based on altairz80_dsk.c, Copyright (c) 2002-2013, Peter Schorn
|
||||||
|
|
||||||
Plug-n-Play added by Howard M. Harte
|
Plug-n-Play added by Howard M. Harte
|
||||||
|
|
||||||
|
|
|
@ -256,7 +256,7 @@ static t_stat hdc1001_attach(UNIT *uptr, char *cptr)
|
||||||
|
|
||||||
|
|
||||||
/* Detach routine */
|
/* Detach routine */
|
||||||
t_stat hdc1001_detach(UNIT *uptr)
|
static t_stat hdc1001_detach(UNIT *uptr)
|
||||||
{
|
{
|
||||||
HDC1001_DRIVE_INFO *pDrive;
|
HDC1001_DRIVE_INFO *pDrive;
|
||||||
t_stat r;
|
t_stat r;
|
||||||
|
|
|
@ -268,7 +268,7 @@ DEVICE mdsad_dev = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Reset routine */
|
/* Reset routine */
|
||||||
t_stat mdsad_reset(DEVICE *dptr)
|
static t_stat mdsad_reset(DEVICE *dptr)
|
||||||
{
|
{
|
||||||
PNP_INFO *pnp = (PNP_INFO *)dptr->ctxt;
|
PNP_INFO *pnp = (PNP_INFO *)dptr->ctxt;
|
||||||
|
|
||||||
|
@ -289,7 +289,7 @@ t_stat mdsad_reset(DEVICE *dptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Attach routine */
|
/* Attach routine */
|
||||||
t_stat mdsad_attach(UNIT *uptr, char *cptr)
|
static t_stat mdsad_attach(UNIT *uptr, char *cptr)
|
||||||
{
|
{
|
||||||
char header[4];
|
char header[4];
|
||||||
t_stat r;
|
t_stat r;
|
||||||
|
@ -341,7 +341,7 @@ t_stat mdsad_attach(UNIT *uptr, char *cptr)
|
||||||
|
|
||||||
|
|
||||||
/* Detach routine */
|
/* Detach routine */
|
||||||
t_stat mdsad_detach(UNIT *uptr)
|
static t_stat mdsad_detach(UNIT *uptr)
|
||||||
{
|
{
|
||||||
t_stat r;
|
t_stat r;
|
||||||
int8 i;
|
int8 i;
|
||||||
|
|
|
@ -437,7 +437,7 @@ t_stat diskCreate(FILE *fileref, char *ctlr_comment)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
t_stat diskFormat(DISK_INFO *myDisk)
|
static t_stat diskFormat(DISK_INFO *myDisk)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i;
|
||||||
uint8 sector_map[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
|
uint8 sector_map[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
|
||||||
|
@ -759,7 +759,7 @@ t_stat trackWrite(DISK_INFO *myDisk,
|
||||||
* sector record type as the first byte, and fill the sector
|
* sector record type as the first byte, and fill the sector
|
||||||
* data with the fillbyte.
|
* data with the fillbyte.
|
||||||
*/
|
*/
|
||||||
dataLen = (128 << sectorLen)+1;
|
dataLen = sectorLen + 1;
|
||||||
sectorData = malloc(dataLen);
|
sectorData = malloc(dataLen);
|
||||||
memset(sectorData, fillbyte, dataLen);
|
memset(sectorData, fillbyte, dataLen);
|
||||||
sectorData[0] = SECT_RECORD_NORM;
|
sectorData[0] = SECT_RECORD_NORM;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* i1401_lp.c: IBM 1403 line printer simulator
|
/* i1401_lp.c: IBM 1403 line printer simulator
|
||||||
|
|
||||||
Copyright (c) 1993-2008, Robert M. Supnik
|
Copyright (c) 1993-2013, Robert M. Supnik
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
lpt 1403 line printer
|
lpt 1403 line printer
|
||||||
|
|
||||||
|
16-Apr-13 RMS Fixed printer chain selection
|
||||||
19-Jan-07 RMS Added UNIT_TEXT flag
|
19-Jan-07 RMS Added UNIT_TEXT flag
|
||||||
07-Mar-05 RMS Fixed bug in write_line (Van Snyder)
|
07-Mar-05 RMS Fixed bug in write_line (Van Snyder)
|
||||||
25-Apr-03 RMS Revised for extended file support
|
25-Apr-03 RMS Revised for extended file support
|
||||||
|
@ -49,17 +50,17 @@ t_stat lpt_attach (UNIT *uptr, char *cptr);
|
||||||
t_stat space (int32 lines, int32 lflag);
|
t_stat space (int32 lines, int32 lflag);
|
||||||
|
|
||||||
char *pch_table_old[4] = {
|
char *pch_table_old[4] = {
|
||||||
bcd_to_ascii_old, bcd_to_pca, bcd_to_pch, bcd_to_ascii_old
|
bcd_to_ascii_old, bcd_to_ascii_old, bcd_to_pca, bcd_to_pch
|
||||||
};
|
};
|
||||||
char *pch_table[4] = {
|
char *pch_table[4] = {
|
||||||
bcd_to_ascii_a, bcd_to_pca, bcd_to_pch, bcd_to_ascii_h
|
bcd_to_ascii_a, bcd_to_ascii_h, bcd_to_pca, bcd_to_pch
|
||||||
};
|
};
|
||||||
|
|
||||||
#define UNIT_V_FT (UNIT_V_UF + 0)
|
#define UNIT_V_FT (UNIT_V_UF + 0)
|
||||||
#define UNIT_V_48 (UNIT_V_UF + 1)
|
#define UNIT_V_48 (UNIT_V_UF + 1)
|
||||||
#define UNIT_FT (1 << UNIT_V_FT)
|
#define UNIT_FT (1 << UNIT_V_FT)
|
||||||
#define UNIT_48 (1 << UNIT_V_48)
|
#define UNIT_48 (1 << UNIT_V_48)
|
||||||
#define GET_PCHAIN(x) (((x) >> UNIT_V_FT) & (UNIT_FT|UNIT_48))
|
#define GET_PCHAIN(x) (((x) >> UNIT_V_FT) & 03)
|
||||||
#define CHP(ch,val) ((val) & (1 << (ch)))
|
#define CHP(ch,val) ((val) & (1 << (ch)))
|
||||||
|
|
||||||
/* LPT data structures
|
/* LPT data structures
|
||||||
|
@ -119,9 +120,10 @@ if ((lpt_unit.flags & UNIT_ATT) == 0) /* attached? */
|
||||||
wm = ((ilnt == 2) || (ilnt == 5)) && (mod == BCD_SQUARE);
|
wm = ((ilnt == 2) || (ilnt == 5)) && (mod == BCD_SQUARE);
|
||||||
sup = ((ilnt == 2) || (ilnt == 5)) && (mod == BCD_S);
|
sup = ((ilnt == 2) || (ilnt == 5)) && (mod == BCD_S);
|
||||||
ind[IN_LPT] = 0; /* clear error */
|
ind[IN_LPT] = 0; /* clear error */
|
||||||
|
t = GET_PCHAIN (lpt_unit.flags);
|
||||||
if (conv_old) /* get print chain */
|
if (conv_old) /* get print chain */
|
||||||
bcd2asc = pch_table_old[GET_PCHAIN (lpt_unit.flags)];
|
bcd2asc = pch_table_old[t];
|
||||||
else bcd2asc = pch_table[GET_PCHAIN (lpt_unit.flags)];
|
else bcd2asc = pch_table[t];
|
||||||
for (i = 0; i < LPT_WIDTH; i++) { /* convert print buf */
|
for (i = 0; i < LPT_WIDTH; i++) { /* convert print buf */
|
||||||
t = M[LPT_BUF + i];
|
t = M[LPT_BUF + i];
|
||||||
if (wm) /* wmarks -> 1 or sp */
|
if (wm) /* wmarks -> 1 or sp */
|
||||||
|
|
BIN
Ibm1130/ibm1130.ico
Normal file
BIN
Ibm1130/ibm1130.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
|
@ -1,435 +0,0 @@
|
||||||
# Microsoft Visual C++ Generated NMAKE File, Format Version 2.00
|
|
||||||
# ** DO NOT EDIT **
|
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
|
||||||
|
|
||||||
!IF "$(CFG)" == ""
|
|
||||||
CFG=Win32 Debug
|
|
||||||
!MESSAGE No configuration specified. Defaulting to Win32 Debug.
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
!IF "$(CFG)" != "Win32 Release" && "$(CFG)" != "Win32 Debug"
|
|
||||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
|
||||||
!MESSAGE You can specify a configuration when running NMAKE on this makefile
|
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "ibm1130.mak" CFG="Win32 Debug"
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE Possible choices for configuration are:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE "Win32 Release" (based on "Win32 (x86) Console Application")
|
|
||||||
!MESSAGE "Win32 Debug" (based on "Win32 (x86) Console Application")
|
|
||||||
!MESSAGE
|
|
||||||
!ERROR An invalid configuration is specified.
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Begin Project
|
|
||||||
# PROP Target_Last_Scanned "Win32 Debug"
|
|
||||||
CPP=cl.exe
|
|
||||||
RSC=rc.exe
|
|
||||||
|
|
||||||
!IF "$(CFG)" == "Win32 Release"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "WinRel"
|
|
||||||
# PROP BASE Intermediate_Dir "WinRel"
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "WinRel"
|
|
||||||
# PROP Intermediate_Dir "WinRel"
|
|
||||||
OUTDIR=.\WinRel
|
|
||||||
INTDIR=.\WinRel
|
|
||||||
|
|
||||||
ALL : $(OUTDIR)/ibm1130.exe $(OUTDIR)/ibm1130.bsc
|
|
||||||
|
|
||||||
$(OUTDIR) :
|
|
||||||
if not exist $(OUTDIR)/nul mkdir $(OUTDIR)
|
|
||||||
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /YX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FR /c
|
|
||||||
# ADD CPP /nologo /W3 /GX /YX /O2 /I "c:\pdp11\supnik" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "GUI_SUPPORT" /U "VMS" /FR /c
|
|
||||||
CPP_PROJ=/nologo /W3 /GX /YX /O2 /I "c:\pdp11\supnik" /D "NDEBUG" /D "WIN32" /D\
|
|
||||||
"_CONSOLE" /D "GUI_SUPPORT" /U "VMS" /FR$(INTDIR)/ /Fp$(OUTDIR)/"ibm1130.pch"\
|
|
||||||
/Fo$(INTDIR)/ /c
|
|
||||||
CPP_OBJS=.\WinRel/
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
RSC_PROJ=/l 0x409 /fo$(INTDIR)/"ibm1130.res" /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
BSC32_FLAGS=/nologo /o$(OUTDIR)/"ibm1130.bsc"
|
|
||||||
BSC32_SBRS= \
|
|
||||||
$(INTDIR)/ibm1130_cpu.sbr \
|
|
||||||
$(INTDIR)/ibm1130_sys.sbr \
|
|
||||||
$(INTDIR)/ibm1130_cr.sbr \
|
|
||||||
$(INTDIR)/ibm1130_stddev.sbr \
|
|
||||||
$(INTDIR)/ibm1130_disk.sbr \
|
|
||||||
$(INTDIR)/ibm1130_gdu.sbr \
|
|
||||||
$(INTDIR)/ibm1130_gui.sbr \
|
|
||||||
$(INTDIR)/ibm1130_prt.sbr \
|
|
||||||
$(INTDIR)/scp.sbr \
|
|
||||||
$(INTDIR)/sim_tmxr.sbr \
|
|
||||||
$(INTDIR)/sim_sock.sbr \
|
|
||||||
$(INTDIR)/ibm1130_fmt.sbr \
|
|
||||||
$(INTDIR)/sim_console.sbr \
|
|
||||||
$(INTDIR)/sim_fio.sbr \
|
|
||||||
$(INTDIR)/sim_timer.sbr \
|
|
||||||
$(INTDIR)/ibm1130_ptrp.sbr
|
|
||||||
|
|
||||||
$(OUTDIR)/ibm1130.bsc : $(OUTDIR) $(BSC32_SBRS)
|
|
||||||
$(BSC32) @<<
|
|
||||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
|
||||||
<<
|
|
||||||
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /MACHINE:I386
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib wsock32.lib shell32.lib /NOLOGO /SUBSYSTEM:console /MACHINE:I386
|
|
||||||
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib\
|
|
||||||
wsock32.lib shell32.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no\
|
|
||||||
/PDB:$(OUTDIR)/"ibm1130.pdb" /MACHINE:I386 /OUT:$(OUTDIR)/"ibm1130.exe"
|
|
||||||
DEF_FILE=
|
|
||||||
LINK32_OBJS= \
|
|
||||||
$(INTDIR)/ibm1130_cpu.obj \
|
|
||||||
$(INTDIR)/ibm1130_sys.obj \
|
|
||||||
$(INTDIR)/ibm1130_cr.obj \
|
|
||||||
$(INTDIR)/ibm1130_stddev.obj \
|
|
||||||
$(INTDIR)/ibm1130.res \
|
|
||||||
$(INTDIR)/ibm1130_disk.obj \
|
|
||||||
$(INTDIR)/ibm1130_gdu.obj \
|
|
||||||
$(INTDIR)/ibm1130_gui.obj \
|
|
||||||
$(INTDIR)/ibm1130_prt.obj \
|
|
||||||
$(INTDIR)/scp.obj \
|
|
||||||
$(INTDIR)/sim_tmxr.obj \
|
|
||||||
$(INTDIR)/sim_sock.obj \
|
|
||||||
$(INTDIR)/ibm1130_fmt.obj \
|
|
||||||
$(INTDIR)/sim_console.obj \
|
|
||||||
$(INTDIR)/sim_fio.obj \
|
|
||||||
$(INTDIR)/sim_timer.obj \
|
|
||||||
$(INTDIR)/ibm1130_ptrp.obj
|
|
||||||
|
|
||||||
$(OUTDIR)/ibm1130.exe : $(OUTDIR) $(DEF_FILE) $(LINK32_OBJS)
|
|
||||||
$(LINK32) @<<
|
|
||||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
|
||||||
<<
|
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "Win32 Debug"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 1
|
|
||||||
# PROP BASE Output_Dir "WinDebug"
|
|
||||||
# PROP BASE Intermediate_Dir "WinDebug"
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 1
|
|
||||||
# PROP Output_Dir "WinDebug"
|
|
||||||
# PROP Intermediate_Dir "WinDebug"
|
|
||||||
OUTDIR=.\WinDebug
|
|
||||||
INTDIR=.\WinDebug
|
|
||||||
|
|
||||||
ALL : $(OUTDIR)/ibm1130.exe $(OUTDIR)/ibm1130.bsc
|
|
||||||
|
|
||||||
$(OUTDIR) :
|
|
||||||
if not exist $(OUTDIR)/nul mkdir $(OUTDIR)
|
|
||||||
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /Zi /YX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FR /c
|
|
||||||
# ADD CPP /nologo /W3 /GX /Zi /YX /Od /I "c:\pdp11\supnik" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "GUI_SUPPORT" /U "VMS" /FR /c
|
|
||||||
CPP_PROJ=/nologo /W3 /GX /Zi /YX /Od /I "c:\pdp11\supnik" /D "_DEBUG" /D\
|
|
||||||
"WIN32" /D "_CONSOLE" /D "GUI_SUPPORT" /U "VMS" /FR$(INTDIR)/\
|
|
||||||
/Fp$(OUTDIR)/"ibm1130.pch" /Fo$(INTDIR)/ /Fd$(OUTDIR)/"ibm1130.pdb" /c
|
|
||||||
CPP_OBJS=.\WinDebug/
|
|
||||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
|
||||||
RSC_PROJ=/l 0x409 /fo$(INTDIR)/"ibm1130.res" /d "_DEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
BSC32_FLAGS=/nologo /o$(OUTDIR)/"ibm1130.bsc"
|
|
||||||
BSC32_SBRS= \
|
|
||||||
$(INTDIR)/ibm1130_cpu.sbr \
|
|
||||||
$(INTDIR)/ibm1130_sys.sbr \
|
|
||||||
$(INTDIR)/ibm1130_cr.sbr \
|
|
||||||
$(INTDIR)/ibm1130_stddev.sbr \
|
|
||||||
$(INTDIR)/ibm1130_disk.sbr \
|
|
||||||
$(INTDIR)/ibm1130_gdu.sbr \
|
|
||||||
$(INTDIR)/ibm1130_gui.sbr \
|
|
||||||
$(INTDIR)/ibm1130_prt.sbr \
|
|
||||||
$(INTDIR)/scp.sbr \
|
|
||||||
$(INTDIR)/sim_tmxr.sbr \
|
|
||||||
$(INTDIR)/sim_sock.sbr \
|
|
||||||
$(INTDIR)/ibm1130_fmt.sbr \
|
|
||||||
$(INTDIR)/sim_console.sbr \
|
|
||||||
$(INTDIR)/sim_fio.sbr \
|
|
||||||
$(INTDIR)/sim_timer.sbr \
|
|
||||||
$(INTDIR)/ibm1130_ptrp.sbr
|
|
||||||
|
|
||||||
$(OUTDIR)/ibm1130.bsc : $(OUTDIR) $(BSC32_SBRS)
|
|
||||||
$(BSC32) @<<
|
|
||||||
$(BSC32_FLAGS) $(BSC32_SBRS)
|
|
||||||
<<
|
|
||||||
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NOLOGO /SUBSYSTEM:console /DEBUG /MACHINE:I386
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib wsock32.lib shell32.lib /NOLOGO /SUBSYSTEM:console /DEBUG /MACHINE:I386
|
|
||||||
# SUBTRACT LINK32 /MAP
|
|
||||||
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib\
|
|
||||||
wsock32.lib shell32.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes\
|
|
||||||
/PDB:$(OUTDIR)/"ibm1130.pdb" /DEBUG /MACHINE:I386 /OUT:$(OUTDIR)/"ibm1130.exe"
|
|
||||||
DEF_FILE=
|
|
||||||
LINK32_OBJS= \
|
|
||||||
$(INTDIR)/ibm1130_cpu.obj \
|
|
||||||
$(INTDIR)/ibm1130_sys.obj \
|
|
||||||
$(INTDIR)/ibm1130_cr.obj \
|
|
||||||
$(INTDIR)/ibm1130_stddev.obj \
|
|
||||||
$(INTDIR)/ibm1130.res \
|
|
||||||
$(INTDIR)/ibm1130_disk.obj \
|
|
||||||
$(INTDIR)/ibm1130_gdu.obj \
|
|
||||||
$(INTDIR)/ibm1130_gui.obj \
|
|
||||||
$(INTDIR)/ibm1130_prt.obj \
|
|
||||||
$(INTDIR)/scp.obj \
|
|
||||||
$(INTDIR)/sim_tmxr.obj \
|
|
||||||
$(INTDIR)/sim_sock.obj \
|
|
||||||
$(INTDIR)/ibm1130_fmt.obj \
|
|
||||||
$(INTDIR)/sim_console.obj \
|
|
||||||
$(INTDIR)/sim_fio.obj \
|
|
||||||
$(INTDIR)/sim_timer.obj \
|
|
||||||
$(INTDIR)/ibm1130_ptrp.obj
|
|
||||||
|
|
||||||
$(OUTDIR)/ibm1130.exe : $(OUTDIR) $(DEF_FILE) $(LINK32_OBJS)
|
|
||||||
$(LINK32) @<<
|
|
||||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
|
||||||
<<
|
|
||||||
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
.c{$(CPP_OBJS)}.obj:
|
|
||||||
$(CPP) $(CPP_PROJ) $<
|
|
||||||
|
|
||||||
.cpp{$(CPP_OBJS)}.obj:
|
|
||||||
$(CPP) $(CPP_PROJ) $<
|
|
||||||
|
|
||||||
.cxx{$(CPP_OBJS)}.obj:
|
|
||||||
$(CPP) $(CPP_PROJ) $<
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Begin Group "Source Files"
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_cpu.c
|
|
||||||
DEP_IBM11=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_cpu.obj : $(SOURCE) $(DEP_IBM11) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_sys.c
|
|
||||||
DEP_IBM113=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_sys.obj : $(SOURCE) $(DEP_IBM113) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_cr.c
|
|
||||||
DEP_IBM1130=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_cr.obj : $(SOURCE) $(DEP_IBM1130) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_stddev.c
|
|
||||||
DEP_IBM1130_=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
.\ibm1130_conout.h\
|
|
||||||
.\ibm1130_conin.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_stddev.obj : $(SOURCE) $(DEP_IBM1130_) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130.rc
|
|
||||||
DEP_IBM1130_R=\
|
|
||||||
.\1130consoleblank.bmp\
|
|
||||||
.\hand.cur
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130.res : $(SOURCE) $(DEP_IBM1130_R) $(INTDIR)
|
|
||||||
$(RSC) $(RSC_PROJ) $(SOURCE)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_disk.c
|
|
||||||
DEP_IBM1130_D=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
.\dmsr2v12phases.h\
|
|
||||||
.\dmsr2v12slet.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_disk.obj : $(SOURCE) $(DEP_IBM1130_D) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_gdu.c
|
|
||||||
DEP_IBM1130_G=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_gdu.obj : $(SOURCE) $(DEP_IBM1130_G) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_gui.c
|
|
||||||
DEP_IBM1130_GU=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_gui.obj : $(SOURCE) $(DEP_IBM1130_GU) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_prt.c
|
|
||||||
DEP_IBM1130_P=\
|
|
||||||
.\ibm1130_defs.h\
|
|
||||||
.\ibm1130_prtwheel.h\
|
|
||||||
..\sim_defs.h
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_prt.obj : $(SOURCE) $(DEP_IBM1130_P) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=\pdp11\supnik\scp.c
|
|
||||||
DEP_SCP_C=\
|
|
||||||
..\sim_defs.h\
|
|
||||||
\pdp11\supnik\sim_rev.h\
|
|
||||||
\pdp11\supnik\sim_sock.h\
|
|
||||||
\pdp11\supnik\sim_tmxr.h\
|
|
||||||
\MSVC20\INCLUDE\sys\TYPES.H
|
|
||||||
|
|
||||||
$(INTDIR)/scp.obj : $(SOURCE) $(DEP_SCP_C) $(INTDIR)
|
|
||||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=\pdp11\supnik\sim_tmxr.c
|
|
||||||
DEP_SIM_T=\
|
|
||||||
..\sim_defs.h\
|
|
||||||
\pdp11\supnik\sim_sock.h\
|
|
||||||
\pdp11\supnik\sim_tmxr.h\
|
|
||||||
\MSVC20\INCLUDE\sys\TYPES.H
|
|
||||||
|
|
||||||
$(INTDIR)/sim_tmxr.obj : $(SOURCE) $(DEP_SIM_T) $(INTDIR)
|
|
||||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=\pdp11\supnik\sim_sock.c
|
|
||||||
DEP_SIM_S=\
|
|
||||||
..\sim_defs.h\
|
|
||||||
\pdp11\supnik\sim_sock.h\
|
|
||||||
\MSVC20\INCLUDE\sys\TYPES.H
|
|
||||||
|
|
||||||
$(INTDIR)/sim_sock.obj : $(SOURCE) $(DEP_SIM_S) $(INTDIR)
|
|
||||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_fmt.c
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_fmt.obj : $(SOURCE) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=\pdp11\supnik\sim_console.c
|
|
||||||
DEP_SIM_C=\
|
|
||||||
..\sim_defs.h\
|
|
||||||
\pdp11\supnik\sim_sock.h\
|
|
||||||
\pdp11\supnik\sim_tmxr.h\
|
|
||||||
\pdp11\supnik\scp.h\
|
|
||||||
\pdp11\supnik\sim_console.h\
|
|
||||||
\pdp11\supnik\sim_timer.h\
|
|
||||||
\pdp11\supnik\sim_fio.h\
|
|
||||||
D:\PROGRA~1\MICROS~1\INCLUDE\WinSock2.h\
|
|
||||||
\MSVC20\INCLUDE\sys\TYPES.H\
|
|
||||||
D:\PROGRA~1\MICROS~1\INCLUDE\Qos.h\
|
|
||||||
D:\WINDDK\2600\inc\wxp\guiddef.h
|
|
||||||
|
|
||||||
$(INTDIR)/sim_console.obj : $(SOURCE) $(DEP_SIM_C) $(INTDIR)
|
|
||||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=\pdp11\supnik\sim_fio.c
|
|
||||||
DEP_SIM_F=\
|
|
||||||
..\sim_defs.h\
|
|
||||||
D:\PROGRA~1\MICROS~1\INCLUDE\BaseTsd.h\
|
|
||||||
\pdp11\supnik\scp.h\
|
|
||||||
\pdp11\supnik\sim_console.h\
|
|
||||||
\pdp11\supnik\sim_timer.h\
|
|
||||||
\pdp11\supnik\sim_fio.h
|
|
||||||
|
|
||||||
$(INTDIR)/sim_fio.obj : $(SOURCE) $(DEP_SIM_F) $(INTDIR)
|
|
||||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=\pdp11\supnik\sim_timer.c
|
|
||||||
DEP_SIM_TI=\
|
|
||||||
..\sim_defs.h\
|
|
||||||
D:\PROGRA~1\MICROS~1\INCLUDE\BaseTsd.h\
|
|
||||||
\pdp11\supnik\scp.h\
|
|
||||||
\pdp11\supnik\sim_console.h\
|
|
||||||
\pdp11\supnik\sim_timer.h\
|
|
||||||
\pdp11\supnik\sim_fio.h
|
|
||||||
|
|
||||||
$(INTDIR)/sim_timer.obj : $(SOURCE) $(DEP_SIM_TI) $(INTDIR)
|
|
||||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
################################################################################
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\ibm1130_ptrp.c
|
|
||||||
|
|
||||||
$(INTDIR)/ibm1130_ptrp.obj : $(SOURCE) $(INTDIR)
|
|
||||||
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# End Project
|
|
||||||
################################################################################
|
|
|
@ -12,6 +12,14 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// English (U.S.) resources
|
||||||
|
|
||||||
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||||
|
#ifdef _WIN32
|
||||||
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
#pragma code_page(1252)
|
||||||
|
#endif //_WIN32
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -19,24 +27,23 @@
|
||||||
// TEXTINCLUDE
|
// TEXTINCLUDE
|
||||||
//
|
//
|
||||||
|
|
||||||
1 TEXTINCLUDE DISCARDABLE
|
1 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"ibm1130res.h\0"
|
"ibm1130res.h\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
2 TEXTINCLUDE DISCARDABLE
|
2 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"#include <windows.h>\r\n"
|
"#include <windows.h>\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
3 TEXTINCLUDE DISCARDABLE
|
3 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"\r\n"
|
"\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,20 +52,72 @@ END
|
||||||
// Bitmap
|
// Bitmap
|
||||||
//
|
//
|
||||||
|
|
||||||
IDB_CONSOLE BITMAP MOVEABLE PURE "1130consoleblank.bmp"
|
IDB_CONSOLE BITMAP "1130consoleblank.bmp"
|
||||||
FULL_1442 BITMAP MOVEABLE PURE "1442full.bmp"
|
FULL_1442 BITMAP "1442full.bmp"
|
||||||
EOF_1442 BITMAP MOVEABLE PURE "1442eof.bmp"
|
EOF_1442 BITMAP "1442eof.bmp"
|
||||||
EMPTY_1442 BITMAP MOVEABLE PURE "1442empty.bmp"
|
EMPTY_1442 BITMAP "1442empty.bmp"
|
||||||
MIDDLE_1442 BITMAP MOVEABLE PURE "1442middle.bmp"
|
MIDDLE_1442 BITMAP "1442middle.bmp"
|
||||||
FULL_1132 BITMAP MOVEABLE PURE "1132full.bmp"
|
FULL_1132 BITMAP "1132full.bmp"
|
||||||
EMPTY_1132 BITMAP MOVEABLE PURE "1132empty.bmp"
|
EMPTY_1132 BITMAP "1132empty.bmp"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Cursor
|
// Cursor
|
||||||
//
|
//
|
||||||
|
|
||||||
IDC_MYHAND CURSOR DISCARDABLE "HAND.CUR"
|
IDC_MYHAND CURSOR "HAND.CUR"
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Icon
|
||||||
|
//
|
||||||
|
|
||||||
|
// Icon with lowest ID value placed first to ensure application icon
|
||||||
|
// remains consistent on all systems.
|
||||||
|
mainicon ICON "ibm1130.ico"
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Version
|
||||||
|
//
|
||||||
|
|
||||||
|
VS_VERSION_INFO VERSIONINFO
|
||||||
|
FILEVERSION 3,8,0,0
|
||||||
|
PRODUCTVERSION 3,8,0,0
|
||||||
|
FILEFLAGSMASK 0x17L
|
||||||
|
#ifdef _DEBUG
|
||||||
|
FILEFLAGS 0x1L
|
||||||
|
#else
|
||||||
|
FILEFLAGS 0x0L
|
||||||
|
#endif
|
||||||
|
FILEOS 0x4L
|
||||||
|
FILETYPE 0x1L
|
||||||
|
FILESUBTYPE 0x0L
|
||||||
|
BEGIN
|
||||||
|
BLOCK "StringFileInfo"
|
||||||
|
BEGIN
|
||||||
|
BLOCK "040904b0"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Comments", "IBM 1130 simulator. For more information see http://ibm1130.org. Program based on SIMH by Bob Supnik, http:/.simh.trailing-edge.com"
|
||||||
|
VALUE "FileDescription", "ibm1130 Application"
|
||||||
|
VALUE "FileVersion", "3, 8, 0, 0"
|
||||||
|
VALUE "InternalName", "ibm1130"
|
||||||
|
VALUE "LegalCopyright", "Copyright (C) 2012, Brian Knittel. Plotter support incorporates LIBGD Copyright © 1997-2008 Thomas Boutell, Pierre A. Joye and contributors, see file COPYING at www.libgd.org"
|
||||||
|
VALUE "OriginalFilename", "ibm1130.exe"
|
||||||
|
VALUE "ProductName", "ibm1130 Application"
|
||||||
|
VALUE "ProductVersion", "3, 8, 0, 0"
|
||||||
|
END
|
||||||
|
END
|
||||||
|
BLOCK "VarFileInfo"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Translation", 0x409, 1200
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
#endif // English (U.S.) resources
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
#ifndef APSTUDIO_INVOKED
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -22,6 +22,16 @@
|
||||||
Also commented out my echo command as it's now a standard simh command
|
Also commented out my echo command as it's now a standard simh command
|
||||||
27-Nov-05 BLK Added Arithmetic Factor Register support per Carl Claunch (GUI only)
|
27-Nov-05 BLK Added Arithmetic Factor Register support per Carl Claunch (GUI only)
|
||||||
06-Dec-06 BLK Moved CGI stuff out of ibm1130_cpu.c
|
06-Dec-06 BLK Moved CGI stuff out of ibm1130_cpu.c
|
||||||
|
01-May-07 BLK Changed name of function xio_1142_card to xio_1442_card. Corrected list of
|
||||||
|
devices in xio_devs[] (used in debugging only).
|
||||||
|
24-Mar-11 BLK Got the real IBM 1130 diagnostics (yay!). Fixed two errors detected by the CPU diagnostics:
|
||||||
|
-- was not resetting overflow bit after testing with BSC short form
|
||||||
|
(why did I think only the long form reset OV after testing?)
|
||||||
|
-- failed to detect numeric overflow in Divide instructions
|
||||||
|
Also fixed bug where simulator performed 2nd word fetch on Long mode instructions
|
||||||
|
on ops that don't have long mode, blowing out the SAR/SBR display that's important in the
|
||||||
|
IBM diagnostics. The simulator was decrementing the IAR after the incorrect fetch, so the
|
||||||
|
instructions worked correctly, but, the GUI display was wrong.
|
||||||
|
|
||||||
>> To do: verify actual operands stored in ARF, need to get this from state diagrams in the schematic set
|
>> To do: verify actual operands stored in ARF, need to get this from state diagrams in the schematic set
|
||||||
Also: determine how many bits are actually stored in the IAR in a real 1130, by forcing wraparound
|
Also: determine how many bits are actually stored in the IAR in a real 1130, by forcing wraparound
|
||||||
|
@ -91,6 +101,7 @@
|
||||||
opcode in MSBits
|
opcode in MSBits
|
||||||
|
|
||||||
F = format. 0 = short (1 word), 1 = long (2 word) instruction
|
F = format. 0 = short (1 word), 1 = long (2 word) instruction
|
||||||
|
(Not all operations have long versions. The bit is ignored for shifts, LDX, WAIT and invalid opcodes)
|
||||||
|
|
||||||
T = Tag 00 = no index register (e.g. IAR relative)
|
T = Tag 00 = no index register (e.g. IAR relative)
|
||||||
01 = use index register 1 (e.g. core address 1 = M[1])
|
01 = use index register 1 (e.g. core address 1 = M[1])
|
||||||
|
@ -153,9 +164,6 @@ static int simh_status_to_stopcode (int status);
|
||||||
|
|
||||||
/* hook pointers from scp.c */
|
/* hook pointers from scp.c */
|
||||||
void (*sim_vm_init) (void) = &sim_init;
|
void (*sim_vm_init) (void) = &sim_init;
|
||||||
extern char* (*sim_vm_read) (char *ptr, int32 size, FILE *stream);
|
|
||||||
extern void (*sim_vm_post) (t_bool from_scp);
|
|
||||||
extern CTAB *sim_vm_cmd;
|
|
||||||
|
|
||||||
/* space to store extra simulator-specific commands */
|
/* space to store extra simulator-specific commands */
|
||||||
#define MAX_EXTRA_COMMANDS 10
|
#define MAX_EXTRA_COMMANDS 10
|
||||||
|
@ -222,7 +230,7 @@ t_stat cpu_set_type (UNIT *uptr, int32 value, char *cptr, void *desc);
|
||||||
void calc_ints (void);
|
void calc_ints (void);
|
||||||
|
|
||||||
extern t_stat ts_wr (int32 data, int32 addr, int32 access);
|
extern t_stat ts_wr (int32 data, int32 addr, int32 access);
|
||||||
extern UNIT cr_unit;
|
extern UNIT cr_unit, prt_unit[];
|
||||||
|
|
||||||
#ifdef ENABLE_BACKTRACE
|
#ifdef ENABLE_BACKTRACE
|
||||||
static void archive_backtrace(char *inst);
|
static void archive_backtrace(char *inst);
|
||||||
|
@ -261,9 +269,15 @@ static void trace_instruction (void);
|
||||||
* ------------------------------------------------------------------------ */
|
* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
#define UNIT_MSIZE (1 << (UNIT_V_UF + 7)) /* flag for memory size setting */
|
#define UNIT_MSIZE (1 << (UNIT_V_UF + 7)) /* flag for memory size setting */
|
||||||
#define UNIT_1800 (1 << (UNIT_V_UF + 0)) /* flag for 1800 mode */
|
#define UNIT_1800 (1 << (UNIT_V_UF + 8)) /* flag for 1800 mode */
|
||||||
|
#define UNIT_TRACE (3 << (UNIT_V_UF + 9)) /* debugging tracing mode bits */
|
||||||
|
|
||||||
UNIT cpu_unit = { UDATA (&cpu_svc, UNIT_FIX | UNIT_BINK | UNIT_ATTABLE | UNIT_SEQ, INIMEMSIZE) };
|
#define UNIT_TRACE_NONE 0
|
||||||
|
#define UNIT_TRACE_IO (1 << (UNIT_V_UF+9))
|
||||||
|
#define UNIT_TRACE_INSTR (2 << (UNIT_V_UF+9))
|
||||||
|
#define UNIT_TRACE_BOTH (3 << (UNIT_V_UF+9))
|
||||||
|
|
||||||
|
UNIT cpu_unit = { UDATA (&cpu_svc, UNIT_FIX | UNIT_BINK | UNIT_ATTABLE | UNIT_SEQ | UNIT_TRACE_BOTH, INIMEMSIZE) };
|
||||||
|
|
||||||
REG cpu_reg[] = {
|
REG cpu_reg[] = {
|
||||||
{ HRDATA (IAR, IAR, 32) },
|
{ HRDATA (IAR, IAR, 32) },
|
||||||
|
@ -308,6 +322,10 @@ MTAB cpu_mod[] = {
|
||||||
{ UNIT_1800, 0, "1130", "1130", &cpu_set_type},
|
{ UNIT_1800, 0, "1130", "1130", &cpu_set_type},
|
||||||
{ UNIT_1800, UNIT_1800, "1800", "1800", &cpu_set_type},
|
{ UNIT_1800, UNIT_1800, "1800", "1800", &cpu_set_type},
|
||||||
#endif
|
#endif
|
||||||
|
{ UNIT_TRACE, UNIT_TRACE_NONE, "notrace", "NOTRACE", NULL},
|
||||||
|
{ UNIT_TRACE, UNIT_TRACE_IO, "traceIO", "TRACEIO", NULL},
|
||||||
|
{ UNIT_TRACE, UNIT_TRACE_INSTR, "traceInstr", "TRACEINSTR", NULL},
|
||||||
|
{ UNIT_TRACE, UNIT_TRACE_BOTH, "traceBoth", "TRACEBOTH", NULL},
|
||||||
{ 0 } };
|
{ 0 } };
|
||||||
|
|
||||||
DEVICE cpu_dev = {
|
DEVICE cpu_dev = {
|
||||||
|
@ -433,7 +451,6 @@ void calc_ints (void)
|
||||||
* ------------------------------------------------------------------------ */
|
* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
#define INCREMENT_IAR IAR = (IAR + 1) & mem_mask
|
#define INCREMENT_IAR IAR = (IAR + 1) & mem_mask
|
||||||
#define DECREMENT_IAR IAR = (IAR - 1) & mem_mask
|
|
||||||
|
|
||||||
void bail (char *msg)
|
void bail (char *msg)
|
||||||
{
|
{
|
||||||
|
@ -441,36 +458,53 @@ void bail (char *msg)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void weirdop (char *msg, int offset)
|
static void weirdop (char *msg)
|
||||||
{
|
{
|
||||||
printf("Weird opcode: %s at %04x\n", msg, IAR+offset);
|
printf("Weird opcode: %s at %04x\n", msg, IAR-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *xio_devs[] = {
|
static char *xio_devs[] = {
|
||||||
"0?", "console", "1142card", "1134papertape",
|
"dev-00?", "console", "1442card", "1134ptape",
|
||||||
"dsk0", "1627plot", "1132print", "switches",
|
"dsk0", "1627plot", "1132print", "switches",
|
||||||
"1231omr", "2501card", "comm", "b?",
|
"1231omr", "2501card", "sca", "dev-0b?",
|
||||||
"sys7", "d?", "e?", "f?",
|
"sys7", "dev-0d?", "dev-0e?", "dev-0f?",
|
||||||
"10?", "dsk1", "dsk2", "dsk3",
|
"dev-10?", "dsk1", "dsk2", "dsk3",
|
||||||
"dsk4", "dsk5", "dsk6", "dsk7+",
|
"dsk4", "1403prt", "dsk5", "2311drv2",
|
||||||
"18?", "2250disp", "2741attachment", "1b",
|
"dev-18?", "2250disp", "2741term", "dev-1b",
|
||||||
"1c?", "1d?", "1e?", "1f?"
|
"dev-1c?", "dev-1d?", "dev-1e?", "dev-1f?"
|
||||||
};
|
};
|
||||||
|
|
||||||
static char *xio_funcs[] = {
|
static char *xio_funcs[] = {
|
||||||
"0?", "write", "read", "sense_irq",
|
"func0?", "write", "read", "sense_irq",
|
||||||
"control", "initw", "initr", "sense"
|
"control", "initw", "initr", "sense"
|
||||||
};
|
};
|
||||||
|
|
||||||
t_stat sim_instr (void)
|
t_stat sim_instr (void)
|
||||||
{
|
{
|
||||||
int32 i, eaddr, INDIR, IR, F, DSPLC, word2, oldval, newval, src, src2, dst, abit, xbit;
|
int32 i, eaddr, INDIR, IR, F, DSPLC, word2, oldval, newval, src, src2, dst, abit, xbit;
|
||||||
int32 iocc_addr, iocc_op, iocc_dev, iocc_func, iocc_mod;
|
int32 iocc_addr, iocc_op, iocc_dev, iocc_func, iocc_mod, result;
|
||||||
char msg[50];
|
char msg[50];
|
||||||
int cwincount = 0, status;
|
int cwincount = 0, status;
|
||||||
static long ninstr = 0;
|
static long ninstr = 0;
|
||||||
static char *intlabel[] = {"INT0","INT1","INT2","INT3","INT4","INT5"};
|
static char *intlabel[] = {"INT0","INT1","INT2","INT3","INT4","INT5"};
|
||||||
|
|
||||||
|
/* the F bit indicates a two-word instruction for most instructions except the ones marked FALSE below */
|
||||||
|
static t_bool F_bit_used[] = { /* FALSE for those few instructions that don't have a long instr version */
|
||||||
|
/*undef XIO SLx SRx LDS STS WAIT undef */
|
||||||
|
FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE,
|
||||||
|
/*BSI BSC undef undef LDX STX MDX undef */
|
||||||
|
TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE,
|
||||||
|
/*A AD S SD M D CPU dependent */
|
||||||
|
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE,
|
||||||
|
/*LD LDD STO STD AND OR EOR undef */
|
||||||
|
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef ENABLE_1800_SUPPORT
|
||||||
|
F_bit_used[0x16] = is_1800; /* these two are defined and do have long versions on the 1800 */
|
||||||
|
F_bit_used[0x17] = is_1800; /* but are undefined on the 1130, so set these accordingly */
|
||||||
|
#endif
|
||||||
|
|
||||||
if (cgi) /* give CGI hook function a chance to do something */
|
if (cgi) /* give CGI hook function a chance to do something */
|
||||||
cgi_start();
|
cgi_start();
|
||||||
|
|
||||||
|
@ -581,7 +615,7 @@ t_stat sim_instr (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
ninstr++;
|
ninstr++;
|
||||||
if (cpu_unit.flags & UNIT_ATT)
|
if ((cpu_unit.flags & (UNIT_ATT|UNIT_TRACE_INSTR)) == (UNIT_ATT|UNIT_TRACE_INSTR))
|
||||||
trace_instruction(); /* log CPU details if logging is enabled */
|
trace_instruction(); /* log CPU details if logging is enabled */
|
||||||
|
|
||||||
prev_IAR = IAR; /* save IAR before incrementing it */
|
prev_IAR = IAR; /* save IAR before incrementing it */
|
||||||
|
@ -598,7 +632,7 @@ t_stat sim_instr (void)
|
||||||
|
|
||||||
/* here I compute the usual effective address on the assumption that the instruction will need it. Some don't. */
|
/* here I compute the usual effective address on the assumption that the instruction will need it. Some don't. */
|
||||||
|
|
||||||
if (F) { /* long instruction, ASSUME it's valid (have to decrement IAR if not) */
|
if (F && F_bit_used[OP]) { /* long instruction, except for a few that don't have a long mode, like WAIT */
|
||||||
INDIR = IR & 0x0080; /* indirect bit */
|
INDIR = IR & 0x0080; /* indirect bit */
|
||||||
DSPLC = IR & 0x007F; /* displacement or modifier */
|
DSPLC = IR & 0x007F; /* displacement or modifier */
|
||||||
if (DSPLC & 0x0040)
|
if (DSPLC & 0x0040)
|
||||||
|
@ -612,6 +646,8 @@ t_stat sim_instr (void)
|
||||||
eaddr += ReadIndex(TAG); /* add index register value */
|
eaddr += ReadIndex(TAG); /* add index register value */
|
||||||
if (INDIR) /* if indirect addressing */
|
if (INDIR) /* if indirect addressing */
|
||||||
eaddr = ReadW(eaddr); /* pick up referenced address */
|
eaddr = ReadW(eaddr); /* pick up referenced address */
|
||||||
|
|
||||||
|
/* to do: the previous steps may lead to incorrect GUI SAR/SBR display if the instruction doesn't actually fetch anything. Check this. */
|
||||||
}
|
}
|
||||||
else { /* short instruction, use displacement */
|
else { /* short instruction, use displacement */
|
||||||
INDIR = 0; /* never indirect */
|
INDIR = 0; /* never indirect */
|
||||||
|
@ -623,6 +659,8 @@ t_stat sim_instr (void)
|
||||||
eaddr = ReadIndex(TAG) + DSPLC; /* add index register value */
|
eaddr = ReadIndex(TAG) + DSPLC; /* add index register value */
|
||||||
else
|
else
|
||||||
eaddr = IAR + DSPLC; /* otherwise relative to IAR after fetch */
|
eaddr = IAR + DSPLC; /* otherwise relative to IAR after fetch */
|
||||||
|
|
||||||
|
/* to do: the previous steps may lead to incorrect GUI SAR/SBR display if the instruction doesn't actually fetch the index value. Check this. */
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (OP) { /* decode instruction */
|
switch (OP) { /* decode instruction */
|
||||||
|
@ -634,16 +672,14 @@ t_stat sim_instr (void)
|
||||||
iocc_func = (iocc_op >> 8) & 0x0007;
|
iocc_func = (iocc_op >> 8) & 0x0007;
|
||||||
iocc_mod = iocc_op & 0x00FF;
|
iocc_mod = iocc_op & 0x00FF;
|
||||||
|
|
||||||
if (cpu_unit.flags & UNIT_ATT)
|
if ((cpu_unit.flags & (UNIT_ATT|UNIT_TRACE_IO)) == (UNIT_ATT|UNIT_TRACE_IO))
|
||||||
trace_io("* XIO %s %s mod %02x addr %04x", xio_funcs[iocc_func], xio_devs[iocc_dev], iocc_mod, iocc_addr);
|
trace_io("* XIO %s %s mod %02x addr %04x", xio_funcs[iocc_func], (iocc_func == XIO_SENSE_IRQ) ? "-" : xio_devs[iocc_dev], iocc_mod, iocc_addr);
|
||||||
|
|
||||||
/* fprintf(stderr, "* XIO %s %s mod %02x addr %04x\n", xio_funcs[iocc_func], xio_devs[iocc_dev], iocc_mod, iocc_addr); */
|
|
||||||
|
|
||||||
ACC = 0; /* ACC is destroyed, and default XIO_SENSE_DEV result is 0 */
|
ACC = 0; /* ACC is destroyed, and default XIO_SENSE_DEV result is 0 */
|
||||||
|
|
||||||
switch (iocc_func) {
|
switch (iocc_func) {
|
||||||
case XIO_UNUSED:
|
case XIO_UNUSED:
|
||||||
sprintf(msg, "Unknown op %x on device %02x", iocc_func, iocc_dev);
|
sprintf(msg, "Unknown XIO op %x on device %02x (%s)", iocc_func, iocc_dev, xio_devs[iocc_dev]);
|
||||||
xio_error(msg);
|
xio_error(msg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -656,8 +692,8 @@ t_stat sim_instr (void)
|
||||||
case 0x01: /* console keyboard and printer */
|
case 0x01: /* console keyboard and printer */
|
||||||
xio_1131_console(iocc_addr, iocc_func, iocc_mod);
|
xio_1131_console(iocc_addr, iocc_func, iocc_mod);
|
||||||
break;
|
break;
|
||||||
case 0x02: /* 1142 card reader/punch */
|
case 0x02: /* 1442 card reader/punch */
|
||||||
xio_1142_card(iocc_addr, iocc_func, iocc_mod);
|
xio_1442_card(iocc_addr, iocc_func, iocc_mod);
|
||||||
break;
|
break;
|
||||||
case 0x03: /* 1134 paper tape reader/punch */
|
case 0x03: /* 1134 paper tape reader/punch */
|
||||||
xio_1134_papertape(iocc_addr, iocc_func, iocc_mod);
|
xio_1134_papertape(iocc_addr, iocc_func, iocc_mod);
|
||||||
|
@ -724,10 +760,8 @@ t_stat sim_instr (void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x02: /* --- SLA,SLT,SLC,SLCA,NOP - Shift Left family --- */
|
case 0x02: /* --- SLA,SLT,SLC,SLCA,NOP - Shift Left family --- */
|
||||||
if (F) {
|
if (F)
|
||||||
weirdop("Long Left Shift", -2);
|
weirdop("Long Left Shift");
|
||||||
DECREMENT_IAR;
|
|
||||||
}
|
|
||||||
|
|
||||||
CCC = ((TAG == 0) ? DSPLC : ReadIndex(TAG)) & 0x003F;
|
CCC = ((TAG == 0) ? DSPLC : ReadIndex(TAG)) & 0x003F;
|
||||||
ARFSET(CCC);
|
ARFSET(CCC);
|
||||||
|
@ -764,7 +798,7 @@ t_stat sim_instr (void)
|
||||||
CCC--;
|
CCC--;
|
||||||
}
|
}
|
||||||
C = (CCC != 0);
|
C = (CCC != 0);
|
||||||
WriteIndex(TAG, (ReadIndex(TAG) & 0xFF00) | CCC); /* put 6 bits back into low byte of index register */
|
WriteIndex(TAG, ReadIndex(TAG) & 0xFF00 | CCC); /* put 6 bits back into low byte of index register */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* if TAG == 0, fall through and treat like normal shift SLT */
|
/* if TAG == 0, fall through and treat like normal shift SLT */
|
||||||
|
@ -786,10 +820,8 @@ t_stat sim_instr (void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x03: /* --- SRA, SRT, RTE - Shift Right family --- */
|
case 0x03: /* --- SRA, SRT, RTE - Shift Right family --- */
|
||||||
if (F) {
|
if (F)
|
||||||
weirdop("Long Right Shift", -2);
|
weirdop("Long Right Shift");
|
||||||
DECREMENT_IAR;
|
|
||||||
}
|
|
||||||
|
|
||||||
CCC = ((TAG == 0) ? DSPLC : ReadIndex(TAG)) & 0x3F;
|
CCC = ((TAG == 0) ? DSPLC : ReadIndex(TAG)) & 0x3F;
|
||||||
ARFSET(CCC);
|
ARFSET(CCC);
|
||||||
|
@ -810,8 +842,8 @@ t_stat sim_instr (void)
|
||||||
while (CCC > 0) {
|
while (CCC > 0) {
|
||||||
xbit = (ACC & 0x0001) << 15;
|
xbit = (ACC & 0x0001) << 15;
|
||||||
abit = (ACC & 0x8000);
|
abit = (ACC & 0x8000);
|
||||||
ACC = ((ACC >> 1) & 0x7FFF) | abit;
|
ACC = (ACC >> 1) & 0x7FFF | abit;
|
||||||
EXT = ((EXT >> 1) & 0x7FFF) | xbit;
|
EXT = (EXT >> 1) & 0x7FFF | xbit;
|
||||||
CCC--;
|
CCC--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -820,8 +852,8 @@ t_stat sim_instr (void)
|
||||||
while (CCC > 0) {
|
while (CCC > 0) {
|
||||||
abit = (EXT & 0x0001) << 15;
|
abit = (EXT & 0x0001) << 15;
|
||||||
xbit = (ACC & 0x0001) << 15;
|
xbit = (ACC & 0x0001) << 15;
|
||||||
ACC = ((ACC >> 1) & 0x7FFF) | abit;
|
ACC = (ACC >> 1) & 0x7FFF | abit;
|
||||||
EXT = ((EXT >> 1) & 0x7FFF) | xbit;
|
EXT = (EXT >> 1) & 0x7FFF | xbit;
|
||||||
CCC--;
|
CCC--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -833,10 +865,8 @@ t_stat sim_instr (void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x04: /* --- LDS - Load Status --- */
|
case 0x04: /* --- LDS - Load Status --- */
|
||||||
if (F) { /* never fetches second word? */
|
if (F) /* never fetches second word? */
|
||||||
weirdop("Long LDS", -2);
|
weirdop("Long LDS");
|
||||||
DECREMENT_IAR;
|
|
||||||
}
|
|
||||||
|
|
||||||
V = (DSPLC & 1);
|
V = (DSPLC & 1);
|
||||||
C = (DSPLC & 2) >> 1;
|
C = (DSPLC & 2) >> 1;
|
||||||
|
@ -854,11 +884,15 @@ t_stat sim_instr (void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x06: /* --- WAIT --- */
|
case 0x06: /* --- WAIT --- */
|
||||||
|
/* I am no longer doing the fetch if a long wait is encountered
|
||||||
|
* The 1130 diagnostics use WAIT instructions with the F bit set in some display error codes.
|
||||||
|
* (The wait instruction's opcode is displayed in the Storage Buffer Register on the console display,
|
||||||
|
* since the last thing fetched was the instruction)
|
||||||
|
*/
|
||||||
wait_state = WAIT_OP;
|
wait_state = WAIT_OP;
|
||||||
if (F) { /* what happens if we use long format? */
|
|
||||||
weirdop("Long WAIT", -2);
|
SAR = prev_IAR; /* this is a hack; ensure that the SAR/SBR display shows the WAIT instruction fetch */
|
||||||
DECREMENT_IAR; /* assume it wouldn't have fetched 2nd word? */
|
SBR = IR;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x08: /* --- BSI - Branch and store IAR --- */
|
case 0x08: /* --- BSI - Branch and store IAR --- */
|
||||||
|
@ -1023,10 +1057,20 @@ t_stat sim_instr (void)
|
||||||
|
|
||||||
ARFSET(src2);
|
ARFSET(src2);
|
||||||
|
|
||||||
if (src2 == 0)
|
/* 24-Mar-11 - Failed IBM diagnostics because I was not checking for overflow here. Fixed.
|
||||||
|
* Have to check for special case of -maxint / -1 because Windows (at least) generates an exception
|
||||||
|
*/
|
||||||
|
if (src2 == 0) {
|
||||||
V = 1; /* divide by zero just sets overflow, ACC & EXT are undefined */
|
V = 1; /* divide by zero just sets overflow, ACC & EXT are undefined */
|
||||||
|
}
|
||||||
|
else if (src2 == -1 && src == 0x80000000) {
|
||||||
|
V = 1; /* another special case: max negative int / -1 also overflows */
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
ACC = (src / src2) & 0xFFFF;
|
result = src / src2; /* compute dividend */
|
||||||
|
if ((result > 32767) || (result < -32768))
|
||||||
|
V = 1; /* if result does not fit into 16 bits, we have an overflow */
|
||||||
|
ACC = result & 0xFFFF;
|
||||||
EXT = (src % src2) & 0xFFFF;
|
EXT = (src % src2) & 0xFFFF;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1105,13 +1149,11 @@ t_stat sim_instr (void)
|
||||||
/* case 0x07: */
|
/* case 0x07: */
|
||||||
/* case 0x0a: */
|
/* case 0x0a: */
|
||||||
/* case 0x0b: */
|
/* case 0x0b: */
|
||||||
/* case 0x0e: */
|
|
||||||
/* case 0x0f: */
|
/* case 0x0f: */
|
||||||
/* case 0x1f: */
|
/* case 0x1f: */
|
||||||
wait_state = WAIT_INVALID_OP;
|
wait_state = WAIT_INVALID_OP;
|
||||||
if (F)
|
SAR = prev_IAR; /* this is a hack; ensure that the SAR/SBR display shows the WAIT instruction fetch */
|
||||||
DECREMENT_IAR; /* assume it wouldn't have fetched 2nd word? */
|
SBR = IR;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
} /* end instruction decode switch */
|
} /* end instruction decode switch */
|
||||||
|
|
||||||
|
@ -1164,6 +1206,7 @@ static int simh_status_to_stopcode (int status)
|
||||||
* bsctest - perform standard set of condition tests. We return TRUE if any
|
* bsctest - perform standard set of condition tests. We return TRUE if any
|
||||||
* of the condition bits specified in DSPLC test positive, FALSE if none are true.
|
* of the condition bits specified in DSPLC test positive, FALSE if none are true.
|
||||||
* If reset_V is TRUE, we reset the oVerflow flag after testing it.
|
* If reset_V is TRUE, we reset the oVerflow flag after testing it.
|
||||||
|
* 24-Mar-11: no, we reset the oVerflow flag no matter what reset_V is
|
||||||
* ------------------------------------------------------------------------ */
|
* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
static t_bool bsctest (int32 DSPLC, t_bool reset_V)
|
static t_bool bsctest (int32 DSPLC, t_bool reset_V)
|
||||||
|
@ -1171,7 +1214,8 @@ static t_bool bsctest (int32 DSPLC, t_bool reset_V)
|
||||||
if (DSPLC & 0x01) { /* Overflow off (note inverted sense) */
|
if (DSPLC & 0x01) { /* Overflow off (note inverted sense) */
|
||||||
if (! V)
|
if (! V)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else if (reset_V) /* reset after testing */
|
// 24-Mar-11 - V is always reset when tested, in both the long and short forms of the instructions
|
||||||
|
// else if (reset_V) /* reset after testing */
|
||||||
V = 0;
|
V = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1253,7 +1297,7 @@ t_stat cpu_reset (DEVICE *dptr)
|
||||||
wait_state = 0; /* cancel wait */
|
wait_state = 0; /* cancel wait */
|
||||||
wait_lamp = TRUE; /* but keep the wait lamp lit on the GUI */
|
wait_lamp = TRUE; /* but keep the wait lamp lit on the GUI */
|
||||||
|
|
||||||
if (cpu_unit.flags & UNIT_ATT) { /* record reset in CPU log */
|
if ((cpu_unit.flags & (UNIT_ATT|UNIT_TRACE_INSTR)) == (UNIT_ATT|UNIT_TRACE_INSTR)) { /* record reset in CPU log */
|
||||||
fseek(cpu_unit.fileref, 0, SEEK_END);
|
fseek(cpu_unit.fileref, 0, SEEK_END);
|
||||||
fprintf(cpu_unit.fileref, "---RESET---" CRLF);
|
fprintf(cpu_unit.fileref, "---RESET---" CRLF);
|
||||||
}
|
}
|
||||||
|
@ -1451,7 +1495,7 @@ t_stat register_cmd (char *name, t_stat (*action)(int32 flag, char *ptr), int ar
|
||||||
* echo_cmd - just echo the command line
|
* echo_cmd - just echo the command line
|
||||||
* ------------------------------------------------------------------------ */
|
* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
static t_stat echo_cmd (int flag, char *cptr)
|
static t_stat echo_cmd (int32 flag, char *cptr)
|
||||||
{
|
{
|
||||||
printf("%s\n", cptr);
|
printf("%s\n", cptr);
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
|
@ -1794,6 +1838,11 @@ static void trace_instruction (void)
|
||||||
fputs(CRLF, cpu_unit.fileref);
|
fputs(CRLF, cpu_unit.fileref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void trace_common (FILE *fout)
|
||||||
|
{
|
||||||
|
fprintf(fout, "[IAR %04x IPL %c] ", IAR, (ipl < 0) ? ' ' : ('0' + ipl));
|
||||||
|
}
|
||||||
|
|
||||||
void trace_io (char *fmt, ...)
|
void trace_io (char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
@ -1801,6 +1850,7 @@ void trace_io (char *fmt, ...)
|
||||||
if ((cpu_unit.flags & UNIT_ATT) == 0)
|
if ((cpu_unit.flags & UNIT_ATT) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
trace_common(cpu_unit.fileref);
|
||||||
va_start(args, fmt); /* get pointer to argument list */
|
va_start(args, fmt); /* get pointer to argument list */
|
||||||
vfprintf(cpu_unit.fileref, fmt, args); /* write errors to cpu log file */
|
vfprintf(cpu_unit.fileref, fmt, args); /* write errors to cpu log file */
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
@ -1813,12 +1863,14 @@ void trace_both (char *fmt, ...)
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
if (cpu_unit.flags & UNIT_ATT) {
|
if (cpu_unit.flags & UNIT_ATT) {
|
||||||
|
trace_common(cpu_unit.fileref);
|
||||||
va_start(args, fmt); /* get pointer to argument list */
|
va_start(args, fmt); /* get pointer to argument list */
|
||||||
vfprintf(cpu_unit.fileref, fmt, args);
|
vfprintf(cpu_unit.fileref, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
fputs(CRLF, cpu_unit.fileref);
|
fputs(CRLF, cpu_unit.fileref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trace_common(stdout);
|
||||||
va_start(args, fmt); /* get pointer to argument list */
|
va_start(args, fmt); /* get pointer to argument list */
|
||||||
vfprintf(stdout, fmt, args);
|
vfprintf(stdout, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
@ -1830,17 +1882,32 @@ void trace_both (char *fmt, ...)
|
||||||
void debug_print (char *fmt, ...)
|
void debug_print (char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
FILE *fout = stdout;
|
||||||
|
t_bool binarymode = FALSE;
|
||||||
|
|
||||||
|
#define DEBUG_TO_PRINTER
|
||||||
|
|
||||||
|
#ifdef DEBUG_TO_PRINTER
|
||||||
|
if (prt_unit[0].fileref != NULL) { /* THIS IS TEMPORARY */
|
||||||
|
fout = prt_unit[0].fileref;
|
||||||
|
binarymode = TRUE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vprintf(fmt, args);
|
vfprintf(fout, fmt, args);
|
||||||
if (cpu_unit.flags & UNIT_ATT)
|
if (cpu_unit.flags & UNIT_ATT)
|
||||||
vfprintf(cpu_unit.fileref, fmt, args);
|
vfprintf(cpu_unit.fileref, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
if (strchr(fmt, '\n') == NULL) { /* be sure to emit a newline */
|
if (strchr(fmt, '\n') == NULL) { /* be sure to emit a newline */
|
||||||
putchar('\n');
|
if (binarymode)
|
||||||
|
fputs(CRLF, fout);
|
||||||
|
else
|
||||||
|
putc('\n', fout);
|
||||||
|
|
||||||
if (cpu_unit.flags & UNIT_ATT)
|
if (cpu_unit.flags & UNIT_ATT)
|
||||||
putc('\n', cpu_unit.fileref);
|
fputs(CRLF, cpu_unit.fileref);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "ibm1130_defs.h"
|
#include "ibm1130_defs.h"
|
||||||
#include "ibm1130_fmt.h"
|
#include "ibm1130_fmt.h"
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# include <io.h> /* Microsoft puts definition of mktemp into io.h rather than stdlib.h */
|
# include <io.h> /* Microsoft puts definition of mktemp into io.h rather than stdlib.h */
|
||||||
|
@ -18,6 +19,16 @@
|
||||||
* This is not a supported product, but I welcome bug reports and fixes.
|
* This is not a supported product, but I welcome bug reports and fixes.
|
||||||
* Mail to simh@ibm1130.org
|
* Mail to simh@ibm1130.org
|
||||||
|
|
||||||
|
* Update 2012-10-12 Added ability to specify tab expansion width in deck files
|
||||||
|
|
||||||
|
* Update 2008-11-24 Made card reader attach always use read-only mode, so if file does not exist
|
||||||
|
it will not be created as an empty file. Fixed bug in BOOT CR (cold start from card)
|
||||||
|
that resulted in seeing cold card data again when next card was read. (This caused
|
||||||
|
the DMS load deck to fail, for instance).
|
||||||
|
|
||||||
|
* Update 2007-05-01 Changed name of function xio_1142_card to xio_1442_card.
|
||||||
|
Took six years to notice the mistake.
|
||||||
|
|
||||||
* Update 2006-01-23 More fixes, in call to mktemp and in 2501 support, also thanks
|
* Update 2006-01-23 More fixes, in call to mktemp and in 2501 support, also thanks
|
||||||
to Carl Claunch.
|
to Carl Claunch.
|
||||||
|
|
||||||
|
@ -63,7 +74,7 @@
|
||||||
-q quiet mode, the simulator will not print the name of each file it opens
|
-q quiet mode, the simulator will not print the name of each file it opens
|
||||||
while processing deck files (which are discussed below). For example,
|
while processing deck files (which are discussed below). For example,
|
||||||
|
|
||||||
ATTACH -q @deckfile
|
ATTACH CR -q @deckfile
|
||||||
|
|
||||||
-l makes the simulator convert lower case letters in text decks
|
-l makes the simulator convert lower case letters in text decks
|
||||||
to the IBM lower-case Hollerith character codes. Normally, the simulator
|
to the IBM lower-case Hollerith character codes. Normally, the simulator
|
||||||
|
@ -75,11 +86,15 @@
|
||||||
-f converts tabs in an ascii file to spaces according to Fortran column conventions
|
-f converts tabs in an ascii file to spaces according to Fortran column conventions
|
||||||
-a converts tabs in an ascii file to spaces according to 1130 Assembler column conventions
|
-a converts tabs in an ascii file to spaces according to 1130 Assembler column conventions
|
||||||
-t converts tabs in an ascii file to spaces, with tab settings every 8 columns
|
-t converts tabs in an ascii file to spaces, with tab settings every 8 columns
|
||||||
|
-# converts tabs in an ascii file to spaces, with tab settings every # columns
|
||||||
(See below for a discussion of tab formatting)
|
(See below for a discussion of tab formatting)
|
||||||
|
|
||||||
-p means that filename is a COM port connected to a physical card reader using
|
-p means that filename is a COM port connected to a physical card reader using
|
||||||
the CARDREAD interface (see http://ibm1130.org/sim/downloads)
|
the CARDREAD interface (see http://ibm1130.org/sim/downloads)
|
||||||
|
|
||||||
|
NOTE: for the Card Reader (CR), the -r (readonly) switch is implied. If the file does
|
||||||
|
not exist, it will NOT be created.
|
||||||
|
|
||||||
The ATTACH CP command accepts the -d switch.
|
The ATTACH CP command accepts the -d switch.
|
||||||
|
|
||||||
* Deck lists
|
* Deck lists
|
||||||
|
@ -95,7 +110,7 @@
|
||||||
arguments to ibm1130, or to the "do" command if a "do" script is executing, if the
|
arguments to ibm1130, or to the "do" command if a "do" script is executing, if the
|
||||||
attach command is constructed this way:
|
attach command is constructed this way:
|
||||||
|
|
||||||
attach @deckfile %1 %2 %3
|
attach CR @deckfile %1 %2 %3
|
||||||
|
|
||||||
This will pass the ibm1130 or do script arguments to attach, which will make
|
This will pass the ibm1130 or do script arguments to attach, which will make
|
||||||
them available in the deckfile. Then, for instance the line
|
them available in the deckfile. Then, for instance the line
|
||||||
|
@ -114,6 +129,7 @@
|
||||||
af forces 029 ascii conversion, and interprets tabs in Fortran mode
|
af forces 029 ascii conversion, and interprets tabs in Fortran mode
|
||||||
aa forces 029 ascii conversion, and interprets tabs in 1130 Assembler mode
|
aa forces 029 ascii conversion, and interprets tabs in 1130 Assembler mode
|
||||||
at forces 029 ascii conversion, and interprets tabs with settings every 8 spaces
|
at forces 029 ascii conversion, and interprets tabs with settings every 8 spaces
|
||||||
|
a# forces 029 ascii conversion, and interprets tabs with settings every # spaces
|
||||||
|
|
||||||
If "a" or "b" mode is not specified, the device mode setting is used. In this case,
|
If "a" or "b" mode is not specified, the device mode setting is used. In this case,
|
||||||
if the mode is "auto", the simulator will select binary or 029 by inspecting each
|
if the mode is "auto", the simulator will select binary or 029 by inspecting each
|
||||||
|
@ -644,10 +660,12 @@ static CPCODE cardcode_026F[] = /* 026 fortran */
|
||||||
0x0220, '\'',
|
0x0220, '\'',
|
||||||
0x8420, '.',
|
0x8420, '.',
|
||||||
0x8220, ')',
|
0x8220, ')',
|
||||||
|
0x8220, '<', /* if ASCII has <, treat like ) */
|
||||||
0x4420, '$',
|
0x4420, '$',
|
||||||
0x4220, '*',
|
0x4220, '*',
|
||||||
0x2420, ',',
|
0x2420, ',',
|
||||||
0x2220, '(',
|
0x2220, '(',
|
||||||
|
0x2220, '%', /* if ASCII has %, treat like ) */
|
||||||
};
|
};
|
||||||
|
|
||||||
static CPCODE cardcode_026C[] = /* 026 commercial */
|
static CPCODE cardcode_026C[] = /* 026 commercial */
|
||||||
|
@ -695,11 +713,13 @@ static CPCODE cardcode_026C[] = /* 026 commercial */
|
||||||
0x0420, '=',
|
0x0420, '=',
|
||||||
0x0220, '\'',
|
0x0220, '\'',
|
||||||
0x8420, '.',
|
0x8420, '.',
|
||||||
0x8220, ')',
|
0x8220, '<',
|
||||||
|
0x8220, ')', /* if ASCII has ), treat like < */
|
||||||
0x4420, '$',
|
0x4420, '$',
|
||||||
0x4220, '*',
|
0x4220, '*',
|
||||||
0x2420, ',',
|
0x2420, ',',
|
||||||
0x2220, '(',
|
0x2220, '%',
|
||||||
|
0x2220, '(', /* if ASCII has (, treat like % */
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int cgi;
|
extern int cgi;
|
||||||
|
@ -717,7 +737,8 @@ static int any_punched = 0;
|
||||||
#define MAXARGS 10 /* max number of arguments to save */
|
#define MAXARGS 10 /* max number of arguments to save */
|
||||||
static char list_save[MAXARGS][MAXARGLEN], *list_arg[MAXARGLEN];
|
static char list_save[MAXARGS][MAXARGLEN], *list_arg[MAXARGLEN];
|
||||||
static int list_nargs = 0;
|
static int list_nargs = 0;
|
||||||
static char* (*tab_proc)(char*) = NULL; /* tab reformatting routine */
|
static char* (*tab_proc)(char* str, int width) = NULL; /* tab reformatting routine */
|
||||||
|
static int tab_width = 8;
|
||||||
|
|
||||||
static uint16 punchstation[80];
|
static uint16 punchstation[80];
|
||||||
static uint16 readstation[80];
|
static uint16 readstation[80];
|
||||||
|
@ -776,10 +797,12 @@ t_stat set_active_cr_code (int match)
|
||||||
if (! lookup_codetable(match, &code, &ncode))
|
if (! lookup_codetable(match, &code, &ncode))
|
||||||
return SCPE_ARG;
|
return SCPE_ARG;
|
||||||
|
|
||||||
|
if (code != NULL) { /* if an ASCII mode was selected */
|
||||||
memset(ascii_to_card, 0, sizeof(ascii_to_card));
|
memset(ascii_to_card, 0, sizeof(ascii_to_card));
|
||||||
|
|
||||||
for (i = 0; i < ncode; i++) /* set ascii to card code table */
|
for (i = 0; i < ncode; i++) /* set ascii to card code table */
|
||||||
ascii_to_card[code[i].ascii] = code[i].hollerith;
|
ascii_to_card[code[i].ascii] = code[i].hollerith;
|
||||||
|
}
|
||||||
|
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
@ -938,19 +961,19 @@ t_stat load_cr_boot (int drvno, int switches)
|
||||||
}
|
}
|
||||||
/* quiet switch or CGI mode inhibit the boot remark */
|
/* quiet switch or CGI mode inhibit the boot remark */
|
||||||
if (((switches & SWMASK('Q')) == 0) && ! cgi) { /* 3.0-3, parenthesized & operation, per lint check */
|
if (((switches & SWMASK('Q')) == 0) && ! cgi) { /* 3.0-3, parenthesized & operation, per lint check */
|
||||||
sprintf(msg, "Loaded %s cold start card\n", name);
|
sprintf(msg, "Loaded %s cold start card", name);
|
||||||
|
|
||||||
#ifdef GUI_SUPPORT
|
#ifdef GUI_SUPPORT
|
||||||
remark_cmd(msg);
|
remark_cmd(msg);
|
||||||
#else
|
#else
|
||||||
printf("%s", msg);
|
printf("%s\n", msg);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
t_stat cr_boot (int32 unitno, DEVICE *dptr)
|
t_stat cr_boot (int unitno, DEVICE *dptr)
|
||||||
{
|
{
|
||||||
t_stat rval;
|
t_stat rval;
|
||||||
int i;
|
int i;
|
||||||
|
@ -962,7 +985,7 @@ t_stat cr_boot (int32 unitno, DEVICE *dptr)
|
||||||
return load_cr_boot(-1, 0);
|
return load_cr_boot(-1, 0);
|
||||||
|
|
||||||
if (GET_ACTCODE(cr_unit) != CODE_BINARY) {
|
if (GET_ACTCODE(cr_unit) != CODE_BINARY) {
|
||||||
printf("Can only boot from card reader when set to BINARY mode");
|
printf("Can only boot from card reader when set to BINARY mode\n");
|
||||||
return SCPE_IOERR;
|
return SCPE_IOERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -971,6 +994,11 @@ t_stat cr_boot (int32 unitno, DEVICE *dptr)
|
||||||
|
|
||||||
feedcycle(TRUE, FALSE);
|
feedcycle(TRUE, FALSE);
|
||||||
|
|
||||||
|
if (readstate != STATION_LOADED) {
|
||||||
|
printf("No cards in reader\n");
|
||||||
|
return SCPE_IOERR;
|
||||||
|
}
|
||||||
|
|
||||||
/* if (fxread(buf, sizeof(buf[0]), 80, cr_unit.fileref) != 80) */
|
/* if (fxread(buf, sizeof(buf[0]), 80, cr_unit.fileref) != 80) */
|
||||||
/* return SCPE_IOERR; */
|
/* return SCPE_IOERR; */
|
||||||
|
|
||||||
|
@ -979,6 +1007,7 @@ t_stat cr_boot (int32 unitno, DEVICE *dptr)
|
||||||
for (i = 0; i < 80; i++) /* shift 12 bits into 16 */
|
for (i = 0; i < 80; i++) /* shift 12 bits into 16 */
|
||||||
WriteW(i, (readstation[i] & 0xF800) | ((readstation[i] & 0x0400) ? 0x00C0 : 0x0000) | ((readstation[i] & 0x03F0) >> 4));
|
WriteW(i, (readstation[i] & 0xF800) | ((readstation[i] & 0x0400) ? 0x00C0 : 0x0000) | ((readstation[i] & 0x03F0) >> 4));
|
||||||
|
|
||||||
|
readstate = STATION_READ; /* the current card has been consumed */
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1110,7 +1139,7 @@ again: /* jump here if we've loaded a new deck after emptying the previous one
|
||||||
|
|
||||||
if (tab_proc != NULL) { /* apply tab editing, if specified */
|
if (tab_proc != NULL) { /* apply tab editing, if specified */
|
||||||
buf[nread] = '\0'; /* .. be sure string is terminated */
|
buf[nread] = '\0'; /* .. be sure string is terminated */
|
||||||
result = (*tab_proc)(buf); /* .. convert tabs spaces */
|
result = (*tab_proc)(buf, tab_width); /* .. convert tabs spaces */
|
||||||
nread = strlen(result); /* .. set new read length */
|
nread = strlen(result); /* .. set new read length */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1247,7 +1276,7 @@ static void checkdeck (void)
|
||||||
|
|
||||||
static t_bool nextdeck (void)
|
static t_bool nextdeck (void)
|
||||||
{
|
{
|
||||||
char buf[200], tmpbuf[200], *fname, *c, quote, *mode;
|
char buf[200], tmpbuf[200], *fname, *c, quote;
|
||||||
int code;
|
int code;
|
||||||
long fpos;
|
long fpos;
|
||||||
|
|
||||||
|
@ -1271,6 +1300,7 @@ static t_bool nextdeck (void)
|
||||||
|
|
||||||
for (;;) { /* get a filename */
|
for (;;) { /* get a filename */
|
||||||
tab_proc = NULL; /* default: no tab editing */
|
tab_proc = NULL; /* default: no tab editing */
|
||||||
|
tab_width = 8;
|
||||||
|
|
||||||
if (fgets(buf, sizeof(buf), deckfile) == NULL)
|
if (fgets(buf, sizeof(buf), deckfile) == NULL)
|
||||||
break; /* oops, no more names */
|
break; /* oops, no more names */
|
||||||
|
@ -1391,7 +1421,7 @@ static t_bool nextdeck (void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
mode = c = skipbl(c); /* skip to next token, which would be mode, if present */
|
c = skipbl(c); /* skip to next token, which would be mode, if present */
|
||||||
|
|
||||||
switch (*c) {
|
switch (*c) {
|
||||||
case 'b':
|
case 'b':
|
||||||
|
@ -1422,6 +1452,13 @@ static t_bool nextdeck (void)
|
||||||
case 'T':
|
case 'T':
|
||||||
tab_proc = EditToWhitespace;
|
tab_proc = EditToWhitespace;
|
||||||
c++;
|
c++;
|
||||||
|
tab_width = 0; /* see if there is a digit after the 4 -- if so use it as tab expansion width */
|
||||||
|
while (isdigit(*c))
|
||||||
|
tab_width = tab_width*10 + *c++ - '0';
|
||||||
|
|
||||||
|
if (tab_width == 0)
|
||||||
|
tab_width = 8;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1430,10 +1467,10 @@ static t_bool nextdeck (void)
|
||||||
code = guess_cr_code();
|
code = guess_cr_code();
|
||||||
|
|
||||||
if (cpu_unit.flags & UNIT_ATT)
|
if (cpu_unit.flags & UNIT_ATT)
|
||||||
trace_io("(Opened %s deck %s%s)\n", (code == CODE_BINARY) ? "binary" : "text", fname, tab_proc ? (*tab_proc)(NULL) : "");
|
trace_io("(Opened %s deck %s%s)\n", (code == CODE_BINARY) ? "binary" : "text", fname, tab_proc ? (*tab_proc)(NULL, tab_width) : "");
|
||||||
|
|
||||||
if (! (cr_unit.flags & UNIT_QUIET))
|
if (! (cr_unit.flags & UNIT_QUIET))
|
||||||
printf( "(Opened %s deck %s%s)\n", (code == CODE_BINARY) ? "binary" : "text", fname, tab_proc ? (*tab_proc)(NULL) : "");
|
printf( "(Opened %s deck %s%s)\n", (code == CODE_BINARY) ? "binary" : "text", fname, tab_proc ? (*tab_proc)(NULL, tab_width) : "");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1510,7 +1547,7 @@ t_stat cr_rewind (void)
|
||||||
static t_stat cr_attach (UNIT *uptr, char *cptr)
|
static t_stat cr_attach (UNIT *uptr, char *cptr)
|
||||||
{
|
{
|
||||||
t_stat rval;
|
t_stat rval;
|
||||||
t_bool use_decklist;
|
t_bool use_decklist, old_quiet;
|
||||||
char *c, *arg, quote;
|
char *c, *arg, quote;
|
||||||
|
|
||||||
cr_detach(uptr); /* detach file and possibly deck file */
|
cr_detach(uptr); /* detach file and possibly deck file */
|
||||||
|
@ -1518,8 +1555,11 @@ static t_stat cr_attach (UNIT *uptr, char *cptr)
|
||||||
CLRBIT(uptr->flags, UNIT_SCRATCH|UNIT_QUIET|UNIT_DEBUG|UNIT_PHYSICAL|UNIT_LOWERCASE); /* set options */
|
CLRBIT(uptr->flags, UNIT_SCRATCH|UNIT_QUIET|UNIT_DEBUG|UNIT_PHYSICAL|UNIT_LOWERCASE); /* set options */
|
||||||
|
|
||||||
tab_proc = NULL;
|
tab_proc = NULL;
|
||||||
|
tab_width = 8;
|
||||||
use_decklist = FALSE;
|
use_decklist = FALSE;
|
||||||
|
|
||||||
|
sim_switches |= SWMASK('R'); // the card reader is readonly. Don't create an empty file if file does not exist
|
||||||
|
|
||||||
if (sim_switches & SWMASK('D')) SETBIT(uptr->flags, UNIT_DEBUG);
|
if (sim_switches & SWMASK('D')) SETBIT(uptr->flags, UNIT_DEBUG);
|
||||||
if (sim_switches & SWMASK('Q')) SETBIT(uptr->flags, UNIT_QUIET);
|
if (sim_switches & SWMASK('Q')) SETBIT(uptr->flags, UNIT_QUIET);
|
||||||
if (sim_switches & SWMASK('L')) SETBIT(uptr->flags, UNIT_LOWERCASE);
|
if (sim_switches & SWMASK('L')) SETBIT(uptr->flags, UNIT_LOWERCASE);
|
||||||
|
@ -1589,7 +1629,13 @@ static t_stat cr_attach (UNIT *uptr, char *cptr)
|
||||||
SETBIT(uptr->flags, UNIT_ATT);
|
SETBIT(uptr->flags, UNIT_ATT);
|
||||||
uptr->pos = 0;
|
uptr->pos = 0;
|
||||||
}
|
}
|
||||||
else if ((rval = attach_unit(uptr, cptr)) != SCPE_OK) {
|
else {
|
||||||
|
old_quiet = sim_quiet; /* attach the file, but set sim_quiet so we don't get the "CR is read-only" message */
|
||||||
|
sim_quiet = TRUE;
|
||||||
|
rval = attach_unit(uptr, cptr);
|
||||||
|
sim_quiet = old_quiet;
|
||||||
|
|
||||||
|
if (rval != SCPE_OK) /* file did not exist */
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1667,10 +1713,10 @@ static t_stat cp_detach (UNIT *uptr)
|
||||||
return detach_unit(uptr);
|
return detach_unit(uptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void op_done (UNIT *u, t_bool issue_intr)
|
static void op_done (UNIT *u, char *opname, t_bool issue_intr)
|
||||||
{
|
{
|
||||||
if (u->flags & UNIT_DEBUG)
|
if (u->flags & UNIT_DEBUG)
|
||||||
DEBUG_PRINT("!CR Op Complete, card %d", cr_count);
|
DEBUG_PRINT("!CR %s Op Complete, card %d%s", opname, cr_count, issue_intr ? ", interrupt" : "");
|
||||||
|
|
||||||
SET_OP(OP_IDLE);
|
SET_OP(OP_IDLE);
|
||||||
|
|
||||||
|
@ -1704,7 +1750,7 @@ static t_stat cr_svc (UNIT *uptr)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_FEEDING:
|
case OP_FEEDING:
|
||||||
op_done(&cr_unit, FALSE);
|
op_done(&cr_unit, "feed", FALSE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_READING:
|
case OP_READING:
|
||||||
|
@ -1718,10 +1764,7 @@ static t_stat cr_svc (UNIT *uptr)
|
||||||
M[(cr_addr + i) & mem_mask] = readstation[i];
|
M[(cr_addr + i) & mem_mask] = readstation[i];
|
||||||
|
|
||||||
readstate = STATION_READ;
|
readstate = STATION_READ;
|
||||||
if (cr_unit.flags & UNIT_DEBUG)
|
op_done(&cr_unit, "read", TRUE);
|
||||||
DEBUG_PRINT("!CR Op Complete, card %d", cr_count);
|
|
||||||
|
|
||||||
op_done(&cr_unit, TRUE);
|
|
||||||
}
|
}
|
||||||
else if (++cr_unit.COLUMN < 80) { /* 1442 interrupts on each column... */
|
else if (++cr_unit.COLUMN < 80) { /* 1442 interrupts on each column... */
|
||||||
SETBIT(cr_dsw, CR_DSW_1442_READ_RESPONSE);
|
SETBIT(cr_dsw, CR_DSW_1442_READ_RESPONSE);
|
||||||
|
@ -1733,7 +1776,7 @@ static t_stat cr_svc (UNIT *uptr)
|
||||||
}
|
}
|
||||||
else { /* ... then issues op-complete */
|
else { /* ... then issues op-complete */
|
||||||
readstate = STATION_READ;
|
readstate = STATION_READ;
|
||||||
op_done(&cr_unit, TRUE);
|
op_done(&cr_unit, "read", TRUE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1745,7 +1788,7 @@ static t_stat cr_svc (UNIT *uptr)
|
||||||
|
|
||||||
if (cp_unit.flags & UNIT_LASTPUNCH) {
|
if (cp_unit.flags & UNIT_LASTPUNCH) {
|
||||||
punchstate = STATION_PUNCHED;
|
punchstate = STATION_PUNCHED;
|
||||||
op_done(&cp_unit, TRUE);
|
op_done(&cp_unit, "punch", TRUE);
|
||||||
}
|
}
|
||||||
else if (++cp_unit.COLUMN < 80) {
|
else if (++cp_unit.COLUMN < 80) {
|
||||||
SETBIT(cr_dsw, CR_DSW_1442_PUNCH_RESPONSE);
|
SETBIT(cr_dsw, CR_DSW_1442_PUNCH_RESPONSE);
|
||||||
|
@ -1757,7 +1800,7 @@ static t_stat cr_svc (UNIT *uptr)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
punchstate = STATION_PUNCHED;
|
punchstate = STATION_PUNCHED;
|
||||||
op_done(&cp_unit, TRUE);
|
op_done(&cp_unit, "punch", TRUE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1853,7 +1896,7 @@ void xio_2501_card (int32 addr, int32 func, int32 modify)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void xio_1142_card (int32 addr, int32 func, int32 modify)
|
void xio_1442_card (int32 addr, int32 func, int32 modify)
|
||||||
{
|
{
|
||||||
char msg[80];
|
char msg[80];
|
||||||
int ch;
|
int ch;
|
||||||
|
@ -2579,8 +2622,7 @@ static t_stat pcr_svc (UNIT *uptr)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OP_READING:
|
case OP_READING:
|
||||||
if (pcr_nready >= 2) { /* if there is a whole column buffered, simulate column interrupt*/
|
if (pcr_nready >= 2) { /* if there is a whole column buffered, simulate column interrupt/* pcr_trigger_interrupt_0 - simulate a read response interrupt so OS will read queued column data */
|
||||||
/* pcr_trigger_interrupt_0 - simulate a read response interrupt so OS will read queued column data */
|
|
||||||
|
|
||||||
pcr_trigger_interrupt_0();
|
pcr_trigger_interrupt_0();
|
||||||
sim_activate(&cr_unit, cr_wait); /* keep checking frequently */
|
sim_activate(&cr_unit, cr_wait); /* keep checking frequently */
|
||||||
|
@ -2588,7 +2630,7 @@ static t_stat pcr_svc (UNIT *uptr)
|
||||||
else if (pcr_done) {
|
else if (pcr_done) {
|
||||||
pcr_done = FALSE;
|
pcr_done = FALSE;
|
||||||
cr_count++;
|
cr_count++;
|
||||||
op_done(&cr_unit, TRUE);
|
op_done(&cr_unit, "pcr read", TRUE);
|
||||||
pcr_set_dsw_from_status(TRUE);
|
pcr_set_dsw_from_status(TRUE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2598,7 +2640,7 @@ static t_stat pcr_svc (UNIT *uptr)
|
||||||
case OP_FEEDING:
|
case OP_FEEDING:
|
||||||
if (pcr_done) {
|
if (pcr_done) {
|
||||||
cr_count++;
|
cr_count++;
|
||||||
op_done(&cr_unit, FALSE);
|
op_done(&cr_unit, "pcr feed", FALSE);
|
||||||
pcr_set_dsw_from_status(TRUE);
|
pcr_set_dsw_from_status(TRUE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -137,6 +137,7 @@ void WriteW (int32 a, int32 d);
|
||||||
#define STOP_BREAK 11 /* simulator break key pressed */
|
#define STOP_BREAK 11 /* simulator break key pressed */
|
||||||
#define STOP_STEP 12 /* step count expired */
|
#define STOP_STEP 12 /* step count expired */
|
||||||
#define STOP_OTHER 13 /* other reason, probably error returned by sim_process_event() */
|
#define STOP_OTHER 13 /* other reason, probably error returned by sim_process_event() */
|
||||||
|
#define STOP_PRINT_CHECK 14 /* stop due to printer check (used by CGI version) */
|
||||||
|
|
||||||
#define IORETURN(f,v) ((f)? (v): SCPE_OK) /* cond error return */
|
#define IORETURN(f,v) ((f)? (v): SCPE_OK) /* cond error return */
|
||||||
|
|
||||||
|
@ -252,7 +253,7 @@ void WriteW (int32 a, int32 d);
|
||||||
/* prototypes: xio handlers */
|
/* prototypes: xio handlers */
|
||||||
|
|
||||||
void xio_1131_console (int32 addr, int32 func, int32 modify); /* console keyboard and printer */
|
void xio_1131_console (int32 addr, int32 func, int32 modify); /* console keyboard and printer */
|
||||||
void xio_1142_card (int32 addr, int32 func, int32 modify); /* standard card reader/punch */
|
void xio_1442_card (int32 addr, int32 func, int32 modify); /* standard card reader/punch */
|
||||||
void xio_1134_papertape (int32 addr, int32 func, int32 modify); /* paper tape reader/punch */
|
void xio_1134_papertape (int32 addr, int32 func, int32 modify); /* paper tape reader/punch */
|
||||||
void xio_disk (int32 addr, int32 func, int32 modify, int drv); /* internal CPU disk */
|
void xio_disk (int32 addr, int32 func, int32 modify, int drv); /* internal CPU disk */
|
||||||
void xio_1627_plotter (int32 addr, int32 func, int32 modify); /* XY plotter */
|
void xio_1627_plotter (int32 addr, int32 func, int32 modify); /* XY plotter */
|
||||||
|
|
|
@ -34,7 +34,7 @@ commands may NOT be accurate. This should probably be fixed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ibm1130_defs.h"
|
#include "ibm1130_defs.h"
|
||||||
#include "memory.h"
|
#include <memory.h>
|
||||||
|
|
||||||
#define TRACE_DMS_IO /* define to enable debug of DMS phase IO */
|
#define TRACE_DMS_IO /* define to enable debug of DMS phase IO */
|
||||||
|
|
||||||
|
|
|
@ -72,18 +72,19 @@
|
||||||
#define MIN(a,b) ((a < b) ? a : b)
|
#define MIN(a,b) ((a < b) ? a : b)
|
||||||
#define AMSG " with Assembler Reformat"
|
#define AMSG " with Assembler Reformat"
|
||||||
#define FMSG " with FORTRAN Reformat"
|
#define FMSG " with FORTRAN Reformat"
|
||||||
|
#define WMSG " with tab replacement"
|
||||||
#define AFORMAT "%20.20s%-60.60s"," "
|
#define AFORMAT "%20.20s%-60.60s"," "
|
||||||
#define ACOMMENTFMT "%20.20s%-60.60s"," "
|
#define ACOMMENTFMT "%20.20s%-60.60s"," "
|
||||||
#define ABLANKLINE "%20.20s*"," "
|
#define ABLANKLINE "%20.20s*"," "
|
||||||
#define FFORMAT "%-5.5s %-74.74s"
|
#define FFORMAT "%-5.5s %-74.74s"
|
||||||
#define FCONTFMT "%-5.5s%-75.75s"
|
#define FCONTFMT "%-5.5s%-75.75s"
|
||||||
|
|
||||||
char gszLabel[6]; /* work area for label */
|
static char gszLabel[6]; /* work area for label */
|
||||||
char gszArg[MAXLINE]; /* .. argument */
|
static char gszArg[MAXLINE]; /* .. argument */
|
||||||
char gszOutput[MAXLINE]; /* .. output */
|
static char gszOutput[MAXLINE]; /* .. output */
|
||||||
short gaiAsmTabs[] = {7,12,15,20,25,30,35,40,45,52,0};/* tab stops for assembler */
|
static short gaiAsmTabs[] = {7,12,15,20,25,30,35,40,45,52,0};/* tab stops for assembler */
|
||||||
|
static short gaiPlainTabs[42]; /* tab stops for plain tabs. Settings will be made later. Max # positions when tabs are every 2 positions */
|
||||||
short gaiPlainTabs[] = {9, 17, 25, 33, 41, 49, 57, 65, 73, 0};/* tab stops for just plain tabs */
|
static int giPlainTabWidth = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* helper routines
|
* helper routines
|
||||||
|
@ -163,7 +164,7 @@ char* pszX; /* work pointer */
|
||||||
* EditToAsm - convert tab-formatted text line to 1130 Assembler format
|
* EditToAsm - convert tab-formatted text line to 1130 Assembler format
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *EditToAsm (char* p_pszEdit) /* convert line to 1130 assembler */
|
char *EditToAsm (char* p_pszEdit, int width) /* convert line to 1130 assembler */
|
||||||
{
|
{
|
||||||
char pszLine[MAXLINE]; /* source line */
|
char pszLine[MAXLINE]; /* source line */
|
||||||
char pszWork[WORKSZ]; /* work buffer */
|
char pszWork[WORKSZ]; /* work buffer */
|
||||||
|
@ -174,11 +175,11 @@ size_t iI; /* work integer */
|
||||||
return AMSG; /* a. yes .. return display message */
|
return AMSG; /* a. yes .. return display message */
|
||||||
|
|
||||||
if (*p_pszEdit == '!') /* leave lines starting with ! alone */
|
if (*p_pszEdit == '!') /* leave lines starting with ! alone */
|
||||||
return EditToWhitespace(p_pszEdit+1);
|
return EditToWhitespace(p_pszEdit+1, width);
|
||||||
|
|
||||||
if (*p_pszEdit == '*') /* q. comment line? */
|
if (*p_pszEdit == '*') /* q. comment line? */
|
||||||
{ /* a. yes.. */
|
{ /* a. yes.. */
|
||||||
strncpy(pszWork, EditToWhitespace(p_pszEdit), MAXLINE); /* .. convert any tabs */
|
strncpy(pszWork, EditToWhitespace(p_pszEdit, width), MAXLINE); /* .. convert any tabs */
|
||||||
sprintf(gszOutput, ACOMMENTFMT, pszWork); /* .. put the comment out there in the opcode column */
|
sprintf(gszOutput, ACOMMENTFMT, pszWork); /* .. put the comment out there in the opcode column */
|
||||||
return gszOutput; /* .. and return it */
|
return gszOutput; /* .. and return it */
|
||||||
}
|
}
|
||||||
|
@ -229,7 +230,7 @@ size_t iI; /* work integer */
|
||||||
* (a la DEC Fortran)
|
* (a la DEC Fortran)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *EditToFortran(char* p_pszEdit) /* convert line to 1130 assembler */
|
char *EditToFortran(char* p_pszEdit, int width) /* convert line to 1130 assembler */
|
||||||
{
|
{
|
||||||
char pszLine[MAXLINE]; /* source line */
|
char pszLine[MAXLINE]; /* source line */
|
||||||
char* pszWork; /* work pointer */
|
char* pszWork; /* work pointer */
|
||||||
|
@ -244,7 +245,7 @@ int bContinue; /* true if continue */
|
||||||
|
|
||||||
if (*p_pszEdit == 'C' || *p_pszEdit == '*' || *p_pszEdit == '\0') /* q. comment or directive or blank line? */
|
if (*p_pszEdit == 'C' || *p_pszEdit == '*' || *p_pszEdit == '\0') /* q. comment or directive or blank line? */
|
||||||
{ /* a. yes.. don't restructure */
|
{ /* a. yes.. don't restructure */
|
||||||
return EditToWhitespace(p_pszEdit);
|
return EditToWhitespace(p_pszEdit, width);
|
||||||
}
|
}
|
||||||
|
|
||||||
strncpy(pszLine, p_pszEdit, MAXLINE-1); /* copy the line local */
|
strncpy(pszLine, p_pszEdit, MAXLINE-1); /* copy the line local */
|
||||||
|
@ -283,20 +284,34 @@ int bContinue; /* true if continue */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
* EditToWhitespace - expand tabs at 8 space intervals.
|
* EditToWhitespace - expand tabs at n space intervals.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char* EditToWhitespace(char *p_pszEdit)
|
char* EditToWhitespace(char *p_pszEdit, int width)
|
||||||
{
|
{
|
||||||
int iI; /* work integer */
|
int iI; /* work integer */
|
||||||
|
int iPos; /* work integer for settings tab stops */
|
||||||
char pszLine[MAXLINE]; /* source line */
|
char pszLine[MAXLINE]; /* source line */
|
||||||
char pszWork[WORKSZ]; /* work buffer */
|
char pszWork[WORKSZ]; /* work buffer */
|
||||||
|
|
||||||
if (p_pszEdit == NULL) /* q. null request? */
|
if (p_pszEdit == NULL) /* q. null request? */
|
||||||
return AMSG; /* a. yes .. return display message */
|
return WMSG; /* a. yes .. return display message */
|
||||||
|
|
||||||
strncpy(pszLine, p_pszEdit, MAXLINE-1); /* copy the line local */
|
strncpy(pszLine, p_pszEdit, MAXLINE-1); /* copy the line local */
|
||||||
|
|
||||||
|
if (width == 0) width = 8; /* default */
|
||||||
|
|
||||||
|
if ((width != giPlainTabWidth) && (width > 1) && (width < 30)) {
|
||||||
|
giPlainTabWidth = width; /* if width is different, and valid, rebuild tabstop array */
|
||||||
|
iI = 0; /* output index */
|
||||||
|
iPos = width + 1; /* first tab position */
|
||||||
|
while (iPos < 80) { /* fill array up to but not including position 80 */
|
||||||
|
gaiPlainTabs[iI++] = iPos;
|
||||||
|
iPos += width;
|
||||||
|
}
|
||||||
|
gaiPlainTabs[iI] = 0; /* mark end of array */
|
||||||
|
}
|
||||||
|
|
||||||
ExpandTabs(pszLine, pszWork, gaiPlainTabs); /* expand the tabs */
|
ExpandTabs(pszLine, pszWork, gaiPlainTabs); /* expand the tabs */
|
||||||
strncpy(gszOutput, pszWork, MAXLINE-1); /* copy the line back */
|
strncpy(gszOutput, pszWork, MAXLINE-1); /* copy the line back */
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,6 @@
|
||||||
/* ibm1130_asm.h: definition of routines in ibm1130_asm.c
|
/* ibm1130_asm.h: definition of routines in ibm1130_asm.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char* EditToAsm(char*); /* convert edit format to 1130 assembler format */
|
char* EditToAsm(char* str, int width); /* convert edit format to 1130 assembler format */
|
||||||
char* EditToFortran(char*); /* convert edit format to Fortran format */
|
char* EditToFortran(char* str, int width); /* convert edit format to Fortran format */
|
||||||
char* EditToWhitespace(char*); /* clean white space, tabstops every 8 positions */
|
char* EditToWhitespace(char* str, int width); /* clean white space, tabstops every 8 positions */
|
||||||
|
|
|
@ -151,6 +151,8 @@ static void EraseGDUScreen (void);
|
||||||
|
|
||||||
void xio_2250_display (int32 addr, int32 func, int32 modify)
|
void xio_2250_display (int32 addr, int32 func, int32 modify)
|
||||||
{
|
{
|
||||||
|
if (cgi) return; /* ignore this device in CGI mode */
|
||||||
|
|
||||||
switch (func) {
|
switch (func) {
|
||||||
case XIO_SENSE_DEV:
|
case XIO_SENSE_DEV:
|
||||||
ACC = (gdu_dsw & GDU_DSW_BUSY) ? GDU_DSW_BUSY : gdu_dsw;
|
ACC = (gdu_dsw & GDU_DSW_BUSY) ? GDU_DSW_BUSY : gdu_dsw;
|
||||||
|
@ -203,6 +205,8 @@ void xio_2250_display (int32 addr, int32 func, int32 modify)
|
||||||
|
|
||||||
static t_stat gdu_reset (DEVICE *dptr)
|
static t_stat gdu_reset (DEVICE *dptr)
|
||||||
{
|
{
|
||||||
|
if (cgi) return SCPE_OK; /* ignore this device in CGI mode */
|
||||||
|
|
||||||
halt_regeneration();
|
halt_regeneration();
|
||||||
clear_interrupts();
|
clear_interrupts();
|
||||||
set_indicators(0);
|
set_indicators(0);
|
||||||
|
@ -255,10 +259,8 @@ static void halt_regeneration (void)
|
||||||
// should check to see if GDU_DSW_BUSY is clear, and if it it still zero after several msec,
|
// should check to see if GDU_DSW_BUSY is clear, and if it it still zero after several msec,
|
||||||
// only then should it black out the screen and call StopGDUUpdates.
|
// only then should it black out the screen and call StopGDUUpdates.
|
||||||
if (gdu_dsw & GDU_DSW_BUSY) {
|
if (gdu_dsw & GDU_DSW_BUSY) {
|
||||||
// StopGDUUpdates(); // let lower level code discover this during next refresh
|
|
||||||
CLRBIT(gdu_dsw, GDU_DSW_BUSY);
|
CLRBIT(gdu_dsw, GDU_DSW_BUSY);
|
||||||
}
|
}
|
||||||
// EraseGDUScreen(); // let cessation of regeneration erase it (eventually)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void notify_window_closed (void)
|
static void notify_window_closed (void)
|
||||||
|
@ -677,6 +679,8 @@ static HPEN hRedPen = NULL;
|
||||||
static HBRUSH hGrayBrush, hDarkBrush;
|
static HBRUSH hGrayBrush, hDarkBrush;
|
||||||
static HPEN hBlackPen;
|
static HPEN hBlackPen;
|
||||||
static int halted = 0; // number of time intervals that GDU has been halted w/o a regeneration
|
static int halted = 0; // number of time intervals that GDU has been halted w/o a regeneration
|
||||||
|
static UINT idTimer = 0;
|
||||||
|
static t_bool painting = FALSE;
|
||||||
static LRESULT APIENTRY GDUWndProc (HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam);
|
static LRESULT APIENTRY GDUWndProc (HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam);
|
||||||
static DWORD WINAPI GDUPump (LPVOID arg);
|
static DWORD WINAPI GDUPump (LPVOID arg);
|
||||||
|
|
||||||
|
@ -685,6 +689,8 @@ static void destroy_GDU_window (void)
|
||||||
if (hwGDU != NULL)
|
if (hwGDU != NULL)
|
||||||
SendMessage(hwGDU, WM_CLOSE, 0, 0); // cross thread call is OK
|
SendMessage(hwGDU, WM_CLOSE, 0, 0); // cross thread call is OK
|
||||||
|
|
||||||
|
#ifdef XXXX
|
||||||
|
// let window closure do this
|
||||||
if (hGDUPump != INVALID_HANDLE_VALUE) { // this is not the most graceful way to do it
|
if (hGDUPump != INVALID_HANDLE_VALUE) { // this is not the most graceful way to do it
|
||||||
TerminateThread(hGDUPump, 0);
|
TerminateThread(hGDUPump, 0);
|
||||||
hGDUPump = INVALID_HANDLE_VALUE;
|
hGDUPump = INVALID_HANDLE_VALUE;
|
||||||
|
@ -711,6 +717,7 @@ static void destroy_GDU_window (void)
|
||||||
DeleteObject(hRedBrush);
|
DeleteObject(hRedBrush);
|
||||||
hRedBrush = NULL;
|
hRedBrush = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG_LIGHTPEN
|
#ifdef DEBUG_LIGHTPEN
|
||||||
if (hRedPen != NULL) {
|
if (hRedPen != NULL) {
|
||||||
|
@ -750,6 +757,13 @@ static void gdu_WM_CLOSE (HWND hWnd)
|
||||||
|
|
||||||
static void gdu_WM_DESTROY (HWND hWnd)
|
static void gdu_WM_DESTROY (HWND hWnd)
|
||||||
{
|
{
|
||||||
|
PostMessage(hWnd, WM_QUIT, 0, 0);
|
||||||
|
if (idTimer != 0) {
|
||||||
|
KillTimer(hwGDU, 1);
|
||||||
|
idTimer = 0;
|
||||||
|
halted = 10000;
|
||||||
|
painting = FALSE;
|
||||||
|
}
|
||||||
notify_window_closed();
|
notify_window_closed();
|
||||||
hwGDU = NULL;
|
hwGDU = NULL;
|
||||||
}
|
}
|
||||||
|
@ -868,17 +882,29 @@ static void gdu_WM_PAINT (HWND hWnd)
|
||||||
{
|
{
|
||||||
PAINTSTRUCT ps;
|
PAINTSTRUCT ps;
|
||||||
HDC hDC;
|
HDC hDC;
|
||||||
|
int msec;
|
||||||
|
|
||||||
// code for display
|
// code for display
|
||||||
hDC = BeginPaint(hWnd, &ps);
|
hDC = BeginPaint(hWnd, &ps);
|
||||||
PaintImage(hDC, TRUE);
|
PaintImage(hDC, TRUE);
|
||||||
EndPaint(hWnd, &ps);
|
EndPaint(hWnd, &ps);
|
||||||
|
|
||||||
|
// set a timer so we keep doing it!
|
||||||
|
if (idTimer == 0) {
|
||||||
|
msec = (gdu_rate == 0) ? (1000 / DEFAULT_GDU_RATE) : 1000/gdu_rate;
|
||||||
|
idTimer = SetTimer(hwGDU, 1, msec, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// the window has been resized
|
// the window has been resized
|
||||||
|
|
||||||
static void gdu_WM_SIZE (HWND hWnd, UINT state, int cx, int cy)
|
static void gdu_WM_SIZE (HWND hWnd, UINT state, int cx, int cy)
|
||||||
{
|
{
|
||||||
|
#ifdef BLIT_MODE
|
||||||
|
InvalidateRect(hWnd, NULL, FALSE); // in blt mode, we'll paint a full black bitmap over the new screen size
|
||||||
|
#else
|
||||||
InvalidateRect(hWnd, NULL, TRUE);
|
InvalidateRect(hWnd, NULL, TRUE);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// tweak the sizing rectangle during a resize to guarantee a square window
|
// tweak the sizing rectangle during a resize to guarantee a square window
|
||||||
|
@ -911,7 +937,7 @@ static void gdu_WM_TIMER (HWND hWnd, UINT id)
|
||||||
{
|
{
|
||||||
HDC hDC;
|
HDC hDC;
|
||||||
|
|
||||||
if (running) { // if CPU is running, update picture
|
if (painting) { // if GDU is running, update picture
|
||||||
if ((gdu_dsw & GDU_DSW_BUSY) == 0) { // regeneration is not to occur
|
if ((gdu_dsw & GDU_DSW_BUSY) == 0) { // regeneration is not to occur
|
||||||
if (++halted >= 4) { // stop the timer if four timer intervals go by with the display halted
|
if (++halted >= 4) { // stop the timer if four timer intervals go by with the display halted
|
||||||
EraseGDUScreen(); // screen goes black due to cessation of refreshing
|
EraseGDUScreen(); // screen goes black due to cessation of refreshing
|
||||||
|
@ -981,26 +1007,15 @@ static void CheckGDUKeyboard (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static UINT idTimer = 0;
|
|
||||||
|
|
||||||
static void StartGDUUpdates (void)
|
static void StartGDUUpdates (void)
|
||||||
{
|
{
|
||||||
int msec;
|
|
||||||
|
|
||||||
if (idTimer == 0) {
|
|
||||||
msec = (gdu_rate == 0) ? (1000 / DEFAULT_GDU_RATE) : 1000/gdu_rate;
|
|
||||||
idTimer = SetTimer(hwGDU, 1, msec, NULL);
|
|
||||||
}
|
|
||||||
halted = 0;
|
halted = 0;
|
||||||
|
painting = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void StopGDUUpdates (void)
|
static void StopGDUUpdates (void)
|
||||||
{
|
{
|
||||||
if (idTimer != 0) {
|
painting = FALSE;
|
||||||
KillTimer(hwGDU, 1);
|
|
||||||
idTimer = 0;
|
|
||||||
halted = 10000;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GetMouseCoordinates()
|
static void GetMouseCoordinates()
|
||||||
|
@ -1030,7 +1045,7 @@ static void GetMouseCoordinates()
|
||||||
|
|
||||||
t_bool gdu_active (void)
|
t_bool gdu_active (void)
|
||||||
{
|
{
|
||||||
return gdu_dsw & GDU_DSW_BUSY;
|
return cgi ? 0 : (gdu_dsw & GDU_DSW_BUSY);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void EraseGDUScreen (void)
|
static void EraseGDUScreen (void)
|
||||||
|
@ -1103,6 +1118,8 @@ static DWORD WINAPI GDUPump (LPVOID arg)
|
||||||
DispatchMessage(&msg);
|
DispatchMessage(&msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
painting = FALSE;
|
||||||
|
|
||||||
if (hwGDU != NULL) {
|
if (hwGDU != NULL) {
|
||||||
DestroyWindow(hwGDU); /* but if a quit message got posted, clean up */
|
DestroyWindow(hwGDU); /* but if a quit message got posted, clean up */
|
||||||
hwGDU = NULL;
|
hwGDU = NULL;
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
* ------------------------------------------------------------------------ */
|
* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <ctype.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#include "ibm1130_defs.h"
|
#include "ibm1130_defs.h"
|
||||||
|
@ -92,10 +93,6 @@ DEVICE console_dev = {
|
||||||
|
|
||||||
/* reset for the "console" display device */
|
/* reset for the "console" display device */
|
||||||
|
|
||||||
extern char *read_line (char *cptr, int size, FILE *stream);
|
|
||||||
extern DEVICE *find_unit (char *cptr, UNIT **uptr);
|
|
||||||
extern char *sim_prompt;
|
|
||||||
|
|
||||||
extern UNIT cr_unit; /* pointers to 1442 and 1132 (1403) printers */
|
extern UNIT cr_unit; /* pointers to 1442 and 1132 (1403) printers */
|
||||||
extern UNIT prt_unit;
|
extern UNIT prt_unit;
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
2004.10.22 - Written.
|
2004.10.22 - Written.
|
||||||
2006.1.2 - Rewritten as plotter routine by Carl V Claunch
|
2006.1.2 - Rewritten as plotter routine by Carl V Claunch
|
||||||
|
2012.11.23 - added -d option in detach, which we'll use in the CGI simulator. BK.
|
||||||
|
|
||||||
* (C) Copyright 2004, Brian Knittel.
|
* (C) Copyright 2004, Brian Knittel.
|
||||||
* You may freely use this program, but: it offered strictly on an AS-IS, AT YOUR OWN
|
* You may freely use this program, but: it offered strictly on an AS-IS, AT YOUR OWN
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
#define NONDLL // I am linking statically to avoid some issues.
|
||||||
#include "gd.h"
|
#include "gd.h"
|
||||||
|
|
||||||
/***************************************************************************************
|
/***************************************************************************************
|
||||||
|
@ -45,31 +47,78 @@
|
||||||
* - sheet moveable in .01" steps, either direction
|
* - sheet moveable in .01" steps, either direction
|
||||||
* - switchable pen, in various colors and line widths
|
* - switchable pen, in various colors and line widths
|
||||||
*
|
*
|
||||||
* Simulator implementation will create a JPEG image corresponding to a
|
* Notice that the WIDTH is 11" and the LENGTH can be anything up to 120'. And, the WIDTH
|
||||||
* landscape mode sheet of paper, the width of the carriage at 11".
|
* was the plotter's Y direction, and the LENGTH was the plotter's X direction.
|
||||||
* A diagram of more than 8" of paper travel will span printed pages
|
*
|
||||||
* in landscape mode.
|
* The simulator creates a GIF image corresponding to a landscape mode sheet of paper. That is,
|
||||||
|
* the plotter's Y direction is the image's horizontal dimension, and the plotter's X direction
|
||||||
|
* is the image's vertical dimension. The WIDTH of the image is always 1100 pixels (11 inches at
|
||||||
|
* 100 dpi), and the LENGTH (height) of the image can be set. The default is 800 pixels (8
|
||||||
|
* inches at 100 dpi). A diagram of more than 8" in length (X direction) will span more than
|
||||||
|
* one printed page in landscape mode.
|
||||||
*
|
*
|
||||||
* When an 'att plot' command is issued a file is created based on the
|
* When an 'att plot' command is issued a file is created based on the
|
||||||
* default or currently set values of paper length, starting
|
* default or currently set values of paper length, pen position, pen color and pen width.
|
||||||
* position of the pen in both X and Y axes, pen color and pen width.
|
|
||||||
* Based on the number of logical pages of paper, the command will create
|
|
||||||
* the proper size canvas internally and create the output JPEG file.
|
|
||||||
*
|
*
|
||||||
* When a 'det plot' command is issued, the plotter image will be converted
|
* When a 'det plot' command is issued, the plotter image will be
|
||||||
* into the file that was specified during the attach process. The
|
* written to the GIF that was created during the attach process. The
|
||||||
* image is not viewable until this point, unless an examine plot is
|
* image is not viewable until this point. (You could implement an EXAMINE PLOT command
|
||||||
* issued which will dump the current state of the paper into the file.
|
* of some sort to write out an intermediate version of the image, but this is not currently
|
||||||
|
* implemented).
|
||||||
*
|
*
|
||||||
* The 'set plot' command can set pen width, paper length, pen color,
|
* The 'set plot' command can set pen width, paper length, pen color,
|
||||||
* current carriage X and Y coordinates. Paper length can be set
|
* current carriage X and Y coordinates, as discussed below. Paper length can be set
|
||||||
* to alter the default of 800 (8"); changes are ignored until
|
* to alter the default of 800 (8"); changes are ignored until
|
||||||
* the next 'attach' command. The current carriage x and y positions
|
* the next 'attach' command. The current carriage x and y positions
|
||||||
* can be set at any time and will go into effect immediately, just
|
* can be set at any time and will go into effect immediately, just
|
||||||
* as the pen color and pen width can be altered on the fly.
|
* as the pen color and pen width can be altered on the fly.
|
||||||
*
|
*
|
||||||
* NOTE: requires gd library and definition of ENABLE_PLOT_SUPPORT in makefile or Visual C configuration
|
* NOTE: requires the libgd library and definition of ENABLE_PLOT_SUPPORT in makefile or Visual C configuration
|
||||||
* gd is not included in the main simh and ibm1130.org distributions at the present time.
|
* gd source is not included in the main simh and ibm1130.org source distributions at the present time due to
|
||||||
|
* licensing issues.
|
||||||
|
*
|
||||||
|
* NOTE: On Windows, you need to either:
|
||||||
|
* + compile both LIBGD and SIMH to use the static C runtime libraries, compile
|
||||||
|
* LIBGD to a static library, and link LIBGD into ibm1130.exe (which is
|
||||||
|
* what we do at IBM1130.org, so that gd is built into the version of ibm1130.exe
|
||||||
|
* we distribute), or,
|
||||||
|
* + Compile both LIBGD and IBM1130 to use the DLL version of the C runtime, and compile
|
||||||
|
* GD to either a static library or a DLL, but, static is easier since you don't
|
||||||
|
* need to copy LIBGD.DLL along with ibm1130.exe
|
||||||
|
*
|
||||||
|
* SIMH commands:
|
||||||
|
*
|
||||||
|
* attach [-w] plot filename.gif
|
||||||
|
* Creates file filename.gif and attaches the plotter device to it.
|
||||||
|
* The file is empty at this point. The pen is raised. If the -w option is specified, and the
|
||||||
|
* simulator does not draw on the plotter between attach and detach, the gif file will be deleted
|
||||||
|
* on detach. (This is useful for the the cgi version of the simulator).
|
||||||
|
*
|
||||||
|
* detach plot filename.gif
|
||||||
|
* Detach the plot device. The gif data is written at this point, not before.
|
||||||
|
* If the -w flag was used on attach, and there was no plot activity, the gif file will be deleted.
|
||||||
|
*
|
||||||
|
* set plot black | red | blue | green | yellow | purple | lgrey | grey
|
||||||
|
* Sets the pen to the named color. Default is black.
|
||||||
|
*
|
||||||
|
* set plot 1.0 | 2.0 | 3.0 | 4.0
|
||||||
|
* Sets the pen thickness to the specified number of hundredths of an inch. Default is 1.0
|
||||||
|
*
|
||||||
|
* set plot penup | pendown
|
||||||
|
* Moves the pen up or down (onto the paper).
|
||||||
|
*
|
||||||
|
* set plot length NNN
|
||||||
|
* Sets the plot length (plotter X direction, GIF vertical dimension) to the NNN hundredths of
|
||||||
|
* an inch. Default is 800. The plot width (plotter Y direction, GIF horizontal dimension) is always
|
||||||
|
* 1100 (11 inches). NOTE: Changing this setting has no affect on the current plot. It takes affect at
|
||||||
|
* the next "attach plot" command.
|
||||||
|
*
|
||||||
|
* set plot xpos NNN
|
||||||
|
* set plot ypos NNN
|
||||||
|
* Sets the pen x or y position to NNN hundredths of an inch.
|
||||||
|
*
|
||||||
|
* (You cannot manually create a plot by issuing set plot pendown, xpos and ypos commands. The xpos and ypos
|
||||||
|
* settings only change the starting point for the simulated program).
|
||||||
***************************************************************************************/
|
***************************************************************************************/
|
||||||
|
|
||||||
#define PLOT1627_DSW_OP_COMPLETE 0x8000
|
#define PLOT1627_DSW_OP_COMPLETE 0x8000
|
||||||
|
@ -78,7 +127,7 @@
|
||||||
|
|
||||||
#define IS_ONLINE(u) (((u)->flags & (UNIT_ATT|UNIT_DIS)) == UNIT_ATT)
|
#define IS_ONLINE(u) (((u)->flags & (UNIT_ATT|UNIT_DIS)) == UNIT_ATT)
|
||||||
#define IS_DEBUG ((plot_unit->flags & UNIT_DEBUG) == UNIT_DEBUG)
|
#define IS_DEBUG ((plot_unit->flags & UNIT_DEBUG) == UNIT_DEBUG)
|
||||||
#define IS_PENDOWN ((plot_unit->flags & UNIT_PEN) == UNIT_PEN)
|
#define IS_PENDOWN ((plot_unit->flags & UNIT_PEN) != 0)
|
||||||
|
|
||||||
static t_stat plot_svc (UNIT *uptr); /* activity routine */
|
static t_stat plot_svc (UNIT *uptr); /* activity routine */
|
||||||
static t_stat plot_reset (DEVICE *dptr); /* reset of 1130 */
|
static t_stat plot_reset (DEVICE *dptr); /* reset of 1130 */
|
||||||
|
@ -103,7 +152,7 @@ static int32 plot_ymax = 1099; /* right edge of carriage */
|
||||||
|
|
||||||
#define PEN_DOWN 0x80000000
|
#define PEN_DOWN 0x80000000
|
||||||
#define PEN_UP 0x00000000
|
#define PEN_UP 0x00000000
|
||||||
static int32 plot_pen = PEN_UP; /* current pen position */
|
static int32 plot_pen = PEN_UP; /* current pen position. This duplicates the device flag PLOT_PEN. Makes the show dev plot command nicer. */
|
||||||
|
|
||||||
static int black_pen; /* holds color black */
|
static int black_pen; /* holds color black */
|
||||||
static int blue_pen; /* holds color blue */
|
static int blue_pen; /* holds color blue */
|
||||||
|
@ -116,8 +165,10 @@ static int grey_pen; /* holds grey */
|
||||||
static int white_background; /* holds white of paper roll */
|
static int white_background; /* holds white of paper roll */
|
||||||
static int plot_pwidth; /* set and display variable */
|
static int plot_pwidth; /* set and display variable */
|
||||||
static int plot_pcolor; /* set and display variable */
|
static int plot_pcolor; /* set and display variable */
|
||||||
static int need_update = 0; /* flag to force and update_pen() */
|
static int need_update = FALSE; /* flag to force and update_pen() */
|
||||||
static gdImagePtr image; /* pointer to our canvas */
|
static int plot_used = FALSE; /* flag set to true if anything was actually plotted between attach and detach */
|
||||||
|
static int delete_if_unused = FALSE; /* if TRUE and no plotter activity was seen, delete file on detach. This flag is set by -w option on attach command. */
|
||||||
|
static gdImagePtr image = NULL; /* pointer to our canvas */
|
||||||
|
|
||||||
#define UNIT_V_COLOR (UNIT_V_UF + 0) /* color of selected pen - 3 bits */
|
#define UNIT_V_COLOR (UNIT_V_UF + 0) /* color of selected pen - 3 bits */
|
||||||
#define UNIT_V_WIDTH (UNIT_V_UF + 3) /* width of pen - two bits */
|
#define UNIT_V_WIDTH (UNIT_V_UF + 3) /* width of pen - two bits */
|
||||||
|
@ -140,7 +191,7 @@ static gdImagePtr image; /* pointer to our canvas */
|
||||||
#define PEN_LTGREY (6u << UNIT_V_COLOR)
|
#define PEN_LTGREY (6u << UNIT_V_COLOR)
|
||||||
#define PEN_GREY (7u << UNIT_V_COLOR)
|
#define PEN_GREY (7u << UNIT_V_COLOR)
|
||||||
|
|
||||||
#define SET_COLOR(op) {plot_unit[0].flags &= ~UNIT_COLOR; plot_unit[0].flags |= (op);}
|
#define SET_COLOR(op) (plot_unit[0].flags = (plot_unit[0].flags & ~UNIT_COLOR) | (op))
|
||||||
#define GET_COLOR (plot_unit[0].flags & UNIT_COLOR)
|
#define GET_COLOR (plot_unit[0].flags & UNIT_COLOR)
|
||||||
|
|
||||||
#define BLACK 0,0,0
|
#define BLACK 0,0,0
|
||||||
|
@ -159,7 +210,7 @@ static gdImagePtr image; /* pointer to our canvas */
|
||||||
#define PEN_QUAD (3u << UNIT_V_WIDTH)
|
#define PEN_QUAD (3u << UNIT_V_WIDTH)
|
||||||
|
|
||||||
#define GET_WIDTH() (plot_unit[0].flags & UNIT_WIDTH)
|
#define GET_WIDTH() (plot_unit[0].flags & UNIT_WIDTH)
|
||||||
#define SET_WIDTH(cd) {plot_unit[0].flags &= ~UNIT_WIDTH; un.flags |= (cd);}
|
#define SET_WIDTH(cd) (plot_unit[0].flags = (plot_unit[0].flags & ~UNIT_WIDTH) | (cd))
|
||||||
|
|
||||||
UNIT plot_unit[] = {
|
UNIT plot_unit[] = {
|
||||||
{ UDATA (&plot_svc, UNIT_ATTABLE, 0) },
|
{ UDATA (&plot_svc, UNIT_ATTABLE, 0) },
|
||||||
|
@ -170,7 +221,7 @@ REG plot_reg[] = {
|
||||||
{ DRDATA (WTIME, plot_wait, 24), PV_LEFT }, /* plotter movement wait */
|
{ DRDATA (WTIME, plot_wait, 24), PV_LEFT }, /* plotter movement wait */
|
||||||
{ DRDATA (Xpos, plot_xpos, 32), PV_LEFT }, /* Current X Position*/
|
{ DRDATA (Xpos, plot_xpos, 32), PV_LEFT }, /* Current X Position*/
|
||||||
{ DRDATA (Ypos, plot_ypos, 32), PV_LEFT }, /* Current Y Position*/
|
{ DRDATA (Ypos, plot_ypos, 32), PV_LEFT }, /* Current Y Position*/
|
||||||
{ FLDATA (PenDown, plot_pen, 0)}, /* Current pen position - 1 = down */
|
{ FLDATA (PenDown, plot_pen, 0)}, /* Current pen position: 1 = down */
|
||||||
{ DRDATA (PaperSize, plot_xmax, 32), PV_LEFT }, /* Length of paper in inches */
|
{ DRDATA (PaperSize, plot_xmax, 32), PV_LEFT }, /* Length of paper in inches */
|
||||||
{ NULL } };
|
{ NULL } };
|
||||||
|
|
||||||
|
@ -211,9 +262,10 @@ DEVICE plot_dev = {
|
||||||
|
|
||||||
/* xio_1627_plotter - XIO command interpreter for the 1627 plotter model 1 */
|
/* xio_1627_plotter - XIO command interpreter for the 1627 plotter model 1 */
|
||||||
|
|
||||||
void xio_1627_plotter (iocc_addr, iocc_func, iocc_mod)
|
void xio_1627_plotter (int32 iocc_addr, int32 iocc_func, int32 iocc_mod)
|
||||||
{
|
{
|
||||||
char msg[80];
|
char msg[80];
|
||||||
|
int16 v;
|
||||||
|
|
||||||
if (! IS_ONLINE(plot_unit) ) {
|
if (! IS_ONLINE(plot_unit) ) {
|
||||||
SETBIT(plot_dsw, PLOT1627_DSW_NOT_READY); /* set not ready */
|
SETBIT(plot_dsw, PLOT1627_DSW_NOT_READY); /* set not ready */
|
||||||
|
@ -246,7 +298,44 @@ void xio_1627_plotter (iocc_addr, iocc_func, iocc_mod)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XIO_CONTROL: /* control XIO */
|
case XIO_CONTROL: /* control XIO */
|
||||||
xio_error("Control XIO not supported by 1627 plotter");
|
// xio_error("Control XIO not supported by 1627 plotter");
|
||||||
|
// Well, not on a real 1130. But on our simulator, let's use XIO_CONTROL to
|
||||||
|
// allow programmatic control of the pen. Nifty, eh?
|
||||||
|
//
|
||||||
|
// Functions: XIO_CONTROL 0 clr - sets pen color (0=black, 1=red, 2=blue, 3=green, 4=yellow, 5=purple, 6=ltgrey, 7=grey)
|
||||||
|
// XIO_CONTRLL 1 wid - sets pen width (1..4)
|
||||||
|
// XIO_CONTROL 2 xpos - sets pen xpos
|
||||||
|
// XIO_CONTROL 3 ypos - sets pen ypos
|
||||||
|
|
||||||
|
v = (int16) iocc_addr; /* get signed 16 bit value passed in addr arg */
|
||||||
|
switch (iocc_mod) {
|
||||||
|
case 0: /* set pen color */
|
||||||
|
if (BETWEEN(v,0,7)) {
|
||||||
|
SET_COLOR(v << UNIT_V_COLOR);
|
||||||
|
update_pen();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: /* set pen width 1..4*/
|
||||||
|
if (BETWEEN(v,1,4)) {
|
||||||
|
SET_WIDTH((v-1) << UNIT_V_WIDTH);
|
||||||
|
update_pen();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: /* set xpos. (Programmatic xpos and ypos are probably not that valuable) */
|
||||||
|
plot_xpos = v; /* Note that it's possible to move the pen way off the paper */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: /* set ypos. Clip to valid range! */
|
||||||
|
if (v <= 0)
|
||||||
|
plot_ypos = 0;
|
||||||
|
else if (v > plot_ymax)
|
||||||
|
plot_ypos = plot_ymax;
|
||||||
|
else
|
||||||
|
plot_ypos = v;
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -274,8 +363,14 @@ static t_stat plot_svc (UNIT *uptr)
|
||||||
|
|
||||||
static t_stat plot_reset (DEVICE *dptr)
|
static t_stat plot_reset (DEVICE *dptr)
|
||||||
{
|
{
|
||||||
char * buf;
|
#ifdef NONDLL
|
||||||
int32 size;
|
static int show_notice = FALSE;
|
||||||
|
|
||||||
|
if (show_notice && ! cgi) {
|
||||||
|
printf("Plotter support included. Please see www.libgd.org for libgd copyright information.\n");
|
||||||
|
show_notice = FALSE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
sim_cancel(plot_unit);
|
sim_cancel(plot_unit);
|
||||||
|
|
||||||
|
@ -296,18 +391,13 @@ static t_stat plot_attach (UNIT *uptr, char *cptr)
|
||||||
{
|
{
|
||||||
t_stat result;
|
t_stat result;
|
||||||
|
|
||||||
|
SETBIT(plot_dsw, PLOT1627_DSW_NOT_READY); /* assume failure */
|
||||||
|
|
||||||
CLRBIT(uptr->flags, UNIT_DEBUG);
|
CLRBIT(uptr->flags, UNIT_DEBUG);
|
||||||
if (sim_switches & SWMASK('D')) SETBIT(uptr->flags, UNIT_DEBUG);
|
if (sim_switches & SWMASK('D')) SETBIT(uptr->flags, UNIT_DEBUG);
|
||||||
|
|
||||||
/* get the output file by using regular attach routine */
|
if (cptr == NULL || ! *cptr) /* filename must be passed */
|
||||||
result = attach_unit(uptr, cptr);
|
return SCPE_ARG;
|
||||||
|
|
||||||
if (result != SCPE_OK) {
|
|
||||||
if (IS_DEBUG) printf("problem attaching file\n");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
SETBIT(plot_dsw, PLOT1627_DSW_NOT_READY); /* assume failure */
|
|
||||||
|
|
||||||
/* set up our canvas at the desired size */
|
/* set up our canvas at the desired size */
|
||||||
image = gdImageCreate(plot_ymax+1,plot_xmax+1); /* create our canvas */
|
image = gdImageCreate(plot_ymax+1,plot_xmax+1); /* create our canvas */
|
||||||
|
@ -316,7 +406,21 @@ static t_stat plot_attach (UNIT *uptr, char *cptr)
|
||||||
return SCPE_MEM;
|
return SCPE_MEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete_if_unused = (sim_switches & SWMASK('W')) != 0;
|
||||||
|
|
||||||
|
remove(cptr); /* delete file if it already exists. Otherwise, attach_unit() would open r+w */
|
||||||
|
/* get the output file by using regular attach routine */
|
||||||
|
result = attach_unit(uptr, cptr);
|
||||||
|
|
||||||
|
if (result != SCPE_OK) {
|
||||||
|
if (IS_DEBUG) printf("problem attaching file\n");
|
||||||
|
gdImageDestroy(image); /* free up the canvas memory */
|
||||||
|
image = NULL;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/* set up the basic colors after image created */
|
/* set up the basic colors after image created */
|
||||||
|
/* (by the way, these calls don't allocate any memory in or out of the image buffer. They just populate its "colors-used" table */
|
||||||
white_background = gdImageColorAllocate(image,WHITE); /* white is background */
|
white_background = gdImageColorAllocate(image,WHITE); /* white is background */
|
||||||
black_pen = gdImageColorAllocate(image,BLACK); /* load up black color */
|
black_pen = gdImageColorAllocate(image,BLACK); /* load up black color */
|
||||||
blue_pen = gdImageColorAllocate(image,BLUE); /* load up blue color */
|
blue_pen = gdImageColorAllocate(image,BLUE); /* load up blue color */
|
||||||
|
@ -336,14 +440,17 @@ static t_stat plot_attach (UNIT *uptr, char *cptr)
|
||||||
|
|
||||||
CLRBIT(plot_dsw, PLOT1627_DSW_NOT_READY); /* we're in business */
|
CLRBIT(plot_dsw, PLOT1627_DSW_NOT_READY); /* we're in business */
|
||||||
|
|
||||||
update_pen(); /* routine to ensure pen is okay */
|
plot_pen = PEN_UP;
|
||||||
|
CLRBIT(plot_unit->flags, UNIT_PEN);
|
||||||
|
|
||||||
|
update_pen(); /* routine to ensure pen is okay */
|
||||||
|
plot_used = FALSE; /* plotter page is blank */
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* pen updating routine, called at attach and whenever we reset the values */
|
/* pen updating routine, called at attach and whenever we reset the values */
|
||||||
|
|
||||||
void update_pen (void)
|
static void update_pen (void)
|
||||||
{
|
{
|
||||||
int color;
|
int color;
|
||||||
int width;
|
int width;
|
||||||
|
@ -430,39 +537,69 @@ void update_pen (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* plot_detach - detach file from simulated plotter */
|
/* plot_detach - detach file from simulated plotter */
|
||||||
|
|
||||||
static t_stat plot_detach (UNIT *uptr)
|
static t_stat plot_detach (UNIT *uptr)
|
||||||
{
|
{
|
||||||
char * buf;
|
char * buf, * fname;
|
||||||
int32 size;
|
int32 size, result, saveit;
|
||||||
FILE * fp;
|
FILE * fp;
|
||||||
int32 result;
|
t_stat rval = SCPE_OK; /* return value */
|
||||||
|
|
||||||
SETBIT(plot_dsw, PLOT1627_DSW_NOT_READY);
|
SETBIT(plot_dsw, PLOT1627_DSW_NOT_READY);
|
||||||
|
|
||||||
/* copy images to files, close files, set device to detached, free gd memory */
|
if (! (uptr->flags & UNIT_ATT)) /* not currently attached; don't proceed */
|
||||||
|
return SCPE_OK;
|
||||||
|
|
||||||
buf = gdImageGifPtr(image,&size);
|
/* if -w flag was passed on attach: save file if there was plotter activity, otherwise delete it */
|
||||||
if (! buf) {
|
/* if -w flag was not passed on attached, always save the file */
|
||||||
|
saveit = (plot_used || ! delete_if_unused) && (image != NULL);
|
||||||
|
|
||||||
|
if (saveit) { /* copy images to files, close files, set device to detached, free gd memory */
|
||||||
|
if ((buf = gdImageGifPtr(image,&size)) == NULL) {
|
||||||
if (IS_DEBUG) printf("failure creating GIF in-memory\n");
|
if (IS_DEBUG) printf("failure creating GIF in-memory\n");
|
||||||
return SCPE_MEM;
|
return SCPE_MEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
fp = uptr->fileref; /* get file attached to unit */
|
fp = uptr->fileref; /* get file attached to unit */
|
||||||
|
|
||||||
if (! fseek(fp,0,SEEK_SET)) { /* first we reset to begin of file */
|
if (fseek(fp,0,SEEK_SET) == 0) { /* first we reset to begin of file */
|
||||||
if (IS_DEBUG) printf("wrote out GIF to file\n");
|
if (IS_DEBUG) printf("wrote out GIF to file\n");
|
||||||
result = fwrite(buf,1,size,fp); /* write out our image to the file */
|
result = fwrite(buf,1,size,fp); /* write out our image to the file */
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
result = 0; /* make it look like the write failed so we return error status */
|
||||||
|
|
||||||
gdFree(buf); /* free up the memory of GIF format */
|
gdFree(buf); /* free up the memory of GIF format */
|
||||||
gdImageDestroy(image); /* free up the canvas memory */
|
}
|
||||||
|
else { /* make a copy of the filename so we can delete it after detach */
|
||||||
if (result != size) { /* some problem writing it */
|
if ((fname = malloc(strlen(uptr->filename)+1)) != NULL)
|
||||||
if (IS_DEBUG) printf("error in write of image file\n");
|
strcpy(fname, uptr->filename);
|
||||||
return SCPE_IOERR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return detach_unit(uptr); /* have simh close the file */
|
if (image != NULL) {
|
||||||
|
gdImageDestroy(image); /* free up the canvas memory */
|
||||||
|
image = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
rval = detach_unit(uptr); /* have simh close the file */
|
||||||
|
|
||||||
|
if (saveit) { /* if we wrote the file, check that write was OK */
|
||||||
|
if (result != size) { /* report error writing file */
|
||||||
|
if (IS_DEBUG) printf("error in write of image file\n");
|
||||||
|
rval = SCPE_IOERR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { /* if we did not write the file, delete the file */
|
||||||
|
if (fname == NULL) {
|
||||||
|
rval = SCPE_MEM; /* we previously failed to allocate a copy of the filename (this will never happen) */
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
remove(fname); /* remove the file and free the copy of the filename */
|
||||||
|
free(fname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* process_cmd - implement the drawing actions of the plotter */
|
/* process_cmd - implement the drawing actions of the plotter */
|
||||||
|
@ -474,7 +611,7 @@ static void process_cmd (void)
|
||||||
/* first see if we set any changes to pen or position, do an update */
|
/* first see if we set any changes to pen or position, do an update */
|
||||||
if (need_update) {
|
if (need_update) {
|
||||||
update_pen();
|
update_pen();
|
||||||
need_update = 0;
|
need_update = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* will move pen one step or flip pen up or down */
|
/* will move pen one step or flip pen up or down */
|
||||||
|
@ -484,49 +621,49 @@ static void process_cmd (void)
|
||||||
switch (plot_cmd) {
|
switch (plot_cmd) {
|
||||||
case 1: /* raise pen command */
|
case 1: /* raise pen command */
|
||||||
plot_pen = PEN_UP;
|
plot_pen = PEN_UP;
|
||||||
plot_unit->flags = plot_unit->flags & (~UNIT_PEN);
|
CLRBIT(plot_unit->flags, UNIT_PEN);
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: /* +Y command */
|
case 2: /* +Y command */
|
||||||
plot_ypos = plot_ypos + 1;
|
++plot_ypos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4: /* -Y command */
|
case 4: /* -Y command */
|
||||||
plot_ypos = plot_ypos - 1;
|
--plot_ypos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 8: /* -X command */
|
case 8: /* -X command */
|
||||||
plot_xpos = plot_xpos - 1;
|
--plot_xpos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10: /* -X +Y command */
|
case 10: /* -X +Y command */
|
||||||
plot_xpos = plot_xpos - 1;
|
--plot_xpos;
|
||||||
plot_ypos = plot_ypos + 1;
|
++plot_ypos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 12: /* -X -Y command */
|
case 12: /* -X -Y command */
|
||||||
plot_xpos = plot_xpos - 1;
|
--plot_xpos;
|
||||||
plot_ypos = plot_ypos - 1;
|
--plot_ypos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16: /* +X command */
|
case 16: /* +X command */
|
||||||
plot_xpos = plot_xpos + 1;
|
++plot_xpos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 18: /* +X +Y command */
|
case 18: /* +X +Y command */
|
||||||
plot_xpos = plot_xpos + 1;
|
++plot_xpos;
|
||||||
plot_ypos = plot_ypos + 1;
|
++plot_ypos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 20: /* +X -Y pen command */
|
case 20: /* +X -Y pen command */
|
||||||
plot_xpos = plot_xpos + 1;
|
++plot_xpos;
|
||||||
plot_ypos = plot_ypos - 1;
|
--plot_ypos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 32: /* lower pen command */
|
case 32: /* lower pen command */
|
||||||
plot_pen = PEN_DOWN;
|
plot_pen = PEN_DOWN;
|
||||||
plot_unit->flags = plot_unit->flags | UNIT_PEN;
|
SETBIT(plot_unit->flags, UNIT_PEN);
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -536,19 +673,36 @@ static void process_cmd (void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check to see if carriage has moved off any edge */
|
/* On the real plotter, y motions were physically restricted at the ends of travel.
|
||||||
if ((plot_xpos > (plot_xmax+1)) || (plot_ypos > (plot_ymax+1)) ||
|
* We simulate this by clipping the plot_ypos value. Three +y movements at the right
|
||||||
(plot_xpos < 0) || (plot_ypos < 0)) {
|
* end of travel followed by three -y movements will back up 3 positions, just as it would have on
|
||||||
|
* the physical plotter. Without clipping, the pen would end up where it started, which
|
||||||
|
* is incorrect. (Hopefully, good 1130 plotting software would never make this happen anyhow!)
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (plot_ypos < 0)
|
||||||
|
plot_ypos = 0;
|
||||||
|
else if (plot_ypos > plot_ymax)
|
||||||
|
plot_ypos = plot_ymax;
|
||||||
|
|
||||||
|
/* We do allow X overtravel though, as the drum simply turned past the end of the paper. Three +x
|
||||||
|
* movements past the end of the paper followed by three -x movements would put the pen back at the
|
||||||
|
* edge of the paper.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ((plot_xpos < 0) || (plot_xpos > plot_xmax)) {
|
||||||
/* if so, ignore as 1627 has no way of signalling error */
|
/* if so, ignore as 1627 has no way of signalling error */
|
||||||
if (IS_DEBUG) printf(
|
if (IS_DEBUG) printf(
|
||||||
"attempted to move carriage off paper edge %d %d for command %d\n",
|
"attempted to move carriage off paper edge %d %d for command %d\n",
|
||||||
plot_xpos,plot_ypos,plot_cmd);
|
plot_xpos,plot_ypos,plot_cmd);
|
||||||
return;
|
|
||||||
|
return; // no drawing takes place if the pen is off of the paper!
|
||||||
}
|
}
|
||||||
|
|
||||||
/* only draw a line if the pen was down during the movement command */
|
/* only draw a line if the pen was down during the movement command */
|
||||||
if (plot_pen) {
|
if (plot_pen) {
|
||||||
gdImageLine(image, plot_ymax-plot_ypos, plot_xmax-plot_xpos, plot_ymax-oldy, plot_xmax-oldx, gdAntiAliased);
|
gdImageLine(image, plot_ymax-plot_ypos, plot_xmax-plot_xpos, plot_ymax-oldy, plot_xmax-oldx, gdAntiAliased);
|
||||||
|
plot_used = TRUE; /* remember that we drew something */
|
||||||
/* semantics are 0,0 point is lower right */
|
/* semantics are 0,0 point is lower right */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -564,6 +718,11 @@ static t_stat plot_set_length (UNIT *uptr, int32 set, char *ptr, void *desc)
|
||||||
|
|
||||||
#define LONGEST_ROLL 1440000 /* longest is 120', 14400", 1,440,000 .01"s */
|
#define LONGEST_ROLL 1440000 /* longest is 120', 14400", 1,440,000 .01"s */
|
||||||
|
|
||||||
|
if (ptr == NULL) { /* check for missing argument */
|
||||||
|
printf("Command format is: set plot length=nnn\n");
|
||||||
|
return SCPE_ARG;
|
||||||
|
}
|
||||||
|
|
||||||
val = strtotv (ptr, &cptr, (uint32) 10); /* sim routine to get value */
|
val = strtotv (ptr, &cptr, (uint32) 10); /* sim routine to get value */
|
||||||
if ((val < 1) | (val >= LONGEST_ROLL)) { /* check valid range */
|
if ((val < 1) | (val >= LONGEST_ROLL)) { /* check valid range */
|
||||||
if (IS_DEBUG) printf("setting paper more than 120' or less than 1 inch\n");
|
if (IS_DEBUG) printf("setting paper more than 120' or less than 1 inch\n");
|
||||||
|
@ -626,8 +785,9 @@ static t_stat plot_show_nl(FILE *fp, UNIT *uptr, int32 val, void *descrip)
|
||||||
|
|
||||||
static t_stat plot_validate_change (UNIT *uptr, int32 set, char *ptr, void *desc)
|
static t_stat plot_validate_change (UNIT *uptr, int32 set, char *ptr, void *desc)
|
||||||
{
|
{
|
||||||
need_update = 1;
|
need_update = TRUE;
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* ENABLE_PLOT_SUPPORT */
|
#endif /* ENABLE_PLOT_SUPPORT */
|
||||||
|
|
||||||
|
|
|
@ -112,6 +112,7 @@ static t_bool formfed = FALSE; /* last line printed was a formfeed */
|
||||||
#define UNIT_V_RINGCHECK (UNIT_V_UF + 8)
|
#define UNIT_V_RINGCHECK (UNIT_V_UF + 8)
|
||||||
#define UNIT_V_SYNCCHECK (UNIT_V_UF + 9)
|
#define UNIT_V_SYNCCHECK (UNIT_V_UF + 9)
|
||||||
#define UNIT_V_PHYSICAL_PTR (UNIT_V_UF + 10) /* this appears in ibm1130_gui as well */
|
#define UNIT_V_PHYSICAL_PTR (UNIT_V_UF + 10) /* this appears in ibm1130_gui as well */
|
||||||
|
#define UNIT_V_TRACE (UNIT_V_UF + 11)
|
||||||
|
|
||||||
#define UNIT_FORMCHECK (1u << UNIT_V_FORMCHECK)
|
#define UNIT_FORMCHECK (1u << UNIT_V_FORMCHECK)
|
||||||
#define UNIT_DATACHECK (1u << UNIT_V_DATACHECK)
|
#define UNIT_DATACHECK (1u << UNIT_V_DATACHECK)
|
||||||
|
@ -124,6 +125,7 @@ static t_bool formfed = FALSE; /* last line printed was a formfeed */
|
||||||
#define UNIT_RINGCHECK (1u << UNIT_V_RINGCHECK)
|
#define UNIT_RINGCHECK (1u << UNIT_V_RINGCHECK)
|
||||||
#define UNIT_SYNCCHECK (1u << UNIT_V_SYNCCHECK)
|
#define UNIT_SYNCCHECK (1u << UNIT_V_SYNCCHECK)
|
||||||
#define UNIT_PHYSICAL_PTR (1u << UNIT_V_PHYSICAL_PTR)
|
#define UNIT_PHYSICAL_PTR (1u << UNIT_V_PHYSICAL_PTR)
|
||||||
|
#define UNIT_TRACE (1u << UNIT_V_TRACE)
|
||||||
|
|
||||||
UNIT prt_unit[] = {
|
UNIT prt_unit[] = {
|
||||||
{ UDATA (&prt_svc, UNIT_ATTABLE, 0) },
|
{ UDATA (&prt_svc, UNIT_ATTABLE, 0) },
|
||||||
|
@ -132,6 +134,7 @@ UNIT prt_unit[] = {
|
||||||
#define IS_1403(uptr) (uptr->flags & UNIT_1403) /* model test */
|
#define IS_1403(uptr) (uptr->flags & UNIT_1403) /* model test */
|
||||||
#define IS_1132(uptr) ((uptr->flags & UNIT_1403) == 0) /* model test */
|
#define IS_1132(uptr) ((uptr->flags & UNIT_1403) == 0) /* model test */
|
||||||
#define IS_PHYSICAL(uptr) (uptr->flags & UNIT_PHYSICAL_PTR)
|
#define IS_PHYSICAL(uptr) (uptr->flags & UNIT_PHYSICAL_PTR)
|
||||||
|
#define DO_TRACE(uptr) (uptr->flags & UNIT_TRACE)
|
||||||
|
|
||||||
/* Parameter in the unit descriptor (1132 printer) */
|
/* Parameter in the unit descriptor (1132 printer) */
|
||||||
|
|
||||||
|
@ -151,6 +154,8 @@ REG prt_reg[] = {
|
||||||
MTAB prt_mod[] = {
|
MTAB prt_mod[] = {
|
||||||
{ UNIT_1403, 0, "1132", "1132", NULL }, /* model option */
|
{ UNIT_1403, 0, "1132", "1132", NULL }, /* model option */
|
||||||
{ UNIT_1403, UNIT_1403, "1403", "1403", NULL },
|
{ UNIT_1403, UNIT_1403, "1403", "1403", NULL },
|
||||||
|
{ UNIT_TRACE, UNIT_TRACE, "TRACE", "TRACE", NULL },
|
||||||
|
{ UNIT_TRACE, 0, "NOTRACE", "NOTRACE", NULL },
|
||||||
{ 0 } };
|
{ 0 } };
|
||||||
|
|
||||||
DEVICE prt_dev = {
|
DEVICE prt_dev = {
|
||||||
|
@ -348,7 +353,7 @@ static void mytrace (int start, char *what)
|
||||||
char *where;
|
char *where;
|
||||||
|
|
||||||
if ((where = saywhere(prev_IAR)) == NULL) where = "?";
|
if ((where = saywhere(prev_IAR)) == NULL) where = "?";
|
||||||
trace_io("%s %s at %04x: %s\n", start ? "start" : "stop", what, prev_IAR, where);
|
trace_io("%s %s at %04x: %s", start ? "start" : "stop", what, prev_IAR, where);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* xio_1132_printer - XIO command interpreter for the 1132 printer */
|
/* xio_1132_printer - XIO command interpreter for the 1132 printer */
|
||||||
|
@ -372,32 +377,33 @@ void xio_1132_printer (int32 iocc_addr, int32 func, int32 modify)
|
||||||
CLRBIT(PRT_DSW, PRT1132_DSW_READ_EMITTER_RESPONSE | PRT1132_DSW_SKIP_RESPONSE | PRT1132_DSW_SPACE_RESPONSE);
|
CLRBIT(PRT_DSW, PRT1132_DSW_READ_EMITTER_RESPONSE | PRT1132_DSW_SKIP_RESPONSE | PRT1132_DSW_SPACE_RESPONSE);
|
||||||
CLRBIT(ILSW[1], ILSW_1_1132_PRINTER);
|
CLRBIT(ILSW[1], ILSW_1_1132_PRINTER);
|
||||||
}
|
}
|
||||||
|
trace_io("* Printer DSW %04x mod %x", ACC, modify);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XIO_CONTROL:
|
case XIO_CONTROL:
|
||||||
if (modify & PRT_CMD_START_PRINTER) {
|
if (modify & PRT_CMD_START_PRINTER) {
|
||||||
SETBIT(uptr->flags, UNIT_PRINTING);
|
SETBIT(uptr->flags, UNIT_PRINTING);
|
||||||
/* mytrace(1, "printing"); */
|
if (DO_TRACE(uptr)) mytrace(1, "printing");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modify & PRT_CMD_STOP_PRINTER) {
|
if (modify & PRT_CMD_STOP_PRINTER) {
|
||||||
CLRBIT(uptr->flags, UNIT_PRINTING);
|
CLRBIT(uptr->flags, UNIT_PRINTING);
|
||||||
/* mytrace(0, "printing"); */
|
if (DO_TRACE(uptr)) mytrace(0, "printing");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modify & PRT_CMD_START_CARRIAGE) {
|
if (modify & PRT_CMD_START_CARRIAGE) {
|
||||||
SETBIT(uptr->flags, UNIT_SKIPPING);
|
SETBIT(uptr->flags, UNIT_SKIPPING);
|
||||||
/* mytrace(1, "skipping"); */
|
if (DO_TRACE(uptr)) mytrace(1, "skipping");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modify & PRT_CMD_STOP_CARRIAGE) {
|
if (modify & PRT_CMD_STOP_CARRIAGE) {
|
||||||
CLRBIT(uptr->flags, UNIT_SKIPPING);
|
CLRBIT(uptr->flags, UNIT_SKIPPING);
|
||||||
/* mytrace(0, "skipping"); */
|
if (DO_TRACE(uptr)) mytrace(0, "skipping");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modify & PRT_CMD_SPACE) {
|
if (modify & PRT_CMD_SPACE) {
|
||||||
SETBIT(uptr->flags, UNIT_SPACING);
|
SETBIT(uptr->flags, UNIT_SPACING);
|
||||||
/* mytrace(1, "space"); */
|
if (DO_TRACE(uptr)) mytrace(1, "space");
|
||||||
}
|
}
|
||||||
|
|
||||||
sim_cancel(uptr);
|
sim_cancel(uptr);
|
||||||
|
@ -437,6 +443,7 @@ static t_stat prt_svc (UNIT *uptr)
|
||||||
static t_stat prt1132_svc (UNIT *uptr)
|
static t_stat prt1132_svc (UNIT *uptr)
|
||||||
{
|
{
|
||||||
if (PRT_DSW & PRT1132_DSW_NOT_READY) { /* cancel operation if printer went offline */
|
if (PRT_DSW & PRT1132_DSW_NOT_READY) { /* cancel operation if printer went offline */
|
||||||
|
if (DO_TRACE(uptr)) trace_io("1132 form check");
|
||||||
SETBIT(uptr->flags, UNIT_FORMCHECK);
|
SETBIT(uptr->flags, UNIT_FORMCHECK);
|
||||||
SET_ACTION(uptr, 0);
|
SET_ACTION(uptr, 0);
|
||||||
forms_check(TRUE); /* and turn on forms check lamp */
|
forms_check(TRUE); /* and turn on forms check lamp */
|
||||||
|
@ -467,9 +474,15 @@ static t_stat prt1132_svc (UNIT *uptr)
|
||||||
|
|
||||||
if (uptr->flags & UNIT_PRINTING) {
|
if (uptr->flags & UNIT_PRINTING) {
|
||||||
if (! save_1132_prt_line(codewheel1132[prt_nchar].ascii)) { /* save previous printed line */
|
if (! save_1132_prt_line(codewheel1132[prt_nchar].ascii)) { /* save previous printed line */
|
||||||
|
trace_io("* Print check -- buffer not set in time");
|
||||||
SETBIT(uptr->flags, UNIT_DATACHECK); /* buffer wasn't set in time */
|
SETBIT(uptr->flags, UNIT_DATACHECK); /* buffer wasn't set in time */
|
||||||
SET_ACTION(uptr, 0);
|
SET_ACTION(uptr, 0);
|
||||||
print_check(TRUE); /* and turn on forms check lamp */
|
print_check(TRUE); /* and turn on forms check lamp */
|
||||||
|
|
||||||
|
/* if (running)
|
||||||
|
reason = STOP_IMMEDIATE; // halt on check
|
||||||
|
*/
|
||||||
|
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,6 +596,7 @@ static t_stat prt1403_svc(UNIT *uptr)
|
||||||
{
|
{
|
||||||
if (PRT_DSW & PRT1403_DSW_NOT_READY) { /* cancel operation if printer went offline */
|
if (PRT_DSW & PRT1403_DSW_NOT_READY) { /* cancel operation if printer went offline */
|
||||||
SET_ACTION(uptr, 0);
|
SET_ACTION(uptr, 0);
|
||||||
|
if (DO_TRACE(uptr)) trace_io("1403 form check");
|
||||||
forms_check(TRUE); /* and turn on forms check lamp */
|
forms_check(TRUE); /* and turn on forms check lamp */
|
||||||
}
|
}
|
||||||
else if (uptr->flags & UNIT_TRANSFERRING) { /* end of transfer */
|
else if (uptr->flags & UNIT_TRANSFERRING) { /* end of transfer */
|
||||||
|
@ -635,7 +649,7 @@ static t_stat prt1403_svc(UNIT *uptr)
|
||||||
|
|
||||||
/* delete_cmd - SCP command to delete a file */
|
/* delete_cmd - SCP command to delete a file */
|
||||||
|
|
||||||
static t_stat delete_cmd (int32 flag, char *cptr)
|
static t_stat delete_cmd (int flag, char *cptr)
|
||||||
{
|
{
|
||||||
char gbuf[CBUFSIZE];
|
char gbuf[CBUFSIZE];
|
||||||
int status;
|
int status;
|
||||||
|
|
|
@ -363,7 +363,7 @@ static t_stat tti_svc (UNIT *uptr)
|
||||||
if ((tti_unit.flags & CSET_MASK) == CSET_ASCII)
|
if ((tti_unit.flags & CSET_MASK) == CSET_ASCII)
|
||||||
temp = conin_map[temp] & 0xFF; /* perform input translation */
|
temp = conin_map[temp] & 0xFF; /* perform input translation */
|
||||||
|
|
||||||
if (temp == IRQ_KEY) { /* INT REQ (interrupt request) key */
|
if (temp == IRQ_KEY) { /* INT REQ (interrupt request) key -- process this even if no keyboard input request pending */
|
||||||
SETBIT(tti_dsw, TT_DSW_INTERRUPT_REQUEST); /* queue interrupt */
|
SETBIT(tti_dsw, TT_DSW_INTERRUPT_REQUEST); /* queue interrupt */
|
||||||
SETBIT(ILSW[4], ILSW_4_CONSOLE);
|
SETBIT(ILSW[4], ILSW_4_CONSOLE);
|
||||||
calc_ints();
|
calc_ints();
|
||||||
|
@ -388,16 +388,17 @@ static t_stat tti_svc (UNIT *uptr)
|
||||||
|
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
// keyboard is locked or no active input request?
|
||||||
if ((tti_unit.flags & KEYBOARD_LOCKED) || ! (tti_dsw & TT_DSW_KEYBOARD_BUSY)) {
|
if ((tti_unit.flags & KEYBOARD_LOCKED) || ! (tti_dsw & TT_DSW_KEYBOARD_BUSY)) {
|
||||||
SendBeep();
|
SendBeep();
|
||||||
|
calc_ints();
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((tti_unit.flags & CSET_MASK) == CSET_ASCII)
|
if ((tti_unit.flags & CSET_MASK) == CSET_ASCII)
|
||||||
temp = ascii_to_conin[temp];
|
temp = ascii_to_conin[temp];
|
||||||
|
|
||||||
if (temp == 0) { /* ignore invalid characters */
|
if (temp == 0) { /* ignore invalid characters (no mapping to 1130 input code) */
|
||||||
SendBeep();
|
SendBeep();
|
||||||
calc_ints();
|
calc_ints();
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
|
|
|
@ -35,6 +35,7 @@ extern DEVICE gdu_dev, console_dev, plot_dev;
|
||||||
extern UNIT cpu_unit;
|
extern UNIT cpu_unit;
|
||||||
extern REG cpu_reg[];
|
extern REG cpu_reg[];
|
||||||
extern int32 saved_PC;
|
extern int32 saved_PC;
|
||||||
|
extern t_bool is_1800;
|
||||||
|
|
||||||
/* SCP data structures and interface routines
|
/* SCP data structures and interface routines
|
||||||
|
|
||||||
|
@ -290,11 +291,9 @@ static int ebcdic_to_ascii (int ch)
|
||||||
|
|
||||||
t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw)
|
t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw)
|
||||||
{
|
{
|
||||||
int32 cflag, ch, OP, F, TAG, INDIR, DSPLC, IR, eaddr;
|
int32 ch, OP, F, TAG, INDIR, DSPLC, IR, eaddr;
|
||||||
char *mnem, tst[12];
|
char *mnem, tst[12];
|
||||||
|
|
||||||
cflag = (uptr == NULL) || (uptr == &cpu_unit);
|
|
||||||
|
|
||||||
/* if (sw & SWMASK ('A')) { // ASCII? not useful
|
/* if (sw & SWMASK ('A')) { // ASCII? not useful
|
||||||
fprintf (of, (c1 < 040)? "<%03o>": "%c", c1);
|
fprintf (of, (c1 < 040)? "<%03o>": "%c", c1);
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
|
@ -348,6 +347,13 @@ t_stat fprint_sym (FILE *of, t_addr addr, t_value *val, UNIT *uptr, int32 sw)
|
||||||
}
|
}
|
||||||
|
|
||||||
mnem = opcode[OP]; /* get mnemonic */
|
mnem = opcode[OP]; /* get mnemonic */
|
||||||
|
if (is_1800) { /* these two are defined on the 1800 but undefined on the 1130 */
|
||||||
|
if (OP == 0x16)
|
||||||
|
mnem = "CMP ";
|
||||||
|
else if (OP == 0x17)
|
||||||
|
mnem = "DCMP";
|
||||||
|
}
|
||||||
|
|
||||||
if (OP == 0x02) { /* left shifts are special */
|
if (OP == 0x02) { /* left shifts are special */
|
||||||
mnem = lsopcode[(DSPLC >> 6) & 0x0003];
|
mnem = lsopcode[(DSPLC >> 6) & 0x0003];
|
||||||
DSPLC &= 0x003F;
|
DSPLC &= 0x003F;
|
||||||
|
|
|
@ -4,12 +4,13 @@
|
||||||
//
|
//
|
||||||
#define IDB_CONSOLE 101
|
#define IDB_CONSOLE 101
|
||||||
#define IDC_MYHAND 102
|
#define IDC_MYHAND 102
|
||||||
|
#define IDI_ICON1 103
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 103
|
#define _APS_NEXT_RESOURCE_VALUE 104
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
# (This makefile is for operating systems other than Windows,
|
|
||||||
# or compilers other than Microsoft's. For MS builds, use the
|
|
||||||
# .mak files found in this directory and the utils directory).
|
|
||||||
#
|
|
||||||
# If you are building the emulator and utilities as part of
|
|
||||||
# the SIMH package, please:
|
|
||||||
#
|
|
||||||
# Be sure that you there are NO copies of scp.c, scp_tty.c,
|
|
||||||
# sim_sock.c, sim_tmxr.c, sim_rev.h, sim_defs.h, sim_sock.h and
|
|
||||||
# sim_tmxr.h in the ibm1130 subdirectory. Delete them if there
|
|
||||||
# are.
|
|
||||||
#
|
|
||||||
# Do not use this makefile with "make all" or "make ibm1130".
|
|
||||||
# Use the SIMH build files instead.
|
|
||||||
#
|
|
||||||
# If and when you download updates for this simulator from
|
|
||||||
# www.ibm1130.org, get ibm1130code.zip and ibm1130software.zip
|
|
||||||
# separately.
|
|
||||||
#
|
|
||||||
# If you have downloaded the emulator independently of SIMH (e.g, from
|
|
||||||
# www.ibm1130.org), please:
|
|
||||||
#
|
|
||||||
# Be sure that you DO have copies of scp.c, scp_tty.c, sim_sock.c,
|
|
||||||
# sim_tmxr.c, sim_rev.h, sim_defs.h, sim_sock.h and sim_tmxr.h
|
|
||||||
# in this folder.
|
|
||||||
#
|
|
||||||
# Use this file to make the emulator.
|
|
||||||
#
|
|
||||||
# If and when you download updates for this simulator from
|
|
||||||
# www.ibm1130.org, get ibm1130.zip. When you expand it,
|
|
||||||
# also expand ibm1130sofware.zip, which is inside.
|
|
||||||
#
|
|
||||||
# In either case, if you want to build DMS or work with assembly
|
|
||||||
# language programs outside of DMS, you'll want to make the utilities
|
|
||||||
# by cd'ing to the utils directory and running make there.
|
|
||||||
|
|
||||||
# CC Command
|
|
||||||
#
|
|
||||||
# Note: -O2 is sometimes broken in GCC when setjump/longjump is being
|
|
||||||
# used. Try -O2 only with released simulators.
|
|
||||||
#
|
|
||||||
CC = gcc -O0 -lm -I .
|
|
||||||
#CC = gcc -O2 -g -lm -I .
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Common Libraries
|
|
||||||
#
|
|
||||||
BIN =
|
|
||||||
SIM = scp.c sim_console.c sim_fio.c sim_sock.c sim_timer.c sim_tmxr.c scp_tty.c
|
|
||||||
SIM_INC = scp.h sim_console.h sim_defs.h sim_fio.h sim_rev.h sim_sock.h sim_timer.h sim_tmxr.h
|
|
||||||
|
|
||||||
#
|
|
||||||
# Emulator source files and compile time options
|
|
||||||
#
|
|
||||||
|
|
||||||
ibm1130D = ./
|
|
||||||
ibm1130 = ${ibm1130D}ibm1130_sys.c ${ibm1130D}ibm1130_cpu.c \
|
|
||||||
${ibm1130D}ibm1130_cr.c ${ibm1130D}ibm1130_disk.c \
|
|
||||||
${ibm1130D}ibm1130_stddev.c ${ibm1130D}ibm1130_gdu.c \
|
|
||||||
${ibm1130D}ibm1130_gui.c ${ibm1130D}ibm1130_prt.c \
|
|
||||||
${ibm1130D}ibm1130_ptrp.c ${ibm1130D}ibm1130_fmt.c
|
|
||||||
|
|
||||||
ibm1130_INC = ibm1130res.h ibm1130_conin.h ibm1130_conout.h \
|
|
||||||
ibm1130_defs.h ibm1130_prtwheel.h ibm1130_fmt.h \
|
|
||||||
dmsr2v12phases.h dmsr2v12slet.h
|
|
||||||
|
|
||||||
#
|
|
||||||
# Build the emulator
|
|
||||||
#
|
|
||||||
|
|
||||||
${BIN}ibm1130 : ${ibm1130} ${SIM} ${ibm1130_INC} ${SIM_INC}
|
|
||||||
${CC} ${ibm1130} ${SIM} -o $@
|
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
Here's the 1130 simulator as it stands now.
|
Here's the 1130 simulator as it stands now.
|
||||||
|
|
||||||
|
Status: 25Oct2012
|
||||||
|
|
||||||
|
* Added plotter and 2250 GDU support (though, we don't
|
||||||
|
have the 2250 support library)
|
||||||
|
|
||||||
|
* Numerous fixes, especially the error in compiling
|
||||||
|
the FORTRAN sqrt() function under extended precision.
|
||||||
|
|
||||||
Status: 22Jul2003
|
Status: 22Jul2003
|
||||||
|
|
||||||
* Added support for APL\1130 output translations
|
* Added support for APL\1130 output translations
|
||||||
|
|
|
@ -241,6 +241,7 @@ TMXR dz_desc = { DZ_MUXES * DZ_LINES, 0, 0, NULL }; /* mux descriptor */
|
||||||
#define DBG_INT 0x0002 /* display transfer requests */
|
#define DBG_INT 0x0002 /* display transfer requests */
|
||||||
#define DBG_XMT TMXR_DBG_XMT /* display Transmitted Data */
|
#define DBG_XMT TMXR_DBG_XMT /* display Transmitted Data */
|
||||||
#define DBG_RCV TMXR_DBG_RCV /* display Received Data */
|
#define DBG_RCV TMXR_DBG_RCV /* display Received Data */
|
||||||
|
#define DBG_MDM TMXR_DBG_MDM /* display Modem Signals */
|
||||||
#define DBG_TRC TMXR_DBG_TRC /* display trace routine calls */
|
#define DBG_TRC TMXR_DBG_TRC /* display trace routine calls */
|
||||||
#define DBG_ASY TMXR_DBG_ASY /* display Asynchronous Activities */
|
#define DBG_ASY TMXR_DBG_ASY /* display Asynchronous Activities */
|
||||||
|
|
||||||
|
@ -249,12 +250,12 @@ DEBTAB dz_debug[] = {
|
||||||
{"INT", DBG_INT},
|
{"INT", DBG_INT},
|
||||||
{"XMT", DBG_XMT},
|
{"XMT", DBG_XMT},
|
||||||
{"RCV", DBG_RCV},
|
{"RCV", DBG_RCV},
|
||||||
|
{"MDM", DBG_MDM},
|
||||||
{"TRC", DBG_TRC},
|
{"TRC", DBG_TRC},
|
||||||
{"ASY", DBG_ASY},
|
{"ASY", DBG_ASY},
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
DEVICE dz_dev;
|
|
||||||
t_stat dz_rd (int32 *data, int32 PA, int32 access);
|
t_stat dz_rd (int32 *data, int32 PA, int32 access);
|
||||||
t_stat dz_wr (int32 data, int32 PA, int32 access);
|
t_stat dz_wr (int32 data, int32 PA, int32 access);
|
||||||
int32 dz_rxinta (void);
|
int32 dz_rxinta (void);
|
||||||
|
@ -366,6 +367,7 @@ static char *dz_wr_regs[] =
|
||||||
t_stat dz_rd (int32 *data, int32 PA, int32 access)
|
t_stat dz_rd (int32 *data, int32 PA, int32 access)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
static BITFIELD* bitdefs[] = {dz_csr_bits, dz_rbuf_bits, dz_tcr_bits, dz_msr_bits};
|
||||||
int32 dz = ((PA - dz_dib.ba) >> 3) & DZ_MNOMASK; /* get mux num */
|
int32 dz = ((PA - dz_dib.ba) >> 3) & DZ_MNOMASK; /* get mux num */
|
||||||
|
|
||||||
switch ((PA >> 1) & 03) { /* case on PA<2:1> */
|
switch ((PA >> 1) & 03) { /* case on PA<2:1> */
|
||||||
|
@ -405,14 +407,16 @@ switch ((PA >> 1) & 03) { /* case on PA<2:1> */
|
||||||
tmxr_set_get_modem_bits (lp, 0, 0, &modem_bits);
|
tmxr_set_get_modem_bits (lp, 0, 0, &modem_bits);
|
||||||
|
|
||||||
dz_msr[dz] &= ~((1 << (MSR_V_RI + i)) | (1 << (MSR_V_CD + i)));
|
dz_msr[dz] &= ~((1 << (MSR_V_RI + i)) | (1 << (MSR_V_CD + i)));
|
||||||
dz_msr[dz] |= ((modem_bits&TMXR_MDM_RNG) ? (1 << (MSR_V_RI + i)) : 0) |
|
dz_msr[dz] |= (dz_tcr[dz] & (1 << (i + TCR_V_DTR))) ?
|
||||||
((modem_bits&TMXR_MDM_DCD) ? (1 << (MSR_V_CD + i)) : 0);
|
((modem_bits&TMXR_MDM_DCD) ? (1 << (MSR_V_CD + i)) : 0) :
|
||||||
|
((modem_bits&TMXR_MDM_RNG) ? (1 << (MSR_V_RI + i)) : 0);
|
||||||
}
|
}
|
||||||
*data = dz_msr[dz];
|
*data = dz_msr[dz];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sim_debug(DBG_REG, &dz_dev, "dz_rd(PA=0x%08X [%s], access=%d, data=0x%X)\n", PA, dz_rd_regs[(PA >> 1) & 03], access, *data);
|
sim_debug(DBG_REG, &dz_dev, "dz_rd(PA=0x%08X [%s], access=%d, data=0x%X) ", PA, dz_rd_regs[(PA >> 1) & 03], access, *data);
|
||||||
|
sim_debug_bits(DBG_REG, &dz_dev, bitdefs[(PA >> 1) & 03], (uint32)(*data), (uint32)(*data), TRUE);
|
||||||
|
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
@ -420,16 +424,19 @@ return SCPE_OK;
|
||||||
t_stat dz_wr (int32 data, int32 PA, int32 access)
|
t_stat dz_wr (int32 data, int32 PA, int32 access)
|
||||||
{
|
{
|
||||||
int32 dz = ((PA - dz_dib.ba) >> 3) & DZ_MNOMASK; /* get mux num */
|
int32 dz = ((PA - dz_dib.ba) >> 3) & DZ_MNOMASK; /* get mux num */
|
||||||
|
static BITFIELD* bitdefs[] = {dz_csr_bits, dz_lpr_bits, dz_tcr_bits, dz_tdr_bits};
|
||||||
int32 i, c, line;
|
int32 i, c, line;
|
||||||
char lineconfig[16];
|
char lineconfig[16];
|
||||||
TMLN *lp;
|
TMLN *lp;
|
||||||
|
|
||||||
sim_debug(DBG_REG, &dz_dev, "dz_wr(PA=0x%08X [%s], access=%d, data=0x%X)\n", PA, dz_wr_regs[(PA >> 1) & 03], access, data);
|
sim_debug(DBG_REG, &dz_dev, "dz_wr(PA=0x%08X [%s], access=%d, data=0x%X) ", PA, dz_wr_regs[(PA >> 1) & 03], access, data);
|
||||||
|
sim_debug_bits(DBG_REG, &dz_dev, bitdefs[(PA >> 1) & 03], (uint32)((PA & 1) ? data<<8 : data), (uint32)((PA & 1) ? data<<8 : data), TRUE);
|
||||||
|
|
||||||
switch ((PA >> 1) & 03) { /* case on PA<2:1> */
|
switch ((PA >> 1) & 03) { /* case on PA<2:1> */
|
||||||
|
|
||||||
case 00: /* CSR */
|
case 00: /* CSR */
|
||||||
if (access == WRITEB) data = (PA & 1)? /* byte? merge */
|
if (access == WRITEB)
|
||||||
|
data = (PA & 1)? /* byte? merge */
|
||||||
(dz_csr[dz] & 0377) | (data << 8):
|
(dz_csr[dz] & 0377) | (data << 8):
|
||||||
(dz_csr[dz] & ~0377) | data;
|
(dz_csr[dz] & ~0377) | data;
|
||||||
if (data & CSR_CLR) /* clr? reset */
|
if (data & CSR_CLR) /* clr? reset */
|
||||||
|
@ -467,10 +474,12 @@ switch ((PA >> 1) & 03) { /* case on PA<2:1> */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 02: /* TCR */
|
case 02: /* TCR */
|
||||||
if (access == WRITEB) data = (PA & 1)? /* byte? merge */
|
if (access == WRITEB)
|
||||||
|
data = (PA & 1)? /* byte? merge */
|
||||||
(dz_tcr[dz] & 0377) | (data << 8):
|
(dz_tcr[dz] & 0377) | (data << 8):
|
||||||
(dz_tcr[dz] & ~0377) | data;
|
(dz_tcr[dz] & ~0377) | data;
|
||||||
if (dz_mctl) { /* modem ctl? */
|
if (dz_mctl &&
|
||||||
|
((access != WRITEB) || (PA & 1))) { /* modem ctl (DTR)? */
|
||||||
int32 changed = data ^ dz_tcr[dz];
|
int32 changed = data ^ dz_tcr[dz];
|
||||||
|
|
||||||
for (i = 0; i < DZ_LINES; i++) {
|
for (i = 0; i < DZ_LINES; i++) {
|
||||||
|
@ -478,10 +487,10 @@ switch ((PA >> 1) & 03) { /* case on PA<2:1> */
|
||||||
continue; /* line unchanged skip */
|
continue; /* line unchanged skip */
|
||||||
line = (dz * DZ_LINES) + i; /* get line num */
|
line = (dz * DZ_LINES) + i; /* get line num */
|
||||||
lp = &dz_ldsc[line]; /* get line desc */
|
lp = &dz_ldsc[line]; /* get line desc */
|
||||||
if (data & (1 << (TCR_V_DTR + i))) {
|
if (data & (1 << (TCR_V_DTR + i))) { /* just asserted, so turn on */
|
||||||
tmxr_set_get_modem_bits (lp, TMXR_MDM_DTR|TMXR_MDM_RTS, 0, NULL);
|
tmxr_set_get_modem_bits (lp, TMXR_MDM_DTR|TMXR_MDM_RTS, 0, NULL);
|
||||||
}
|
}
|
||||||
else
|
else /* just deasserted, so turn off */
|
||||||
if (dz_auto)
|
if (dz_auto)
|
||||||
tmxr_set_get_modem_bits (lp, 0, TMXR_MDM_DTR|TMXR_MDM_RTS, NULL);
|
tmxr_set_get_modem_bits (lp, 0, TMXR_MDM_DTR|TMXR_MDM_RTS, NULL);
|
||||||
}
|
}
|
||||||
|
@ -641,6 +650,7 @@ void dz_set_rxint (int32 dz)
|
||||||
{
|
{
|
||||||
dz_rxi = dz_rxi | (1 << dz); /* set mux rcv int */
|
dz_rxi = dz_rxi | (1 << dz); /* set mux rcv int */
|
||||||
SET_INT (DZRX); /* set master intr */
|
SET_INT (DZRX); /* set master intr */
|
||||||
|
sim_debug(DBG_INT, &dz_dev, "dz_set_rxint(dz=%d)\n", dz);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -671,6 +681,7 @@ void dz_set_txint (int32 dz)
|
||||||
{
|
{
|
||||||
dz_txi = dz_txi | (1 << dz); /* set mux xmt int */
|
dz_txi = dz_txi | (1 << dz); /* set mux xmt int */
|
||||||
SET_INT (DZTX); /* set master intr */
|
SET_INT (DZTX); /* set master intr */
|
||||||
|
sim_debug(DBG_INT, &dz_dev, "dz_set_txint(dz=%d)\n", dz);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -740,7 +751,7 @@ t_stat dz_attach (UNIT *uptr, char *cptr)
|
||||||
int32 dz, muxln;
|
int32 dz, muxln;
|
||||||
t_stat r;
|
t_stat r;
|
||||||
|
|
||||||
if (sim_switches & SWMASK ('M')) /* modem control? */
|
if ((sim_switches & SWMASK ('M')) || dz_mctl) /* modem control? */
|
||||||
tmxr_set_modem_control_passthru (&dz_desc);
|
tmxr_set_modem_control_passthru (&dz_desc);
|
||||||
r = tmxr_attach (&dz_desc, uptr, cptr); /* attach mux */
|
r = tmxr_attach (&dz_desc, uptr, cptr); /* attach mux */
|
||||||
if (r != SCPE_OK) { /* error? */
|
if (r != SCPE_OK) { /* error? */
|
||||||
|
@ -778,8 +789,11 @@ return SCPE_OK;
|
||||||
|
|
||||||
t_stat dz_detach (UNIT *uptr)
|
t_stat dz_detach (UNIT *uptr)
|
||||||
{
|
{
|
||||||
|
t_stat r = tmxr_detach (&dz_desc, uptr);
|
||||||
|
|
||||||
dz_mctl = dz_auto = 0; /* modem ctl off */
|
dz_mctl = dz_auto = 0; /* modem ctl off */
|
||||||
return tmxr_detach (&dz_desc, uptr);
|
tmxr_clear_modem_control_passthru (&dz_desc);
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SET LINES processor */
|
/* SET LINES processor */
|
||||||
|
@ -804,8 +818,9 @@ if (newln < dz_desc.lines) {
|
||||||
for (i = newln; i < dz_desc.lines; i++) {
|
for (i = newln; i < dz_desc.lines; i++) {
|
||||||
if (dz_ldsc[i].conn) {
|
if (dz_ldsc[i].conn) {
|
||||||
tmxr_linemsg (&dz_ldsc[i], "\r\nOperator disconnected line\r\n");
|
tmxr_linemsg (&dz_ldsc[i], "\r\nOperator disconnected line\r\n");
|
||||||
tmxr_reset_ln (&dz_ldsc[i]); /* reset line */
|
tmxr_send_buffered_data (&dz_ldsc[i]);
|
||||||
}
|
}
|
||||||
|
tmxr_detach_ln (&dz_ldsc[i]); /* completely reset line */
|
||||||
if ((i % DZ_LINES) == (DZ_LINES - 1))
|
if ((i % DZ_LINES) == (DZ_LINES - 1))
|
||||||
dz_clear (i / DZ_LINES, TRUE); /* reset mux */
|
dz_clear (i / DZ_LINES, TRUE); /* reset mux */
|
||||||
}
|
}
|
||||||
|
|
|
@ -2718,7 +2718,7 @@ if (cptr) {
|
||||||
cap = (uint32) get_uint (cptr, 10, 0xFFFFFFFF, &r);
|
cap = (uint32) get_uint (cptr, 10, 0xFFFFFFFF, &r);
|
||||||
if ((sim_switches & SWMASK ('L')) == 0)
|
if ((sim_switches & SWMASK ('L')) == 0)
|
||||||
cap = cap * 1954;
|
cap = cap * 1954;
|
||||||
if ((r != SCPE_OK) || (cap < RA8U_MINC) || (cap >= max))
|
if ((r != SCPE_OK) || (cap < RA8U_MINC) || (cap > max))
|
||||||
return SCPE_ARG;
|
return SCPE_ARG;
|
||||||
drv_tab[val].lbn = cap;
|
drv_tab[val].lbn = cap;
|
||||||
}
|
}
|
||||||
|
|
11
README.md
11
README.md
|
@ -14,8 +14,15 @@
|
||||||
|
|
||||||
#### Howard Harte has implemented a Lincoln Labs TX-0 simulator.
|
#### Howard Harte has implemented a Lincoln Labs TX-0 simulator.
|
||||||
|
|
||||||
|
#### Updated AltairZ80 simulator from Peter Schorn.
|
||||||
|
|
||||||
|
#### Updated HP2100 simulator from Dave Bryan.
|
||||||
|
|
||||||
### New Functionality
|
### New Functionality
|
||||||
|
|
||||||
|
#### Remote Console Facility
|
||||||
|
A new capability has been added which allows a TELNET Connection to a user designated port so that some out of band commands can be entered to manipulate and/or adjust a running simulator. The commands which enable and control this capability are SET REMOTE TELNET=port, SET REMOTE CONNECTIONS=n and SHOW REMOTE.
|
||||||
|
|
||||||
#### VAX/PDP11 Enhancements
|
#### VAX/PDP11 Enhancements
|
||||||
RQ has new disk types: RC25, RCF25, RA80
|
RQ has new disk types: RC25, RCF25, RA80
|
||||||
RQ device has a settable controller type (RQDX3, UDA50, KLESI, RUX50)
|
RQ device has a settable controller type (RQDX3, UDA50, KLESI, RUX50)
|
||||||
|
@ -151,12 +158,16 @@ Other related changes/extensions:
|
||||||
SET NOQUIET Set normal output mode for command execution
|
SET NOQUIET Set normal output mode for command execution
|
||||||
SET PROMPT Change the prompt used by the simulator (defaulr sim>)
|
SET PROMPT Change the prompt used by the simulator (defaulr sim>)
|
||||||
SET THROTTLE x/t Throttle t ms every x cycles
|
SET THROTTLE x/t Throttle t ms every x cycles
|
||||||
|
SET REMOTE TELNET=port Specify remote console telnet port
|
||||||
|
SET REMOTE NOTELNET Disables remote console
|
||||||
|
SET REMOTE CONNECTIONS=n Specify the number of concurrent remote console sessions
|
||||||
SHOW FEATURES Displays the devices descriptions and features
|
SHOW FEATURES Displays the devices descriptions and features
|
||||||
SHOW ASYNCH Display the current Asynchronous I/O status
|
SHOW ASYNCH Display the current Asynchronous I/O status
|
||||||
SHOW SERIAL Display the available and/or open serial ports
|
SHOW SERIAL Display the available and/or open serial ports
|
||||||
SHOW ETHERNET Display the available and/or open ethernet connections
|
SHOW ETHERNET Display the available and/or open ethernet connections
|
||||||
SHOW MULTIPLEXER Display the details about open multiplexer devices
|
SHOW MULTIPLEXER Display the details about open multiplexer devices
|
||||||
SHOW CLOCKS Display the details about calibrated timers
|
SHOW CLOCKS Display the details about calibrated timers
|
||||||
|
SHOW REMOTE Display the remote console configuration
|
||||||
SHOW ON Display ON condition dispatch actions
|
SHOW ON Display ON condition dispatch actions
|
||||||
SET ON Enable ON condition error dispatching
|
SET ON Enable ON condition error dispatching
|
||||||
SET NOON Disable ON condition error dispatching
|
SET NOON Disable ON condition error dispatching
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="./;../;../ibm1130/"
|
AdditionalIncludeDirectories="./;../;../ibm1130/"
|
||||||
PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;SIM_NEED_GIT_COMMIT_ID"
|
PreprocessorDefinitions="GUI_SUPPORT;WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;SIM_NEED_GIT_COMMIT_ID"
|
||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
AdditionalIncludeDirectories="./;../;../ibm1130/"
|
AdditionalIncludeDirectories="./;../;../ibm1130/"
|
||||||
PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;SIM_NEED_GIT_COMMIT_ID"
|
PreprocessorDefinitions="GUI_SUPPORT;WIN32;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;SIM_NEED_GIT_COMMIT_ID"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
|
@ -306,6 +306,10 @@
|
||||||
RelativePath="..\ibm1130\ibm1130_defs.h"
|
RelativePath="..\ibm1130\ibm1130_defs.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\ibm1130_fmt.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\ibm1130\ibm1130_prtwheel.h"
|
RelativePath="..\ibm1130\ibm1130_prtwheel.h"
|
||||||
>
|
>
|
||||||
|
@ -367,6 +371,46 @@
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\1130consoleblank.bmp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\1132empty.bmp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\1132full.bmp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\1442empty.bmp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\1442eof.bmp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\1442full.bmp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\1442middle.bmp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\hand.cur"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\ibm1130.ico"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\Ibm1130\ibm1130.rc"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -115,7 +115,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
Description="Build Dependent ROM include File(s) & Check for required build dependencies & git commit id"
|
||||||
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="pushd ..
"$(TargetDir)BuildROMs"
popd

if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
Description="Check for required build dependencies & git commit id"
|
Description="Check for required build dependencies & git commit id"
|
||||||
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
CommandLine="if not exist ../../windows-build/winpcap/Wpdpack/Include/pcap.h goto _notice
if not exist ../../windows-build/pthreads/pthread.h goto _notice
goto _good

:_notice
echo ****************************************************
echo ****************************************************
echo ** The required build support is not available. **
echo ****************************************************
echo ****************************************************
type 0ReadMe_Projects.txt
exit 1

:_good
if not exist ..\.git goto _SetId
if exist ..\.git\hooks\post-commit goto _SetId
echo *****************************************************
echo *****************************************************
echo ** Installing git hooks in newly cloned repository **
echo *****************************************************
echo *****************************************************
copy git-hooks\post* ..\.git\hooks\
:_SetId
SET GIT_COMMIT_ID=
if not exist ..\.git-commit-id goto _NoId
for /F %%i in (..\.git-commit-id) do SET GIT_COMMIT_ID=%%i
:_NoId
SET OLD_GIT_COMMIT_ID=
if not exist .git-commit-id.h echo.>.git-commit-id.h
for /F "tokens=3" %%i in (.git-commit-id.h) do SET OLD_GIT_COMMIT_ID=%%i
if "%GIT_COMMIT_ID%" equ "%OLD_GIT_COMMIT_ID%" goto _IdGood
echo #define SIM_GIT_COMMIT_ID %GIT_COMMIT_ID% >.git-commit-id.h
:_IdGood
"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
BIN
doc/altairz80_doc.pdf
Normal file
BIN
doc/altairz80_doc.pdf
Normal file
Binary file not shown.
BIN
doc/simh_doc.doc
BIN
doc/simh_doc.doc
Binary file not shown.
42
makefile
42
makefile
|
@ -79,8 +79,8 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
ifeq (,$(GCC_VERSION))
|
ifeq (,$(GCC_VERSION))
|
||||||
ifeq (SunOS,$(OSTYPE))
|
ifeq (SunOS,$(OSTYPE))
|
||||||
ifneq (,$(shell $(GCC) -V 2>&1 | grep 'Sun C'))
|
ifneq (,$(shell $(GCC) -V 2>&1 | grep 'Sun C'))
|
||||||
SUNC_VERSION = $(shell $(GCC) -V 2>&1 | grep 'Sun C' | awk '{ print $$4 }')
|
SUNC_VERSION = $(shell $(GCC) -V 2>&1 | grep 'Sun C')
|
||||||
COMPILER_NAME = Sun C $(SUNC_VERSION)
|
COMPILER_NAME = $(wordlist 2,10,$(SUNC_VERSION))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -97,6 +97,18 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
ifeq (git-repo,$(shell if $(TEST) -d ./.git; then echo git-repo; fi))
|
||||||
|
ifeq (need-hooks,$(shell if $(TEST) ! -e ./.git/hooks/post-checkout; then echo need-hooks; fi))
|
||||||
|
$(info *** Installing git hooks in local repository ***)
|
||||||
|
GIT_HOOKS += $(shell /bin/cp './Visual Studio Projects/git-hooks/post-commit' ./.git/hooks/)
|
||||||
|
GIT_HOOKS += $(shell /bin/cp './Visual Studio Projects/git-hooks/post-checkout' ./.git/hooks/)
|
||||||
|
GIT_HOOKS += $(shell /bin/cp './Visual Studio Projects/git-hooks/post-merge' ./.git/hooks/)
|
||||||
|
GIT_HOOKS += $(shell ./.git/hooks/post-checkout)
|
||||||
|
ifneq (,$(strip $(GIT_HOOKS)))
|
||||||
|
$(info *** Warning - Error installing git hooks *** $(GIT_HOOKS))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
LTO_EXCLUDE_VERSIONS =
|
LTO_EXCLUDE_VERSIONS =
|
||||||
PCAPLIB = pcap
|
PCAPLIB = pcap
|
||||||
ifeq (agcc,$(findstring agcc,$(GCC))) # Android target build?
|
ifeq (agcc,$(findstring agcc,$(GCC))) # Android target build?
|
||||||
|
@ -111,6 +123,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
OS_CCDEFS = -D_GNU_SOURCE
|
OS_CCDEFS = -D_GNU_SOURCE
|
||||||
GCC_OPTIMIZERS_CMD = $(GCC) -v --help 2>&1
|
GCC_OPTIMIZERS_CMD = $(GCC) -v --help 2>&1
|
||||||
GCC_WARNINGS_CMD = $(GCC) -v --help 2>&1
|
GCC_WARNINGS_CMD = $(GCC) -v --help 2>&1
|
||||||
|
LD_ELF = $(shell echo | $(GCC) -E -dM - | grep __ELF__)
|
||||||
ifeq (Darwin,$(OSTYPE))
|
ifeq (Darwin,$(OSTYPE))
|
||||||
OSNAME = OSX
|
OSNAME = OSX
|
||||||
LIBEXT = dylib
|
LIBEXT = dylib
|
||||||
|
@ -153,6 +166,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
PCAPLIB = wpcap
|
PCAPLIB = wpcap
|
||||||
LIBEXT = a
|
LIBEXT = a
|
||||||
else
|
else
|
||||||
|
ifeq (,$(findstring NetBSD,$(OSTYPE)))
|
||||||
LDSEARCH :=$(shell ldconfig -r | grep 'search directories' | awk '{print $$3}' | sed 's/:/ /g')
|
LDSEARCH :=$(shell ldconfig -r | grep 'search directories' | awk '{print $$3}' | sed 's/:/ /g')
|
||||||
ifneq (,$(LDSEARCH))
|
ifneq (,$(LDSEARCH))
|
||||||
LIBPATH := $(LDSEARCH)
|
LIBPATH := $(LDSEARCH)
|
||||||
|
@ -163,6 +177,7 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
$(info *** Warning *** to have fully working simulators.)
|
$(info *** Warning *** to have fully working simulators.)
|
||||||
$(info *** Warning ***)
|
$(info *** Warning ***)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
ifeq (usrpkglib,$(shell if $(TEST) -d /usr/pkg/lib; then echo usrpkglib; fi))
|
ifeq (usrpkglib,$(shell if $(TEST) -d /usr/pkg/lib; then echo usrpkglib; fi))
|
||||||
LIBPATH += /usr/pkg/lib
|
LIBPATH += /usr/pkg/lib
|
||||||
OS_LDFLAGS += -L/usr/pkg/lib -R/usr/pkg/lib
|
OS_LDFLAGS += -L/usr/pkg/lib -R/usr/pkg/lib
|
||||||
|
@ -303,8 +318,6 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
LIBEXT = $(LIBEXTSAVE)
|
LIBEXT = $(LIBEXTSAVE)
|
||||||
else
|
|
||||||
$(error using libpcap: missing pcap.h)
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifneq (,$(findstring USE_NETWORK,$(NETWORK_CCDEFS))$(findstring USE_SHARED,$(NETWORK_CCDEFS)))
|
ifneq (,$(findstring USE_NETWORK,$(NETWORK_CCDEFS))$(findstring USE_SHARED,$(NETWORK_CCDEFS)))
|
||||||
|
@ -360,8 +373,12 @@ ifeq ($(WIN32),) #*nix Environments (&& cygwin)
|
||||||
ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi))
|
ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi))
|
||||||
MKDIRBIN = mkdir -p BIN
|
MKDIRBIN = mkdir -p BIN
|
||||||
endif
|
endif
|
||||||
ifneq (,$(shell if $(TEST) -e .git-commit-id; then echo commit-id-exists; fi))
|
ifeq (commit-id-exists,$(shell if $(TEST) -e .git-commit-id; then echo commit-id-exists; fi))
|
||||||
GIT_COMMIT_ID=$(shell cat .git-commit-id)
|
GIT_COMMIT_ID=$(shell cat .git-commit-id)
|
||||||
|
else
|
||||||
|
ifeq (,$(shell grep 'define SIM_GIT_COMMIT_ID' sim_rev.h | grep 'Format:'))
|
||||||
|
GIT_COMMIT_ID=$(shell grep 'define SIM_GIT_COMMIT_ID' sim_rev.h | awk '{ print $$3 }')
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
#Win32 Environments (via MinGW32)
|
#Win32 Environments (via MinGW32)
|
||||||
|
@ -411,6 +428,10 @@ else
|
||||||
endif
|
endif
|
||||||
ifneq (,$(shell if exist .git-commit-id type .git-commit-id))
|
ifneq (,$(shell if exist .git-commit-id type .git-commit-id))
|
||||||
GIT_COMMIT_ID=$(shell if exist .git-commit-id type .git-commit-id)
|
GIT_COMMIT_ID=$(shell if exist .git-commit-id type .git-commit-id)
|
||||||
|
else
|
||||||
|
ifeq (,$(shell findstr /C:"define SIM_GIT_COMMIT_ID" sim_rev.h | findstr Format))
|
||||||
|
GIT_COMMIT_ID=$(shell for /F "tokens=3" %%i in ("$(shell findstr /C:"define SIM_GIT_COMMIT_ID" sim_rev.h)") do echo %%i)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifneq (,$(GIT_COMMIT_ID))
|
ifneq (,$(GIT_COMMIT_ID))
|
||||||
|
@ -506,7 +527,7 @@ else
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
CC_OUTSPEC = -o $@
|
CC_OUTSPEC = -o $@
|
||||||
CC = $(GCC) $(CC_STD) -U__STRICT_ANSI__ $(CFLAGS_G) $(CFLAGS_O) $(CFLAGS_GIT) -I . $(OS_CCDEFS) $(ROMS_OPT)
|
CC = $(GCC) $(CC_STD) -U__STRICT_ANSI__ $(CFLAGS_G) $(CFLAGS_O) $(CFLAGS_GIT) -DSIM_COMPILER="$(COMPILER_NAME)" -I . $(OS_CCDEFS) $(ROMS_OPT)
|
||||||
LDFLAGS = $(OS_LDFLAGS) $(NETWORK_LDFLAGS) $(LDFLAGS_O)
|
LDFLAGS = $(OS_LDFLAGS) $(NETWORK_LDFLAGS) $(LDFLAGS_O)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -733,6 +754,9 @@ IBM1130 = ${IBM1130D}/ibm1130_cpu.c ${IBM1130D}/ibm1130_cr.c \
|
||||||
${IBM1130D}/ibm1130_plot.c ${IBM1130D}/ibm1130_sca.c \
|
${IBM1130D}/ibm1130_plot.c ${IBM1130D}/ibm1130_sca.c \
|
||||||
${IBM1130D}/ibm1130_t2741.c
|
${IBM1130D}/ibm1130_t2741.c
|
||||||
IBM1130_OPT = -I ${IBM1130D}
|
IBM1130_OPT = -I ${IBM1130D}
|
||||||
|
ifneq ($(WIN32),)
|
||||||
|
IBM1130_OPT += -DGUI_SUPPORT -lgdi32
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
ID16D = Interdata
|
ID16D = Interdata
|
||||||
|
@ -1017,7 +1041,13 @@ ibm1130 : ${BIN}ibm1130${EXE}
|
||||||
|
|
||||||
${BIN}ibm1130${EXE} : ${IBM1130}
|
${BIN}ibm1130${EXE} : ${IBM1130}
|
||||||
${MKDIRBIN}
|
${MKDIRBIN}
|
||||||
|
ifneq ($(WIN32),)
|
||||||
|
windres ${IBM1130D}/ibm1130.rc $(BIN)ibm1130.o
|
||||||
|
${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} $(BIN)ibm1130.o $(CC_OUTSPEC) ${LDFLAGS}
|
||||||
|
del BIN\ibm1130.o
|
||||||
|
else
|
||||||
${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} $(CC_OUTSPEC) ${LDFLAGS}
|
${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} $(CC_OUTSPEC) ${LDFLAGS}
|
||||||
|
endif
|
||||||
|
|
||||||
s3 : ${BIN}s3${EXE}
|
s3 : ${BIN}s3${EXE}
|
||||||
|
|
||||||
|
|
111
scp.c
111
scp.c
|
@ -392,7 +392,7 @@ BRKTAB *sim_brk_new (t_addr loc);
|
||||||
|
|
||||||
SCHTAB *get_search (char *cptr, int32 radix, SCHTAB *schptr);
|
SCHTAB *get_search (char *cptr, int32 radix, SCHTAB *schptr);
|
||||||
int32 test_search (t_value val, SCHTAB *schptr);
|
int32 test_search (t_value val, SCHTAB *schptr);
|
||||||
char *get_glyph_gen (char *iptr, char *optr, char mchar, t_bool uc);
|
static char *get_glyph_gen (char *iptr, char *optr, char mchar, t_bool uc, t_bool quote);
|
||||||
int32 get_switches (char *cptr);
|
int32 get_switches (char *cptr);
|
||||||
char *get_sim_sw (char *cptr);
|
char *get_sim_sw (char *cptr);
|
||||||
t_stat get_aval (t_addr addr, DEVICE *dptr, UNIT *uptr);
|
t_stat get_aval (t_addr addr, DEVICE *dptr, UNIT *uptr);
|
||||||
|
@ -730,7 +730,7 @@ static CTAB cmd_table[] = {
|
||||||
"sh{ow} a{synch} show asynchronouse I/O state\n"
|
"sh{ow} a{synch} show asynchronouse I/O state\n"
|
||||||
"sh{ow} ve{rsion} show simulator version\n"
|
"sh{ow} ve{rsion} show simulator version\n"
|
||||||
"sh{ow} def{ault} show current directory\n"
|
"sh{ow} def{ault} show current directory\n"
|
||||||
"sh{ow} rem{oteconsole} show remote console configuration\n"
|
"sh{ow} re{mote} show remote console configuration\n"
|
||||||
"sh{ow} <dev> RADIX show device display radix\n"
|
"sh{ow} <dev> RADIX show device display radix\n"
|
||||||
"sh{ow} <dev> DEBUG show device debug flags\n"
|
"sh{ow} <dev> DEBUG show device debug flags\n"
|
||||||
"sh{ow} <dev> MODIFIERS show device modifiers\n"
|
"sh{ow} <dev> MODIFIERS show device modifiers\n"
|
||||||
|
@ -1648,7 +1648,6 @@ do {
|
||||||
cmdp->message ((!echo && !sim_quiet) ? ocptr : NULL, stat);
|
cmdp->message ((!echo && !sim_quiet) ? ocptr : NULL, stat);
|
||||||
else
|
else
|
||||||
if (stat >= SCPE_BASE) { /* report error if not suppressed */
|
if (stat >= SCPE_BASE) { /* report error if not suppressed */
|
||||||
|
|
||||||
printf ("%s\n", sim_error_text (stat));
|
printf ("%s\n", sim_error_text (stat));
|
||||||
if (sim_log)
|
if (sim_log)
|
||||||
fprintf (sim_log, "%s\n", sim_error_text (stat));
|
fprintf (sim_log, "%s\n", sim_error_text (stat));
|
||||||
|
@ -1787,10 +1786,10 @@ for (; *ip && (op < oend); ) {
|
||||||
}
|
}
|
||||||
else { /* environment variable */
|
else { /* environment variable */
|
||||||
ap = NULL;
|
ap = NULL;
|
||||||
get_glyph_gen (ip+1, gbuf, '%', FALSE); /* first try using the literal name */
|
get_glyph_nc (ip+1, gbuf, '%'); /* first try using the literal name */
|
||||||
ap = getenv(gbuf);
|
ap = getenv(gbuf);
|
||||||
if (!ap) {
|
if (!ap) {
|
||||||
get_glyph_gen (ip+1, gbuf, '%', TRUE); /* now try using the upcased name */
|
get_glyph (ip+1, gbuf, '%'); /* now try using the upcased name */
|
||||||
ap = getenv(gbuf);
|
ap = getenv(gbuf);
|
||||||
}
|
}
|
||||||
ip += 1 + strlen (gbuf);
|
ip += 1 + strlen (gbuf);
|
||||||
|
@ -1847,7 +1846,7 @@ for (; *ip && (op < oend); ) {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (ip == istart) { /* at beginning of input? */
|
if (ip == istart) { /* at beginning of input? */
|
||||||
get_glyph_gen (instr, gbuf, 0, TRUE); /* substitute initial token */
|
get_glyph (instr, gbuf, 0); /* substitute initial token */
|
||||||
ap = getenv(gbuf); /* if it is an environment variable name */
|
ap = getenv(gbuf); /* if it is an environment variable name */
|
||||||
if (!ap) { /* nope? */
|
if (!ap) { /* nope? */
|
||||||
*op++ = *ip++; /* press on with literal character */
|
*op++ = *ip++; /* press on with literal character */
|
||||||
|
@ -2189,7 +2188,7 @@ char varname[CBUFSIZE];
|
||||||
|
|
||||||
if ((!cptr) || (*cptr == 0)) /* now eol? */
|
if ((!cptr) || (*cptr == 0)) /* now eol? */
|
||||||
return SCPE_2FARG;
|
return SCPE_2FARG;
|
||||||
cptr = get_glyph_gen (cptr, varname, '=', TRUE); /* get environment variable name */
|
cptr = get_glyph (cptr, varname, '='); /* get environment variable name */
|
||||||
setenv(varname, cptr, 1);
|
setenv(varname, cptr, 1);
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
@ -2198,7 +2197,7 @@ return SCPE_OK;
|
||||||
|
|
||||||
t_stat set_cmd (int32 flag, char *cptr)
|
t_stat set_cmd (int32 flag, char *cptr)
|
||||||
{
|
{
|
||||||
uint32 lvl;
|
uint32 lvl = 0;
|
||||||
t_stat r;
|
t_stat r;
|
||||||
char gbuf[CBUFSIZE], *cvptr, *svptr;
|
char gbuf[CBUFSIZE], *cvptr, *svptr;
|
||||||
DEVICE *dptr;
|
DEVICE *dptr;
|
||||||
|
@ -2303,11 +2302,18 @@ while (*cptr != 0) { /* do all mods */
|
||||||
if ((lvl == MTAB_VUN) && (uptr->flags & UNIT_DIS))
|
if ((lvl == MTAB_VUN) && (uptr->flags & UNIT_DIS))
|
||||||
return SCPE_UDIS; /* unit disabled? */
|
return SCPE_UDIS; /* unit disabled? */
|
||||||
if (mptr->valid) { /* validation rtn? */
|
if (mptr->valid) { /* validation rtn? */
|
||||||
|
if (cvptr && MODMASK(mptr,MTAB_QUOTE)) {
|
||||||
|
get_glyph_quoted (svptr, gbuf, ',');
|
||||||
|
if ((cvptr = strchr (gbuf, '=')))
|
||||||
|
*cvptr++ = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
if (cvptr && MODMASK(mptr,MTAB_NC)) {
|
if (cvptr && MODMASK(mptr,MTAB_NC)) {
|
||||||
get_glyph_nc (svptr, gbuf, ',');
|
get_glyph_nc (svptr, gbuf, ',');
|
||||||
if ((cvptr = strchr (gbuf, '=')))
|
if ((cvptr = strchr (gbuf, '=')))
|
||||||
*cvptr++ = 0;
|
*cvptr++ = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
r = mptr->valid (uptr, mptr->match, cvptr, mptr->desc);
|
r = mptr->valid (uptr, mptr->match, cvptr, mptr->desc);
|
||||||
if (r != SCPE_OK)
|
if (r != SCPE_OK)
|
||||||
return r;
|
return r;
|
||||||
|
@ -2778,6 +2784,24 @@ if (flag) {
|
||||||
fprintf (st, "\n\t\tAsynchronous Clock support");
|
fprintf (st, "\n\t\tAsynchronous Clock support");
|
||||||
#endif
|
#endif
|
||||||
fprintf (st, "\n\tHost Platform:");
|
fprintf (st, "\n\tHost Platform:");
|
||||||
|
#if defined (__clang_version__)
|
||||||
|
fprintf (st, "\n\t\tCompiler: clang %s", __clang_version__);
|
||||||
|
#elif defined (__GNUC__) && defined (__VERSION__)
|
||||||
|
fprintf (st, "\n\t\tCompiler: GCC %s", __VERSION__);
|
||||||
|
#elif defined (_MSC_FULL_VER) && defined (_MSC_BUILD)
|
||||||
|
fprintf (st, "\n\t\tCompiler: Microsoft Visual C++ %d.%02d.%05d.%02d", _MSC_FULL_VER/10000000, (_MSC_FULL_VER/100000)%100, _MSC_FULL_VER%100000, _MSC_BUILD);
|
||||||
|
#elif defined (__DECC_VER)
|
||||||
|
fprintf (st, "\n\t\tCompiler: DEC C %c%d.%d-%03d", ("T SV")[((__DECC_VER/10000)%10)-6], __DECC_VER/10000000, (__DECC_VER/100000)%100, __DECC_VER%10000);
|
||||||
|
#elif defined (SIM_COMPILER)
|
||||||
|
#define S_xstr(a) S_str(a)
|
||||||
|
#define S_str(a) #a
|
||||||
|
fprintf (st, "\n\t\tCompiler: %s", S_xstr(SIM_COMPILER));
|
||||||
|
#undef S_str
|
||||||
|
#undef S_xstr
|
||||||
|
#endif
|
||||||
|
#if defined (__DATE__) && defined (__TIME__)
|
||||||
|
fprintf (st, "\n\t\tSimulator Compiled: %s at %s", __DATE__, __TIME__);
|
||||||
|
#endif
|
||||||
fprintf (st, "\n\t\tMemory Access: %s Endian", sim_end ? "Little" : "Big");
|
fprintf (st, "\n\t\tMemory Access: %s Endian", sim_end ? "Little" : "Big");
|
||||||
fprintf (st, "\n\t\tMemory Pointer Size: %d bits", (int)sizeof(dptr)*8);
|
fprintf (st, "\n\t\tMemory Pointer Size: %d bits", (int)sizeof(dptr)*8);
|
||||||
fprintf (st, "\n\t\t%s", sim_toffset_64 ? "Large File (>2GB) support" : "No Large File support");
|
fprintf (st, "\n\t\t%s", sim_toffset_64 ? "Large File (>2GB) support" : "No Large File support");
|
||||||
|
@ -2799,6 +2823,15 @@ if (flag) {
|
||||||
#define S_xstr(a) S_str(a)
|
#define S_xstr(a) S_str(a)
|
||||||
#define S_str(a) #a
|
#define S_str(a) #a
|
||||||
fprintf (st, "%sgit commit id: %8.8s", flag ? "\n " : " ", S_xstr(SIM_GIT_COMMIT_ID));
|
fprintf (st, "%sgit commit id: %8.8s", flag ? "\n " : " ", S_xstr(SIM_GIT_COMMIT_ID));
|
||||||
|
#undef S_str
|
||||||
|
#undef S_xstr
|
||||||
|
#endif
|
||||||
|
#if defined(SIM_BUILD)
|
||||||
|
#define S_xstr(a) S_str(a)
|
||||||
|
#define S_str(a) #a
|
||||||
|
fprintf (st, "%sBuild: %s", flag ? "\n " : " ", S_xstr(SIM_BUILD));
|
||||||
|
#undef S_str
|
||||||
|
#undef S_xstr
|
||||||
#endif
|
#endif
|
||||||
fprintf (st, "\n");
|
fprintf (st, "\n");
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
|
@ -3371,10 +3404,22 @@ if (sim_switches & SWMASK ('R')) { /* read only? */
|
||||||
if (!sim_quiet)
|
if (!sim_quiet)
|
||||||
printf ("%s: unit is read only\n", sim_dname (dptr));
|
printf ("%s: unit is read only\n", sim_dname (dptr));
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (sim_switches & SWMASK ('N')) { /* new file only? */
|
||||||
|
uptr->fileref = sim_fopen (cptr, "wb+"); /* open new file */
|
||||||
|
if (uptr->fileref == NULL) /* open fail? */
|
||||||
|
return attach_err (uptr, SCPE_OPENERR); /* yes, error */
|
||||||
|
if (!sim_quiet)
|
||||||
|
printf ("%s: creating new file\n", sim_dname (dptr));
|
||||||
|
}
|
||||||
else { /* normal */
|
else { /* normal */
|
||||||
uptr->fileref = sim_fopen (cptr, "rb+"); /* open r/w */
|
uptr->fileref = sim_fopen (cptr, "rb+"); /* open r/w */
|
||||||
if (uptr->fileref == NULL) { /* open fail? */
|
if (uptr->fileref == NULL) { /* open fail? */
|
||||||
|
#if defined(EPERM)
|
||||||
|
if ((errno == EROFS) || (errno == EACCES) || (errno == EPERM)) {/* read only? */
|
||||||
|
#else
|
||||||
if ((errno == EROFS) || (errno == EACCES)) {/* read only? */
|
if ((errno == EROFS) || (errno == EACCES)) {/* read only? */
|
||||||
|
#endif
|
||||||
if ((uptr->flags & UNIT_ROABLE) == 0) /* allowed? */
|
if ((uptr->flags & UNIT_ROABLE) == 0) /* allowed? */
|
||||||
return attach_err (uptr, SCPE_NORO);/* no error */
|
return attach_err (uptr, SCPE_NORO);/* no error */
|
||||||
uptr->fileref = sim_fopen (cptr, "rb"); /* open rd only */
|
uptr->fileref = sim_fopen (cptr, "rb"); /* open rd only */
|
||||||
|
@ -3390,10 +3435,12 @@ else { /* normal */
|
||||||
uptr->fileref = sim_fopen (cptr, "wb+");/* open new file */
|
uptr->fileref = sim_fopen (cptr, "wb+");/* open new file */
|
||||||
if (uptr->fileref == NULL) /* open fail? */
|
if (uptr->fileref == NULL) /* open fail? */
|
||||||
return attach_err (uptr, SCPE_OPENERR); /* yes, error */
|
return attach_err (uptr, SCPE_OPENERR); /* yes, error */
|
||||||
if (!sim_quiet) printf ("%s: creating new file\n", sim_dname (dptr));
|
if (!sim_quiet)
|
||||||
|
printf ("%s: creating new file\n", sim_dname (dptr));
|
||||||
}
|
}
|
||||||
} /* end if null */
|
} /* end if null */
|
||||||
} /* end else */
|
} /* end else */
|
||||||
|
}
|
||||||
if (uptr->flags & UNIT_BUFABLE) { /* buffer? */
|
if (uptr->flags & UNIT_BUFABLE) { /* buffer? */
|
||||||
uint32 cap = ((uint32) uptr->capac) / dptr->aincr; /* effective size */
|
uint32 cap = ((uint32) uptr->capac) / dptr->aincr; /* effective size */
|
||||||
if (uptr->flags & UNIT_MUSTBUF) /* dyn alloc? */
|
if (uptr->flags & UNIT_MUSTBUF) /* dyn alloc? */
|
||||||
|
@ -4304,6 +4351,7 @@ return sim_cancel (&sim_step_unit);
|
||||||
void int_handler (int sig)
|
void int_handler (int sig)
|
||||||
{
|
{
|
||||||
stop_cpu = 1;
|
stop_cpu = 1;
|
||||||
|
sim_interval = 0; /* should speed up stop detection */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5050,20 +5098,38 @@ return cptr;
|
||||||
|
|
||||||
/* get_glyph get next glyph (force upper case)
|
/* get_glyph get next glyph (force upper case)
|
||||||
get_glyph_nc get next glyph (no conversion)
|
get_glyph_nc get next glyph (no conversion)
|
||||||
|
get_glyph_quoted get next glyph (potentially enclosed in quotes, no conversion)
|
||||||
get_glyph_gen get next glyph (general case)
|
get_glyph_gen get next glyph (general case)
|
||||||
|
|
||||||
Inputs:
|
Inputs:
|
||||||
iptr = pointer to input string
|
iptr = pointer to input string
|
||||||
optr = pointer to output string
|
optr = pointer to output string
|
||||||
mchar = optional end of glyph character
|
mchar = optional end of glyph character
|
||||||
flag = TRUE for convert to upper case (_gen only)
|
uc = TRUE for convert to upper case (_gen only)
|
||||||
|
quote = TRUE to allow quote enclosing values (_gen only)
|
||||||
Outputs
|
Outputs
|
||||||
result = pointer to next character in input string
|
result = pointer to next character in input string
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *get_glyph_gen (char *iptr, char *optr, char mchar, t_bool uc)
|
static char *get_glyph_gen (char *iptr, char *optr, char mchar, t_bool uc, t_bool quote)
|
||||||
{
|
{
|
||||||
while ((isspace (*iptr) == 0) && (*iptr != 0) && (*iptr != mchar)) {
|
t_bool quoting = FALSE;
|
||||||
|
char quote_char = 0;
|
||||||
|
|
||||||
|
while ((*iptr != 0) &&
|
||||||
|
((quote && quoting) || ((isspace (*iptr) == 0) && (*iptr != mchar)))) {
|
||||||
|
if (quote) {
|
||||||
|
if (quoting) {
|
||||||
|
if (*iptr == quote_char)
|
||||||
|
quoting = FALSE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((*iptr == '"') || (*iptr == '\'')) {
|
||||||
|
quoting = TRUE;
|
||||||
|
quote_char = *iptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (islower (*iptr) && uc)
|
if (islower (*iptr) && uc)
|
||||||
*optr = toupper (*iptr);
|
*optr = toupper (*iptr);
|
||||||
else *optr = *iptr;
|
else *optr = *iptr;
|
||||||
|
@ -5079,12 +5145,17 @@ return iptr;
|
||||||
|
|
||||||
char *get_glyph (char *iptr, char *optr, char mchar)
|
char *get_glyph (char *iptr, char *optr, char mchar)
|
||||||
{
|
{
|
||||||
return get_glyph_gen (iptr, optr, mchar, TRUE);
|
return get_glyph_gen (iptr, optr, mchar, TRUE, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *get_glyph_nc (char *iptr, char *optr, char mchar)
|
char *get_glyph_nc (char *iptr, char *optr, char mchar)
|
||||||
{
|
{
|
||||||
return get_glyph_gen (iptr, optr, mchar, FALSE);
|
return get_glyph_gen (iptr, optr, mchar, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *get_glyph_quoted (char *iptr, char *optr, char mchar)
|
||||||
|
{
|
||||||
|
return get_glyph_gen (iptr, optr, mchar, FALSE, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Trim trailing spaces from a string
|
/* Trim trailing spaces from a string
|
||||||
|
@ -6578,7 +6649,7 @@ if (sim_deb && (dptr->dctrl & dbits)) {
|
||||||
#endif /* NO_vsnprintf */
|
#endif /* NO_vsnprintf */
|
||||||
va_end (arglist);
|
va_end (arglist);
|
||||||
|
|
||||||
/* If it didn't fit into the buffer, then grow it and try again */
|
/* If the formatted result didn't fit into the buffer, then grow the buffer and try again */
|
||||||
|
|
||||||
if ((len < 0) || (len >= bufsize-1)) {
|
if ((len < 0) || (len >= bufsize-1)) {
|
||||||
if (buf != stackbuf)
|
if (buf != stackbuf)
|
||||||
|
@ -6609,8 +6680,14 @@ if (sim_deb && (dptr->dctrl & dbits)) {
|
||||||
j = i + 1;
|
j = i + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i > j)
|
if (i > j) {
|
||||||
fwrite (&buf[j], 1, i-j, sim_deb);
|
if (debug_unterm)
|
||||||
|
fprintf (sim_deb, "%.*s", i-j, &buf[j]);
|
||||||
|
else /* print prefix when required */
|
||||||
|
fprintf (sim_deb, "DBG(%.0f)%s> %s %s: %.*s", sim_gtime(),
|
||||||
|
AIO_MAIN_THREAD ? "" : "+",
|
||||||
|
dptr->name, debug_type, i-j, &buf[j]);
|
||||||
|
}
|
||||||
|
|
||||||
/* Set unterminated flag for next time */
|
/* Set unterminated flag for next time */
|
||||||
|
|
||||||
|
|
3
scp.h
3
scp.h
|
@ -111,11 +111,13 @@ t_stat get_yn (char *ques, t_stat deflt);
|
||||||
char *get_sim_opt (int32 opt, char *cptr, t_stat *st);
|
char *get_sim_opt (int32 opt, char *cptr, t_stat *st);
|
||||||
char *get_glyph (char *iptr, char *optr, char mchar);
|
char *get_glyph (char *iptr, char *optr, char mchar);
|
||||||
char *get_glyph_nc (char *iptr, char *optr, char mchar);
|
char *get_glyph_nc (char *iptr, char *optr, char mchar);
|
||||||
|
char *get_glyph_quoted (char *iptr, char *optr, char mchar);
|
||||||
t_value get_uint (char *cptr, uint32 radix, t_value max, t_stat *status);
|
t_value get_uint (char *cptr, uint32 radix, t_value max, t_stat *status);
|
||||||
char *get_range (DEVICE *dptr, char *cptr, t_addr *lo, t_addr *hi,
|
char *get_range (DEVICE *dptr, char *cptr, t_addr *lo, t_addr *hi,
|
||||||
uint32 rdx, t_addr max, char term);
|
uint32 rdx, t_addr max, char term);
|
||||||
t_value strtotv (const char *cptr, char **endptr, uint32 radix);
|
t_value strtotv (const char *cptr, char **endptr, uint32 radix);
|
||||||
t_stat fprint_val (FILE *stream, t_value val, uint32 rdx, uint32 wid, uint32 fmt);
|
t_stat fprint_val (FILE *stream, t_value val, uint32 rdx, uint32 wid, uint32 fmt);
|
||||||
|
char *read_line (char *cptr, int32 size, FILE *stream);
|
||||||
void fprint_reg_help (FILE *st, DEVICE *dptr);
|
void fprint_reg_help (FILE *st, DEVICE *dptr);
|
||||||
void fprint_set_help (FILE *st, DEVICE *dptr);
|
void fprint_set_help (FILE *st, DEVICE *dptr);
|
||||||
void fprint_show_help (FILE *st, DEVICE *dptr);
|
void fprint_show_help (FILE *st, DEVICE *dptr);
|
||||||
|
@ -165,6 +167,7 @@ extern FILE *sim_deb; /* debug file */
|
||||||
extern FILEREF *sim_deb_ref; /* debug file file reference */
|
extern FILEREF *sim_deb_ref; /* debug file file reference */
|
||||||
extern UNIT *sim_clock_queue;
|
extern UNIT *sim_clock_queue;
|
||||||
extern int32 sim_is_running;
|
extern int32 sim_is_running;
|
||||||
|
extern char *sim_prompt; /* prompt string */
|
||||||
extern volatile int32 stop_cpu;
|
extern volatile int32 stop_cpu;
|
||||||
extern uint32 sim_brk_types; /* breakpoint info */
|
extern uint32 sim_brk_types; /* breakpoint info */
|
||||||
extern uint32 sim_brk_dflt;
|
extern uint32 sim_brk_dflt;
|
||||||
|
|
|
@ -2089,7 +2089,7 @@ static t_bool sim_os_ttisatty (void)
|
||||||
return isatty (0);
|
return isatty (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static static t_stat sim_os_poll_kbd (void)
|
static t_stat sim_os_poll_kbd (void)
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
unsigned char buf[1];
|
unsigned char buf[1];
|
||||||
|
|
|
@ -90,7 +90,6 @@ t_stat sim_ttrun (void);
|
||||||
t_stat sim_ttcmd (void);
|
t_stat sim_ttcmd (void);
|
||||||
t_stat sim_ttclose (void);
|
t_stat sim_ttclose (void);
|
||||||
t_bool sim_ttisatty (void);
|
t_bool sim_ttisatty (void);
|
||||||
t_stat sim_os_poll_kbd (void);
|
|
||||||
int32 sim_tt_inpcvt (int32 c, uint32 mode);
|
int32 sim_tt_inpcvt (int32 c, uint32 mode);
|
||||||
int32 sim_tt_outcvt (int32 c, uint32 mode);
|
int32 sim_tt_outcvt (int32 c, uint32 mode);
|
||||||
|
|
||||||
|
|
|
@ -562,7 +562,8 @@ struct sim_mtab {
|
||||||
#define MTAB_VALO (0010 | MTAB_XTD) /* takes a value (optional) */
|
#define MTAB_VALO (0010 | MTAB_XTD) /* takes a value (optional) */
|
||||||
#define MTAB_NMO (0020 | MTAB_XTD) /* only if named */
|
#define MTAB_NMO (0020 | MTAB_XTD) /* only if named */
|
||||||
#define MTAB_NC (0040 | MTAB_XTD) /* no UC conversion */
|
#define MTAB_NC (0040 | MTAB_XTD) /* no UC conversion */
|
||||||
#define MTAB_SHP (0100 | MTAB_XTD) /* show takes parameter */
|
#define MTAB_QUOTE (0100 | MTAB_XTD) /* quoted string */
|
||||||
|
#define MTAB_SHP (0200 | MTAB_XTD) /* show takes parameter */
|
||||||
#define MODMASK(mptr,flag) (((mptr)->mask & (uint32)(flag)) == (uint32)(flag))/* flag mask test */
|
#define MODMASK(mptr,flag) (((mptr)->mask & (uint32)(flag)) == (uint32)(flag))/* flag mask test */
|
||||||
|
|
||||||
/* Search table */
|
/* Search table */
|
||||||
|
@ -721,7 +722,7 @@ extern int32 sim_asynch_latency;
|
||||||
extern int32 sim_asynch_inst_latency;
|
extern int32 sim_asynch_inst_latency;
|
||||||
|
|
||||||
/* Thread local storage */
|
/* Thread local storage */
|
||||||
#if defined(__GNUC__) && !defined(__APPLE__) && !defined(__hpux)
|
#if defined(__GNUC__) && !defined(__APPLE__) && !defined(__hpux) && !defined(__OpenBSD__)
|
||||||
#define AIO_TLS __thread
|
#define AIO_TLS __thread
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
#define AIO_TLS __declspec(thread)
|
#define AIO_TLS __declspec(thread)
|
||||||
|
|
25
sim_disk.c
25
sim_disk.c
|
@ -534,7 +534,7 @@ t_stat sim_disk_rdsect (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *sectsread,
|
||||||
{
|
{
|
||||||
t_stat r;
|
t_stat r;
|
||||||
struct disk_context *ctx = (struct disk_context *)uptr->disk_ctx;
|
struct disk_context *ctx = (struct disk_context *)uptr->disk_ctx;
|
||||||
t_seccnt sread;
|
t_seccnt sread = 0;
|
||||||
|
|
||||||
sim_debug (ctx->dbit, ctx->dptr, "sim_disk_rdsect(unit=%d, lba=0x%X, sects=%d)\n", (int)(uptr-ctx->dptr->units), lba, sects);
|
sim_debug (ctx->dbit, ctx->dptr, "sim_disk_rdsect(unit=%d, lba=0x%X, sects=%d)\n", (int)(uptr-ctx->dptr->units), lba, sects);
|
||||||
|
|
||||||
|
@ -1970,10 +1970,17 @@ fsync ((int)((long)f));
|
||||||
|
|
||||||
static t_offset sim_os_disk_size_raw (FILE *f)
|
static t_offset sim_os_disk_size_raw (FILE *f)
|
||||||
{
|
{
|
||||||
|
#if defined (DONT_DO_LARGEFILE)
|
||||||
|
struct stat statb;
|
||||||
|
|
||||||
|
if (fstat ((int)((long)f), &statb))
|
||||||
|
return (t_offset)-1;
|
||||||
|
#else
|
||||||
struct stat64 statb;
|
struct stat64 statb;
|
||||||
|
|
||||||
if (fstat64 ((int)((long)f), &statb))
|
if (fstat64 ((int)((long)f), &statb))
|
||||||
return (t_offset)-1;
|
return (t_offset)-1;
|
||||||
|
#endif
|
||||||
return (t_offset)statb.st_size;
|
return (t_offset)statb.st_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2185,10 +2192,10 @@ typedef t_int64 int64;
|
||||||
typedef struct _VHD_Footer {
|
typedef struct _VHD_Footer {
|
||||||
/*
|
/*
|
||||||
Cookies are used to uniquely identify the original creator of the hard disk
|
Cookies are used to uniquely identify the original creator of the hard disk
|
||||||
image. The values are case-sensitive. Microsoft uses the “conectix” string
|
image. The values are case-sensitive. Microsoft uses the "conectix" string
|
||||||
to identify this file as a hard disk image created by Microsoft Virtual
|
to identify this file as a hard disk image created by Microsoft Virtual
|
||||||
Server, Virtual PC, and predecessor products. The cookie is stored as an
|
Server, Virtual PC, and predecessor products. The cookie is stored as an
|
||||||
eight-character ASCII string with the “c” in the first byte, the “o” in
|
eight-character ASCII string with the "c" in the first byte, the "o" in
|
||||||
the second byte, and so on.
|
the second byte, and so on.
|
||||||
*/
|
*/
|
||||||
char Cookie[8];
|
char Cookie[8];
|
||||||
|
@ -2303,7 +2310,7 @@ typedef struct _VHD_Footer {
|
||||||
uint32 DiskType;
|
uint32 DiskType;
|
||||||
/*
|
/*
|
||||||
This field holds a basic checksum of the hard disk footer. It is just a
|
This field holds a basic checksum of the hard disk footer. It is just a
|
||||||
one’s complement of the sum of all the bytes in the footer without the
|
one's complement of the sum of all the bytes in the footer without the
|
||||||
checksum field.
|
checksum field.
|
||||||
If the checksum verification fails, the Virtual PC and Virtual Server
|
If the checksum verification fails, the Virtual PC and Virtual Server
|
||||||
products will instead use the header. If the checksum in the header also
|
products will instead use the header. If the checksum in the header also
|
||||||
|
@ -2342,7 +2349,7 @@ typedef struct _VHD_Footer {
|
||||||
} VHD_Footer;
|
} VHD_Footer;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
For dynamic and differencing disk images, the “Data Offset” field within
|
For dynamic and differencing disk images, the "Data Offset" field within
|
||||||
the image footer points to a secondary structure that provides additional
|
the image footer points to a secondary structure that provides additional
|
||||||
information about the disk image. The dynamic disk header should appear on
|
information about the disk image. The dynamic disk header should appear on
|
||||||
a sector (512-byte) boundary.
|
a sector (512-byte) boundary.
|
||||||
|
@ -2389,7 +2396,7 @@ typedef struct _VHD_DynamicDiskHeader {
|
||||||
*/
|
*/
|
||||||
uint32 BlockSize;
|
uint32 BlockSize;
|
||||||
/*
|
/*
|
||||||
This field holds a basic checksum of the dynamic header. It is a one’s
|
This field holds a basic checksum of the dynamic header. It is a one's
|
||||||
complement of the sum of all the bytes in the header without the checksum
|
complement of the sum of all the bytes in the header without the checksum
|
||||||
field.
|
field.
|
||||||
If the checksum verification fails the file should be assumed to be corrupt.
|
If the checksum verification fails the file should be assumed to be corrupt.
|
||||||
|
@ -2398,7 +2405,7 @@ typedef struct _VHD_DynamicDiskHeader {
|
||||||
/*
|
/*
|
||||||
This field is used for differencing hard disks. A differencing hard disk
|
This field is used for differencing hard disks. A differencing hard disk
|
||||||
stores a 128-bit UUID of the parent hard disk. For more information, see
|
stores a 128-bit UUID of the parent hard disk. For more information, see
|
||||||
“Creating Differencing Hard Disk Images” later in this paper.
|
"Creating Differencing Hard Disk Images" later in this paper.
|
||||||
*/
|
*/
|
||||||
uint8 ParentUniqueID[16];
|
uint8 ParentUniqueID[16];
|
||||||
/*
|
/*
|
||||||
|
@ -2424,8 +2431,8 @@ typedef struct _VHD_DynamicDiskHeader {
|
||||||
/*
|
/*
|
||||||
The platform code describes which platform-specific format is used for the
|
The platform code describes which platform-specific format is used for the
|
||||||
file locator. For Windows, a file locator is stored as a path (for example.
|
file locator. For Windows, a file locator is stored as a path (for example.
|
||||||
“c:\disksimages\ParentDisk.vhd”). On a Macintosh system, the file locator
|
"c:\disksimages\ParentDisk.vhd"). On a Macintosh system, the file locator
|
||||||
is a binary large object (blob) that contains an “alias.” The parent locator
|
is a binary large object (blob) that contains an "alias." The parent locator
|
||||||
table is used to support moving hard disk images across platforms.
|
table is used to support moving hard disk images across platforms.
|
||||||
Some current platform codes include the following:
|
Some current platform codes include the following:
|
||||||
Platform Code Description
|
Platform Code Description
|
||||||
|
|
26
sim_ether.c
26
sim_ether.c
|
@ -2009,41 +2009,41 @@ sim_debug(dev->dbit, dev->dptr, "Determining Address Conflict for MAC address: %
|
||||||
be affected by an address conflict were physically present on a single
|
be affected by an address conflict were physically present on a single
|
||||||
Ethernet cable which might have been extended by a couple of repeaters).
|
Ethernet cable which might have been extended by a couple of repeaters).
|
||||||
Since that time, essentially no networks are single collision domains.
|
Since that time, essentially no networks are single collision domains.
|
||||||
Thick and thinwire Ethernet cables don’t exist and very few networks
|
Thick and thinwire Ethernet cables don't exist and very few networks
|
||||||
even have hubs. Today, essentially all LANs are deployed using one
|
even have hubs. Today, essentially all LANs are deployed using one
|
||||||
or more layers of network switches. In a switched LAN environment, the
|
or more layers of network switches. In a switched LAN environment, the
|
||||||
switches on the LAN ‘learn’ which ports on the LAN source traffic from
|
switches on the LAN "learn" which ports on the LAN source traffic from
|
||||||
which MAC addresses and then forward traffic destined for particular
|
which MAC addresses and then forward traffic destined for particular
|
||||||
MAC address to the appropriate ports. If a particular MAC address is
|
MAC address to the appropriate ports. If a particular MAC address is
|
||||||
already in use somewhere on the LAN, then the switches ‘know’ where
|
already in use somewhere on the LAN, then the switches "know" where
|
||||||
it is. The host based test using the loopback protocol is poorly
|
it is. The host based test using the loopback protocol is poorly
|
||||||
designed to detect this condition. This test is performed by the host
|
designed to detect this condition. This test is performed by the host
|
||||||
first changing the device’s Physical MAC address to the address which
|
first changing the device's Physical MAC address to the address which
|
||||||
is to be tested, and then sending a loopback packet FROM AND TO this
|
is to be tested, and then sending a loopback packet FROM AND TO this
|
||||||
MAC address with a loopback reply to be sent by a system which may be
|
MAC address with a loopback reply to be sent by a system which may be
|
||||||
currently using the MAC address. If no reply is received, then the
|
currently using the MAC address. If no reply is received, then the
|
||||||
MAC address is presumed to be unused. The sending of this packet will
|
MAC address is presumed to be unused. The sending of this packet will
|
||||||
result in its delivery to the right system since the switch port/MAC
|
result in its delivery to the right system since the switch port/MAC
|
||||||
address tables know where to deliver packets destined to this MAC
|
address tables know where to deliver packets destined to this MAC
|
||||||
address, however the response it generates won’t be delivered to the
|
address, however the response it generates won't be delivered to the
|
||||||
system performing the test since the switches on the LAN won’t know
|
system performing the test since the switches on the LAN won't know
|
||||||
about the local port being the right target for packets with this MAC
|
about the local port being the right target for packets with this MAC
|
||||||
address. A better test design to detect these conflicts would be for
|
address. A better test design to detect these conflicts would be for
|
||||||
the testing system to send a loopback packet FROM the current physical
|
the testing system to send a loopback packet FROM the current physical
|
||||||
MAC address (BEFORE changing it) TO the MAC address being tested with
|
MAC address (BEFORE changing it) TO the MAC address being tested with
|
||||||
the loopback response coming to the current physical MAC address of
|
the loopback response coming to the current physical MAC address of
|
||||||
the device. If a response is received, then the address is in use and
|
the device. If a response is received, then the address is in use and
|
||||||
the attempt to change the device’s MAC address should fail. Since we
|
the attempt to change the device's MAC address should fail. Since we
|
||||||
can’t change the software running in these simulators to implement this
|
can't change the software running in these simulators to implement this
|
||||||
better conflict detection approach, we can still ‘do the right thing’
|
better conflict detection approach, we can still "do the right thing"
|
||||||
in the sim_ether layer. We’re already handling the loopback test
|
in the sim_ether layer. We're already handling the loopback test
|
||||||
packets specially since we always had to avoid receiving the packets
|
packets specially since we always had to avoid receiving the packets
|
||||||
which were being sent, but needed to allow for the incoming loopback
|
which were being sent, but needed to allow for the incoming loopback
|
||||||
packets to be properly dealt with. We can extend this current special
|
packets to be properly dealt with. We can extend this current special
|
||||||
handling to change outgoing ‘loopback to self’ packets to have source
|
handling to change outgoing "loopback to self" packets to have source
|
||||||
AND loopback destination addresses in the packets to be the host NIC’s
|
AND loopback destination addresses in the packets to be the host NIC's
|
||||||
physical address. The switch network will already know the correct
|
physical address. The switch network will already know the correct
|
||||||
MAC/port relationship for the host NIC’s physical address, so loopback
|
MAC/port relationship for the host NIC's physical address, so loopback
|
||||||
response packets will be delivered as needed.
|
response packets will be delivered as needed.
|
||||||
|
|
||||||
Code in _eth_write and _eth_callback provide the special handling to
|
Code in _eth_write and _eth_callback provide the special handling to
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* cygwin dowsn't have the right features to use the threaded network I/O */
|
/* cygwin dowsn't have the right features to use the threaded network I/O */
|
||||||
#if defined(__CYGWIN__)
|
#if defined(__CYGWIN__) || defined(__ZAURUS__) // psco added check for Zaurus platform
|
||||||
#define DONT_USE_READER_THREAD
|
#define DONT_USE_READER_THREAD
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -224,13 +224,14 @@ FILE *sim_fopen (const char *file, const char *mode)
|
||||||
#if defined (VMS)
|
#if defined (VMS)
|
||||||
return fopen (file, mode, "ALQ=32", "DEQ=4096",
|
return fopen (file, mode, "ALQ=32", "DEQ=4096",
|
||||||
"MBF=6", "MBC=127", "FOP=cbt,tef", "ROP=rah,wbh", "CTX=stm");
|
"MBF=6", "MBC=127", "FOP=cbt,tef", "ROP=rah,wbh", "CTX=stm");
|
||||||
#elif defined (__linux) || defined (__linux__) || defined (__hpux)
|
#elif (defined (__linux) || defined (__linux__) || defined (__hpux)) && !defined (DONT_DO_LARGEFILE)
|
||||||
return fopen64 (file, mode);
|
return fopen64 (file, mode);
|
||||||
#else
|
#else
|
||||||
return fopen (file, mode);
|
return fopen (file, mode);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined (DONT_DO_LARGEFILE)
|
||||||
/* 64b VMS */
|
/* 64b VMS */
|
||||||
|
|
||||||
#if ((defined (__ALPHA) || defined (__ia64)) && defined (VMS) && (__DECC_VER >= 60590001)) || \
|
#if ((defined (__ALPHA) || defined (__ia64)) && defined (VMS) && (__DECC_VER >= 60590001)) || \
|
||||||
|
@ -328,7 +329,7 @@ return (t_offset)(ftello64 (st));
|
||||||
|
|
||||||
/* Apple OS/X */
|
/* Apple OS/X */
|
||||||
|
|
||||||
#if defined (__APPLE__) || defined (__FreeBSD__)
|
#if defined (__APPLE__) || defined (__FreeBSD__) || defined(__NetBSD__) || defined (__OpenBSD__)
|
||||||
#define S_SIM_IO_FSEEK_EXT_ 1
|
#define S_SIM_IO_FSEEK_EXT_ 1
|
||||||
int sim_fseeko (FILE *st, t_offset xpos, int origin)
|
int sim_fseeko (FILE *st, t_offset xpos, int origin)
|
||||||
{
|
{
|
||||||
|
@ -341,6 +342,7 @@ return (t_offset)(ftello (st));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* end Apple OS/X */
|
#endif /* end Apple OS/X */
|
||||||
|
#endif /* !DONT_DO_LARGEFILE */
|
||||||
|
|
||||||
/* Default: no OS-specific routine has been defined */
|
/* Default: no OS-specific routine has been defined */
|
||||||
|
|
||||||
|
|
|
@ -38,13 +38,17 @@
|
||||||
#define fxwrite(a,b,c,d) sim_fwrite (a, b, c, d)
|
#define fxwrite(a,b,c,d) sim_fwrite (a, b, c, d)
|
||||||
|
|
||||||
int32 sim_finit (void);
|
int32 sim_finit (void);
|
||||||
#if defined (__linux) || defined (__linux__) || defined (__hpux) || \
|
#if (defined (__linux) || defined (__linux__) || defined (__hpux) || \
|
||||||
(defined (VMS) && (defined (__ALPHA) || defined (__ia64)) && (__DECC_VER >= 60590001)) || \
|
(defined (VMS) && (defined (__ALPHA) || defined (__ia64)) && (__DECC_VER >= 60590001)) || \
|
||||||
((defined(__sun) || defined(__sun__)) && defined(_LARGEFILE_SOURCE)) || \
|
((defined(__sun) || defined(__sun__)) && defined(_LARGEFILE_SOURCE)) || \
|
||||||
defined (_WIN32) || defined (__APPLE__) || defined (__FreeBSD__)
|
defined (_WIN32) || defined (__APPLE__) || \
|
||||||
|
defined (__FreeBSD__) || defined(__NetBSD__) || defined (__OpenBSD__)) && !defined (DONT_DO_LARGEFILE)
|
||||||
typedef t_int64 t_offset;
|
typedef t_int64 t_offset;
|
||||||
#else
|
#else
|
||||||
typedef int32 t_offset;
|
typedef int32 t_offset;
|
||||||
|
#if !defined (DONT_DO_LARGEFILE)
|
||||||
|
#define DONT_DO_LARGEFILE 1
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
FILE *sim_fopen (const char *file, const char *mode);
|
FILE *sim_fopen (const char *file, const char *mode);
|
||||||
int sim_fseek (FILE *st, t_addr offset, int whence);
|
int sim_fseek (FILE *st, t_addr offset, int whence);
|
||||||
|
|
|
@ -48,6 +48,10 @@
|
||||||
#include ".git-commit-id.h"
|
#include ".git-commit-id.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(SIM_GIT_COMMIT_ID)
|
||||||
|
#define SIM_GIT_COMMIT_ID $Format:%H$
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The comment section below reflects the manual editing process which was in place
|
The comment section below reflects the manual editing process which was in place
|
||||||
prior to the use of the git source control system on at https://gihub.com/simh/simh
|
prior to the use of the git source control system on at https://gihub.com/simh/simh
|
||||||
|
|
42
sim_sock.c
42
sim_sock.c
|
@ -123,10 +123,37 @@ return;
|
||||||
|
|
||||||
/* UNIX, Win32, Macintosh, VMS, OS2 (Berkeley socket) routines */
|
/* UNIX, Win32, Macintosh, VMS, OS2 (Berkeley socket) routines */
|
||||||
|
|
||||||
|
static struct sock_errors {
|
||||||
|
int32 value;
|
||||||
|
char *text;
|
||||||
|
} sock_errors[] = {
|
||||||
|
{WSAEWOULDBLOCK, "Operation would block"},
|
||||||
|
{WSAENAMETOOLONG, "File name too long"},
|
||||||
|
{WSAEINPROGRESS, "Operation now in progress "},
|
||||||
|
{WSAETIMEDOUT, "Connection timed out"},
|
||||||
|
{WSAEISCONN, "Transport endpoint is already connected"},
|
||||||
|
{WSAECONNRESET, "Connection reset by peer"},
|
||||||
|
{WSAECONNREFUSED, "Connection refused"},
|
||||||
|
{WSAEHOSTUNREACH, "No route to host"},
|
||||||
|
{WSAEADDRINUSE, "Address already in use "},
|
||||||
|
{WSAEACCES, "Permission denied"},
|
||||||
|
{0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SOCKET sim_err_sock (SOCKET s, char *emsg, int32 flg)
|
SOCKET sim_err_sock (SOCKET s, char *emsg, int32 flg)
|
||||||
{
|
{
|
||||||
int32 err = WSAGetLastError ();
|
int32 err = WSAGetLastError ();
|
||||||
|
int32 i;
|
||||||
|
|
||||||
|
for (i=0; (sock_errors[i].text) && (sock_errors[i].value != err); i++)
|
||||||
|
;
|
||||||
|
|
||||||
|
if (sock_errors[i].value == err)
|
||||||
|
printf ("Sockets: %s error %d - %s\n", emsg, err, sock_errors[i].text);
|
||||||
|
else
|
||||||
printf ("Sockets: %s error %d\n", emsg, err);
|
printf ("Sockets: %s error %d\n", emsg, err);
|
||||||
sim_close_sock (s, flg);
|
sim_close_sock (s, flg);
|
||||||
return INVALID_SOCKET;
|
return INVALID_SOCKET;
|
||||||
|
@ -735,6 +762,18 @@ if (preferred->ai_family == AF_INET6) {
|
||||||
sta = setsockopt (newsock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&off, sizeof(off));
|
sta = setsockopt (newsock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&off, sizeof(off));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (sim_switches & SWMASK ('U')) {
|
||||||
|
int on = TRUE;
|
||||||
|
|
||||||
|
sta = setsockopt (newsock, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on));
|
||||||
|
}
|
||||||
|
#if defined (SO_EXCLUSIVEADDRUSE)
|
||||||
|
else {
|
||||||
|
int on = TRUE;
|
||||||
|
|
||||||
|
sta = setsockopt (newsock, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, (char *)&on, sizeof(on));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
sta = bind (newsock, preferred->ai_addr, preferred->ai_addrlen);
|
sta = bind (newsock, preferred->ai_addr, preferred->ai_addrlen);
|
||||||
p_freeaddrinfo(result);
|
p_freeaddrinfo(result);
|
||||||
if (sta == SOCKET_ERROR) /* bind error? */
|
if (sta == SOCKET_ERROR) /* bind error? */
|
||||||
|
@ -864,11 +903,12 @@ if (rd)
|
||||||
else select ((int) sock + 1, NULL, rw_p, er_p, &tz);
|
else select ((int) sock + 1, NULL, rw_p, er_p, &tz);
|
||||||
if (FD_ISSET (sock, er_p))
|
if (FD_ISSET (sock, er_p))
|
||||||
return -1;
|
return -1;
|
||||||
if (FD_ISSET (sock, rw_p))
|
if (FD_ISSET (sock, rw_p)) {
|
||||||
if (0 == getpeername (sock, (struct sockaddr *)&peername, &peernamesize))
|
if (0 == getpeername (sock, (struct sockaddr *)&peername, &peernamesize))
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,8 +61,12 @@
|
||||||
#define WSAENAMETOOLONG ENAMETOOLONG
|
#define WSAENAMETOOLONG ENAMETOOLONG
|
||||||
#define WSAEINPROGRESS EINPROGRESS
|
#define WSAEINPROGRESS EINPROGRESS
|
||||||
#define WSAETIMEDOUT ETIMEDOUT
|
#define WSAETIMEDOUT ETIMEDOUT
|
||||||
|
#define WSAEISCONN EISCONN
|
||||||
|
#define WSAECONNRESET ECONNRESET
|
||||||
#define WSAECONNREFUSED ECONNREFUSED
|
#define WSAECONNREFUSED ECONNREFUSED
|
||||||
#define WSAEHOSTUNREACH EHOSTUNREACH
|
#define WSAEHOSTUNREACH EHOSTUNREACH
|
||||||
|
#define WSAEADDRINUSE EADDRINUSE
|
||||||
|
#define WSAEACCES EACCES
|
||||||
#define INVALID_SOCKET ((SOCKET)-1)
|
#define INVALID_SOCKET ((SOCKET)-1)
|
||||||
#define SOCKET_ERROR -1
|
#define SOCKET_ERROR -1
|
||||||
#include <sys/types.h> /* for fcntl, getpid */
|
#include <sys/types.h> /* for fcntl, getpid */
|
||||||
|
|
|
@ -180,7 +180,7 @@ return sim_os_msec() - start_time;
|
||||||
|
|
||||||
const t_bool rtc_avail = TRUE;
|
const t_bool rtc_avail = TRUE;
|
||||||
|
|
||||||
uint32 sim_os_msec ()
|
uint32 sim_os_msec (void)
|
||||||
{
|
{
|
||||||
uint32 quo, htod, tod[2];
|
uint32 quo, htod, tod[2];
|
||||||
int32 i;
|
int32 i;
|
||||||
|
@ -260,7 +260,7 @@ return 0;
|
||||||
|
|
||||||
const t_bool rtc_avail = TRUE;
|
const t_bool rtc_avail = TRUE;
|
||||||
|
|
||||||
uint32 sim_os_msec ()
|
uint32 sim_os_msec (void)
|
||||||
{
|
{
|
||||||
if (sim_idle_rate_ms)
|
if (sim_idle_rate_ms)
|
||||||
return timeGetTime ();
|
return timeGetTime ();
|
||||||
|
@ -330,7 +330,7 @@ return 0;
|
||||||
|
|
||||||
const t_bool rtc_avail = FALSE;
|
const t_bool rtc_avail = FALSE;
|
||||||
|
|
||||||
uint32 sim_os_msec ()
|
uint32 sim_os_msec (void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -426,7 +426,7 @@ return 0;
|
||||||
|
|
||||||
const t_bool rtc_avail = TRUE;
|
const t_bool rtc_avail = TRUE;
|
||||||
|
|
||||||
uint32 sim_os_msec ()
|
uint32 sim_os_msec (void)
|
||||||
{
|
{
|
||||||
struct timeval cur;
|
struct timeval cur;
|
||||||
struct timezone foo;
|
struct timezone foo;
|
||||||
|
|
113
sim_tmxr.c
113
sim_tmxr.c
|
@ -65,6 +65,7 @@
|
||||||
|
|
||||||
tmxr_poll_conn - poll for connection
|
tmxr_poll_conn - poll for connection
|
||||||
tmxr_reset_ln - reset line (drops Telnet/tcp and serial connections)
|
tmxr_reset_ln - reset line (drops Telnet/tcp and serial connections)
|
||||||
|
tmxr_detach_ln - reset line and close per line listener and outgoing destination
|
||||||
tmxr_getc_ln - get character for line
|
tmxr_getc_ln - get character for line
|
||||||
tmxr_poll_rx - poll receive
|
tmxr_poll_rx - poll receive
|
||||||
tmxr_putc_ln - put character for line
|
tmxr_putc_ln - put character for line
|
||||||
|
@ -369,7 +370,15 @@
|
||||||
#define TNS_CRPAD 005 /* CR padding */
|
#define TNS_CRPAD 005 /* CR padding */
|
||||||
#define TNS_DO 006 /* DO request pending rejection */
|
#define TNS_DO 006 /* DO request pending rejection */
|
||||||
|
|
||||||
|
static BITFIELD tmxr_modem_bits[] = {
|
||||||
|
BIT(DTR), /* Data Terminal Ready */
|
||||||
|
BIT(RTS), /* Request To Send */
|
||||||
|
BIT(DCD), /* Data Carrier Detect */
|
||||||
|
BIT(RNG), /* Ring Indicator */
|
||||||
|
BIT(CTS), /* Clear To Send */
|
||||||
|
BIT(DSR), /* Data Set Ready */
|
||||||
|
ENDBITS
|
||||||
|
};
|
||||||
|
|
||||||
/* Local routines */
|
/* Local routines */
|
||||||
|
|
||||||
|
@ -395,6 +404,8 @@ if (!lp->txbfd) /* if not buffered */
|
||||||
lp->txbpr = lp->txbpi = lp->txcnt = 0; /* init transmit indexes */
|
lp->txbpr = lp->txbpi = lp->txcnt = 0; /* init transmit indexes */
|
||||||
memset (lp->rbr, 0, TMXR_MAXBUF); /* clear break status array */
|
memset (lp->rbr, 0, TMXR_MAXBUF); /* clear break status array */
|
||||||
lp->txdrp = 0;
|
lp->txdrp = 0;
|
||||||
|
if (lp->mp->modem_control)
|
||||||
|
lp->modembits = TMXR_MDM_CTS | TMXR_MDM_DSR;
|
||||||
if (!lp->mp->buffered) {
|
if (!lp->mp->buffered) {
|
||||||
lp->txbfd = 0;
|
lp->txbfd = 0;
|
||||||
lp->txbsz = TMXR_MAXBUF;
|
lp->txbsz = TMXR_MAXBUF;
|
||||||
|
@ -891,6 +902,13 @@ for (i = 0; i < mp->lines; i++) { /* check each line in se
|
||||||
lp->conn = TRUE;
|
lp->conn = TRUE;
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check for needed outgoing connection initiation */
|
||||||
|
|
||||||
|
if (lp->destination && (!lp->sock) && (!lp->connecting) && (!lp->serport) &&
|
||||||
|
(!mp->modem_control || (lp->modembits & TMXR_MDM_DTR)))
|
||||||
|
lp->connecting = sim_connect_sock (lp->destination, "localhost", NULL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1; /* no new connections made */
|
return -1; /* no new connections made */
|
||||||
|
@ -946,6 +964,7 @@ lp->ipad = NULL;
|
||||||
if ((lp->destination) && (!lp->serport)) {
|
if ((lp->destination) && (!lp->serport)) {
|
||||||
if (lp->connecting)
|
if (lp->connecting)
|
||||||
sim_close_sock (lp->connecting, 0);
|
sim_close_sock (lp->connecting, 0);
|
||||||
|
if ((!lp->mp->modem_control) || (lp->modembits & TMXR_MDM_DTR))
|
||||||
lp->connecting = sim_connect_sock (lp->destination, "localhost", NULL);
|
lp->connecting = sim_connect_sock (lp->destination, "localhost", NULL);
|
||||||
}
|
}
|
||||||
tmxr_init_line (lp); /* initialize line state */
|
tmxr_init_line (lp); /* initialize line state */
|
||||||
|
@ -1055,7 +1074,7 @@ return SCPE_OK;
|
||||||
*/
|
*/
|
||||||
t_stat tmxr_set_get_modem_bits (TMLN *lp, int32 bits_to_set, int32 bits_to_clear, int32 *incoming_bits)
|
t_stat tmxr_set_get_modem_bits (TMLN *lp, int32 bits_to_set, int32 bits_to_clear, int32 *incoming_bits)
|
||||||
{
|
{
|
||||||
int32 changed_modem_bits;
|
int32 before_modem_bits, incoming_state;
|
||||||
|
|
||||||
tmxr_debug_trace_line (lp, "tmxr_set_get_modem_bits()");
|
tmxr_debug_trace_line (lp, "tmxr_set_get_modem_bits()");
|
||||||
|
|
||||||
|
@ -1063,28 +1082,38 @@ if ((bits_to_set & ~(TMXR_MDM_OUTGOING)) || /* Assure only settable bits
|
||||||
(bits_to_clear & ~(TMXR_MDM_OUTGOING)) ||
|
(bits_to_clear & ~(TMXR_MDM_OUTGOING)) ||
|
||||||
(bits_to_set & bits_to_clear)) /* and can't set and clear the same bits */
|
(bits_to_set & bits_to_clear)) /* and can't set and clear the same bits */
|
||||||
return SCPE_ARG;
|
return SCPE_ARG;
|
||||||
changed_modem_bits = lp->modembits;
|
before_modem_bits = lp->modembits;
|
||||||
lp->modembits |= bits_to_set;
|
lp->modembits |= bits_to_set;
|
||||||
lp->modembits &= bits_to_clear;
|
lp->modembits &= ~(bits_to_clear | TMXR_MDM_INCOMING);
|
||||||
changed_modem_bits ^= lp->modembits;
|
|
||||||
if (incoming_bits) {
|
|
||||||
if ((lp->sock) || (lp->serport)) {
|
if ((lp->sock) || (lp->serport)) {
|
||||||
if (lp->modembits & TMXR_MDM_DTR)
|
if (lp->modembits & TMXR_MDM_DTR)
|
||||||
*incoming_bits = TMXR_MDM_DCD | TMXR_MDM_CTS | TMXR_MDM_DSR;
|
incoming_state = TMXR_MDM_DCD | TMXR_MDM_CTS | TMXR_MDM_DSR;
|
||||||
else
|
else
|
||||||
*incoming_bits = TMXR_MDM_RNG | TMXR_MDM_DCD | TMXR_MDM_CTS | TMXR_MDM_DSR;
|
incoming_state = TMXR_MDM_RNG | TMXR_MDM_DCD | TMXR_MDM_CTS | TMXR_MDM_DSR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
*incoming_bits = (lp->mp && lp->mp->master) ? (TMXR_MDM_CTS | TMXR_MDM_DSR) : 0;
|
incoming_state = (lp->mp && lp->mp->master) ? (TMXR_MDM_CTS | TMXR_MDM_DSR) : 0;
|
||||||
|
lp->modembits |= incoming_state;
|
||||||
|
if (sim_deb && lp->mp && lp->mp->dptr) {
|
||||||
|
sim_debug_bits (TMXR_DBG_MDM, lp->mp->dptr, tmxr_modem_bits, before_modem_bits, lp->modembits, FALSE);
|
||||||
|
sim_debug (TMXR_DBG_MDM, lp->mp->dptr, " - Line %d\n", (int)(lp-lp->mp->ldsc));
|
||||||
}
|
}
|
||||||
|
if (incoming_bits)
|
||||||
|
*incoming_bits = incoming_state;
|
||||||
if (lp->mp && lp->mp->modem_control) { /* This API ONLY works on modem_control enabled multiplexers */
|
if (lp->mp && lp->mp->modem_control) { /* This API ONLY works on modem_control enabled multiplexers */
|
||||||
if (bits_to_set | bits_to_clear) { /* Anything to do? */
|
if (bits_to_set | bits_to_clear) { /* Anything to do? */
|
||||||
if (lp->serport)
|
if (lp->serport)
|
||||||
return sim_control_serial (lp->serport, bits_to_set, bits_to_clear, incoming_bits);
|
return sim_control_serial (lp->serport, bits_to_set, bits_to_clear, incoming_bits);
|
||||||
if (lp->sock) {
|
if ((lp->sock) || (lp->connecting)) {
|
||||||
if (bits_to_clear&TMXR_MDM_DTR) /* drop DTR? */
|
if (bits_to_clear&TMXR_MDM_DTR) /* drop DTR? */
|
||||||
tmxr_reset_ln (lp);
|
tmxr_reset_ln (lp);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if ((lp->destination) && /* Virtual Null Modem Cable */
|
||||||
|
((bits_to_set ^ before_modem_bits) & /* and DTR being Raised */
|
||||||
|
TMXR_MDM_DTR))
|
||||||
|
lp->connecting = sim_connect_sock (lp->destination, "localhost", NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
@ -1476,6 +1505,13 @@ if (lp->serport) { /* close current serial connection *
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t_stat tmxr_detach_ln (TMLN *lp)
|
||||||
|
{
|
||||||
|
tmxr_debug_trace_line (lp, "tmxr_detaach_ln()");
|
||||||
|
_mux_detach_line (lp, TRUE, TRUE);
|
||||||
|
return SCPE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/* Open a master listening socket (and all of the other variances of connections).
|
/* Open a master listening socket (and all of the other variances of connections).
|
||||||
|
|
||||||
A listening socket for the port number described by "cptr" is opened for the
|
A listening socket for the port number described by "cptr" is opened for the
|
||||||
|
@ -1528,7 +1564,7 @@ while (*tptr) {
|
||||||
if (0 == MATCH_CMD (gbuf, "LINE")) {
|
if (0 == MATCH_CMD (gbuf, "LINE")) {
|
||||||
if ((NULL == cptr) || ('\0' == *cptr))
|
if ((NULL == cptr) || ('\0' == *cptr))
|
||||||
return SCPE_ARG;
|
return SCPE_ARG;
|
||||||
nextline = (int32) get_uint (cptr, 10, mp->lines, &r);
|
nextline = (int32) get_uint (cptr, 10, mp->lines-1, &r);
|
||||||
if ((r != SCPE_OK) || (mp->lines == 1))
|
if ((r != SCPE_OK) || (mp->lines == 1))
|
||||||
return SCPE_ARG;
|
return SCPE_ARG;
|
||||||
break;
|
break;
|
||||||
|
@ -2561,18 +2597,11 @@ return SCPE_OK;
|
||||||
|
|
||||||
t_stat tmxr_attach_ex (TMXR *mp, UNIT *uptr, char *cptr, t_bool async)
|
t_stat tmxr_attach_ex (TMXR *mp, UNIT *uptr, char *cptr, t_bool async)
|
||||||
{
|
{
|
||||||
char* tptr = NULL;
|
|
||||||
t_stat r;
|
t_stat r;
|
||||||
|
|
||||||
tptr = (char *) calloc (1, 1);
|
|
||||||
|
|
||||||
if (tptr == NULL) /* no more mem? */
|
|
||||||
return SCPE_MEM;
|
|
||||||
r = tmxr_open_master (mp, cptr); /* open master socket */
|
r = tmxr_open_master (mp, cptr); /* open master socket */
|
||||||
if (r != SCPE_OK) { /* error? */
|
if (r != SCPE_OK) /* error? */
|
||||||
free (tptr); /* release buf */
|
|
||||||
return r;
|
return r;
|
||||||
}
|
|
||||||
mp->uptr = uptr; /* save unit for polling */
|
mp->uptr = uptr; /* save unit for polling */
|
||||||
uptr->filename = _mux_attach_string (uptr->filename, mp);/* save */
|
uptr->filename = _mux_attach_string (uptr->filename, mp);/* save */
|
||||||
uptr->flags = uptr->flags | UNIT_ATT; /* no more errors */
|
uptr->flags = uptr->flags | UNIT_ATT; /* no more errors */
|
||||||
|
@ -2627,18 +2656,27 @@ else {
|
||||||
fprintf(st, ", ");
|
fprintf(st, ", ");
|
||||||
}
|
}
|
||||||
tmxr_show_summ(st, NULL, 0, mp);
|
tmxr_show_summ(st, NULL, 0, mp);
|
||||||
fprintf(st, ", sessions=%d\n", mp->sessions);
|
fprintf(st, ", sessions=%d", mp->sessions);
|
||||||
|
if (mp->modem_control)
|
||||||
|
fprintf(st, ", ModemControl=enabled");
|
||||||
|
if (mp->notelnet)
|
||||||
|
fprintf(st, ", Telnet=disabled");
|
||||||
|
fprintf(st, "\n");
|
||||||
for (j = 0; j < mp->lines; j++) {
|
for (j = 0; j < mp->lines; j++) {
|
||||||
lp = mp->ldsc + j;
|
lp = mp->ldsc + j;
|
||||||
if (mp->lines > 1) {
|
if (mp->lines > 1) {
|
||||||
fprintf (st, "Line: %d", j);
|
fprintf (st, "Line: %d", j);
|
||||||
|
if (mp->notelnet != lp->notelnet)
|
||||||
|
fprintf (st, " - %telnet", lp->notelnet ? "no" : "");
|
||||||
if (lp->uptr && (lp->uptr != lp->mp->uptr))
|
if (lp->uptr && (lp->uptr != lp->mp->uptr))
|
||||||
fprintf (st, " - Unit: %s\n", sim_uname (lp->uptr));
|
fprintf (st, " - Unit: %s", sim_uname (lp->uptr));
|
||||||
else
|
|
||||||
fprintf (st, "\n");
|
fprintf (st, "\n");
|
||||||
}
|
}
|
||||||
if ((!lp->sock) && (!lp->connecting) && (!lp->serport) && (!lp->master))
|
if ((!lp->sock) && (!lp->connecting) && (!lp->serport) && (!lp->master)) {
|
||||||
|
if (mp->modem_control)
|
||||||
|
tmxr_fconns (st, lp, -1);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
tmxr_fconns (st, lp, -1);
|
tmxr_fconns (st, lp, -1);
|
||||||
tmxr_fstats (st, lp, -1);
|
tmxr_fstats (st, lp, -1);
|
||||||
}
|
}
|
||||||
|
@ -2672,17 +2710,17 @@ for (i = 0; i < mp->lines; i++) { /* loop thru conn */
|
||||||
tmxr_report_disconnection (lp); /* report disconnection */
|
tmxr_report_disconnection (lp); /* report disconnection */
|
||||||
tmxr_reset_ln (lp);
|
tmxr_reset_ln (lp);
|
||||||
}
|
}
|
||||||
if (lp->connecting) {
|
|
||||||
lp->sock = lp->connecting;
|
|
||||||
lp->connecting = 0;
|
|
||||||
tmxr_reset_ln (lp);
|
|
||||||
}
|
|
||||||
if (lp->serport) {
|
if (lp->serport) {
|
||||||
sim_control_serial (lp->serport, 0, TMXR_MDM_DTR|TMXR_MDM_RTS, NULL);/* drop DTR and RTS */
|
sim_control_serial (lp->serport, 0, TMXR_MDM_DTR|TMXR_MDM_RTS, NULL);/* drop DTR and RTS */
|
||||||
tmxr_close_ln (lp);
|
tmxr_close_ln (lp);
|
||||||
}
|
}
|
||||||
free (lp->destination);
|
free (lp->destination);
|
||||||
lp->destination = NULL;
|
lp->destination = NULL;
|
||||||
|
if (lp->connecting) {
|
||||||
|
lp->sock = lp->connecting;
|
||||||
|
lp->connecting = 0;
|
||||||
|
tmxr_reset_ln (lp);
|
||||||
|
}
|
||||||
lp->conn = FALSE;
|
lp->conn = FALSE;
|
||||||
}
|
}
|
||||||
if (lp->master) {
|
if (lp->master) {
|
||||||
|
@ -2984,6 +3022,15 @@ if (lp->cnms) {
|
||||||
else
|
else
|
||||||
fprintf (st, " Line disconnected\n");
|
fprintf (st, " Line disconnected\n");
|
||||||
|
|
||||||
|
if (lp->mp->modem_control) {
|
||||||
|
fprintf (st, " Modem Bits: %s%s%s%s%s%s\n", (lp->modembits & TMXR_MDM_DTR) ? "DTR " : "",
|
||||||
|
(lp->modembits & TMXR_MDM_RTS) ? "RTS " : "",
|
||||||
|
(lp->modembits & TMXR_MDM_DCD) ? "DCD " : "",
|
||||||
|
(lp->modembits & TMXR_MDM_RNG) ? "RNG " : "",
|
||||||
|
(lp->modembits & TMXR_MDM_CTS) ? "CTS " : "",
|
||||||
|
(lp->modembits & TMXR_MDM_DSR) ? "DSR " : "");
|
||||||
|
}
|
||||||
|
|
||||||
if ((lp->serport == 0) && (lp->sock))
|
if ((lp->serport == 0) && (lp->sock))
|
||||||
fprintf (st, " %s\n", (lp->notelnet) ? "Telnet disabled (RAW data)" : "Telnet protocol");
|
fprintf (st, " %s\n", (lp->notelnet) ? "Telnet disabled (RAW data)" : "Telnet protocol");
|
||||||
if (lp->txlog)
|
if (lp->txlog)
|
||||||
|
@ -3347,11 +3394,15 @@ int32 i, any;
|
||||||
if (mp == NULL)
|
if (mp == NULL)
|
||||||
return SCPE_IERR;
|
return SCPE_IERR;
|
||||||
for (i = any = 0; i < mp->lines; i++) {
|
for (i = any = 0; i < mp->lines; i++) {
|
||||||
if ((mp->ldsc[i].sock != 0) || (mp->ldsc[i].serport != 0)) {
|
if ((mp->ldsc[i].sock != 0) ||
|
||||||
|
(mp->ldsc[i].serport != 0) || mp->modem_control) {
|
||||||
|
if ((mp->ldsc[i].sock != 0) || (mp->ldsc[i].serport != 0))
|
||||||
any++;
|
any++;
|
||||||
if (val)
|
if (val)
|
||||||
tmxr_fconns (st, &mp->ldsc[i], i);
|
tmxr_fconns (st, &mp->ldsc[i], i);
|
||||||
else tmxr_fstats (st, &mp->ldsc[i], i);
|
else
|
||||||
|
if ((mp->ldsc[i].sock != 0) || (mp->ldsc[i].serport != 0))
|
||||||
|
tmxr_fstats (st, &mp->ldsc[i], i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (any == 0)
|
if (any == 0)
|
||||||
|
@ -3373,7 +3424,7 @@ return SCPE_OK;
|
||||||
|
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
char value;
|
u_char value;
|
||||||
char *name;
|
char *name;
|
||||||
} tn_chars[] =
|
} tn_chars[] =
|
||||||
{
|
{
|
||||||
|
|
10
sim_tmxr.h
10
sim_tmxr.h
|
@ -66,10 +66,11 @@ typedef int SERHANDLE;
|
||||||
#define TMXR_DTR_DROP_TIME 500 /* milliseconds to drop DTR for 'pseudo' modem control */
|
#define TMXR_DTR_DROP_TIME 500 /* milliseconds to drop DTR for 'pseudo' modem control */
|
||||||
#define TMXR_CONNECT_POLL_INTERVAL 1000 /* milliseconds between connection polls */
|
#define TMXR_CONNECT_POLL_INTERVAL 1000 /* milliseconds between connection polls */
|
||||||
|
|
||||||
#define TMXR_DBG_XMT 0x10000 /* Debug Transmit Data */
|
#define TMXR_DBG_XMT 0x010000 /* Debug Transmit Data */
|
||||||
#define TMXR_DBG_RCV 0x20000 /* Debug Received Data */
|
#define TMXR_DBG_RCV 0x020000 /* Debug Received Data */
|
||||||
#define TMXR_DBG_ASY 0x40000 /* Debug Asynchronous Activities */
|
#define TMXR_DBG_MDM 0x040000 /* Debug Modem Signals */
|
||||||
#define TMXR_DBG_TRC 0x80000 /* Debug trace routine calls */
|
#define TMXR_DBG_ASY 0x080000 /* Debug Asynchronous Activities */
|
||||||
|
#define TMXR_DBG_TRC 0x100000 /* Debug trace routine calls */
|
||||||
|
|
||||||
/* Modem Control Bits */
|
/* Modem Control Bits */
|
||||||
|
|
||||||
|
@ -151,6 +152,7 @@ struct tmxr {
|
||||||
|
|
||||||
int32 tmxr_poll_conn (TMXR *mp);
|
int32 tmxr_poll_conn (TMXR *mp);
|
||||||
t_stat tmxr_reset_ln (TMLN *lp);
|
t_stat tmxr_reset_ln (TMLN *lp);
|
||||||
|
t_stat tmxr_detach_ln (TMLN *lp);
|
||||||
int32 tmxr_getc_ln (TMLN *lp);
|
int32 tmxr_getc_ln (TMLN *lp);
|
||||||
void tmxr_poll_rx (TMXR *mp);
|
void tmxr_poll_rx (TMXR *mp);
|
||||||
t_stat tmxr_putc_ln (TMLN *lp, int32 chr);
|
t_stat tmxr_putc_ln (TMLN *lp, int32 chr);
|
||||||
|
|
Loading…
Add table
Reference in a new issue