65 0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0000,
94 {
"cpu-functional",
"CPU Functional Test",
95 "SAT step 1: the functional CPU deck, fed card by card through the reader." },
100 {
"card-reader-a",
"Reading Test Channel A",
101 "SAT step 2: the captured card-reader test deck." },
106 {
"printer-mechanical",
"Printer Mechanical Test",
107 "SAT step 3: the line-printer deck, with the required center card "
108 "punched and placed behind it." },
113 {
"control-program-cr",
"Control Program CR",
114 "Control-program utility deck with the serial Hollerith loader kept." },
119 {
"ls600-controller-sat",
"LS600 Controller SAT Batch",
120 "Sequencer Program followed by LS600 Controller Test, prepared per the SAT notes." },
125 {
"ls600-transcoder-sat",
"LS600 Transcoder SAT Batch",
126 "Sequencer Program followed by LS600 Transcoder Test, prepared per the SAT notes." },
131 {
"ls600-doe-sat",
"LS600 D.O.E. SAT Batch",
132 "Sequencer Program followed by the LS600 D.O.E. deck, prepared per the SAT notes." },
147 int limit = ncards < 5 ? ncards : 5;
149 for (
int i = 0; i < limit; i++) {
154 return (ncards > 1) ? 1 : 0;
158 int first,
int last_inclusive)
160 for (
int i = first; i <= last_inclusive; i++) {
163 if (ncols <= 0 || !cols)
221 if (!note || note_sz == 0)
241 return def ? &def->
info : NULL;
245 const char *out_path,
246 char *note,
size_t note_sz)
252 if (!def || !root || !out_path)
259 for (
int i = 0; i < def->
nsources; i++) {
260 snprintf(path,
sizeof(path),
"%s/%s", root, def->
sources[i].
file);
const uint16_t * cap_card_columns(const struct cap_deck *d, int i)
int cap_append_card(struct cap_deck *d, const uint16_t *cols, int ncols)
int cap_card_ncols(const struct cap_deck *d, int i)
struct cap_deck * cap_create(void)
int cap_num_cards(const struct cap_deck *d)
void cap_free(struct cap_deck *d)
struct cap_deck * cap_load(const char *path)
int cap_save(const struct cap_deck *d, const char *path)
static const struct sat_batch_def * sat_batch_def_find(const char *id)
const struct sat_batch_info * sat_batch_find(const char *id)
static const struct sat_source src_printer_mech[]
static const struct sat_batch_def sat_batches[]
@ SAT_SRC_TRIM_TITLE_SUMMARY
@ SAT_SRC_SERIAL_LOADER_PLUS_BODY
static const struct sat_source src_ls600_controller[]
static const uint16_t printer_mech_center_card[80]
static const struct sat_source src_control_program[]
int sat_batch_count(void)
static const struct sat_tail_card printer_mech_tail
static const struct sat_source src_ls600_doe[]
static void sat_note(char *note, size_t note_sz, const struct sat_batch_def *def)
const struct sat_batch_info * sat_batch_info_at(int idx)
static const struct sat_source src_cpu_functional[]
static const struct sat_source src_ls600_transcoder[]
static int row8_loader_card(const struct cap_deck *deck)
static int append_card_range(struct cap_deck *out, const struct cap_deck *src, int first, int last_inclusive)
int sat_batch_prepare_deck(const char *root, const char *id, const char *out_path, char *note, size_t note_sz)
static int append_source(struct cap_deck *out, const char *path, enum sat_source_op op)
static const struct sat_source src_reader_a[]
struct sat_batch_info info
const struct sat_tail_card * tail
const struct sat_source * sources