From 2c9dce6cf2763ab6005651b0804b7d95cc9a2b94 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 4 Mar 2023 17:49:37 -1000 Subject: [PATCH] Various simulators: Set line endings to CRLF for consistency, remove stray tabs Project standard source code has tabs converted to spaces and CRLF line endings --- 3B2/3b2_scsi.c | 2 +- BESM6/besm6_tty.c | 2 +- Intel-Systems/common/i8080.c | 8 +- NOVA/nova_pt.c | 598 +++++++++++++++++------------------ TX-0/tx0_defs.h | 2 +- display/iii.c | 2 +- scp.c | 8 +- swtp6800/common/m6800.c | 8 +- swtp6800/common/mp-s.c | 8 +- tt2500/tt2500_dpy.c | 2 +- tt2500/tt2500_rom.c | 198 ++++++------ 11 files changed, 419 insertions(+), 419 deletions(-) diff --git a/3B2/3b2_scsi.c b/3B2/3b2_scsi.c index b04ec99e..5679b1d0 100644 --- a/3B2/3b2_scsi.c +++ b/3B2/3b2_scsi.c @@ -1168,7 +1168,7 @@ static void ha_cmd(uint8 op, uint8 subdev, uint32 addr, int32 len, t_bool expres void ha_ctrl(uint8 tc) { volatile t_bool txn_done; - uint32 i, j; + uint32 i, j; uint32 plen, ha_ptr; uint32 in_len, out_len; uint8 lu, status; diff --git a/BESM6/besm6_tty.c b/BESM6/besm6_tty.c index c1fb758b..5d17f018 100644 --- a/BESM6/besm6_tty.c +++ b/BESM6/besm6_tty.c @@ -1252,7 +1252,7 @@ void vt_receive() * HYC needs to be typed * to re-initialize the line */ - TTY_IN |= mask; /* "long start" */ + TTY_IN |= mask; /* "long start" */ break; } switch (tty_unit[num].flags & TTY_CHARSET_MASK) { diff --git a/Intel-Systems/common/i8080.c b/Intel-Systems/common/i8080.c index d7500489..ca5f02f5 100644 --- a/Intel-Systems/common/i8080.c +++ b/Intel-Systems/common/i8080.c @@ -1363,12 +1363,12 @@ int32 sim_load(FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) chk -= addr >> 8; for (i=0; i> 8; for (i=0; i<=(end - addr); i++) { byte = get_mbyte(addr + i); - fprintf(fileref, "%02X", byte & BYTEMASK); + fprintf(fileref, "%02X", byte & BYTEMASK); chk -= byte; chk &= BYTEMASK; cnt++; } fprintf(fileref, "%02X\n", chk); - addr = end; + addr = end; } fprintf(fileref,":00000001FF\n"); //EOF record } else { //binary diff --git a/NOVA/nova_pt.c b/NOVA/nova_pt.c index c58d1b8a..b66e5095 100644 --- a/NOVA/nova_pt.c +++ b/NOVA/nova_pt.c @@ -1,299 +1,299 @@ -/* nova_pt.c: NOVA paper tape read/punch simulator - - Copyright (c) 1993-2016, Robert M. Supnik - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of Robert M Supnik shall not be - used in advertising or otherwise to promote the sale, use or other dealings - in this Software without prior written authorization from Robert M Supnik. - - ptr paper tape reader - ptp paper tape punch - - 13-May-16 RMS Lengthened wait time for DCC BASIC timing error - 28-Mar-15 RMS Revised to use sim_printf - 04-Jul-07 BKR added PTR and PTP device DISABLE capability, - added 7B/8B support PTR and PTP (default is 8B), - DEV_SET/CLR macros now used, - PTR and PTP can now be DISABLED - 25-Apr-03 RMS Revised for extended file support - 03-Oct-02 RMS Added DIBs - 30-May-02 RMS Widened POS to 32b - 29-Nov-01 RMS Added read only unit support - - -Notes: - - data masked to 7- or 8- bits, based on 7B or 8B, default is 8-bits - - register TIME is the delay between character read or write operations - - register POS show the number of characters read from or sent to the PTR or PTP - - register STOP_IOE determines return value issued if output to unattached PTR or PTP is attempted -*/ - -#include "nova_defs.h" - -extern int32 int_req, dev_busy, dev_done, dev_disable ; -extern int32 SR ; - -extern t_stat cpu_boot(int32 unitno, DEVICE * dptr ) ; - - -int32 ptr_stopioe = 0, ptp_stopioe = 0; /* stop on error */ - -int32 ptr (int32 pulse, int32 code, int32 AC); -int32 ptp (int32 pulse, int32 code, int32 AC); -t_stat ptr_svc (UNIT *uptr); -t_stat ptp_svc (UNIT *uptr); -t_stat ptr_reset (DEVICE *dptr); -t_stat ptp_reset (DEVICE *dptr); -t_stat ptr_boot (int32 unitno, DEVICE *dptr); - - -/* 7 or 8 bit data mask support for either device */ - -#define UNIT_V_8B (UNIT_V_UF + 0) /* 8b output */ -#define UNIT_8B (1 << UNIT_V_8B) - - -/* PTR data structures - - ptr_dev PTR device descriptor - ptr_unit PTR unit descriptor - ptr_reg PTR register list -*/ - -DIB ptr_dib = { DEV_PTR, INT_PTR, PI_PTR, &ptr }; - -UNIT ptr_unit = { /* 2007-May-30, bkr */ - UDATA (&ptr_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_ROABLE+UNIT_8B, 0), 300 - }; - -REG ptr_reg[] = { - { ORDATA (BUF, ptr_unit.buf, 8) }, - { FLDATA (BUSY, dev_busy, INT_V_PTR) }, - { FLDATA (DONE, dev_done, INT_V_PTR) }, - { FLDATA (DISABLE, dev_disable, INT_V_PTR) }, - { FLDATA (INT, int_req, INT_V_PTR) }, - { DRDATA (POS, ptr_unit.pos, T_ADDR_W), PV_LEFT }, - { DRDATA (TIME, ptr_unit.wait, 24), PV_LEFT }, - { FLDATA (STOP_IOE, ptr_stopioe, 0) }, - { NULL } - }; - -MTAB ptr_mod[] = /* 2007-May-30, bkr */ - { - { UNIT_8B, 0, "7b", "7B", NULL }, - { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, - { 0, 0, NULL, NULL, NULL } - } ; - -DEVICE ptr_dev = { - "PTR", &ptr_unit, ptr_reg, ptr_mod /* 2007-May-30, bkr */, - 1, 10, 31, 1, 8, 8, - NULL, NULL, &ptr_reset, - &ptr_boot, NULL, NULL, - &ptr_dib, DEV_DISABLE /* 2007-May-30, bkr */ - }; - -/* PTP data structures - - ptp_dev PTP device descriptor - ptp_unit PTP unit descriptor - ptp_reg PTP register list -*/ - -DIB ptp_dib = { DEV_PTP, INT_PTP, PI_PTP, &ptp }; - -UNIT ptp_unit = - { - UDATA (&ptp_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_8B, 0), SERIAL_OUT_WAIT - }; - -REG ptp_reg[] = { - { ORDATA (BUF, ptp_unit.buf, 8) }, - { FLDATA (BUSY, dev_busy, INT_V_PTP) }, - { FLDATA (DONE, dev_done, INT_V_PTP) }, - { FLDATA (DISABLE, dev_disable, INT_V_PTP) }, - { FLDATA (INT, int_req, INT_V_PTP) }, - { DRDATA (POS, ptp_unit.pos, T_ADDR_W), PV_LEFT }, - { DRDATA (TIME, ptp_unit.wait, 24), PV_LEFT }, - { FLDATA (STOP_IOE, ptp_stopioe, 0) }, - { NULL } - }; - -MTAB ptp_mod[] = - { - { UNIT_8B, 0, "7b", "7B", NULL }, - { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, - { 0, 0, NULL, NULL, NULL } - } ; - -DEVICE ptp_dev = - { - "PTP", &ptp_unit, ptp_reg, ptp_mod /* 2007-May-30, bkr */, - 1, 10, 31, 1, 8, 8, - NULL, NULL, &ptp_reset, - NULL, NULL, NULL, - &ptp_dib, DEV_DISABLE /* 2007-May-30, bkr */ - }; - - -/* Paper tape reader: IOT routine */ - -int32 ptr (int32 pulse, int32 code, int32 AC) -{ -int32 iodata; - -iodata = (code == ioDIA)? - ptr_unit.buf & 0377 - : 0; -switch (pulse) - { /* decode IR<8:9> */ - case iopS: /* start */ - DEV_SET_BUSY( INT_PTR ) ; - DEV_CLR_DONE( INT_PTR ) ; - DEV_UPDATE_INTR ; - sim_activate (&ptr_unit, ptr_unit.wait); /* activate unit */ - break; - - case iopC: /* clear */ - DEV_CLR_BUSY( INT_PTR ) ; - DEV_CLR_DONE( INT_PTR ) ; - DEV_UPDATE_INTR ; - sim_cancel (&ptr_unit); /* deactivate unit */ - break; - } /* end switch */ - -return iodata; -} - - -/* Unit service */ - -t_stat ptr_svc (UNIT *uptr) -{ -int32 temp; - -if ((ptr_unit.flags & UNIT_ATT) == 0) /* attached? */ - return IORETURN (ptr_stopioe, SCPE_UNATT); -if ((temp = getc (ptr_unit.fileref)) == EOF) { /* end of file? */ - if (feof (ptr_unit.fileref)) { - if (ptr_stopioe) - sim_printf ("PTR end of file\n"); - else return SCPE_OK; - } - else sim_perror ("PTR I/O error"); - clearerr (ptr_unit.fileref); - return SCPE_IOERR; - } - -DEV_CLR_BUSY( INT_PTR ) ; -DEV_SET_DONE( INT_PTR ) ; -DEV_UPDATE_INTR ; -ptr_unit.buf = temp & ((ptr_unit.flags & UNIT_8B)? 0377: 0177); -++(ptr_unit.pos); -return SCPE_OK; -} - - -/* Reset routine */ - -t_stat ptr_reset (DEVICE *dptr) -{ -ptr_unit.buf = 0; /* */ -DEV_CLR_BUSY( INT_PTR ) ; -DEV_CLR_DONE( INT_PTR ) ; -DEV_UPDATE_INTR ; -sim_cancel (&ptr_unit); /* deactivate unit */ -return SCPE_OK; -} - - -/* Boot routine */ - -t_stat ptr_boot (int32 unitno, DEVICE *dptr) -{ -ptr_reset( dptr ) ; -/* set position to 0? */ -cpu_boot( unitno, dptr ) ; -SR = /* low-speed: no high-order bit set */ DEV_PTR ; -return ( SCPE_OK ); -} /* end of 'ptr_boot' */ - - - - - -/* Paper tape punch: IOT routine */ - -int32 ptp (int32 pulse, int32 code, int32 AC) -{ -if (code == ioDOA) - ptp_unit.buf = AC & 0377; - -switch (pulse) - { /* decode IR<8:9> */ - case iopS: /* start */ - DEV_SET_BUSY( INT_PTP ) ; - DEV_CLR_DONE( INT_PTP ) ; - DEV_UPDATE_INTR ; - sim_activate (&ptp_unit, ptp_unit.wait); /* activate unit */ - break; - - case iopC: /* clear */ - DEV_CLR_BUSY( INT_PTP ) ; - DEV_CLR_DONE( INT_PTP ) ; - DEV_UPDATE_INTR ; - sim_cancel (&ptp_unit); /* deactivate unit */ - break; - } /* end switch */ - -return 0; -} - - -/* Unit service */ - -t_stat ptp_svc (UNIT *uptr) -{ -DEV_CLR_BUSY( INT_PTP ) ; -DEV_SET_DONE( INT_PTP ) ; -DEV_UPDATE_INTR ; -if ((ptp_unit.flags & UNIT_ATT) == 0) /* attached? */ - return IORETURN (ptp_stopioe, SCPE_UNATT); -if (putc ((ptp_unit.buf & ((ptp_unit.flags & UNIT_8B)? 0377: 0177)), ptp_unit.fileref) == EOF) { - sim_perror ("PTP I/O error"); - clearerr (ptp_unit.fileref); - return SCPE_IOERR; - } -++(ptp_unit.pos); -return SCPE_OK; -} - - -/* Reset routine */ - -t_stat ptp_reset (DEVICE *dptr) -{ -ptp_unit.buf = 0; /* */ -DEV_CLR_BUSY( INT_PTP ) ; -DEV_CLR_DONE( INT_PTP ) ; -DEV_UPDATE_INTR ; -sim_cancel (&ptp_unit); /* deactivate unit */ -return SCPE_OK; -} +/* nova_pt.c: NOVA paper tape read/punch simulator + + Copyright (c) 1993-2016, Robert M. Supnik + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Robert M Supnik shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Robert M Supnik. + + ptr paper tape reader + ptp paper tape punch + + 13-May-16 RMS Lengthened wait time for DCC BASIC timing error + 28-Mar-15 RMS Revised to use sim_printf + 04-Jul-07 BKR added PTR and PTP device DISABLE capability, + added 7B/8B support PTR and PTP (default is 8B), + DEV_SET/CLR macros now used, + PTR and PTP can now be DISABLED + 25-Apr-03 RMS Revised for extended file support + 03-Oct-02 RMS Added DIBs + 30-May-02 RMS Widened POS to 32b + 29-Nov-01 RMS Added read only unit support + + +Notes: + - data masked to 7- or 8- bits, based on 7B or 8B, default is 8-bits + - register TIME is the delay between character read or write operations + - register POS show the number of characters read from or sent to the PTR or PTP + - register STOP_IOE determines return value issued if output to unattached PTR or PTP is attempted +*/ + +#include "nova_defs.h" + +extern int32 int_req, dev_busy, dev_done, dev_disable ; +extern int32 SR ; + +extern t_stat cpu_boot(int32 unitno, DEVICE * dptr ) ; + + +int32 ptr_stopioe = 0, ptp_stopioe = 0; /* stop on error */ + +int32 ptr (int32 pulse, int32 code, int32 AC); +int32 ptp (int32 pulse, int32 code, int32 AC); +t_stat ptr_svc (UNIT *uptr); +t_stat ptp_svc (UNIT *uptr); +t_stat ptr_reset (DEVICE *dptr); +t_stat ptp_reset (DEVICE *dptr); +t_stat ptr_boot (int32 unitno, DEVICE *dptr); + + +/* 7 or 8 bit data mask support for either device */ + +#define UNIT_V_8B (UNIT_V_UF + 0) /* 8b output */ +#define UNIT_8B (1 << UNIT_V_8B) + + +/* PTR data structures + + ptr_dev PTR device descriptor + ptr_unit PTR unit descriptor + ptr_reg PTR register list +*/ + +DIB ptr_dib = { DEV_PTR, INT_PTR, PI_PTR, &ptr }; + +UNIT ptr_unit = { /* 2007-May-30, bkr */ + UDATA (&ptr_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_ROABLE+UNIT_8B, 0), 300 + }; + +REG ptr_reg[] = { + { ORDATA (BUF, ptr_unit.buf, 8) }, + { FLDATA (BUSY, dev_busy, INT_V_PTR) }, + { FLDATA (DONE, dev_done, INT_V_PTR) }, + { FLDATA (DISABLE, dev_disable, INT_V_PTR) }, + { FLDATA (INT, int_req, INT_V_PTR) }, + { DRDATA (POS, ptr_unit.pos, T_ADDR_W), PV_LEFT }, + { DRDATA (TIME, ptr_unit.wait, 24), PV_LEFT }, + { FLDATA (STOP_IOE, ptr_stopioe, 0) }, + { NULL } + }; + +MTAB ptr_mod[] = /* 2007-May-30, bkr */ + { + { UNIT_8B, 0, "7b", "7B", NULL }, + { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, + { 0, 0, NULL, NULL, NULL } + } ; + +DEVICE ptr_dev = { + "PTR", &ptr_unit, ptr_reg, ptr_mod /* 2007-May-30, bkr */, + 1, 10, 31, 1, 8, 8, + NULL, NULL, &ptr_reset, + &ptr_boot, NULL, NULL, + &ptr_dib, DEV_DISABLE /* 2007-May-30, bkr */ + }; + +/* PTP data structures + + ptp_dev PTP device descriptor + ptp_unit PTP unit descriptor + ptp_reg PTP register list +*/ + +DIB ptp_dib = { DEV_PTP, INT_PTP, PI_PTP, &ptp }; + +UNIT ptp_unit = + { + UDATA (&ptp_svc, UNIT_SEQ+UNIT_ATTABLE+UNIT_8B, 0), SERIAL_OUT_WAIT + }; + +REG ptp_reg[] = { + { ORDATA (BUF, ptp_unit.buf, 8) }, + { FLDATA (BUSY, dev_busy, INT_V_PTP) }, + { FLDATA (DONE, dev_done, INT_V_PTP) }, + { FLDATA (DISABLE, dev_disable, INT_V_PTP) }, + { FLDATA (INT, int_req, INT_V_PTP) }, + { DRDATA (POS, ptp_unit.pos, T_ADDR_W), PV_LEFT }, + { DRDATA (TIME, ptp_unit.wait, 24), PV_LEFT }, + { FLDATA (STOP_IOE, ptp_stopioe, 0) }, + { NULL } + }; + +MTAB ptp_mod[] = + { + { UNIT_8B, 0, "7b", "7B", NULL }, + { UNIT_8B, UNIT_8B, "8b", "8B", NULL }, + { 0, 0, NULL, NULL, NULL } + } ; + +DEVICE ptp_dev = + { + "PTP", &ptp_unit, ptp_reg, ptp_mod /* 2007-May-30, bkr */, + 1, 10, 31, 1, 8, 8, + NULL, NULL, &ptp_reset, + NULL, NULL, NULL, + &ptp_dib, DEV_DISABLE /* 2007-May-30, bkr */ + }; + + +/* Paper tape reader: IOT routine */ + +int32 ptr (int32 pulse, int32 code, int32 AC) +{ +int32 iodata; + +iodata = (code == ioDIA)? + ptr_unit.buf & 0377 + : 0; +switch (pulse) + { /* decode IR<8:9> */ + case iopS: /* start */ + DEV_SET_BUSY( INT_PTR ) ; + DEV_CLR_DONE( INT_PTR ) ; + DEV_UPDATE_INTR ; + sim_activate (&ptr_unit, ptr_unit.wait); /* activate unit */ + break; + + case iopC: /* clear */ + DEV_CLR_BUSY( INT_PTR ) ; + DEV_CLR_DONE( INT_PTR ) ; + DEV_UPDATE_INTR ; + sim_cancel (&ptr_unit); /* deactivate unit */ + break; + } /* end switch */ + +return iodata; +} + + +/* Unit service */ + +t_stat ptr_svc (UNIT *uptr) +{ +int32 temp; + +if ((ptr_unit.flags & UNIT_ATT) == 0) /* attached? */ + return IORETURN (ptr_stopioe, SCPE_UNATT); +if ((temp = getc (ptr_unit.fileref)) == EOF) { /* end of file? */ + if (feof (ptr_unit.fileref)) { + if (ptr_stopioe) + sim_printf ("PTR end of file\n"); + else return SCPE_OK; + } + else sim_perror ("PTR I/O error"); + clearerr (ptr_unit.fileref); + return SCPE_IOERR; + } + +DEV_CLR_BUSY( INT_PTR ) ; +DEV_SET_DONE( INT_PTR ) ; +DEV_UPDATE_INTR ; +ptr_unit.buf = temp & ((ptr_unit.flags & UNIT_8B)? 0377: 0177); +++(ptr_unit.pos); +return SCPE_OK; +} + + +/* Reset routine */ + +t_stat ptr_reset (DEVICE *dptr) +{ +ptr_unit.buf = 0; /* */ +DEV_CLR_BUSY( INT_PTR ) ; +DEV_CLR_DONE( INT_PTR ) ; +DEV_UPDATE_INTR ; +sim_cancel (&ptr_unit); /* deactivate unit */ +return SCPE_OK; +} + + +/* Boot routine */ + +t_stat ptr_boot (int32 unitno, DEVICE *dptr) +{ +ptr_reset( dptr ) ; +/* set position to 0? */ +cpu_boot( unitno, dptr ) ; +SR = /* low-speed: no high-order bit set */ DEV_PTR ; +return ( SCPE_OK ); +} /* end of 'ptr_boot' */ + + + + + +/* Paper tape punch: IOT routine */ + +int32 ptp (int32 pulse, int32 code, int32 AC) +{ +if (code == ioDOA) + ptp_unit.buf = AC & 0377; + +switch (pulse) + { /* decode IR<8:9> */ + case iopS: /* start */ + DEV_SET_BUSY( INT_PTP ) ; + DEV_CLR_DONE( INT_PTP ) ; + DEV_UPDATE_INTR ; + sim_activate (&ptp_unit, ptp_unit.wait); /* activate unit */ + break; + + case iopC: /* clear */ + DEV_CLR_BUSY( INT_PTP ) ; + DEV_CLR_DONE( INT_PTP ) ; + DEV_UPDATE_INTR ; + sim_cancel (&ptp_unit); /* deactivate unit */ + break; + } /* end switch */ + +return 0; +} + + +/* Unit service */ + +t_stat ptp_svc (UNIT *uptr) +{ +DEV_CLR_BUSY( INT_PTP ) ; +DEV_SET_DONE( INT_PTP ) ; +DEV_UPDATE_INTR ; +if ((ptp_unit.flags & UNIT_ATT) == 0) /* attached? */ + return IORETURN (ptp_stopioe, SCPE_UNATT); +if (putc ((ptp_unit.buf & ((ptp_unit.flags & UNIT_8B)? 0377: 0177)), ptp_unit.fileref) == EOF) { + sim_perror ("PTP I/O error"); + clearerr (ptp_unit.fileref); + return SCPE_IOERR; + } +++(ptp_unit.pos); +return SCPE_OK; +} + + +/* Reset routine */ + +t_stat ptp_reset (DEVICE *dptr) +{ +ptp_unit.buf = 0; /* */ +DEV_CLR_BUSY( INT_PTP ) ; +DEV_CLR_DONE( INT_PTP ) ; +DEV_UPDATE_INTR ; +sim_cancel (&ptp_unit); /* deactivate unit */ +return SCPE_OK; +} diff --git a/TX-0/tx0_defs.h b/TX-0/tx0_defs.h index 4939d2cc..2b1feaa2 100644 --- a/TX-0/tx0_defs.h +++ b/TX-0/tx0_defs.h @@ -90,4 +90,4 @@ #define UNIT_MODE_TEST (1 << UNIT_V_MODE) -#endif /* TX0_DEFS_H_ */ +#endif /* TX0_DEFS_H_ */ diff --git a/display/iii.c b/display/iii.c index 396f5d5a..94f83e8d 100644 --- a/display/iii.c +++ b/display/iii.c @@ -97,7 +97,7 @@ iii_draw_line(int x1, int y1, int x2, int y2, int l) if (dy == 0) { for (i = 1; i < dx; i++) { display_point(x1, y1, l, 0); - x1+=ax; + x1+=ax; } return; } diff --git a/scp.c b/scp.c index a474fc73..5fc44bea 100644 --- a/scp.c +++ b/scp.c @@ -6853,10 +6853,10 @@ if (vdelt) { if (1) { char mode[] = S_xstr(SIM_VERSION_MODE); - if (NULL != strchr (mode, '\"')) { /* Quoted String? */ - mode[strlen (mode) - 1] = '\0'; /* strip quotes */ - memmove (mode, mode + 1, strlen (mode)); - } + if (NULL != strchr (mode, '\"')) { /* Quoted String? */ + mode[strlen (mode) - 1] = '\0'; /* strip quotes */ + memmove (mode, mode + 1, strlen (mode)); + } fprintf (st, " %s", mode); setenv ("SIM_VERSION_MODE", mode, 1); } diff --git a/swtp6800/common/m6800.c b/swtp6800/common/m6800.c index 35346d0f..915efe50 100644 --- a/swtp6800/common/m6800.c +++ b/swtp6800/common/m6800.c @@ -2050,13 +2050,13 @@ int32 sim_load(FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) chk += addr >> 8; for (i=0; i> 8; for (i=0; i<=(end - addr); i++) { byte = CPU_BD_get_mbyte(addr + i); - fprintf(fileref, "%02X", byte); + fprintf(fileref, "%02X", byte); chk += byte; chk &= BYTEMASK; cnt++; } chk = (~chk) & BYTEMASK; fprintf(fileref, "%02X\n", chk); - addr = end; + addr = end; } fprintf(fileref,"S9\n"); //EOF record } else { //binary diff --git a/swtp6800/common/mp-s.c b/swtp6800/common/mp-s.c index c6d2c7da..7267d195 100644 --- a/swtp6800/common/mp-s.c +++ b/swtp6800/common/mp-s.c @@ -335,23 +335,23 @@ int32 sio0d(int32 io, int32 data) case 0x11: // PTR on ptr_flag = 1; ptr_unit.u3 |= RXF; - printf("Reader on\n"); + printf("Reader on\n"); break; case 0x12: // PTP on ptp_flag = 1; ptp_unit.u3 |= TXE; - printf("Punch on\n"); + printf("Punch on\n"); break; case 0x13: // PTR off ptr_flag = 0; if (ptr_unit.pos) - printf("Reader off-%d bytes read\n", ptr_unit.pos); + printf("Reader off-%d bytes read\n", ptr_unit.pos); ptr_unit.pos = 0; break; case 0x14: // PTP off ptp_flag = 0; if (ptp_unit.pos) - printf("Punch off-%d bytes written\n", ptp_unit.pos); + printf("Punch off-%d bytes written\n", ptp_unit.pos); ptp_unit.pos = 0; break; default: // ignore all other characters diff --git a/tt2500/tt2500_dpy.c b/tt2500/tt2500_dpy.c index 7d9ff112..225fba0b 100644 --- a/tt2500/tt2500_dpy.c +++ b/tt2500/tt2500_dpy.c @@ -63,7 +63,7 @@ int dpy_quit = FALSE; 4000 6000 -tv-off tv-off-const 1 001 (unused) +tv-off tv-off-const 1 001 (unused) tv-green-const 2 010 (unused) tv-blank green-blank-const 4 100 (flash) diff --git a/tt2500/tt2500_rom.c b/tt2500/tt2500_rom.c index b0405147..c2cc98aa 100644 --- a/tt2500/tt2500_rom.c +++ b/tt2500/tt2500_rom.c @@ -1,99 +1,99 @@ -/* tt2500_cpu.c: TT2500 bootstrap ROM contents. - - Copyright (c) 2020, Lars Brinkhoff - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - LARS BRINKHOFF BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of Lars Brinkhoff shall not be - used in advertising or otherwise to promote the sale, use or other dealings - in this Software without prior written authorization from Lars Brinkhoff. -*/ - -#include "tt2500_defs.h" - -uint16 tt2500_rom[] = -{ -/* BEGIN 0 */ 0010000, /* (NOP) */ -/* 1 */ 0010000, /* (NOP) */ -/* 2 */ 0010000, /* (NOP) */ -/* START 3 */ 0040025, /* (PUSHJ GETC & GET CHAR) */ -/* 4 */ 0007001, /* (SUBI 0 WD & IS WORD "LOGO") */ -/* 5 */ 0147577, /* (147577) */ -/* 6 */ 0133774, /* (BNE START) */ -/* 7 */ 0040022, /* (PUSHJ GETW) */ -/* 10 */ 0074201, /* (GET ADR WD) */ -/* 11 */ 0040022, /* (PUSHJ GETW) */ -/* 12 */ 0074301, /* (GET CNT WD) */ -/* LOOP 13 */ 0040022, /* (PUSHJ GETW) */ -/* 14 */ 0004220, /* (DEC ADR) */ -/* 15 */ 0025100, /* (CWRITE WD) */ -/* 16 */ 0004320, /* (DEC CNT) */ -/* 17 */ 0133773, /* (BNE LOOP) */ -/* 20 */ 0074023, /* (GET 0 XR) */ -/* 21 */ 0050100, /* (JUMP 100) */ -/* GETW 22 */ 0040025, /* (PUSHJ GETC) */ -/* 23 */ 0040025, /* (PUSHJ GETC) */ -/* 24 */ 0040025, /* (PUSHJ GETC) */ -/* GETC 25 */ 0073320, /* (DIS INTS 2) */ -/* 26 */ 0050025, /* (JUMP GETC) */ -/* 27 */ 0010000, /* (NOP) */ -/* 30 */ 0074424, /* (GET CH UART) */ -/* 31 */ 0001444, /* (ANDI CH CH) */ -/* 32 */ 0000017, /* (17) */ -/* 33 */ 0004114, /* (ROT WD 14) */ -/* 34 */ 0001141, /* (ANDI WD WD) */ -/* 35 */ 0177760, /* (177760) */ -/* 36 */ 0002104, /* (IOR WD CH) */ -/* 37 */ 0076016 /* (POPJ) */ - - -#if 0 - 0010000, /* NOP */ - 0010000, /* NOP */ - 0010000, /* NOP */ - 0040025, /* PUSHJ GETC Call subroutine to read TTY character. */ - 0007001, /* SUBI 0 WD 32-bit instruction computes 147577 - WD */ - 0147577, /* 147577 (The constant "LOGO" is stored here.) */ - 0133774, /* BNE START Branch to START if result Not zero. */ - 0040022, /* PUSHJ GETW Reads 4 characters to make 16-bit word. */ - 0074201, /* GET ADR WD Move word from WD to ADR (register 2). */ - 0040022, /* PUSHJ GETW Get next data word into WD. */ - 0074301, /* GET CNT WD Move it to CNT. */ - 0040022, /* PUSHJ GETW Get another data word. */ - 0004220, /* DEC ADR Decrement the Address and use it to */ - 0025100, /* CWRITE WD write [WD] into control memory. */ - 0004320, /* DEC CNT Decrement the word in CNT (count). */ - 0133773, /* BNE LOOP Branch to LOOP unless CNT is zero. */ - 0074023, /* GET 0 XR Makes PC leave Bootstrap Loader. */ - 0050100, /* JUMP 100 Jump to location 100. */ - 0040025, /* PUSHJ GETC Get 4 bits and shift into WD. */ - 0040025, /* PUSHJ GETC Get 4 more. */ - 0040025, /* PUSHJ GETC Get 4 more. */ - 0073320, /* DIS INTS 2 Skip 2 steps if TTY interrupt active. */ - 0050025, /* JUMP GETC If not, go back and wait. */ - 0010000, /* NOP (Skip over this.) */ - 0074424, /* GET CH UART Put the character into CH. */ - 0001444, /* ANDI CH CH Mask out all but last four bits by */ - 0000017, /* 17 ANDing with 0 000 000 000 001 111. */ - 0004114, /* ROT WD 14 Rotate WD four places right. */ - 0001141, /* ANDI WD WD Zero out last four bits by */ - 0177760, /* 177760 ANDing with 1 111 111 111 110 000. */ - 0002104, /* IOR WD CH Finally, OR them together. */ - 0075600, /* POPJ Return to calling program. */ -#endif -}; +/* tt2500_cpu.c: TT2500 bootstrap ROM contents. + + Copyright (c) 2020, Lars Brinkhoff + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + LARS BRINKHOFF BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Lars Brinkhoff shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Lars Brinkhoff. +*/ + +#include "tt2500_defs.h" + +uint16 tt2500_rom[] = +{ +/* BEGIN 0 */ 0010000, /* (NOP) */ +/* 1 */ 0010000, /* (NOP) */ +/* 2 */ 0010000, /* (NOP) */ +/* START 3 */ 0040025, /* (PUSHJ GETC & GET CHAR) */ +/* 4 */ 0007001, /* (SUBI 0 WD & IS WORD "LOGO") */ +/* 5 */ 0147577, /* (147577) */ +/* 6 */ 0133774, /* (BNE START) */ +/* 7 */ 0040022, /* (PUSHJ GETW) */ +/* 10 */ 0074201, /* (GET ADR WD) */ +/* 11 */ 0040022, /* (PUSHJ GETW) */ +/* 12 */ 0074301, /* (GET CNT WD) */ +/* LOOP 13 */ 0040022, /* (PUSHJ GETW) */ +/* 14 */ 0004220, /* (DEC ADR) */ +/* 15 */ 0025100, /* (CWRITE WD) */ +/* 16 */ 0004320, /* (DEC CNT) */ +/* 17 */ 0133773, /* (BNE LOOP) */ +/* 20 */ 0074023, /* (GET 0 XR) */ +/* 21 */ 0050100, /* (JUMP 100) */ +/* GETW 22 */ 0040025, /* (PUSHJ GETC) */ +/* 23 */ 0040025, /* (PUSHJ GETC) */ +/* 24 */ 0040025, /* (PUSHJ GETC) */ +/* GETC 25 */ 0073320, /* (DIS INTS 2) */ +/* 26 */ 0050025, /* (JUMP GETC) */ +/* 27 */ 0010000, /* (NOP) */ +/* 30 */ 0074424, /* (GET CH UART) */ +/* 31 */ 0001444, /* (ANDI CH CH) */ +/* 32 */ 0000017, /* (17) */ +/* 33 */ 0004114, /* (ROT WD 14) */ +/* 34 */ 0001141, /* (ANDI WD WD) */ +/* 35 */ 0177760, /* (177760) */ +/* 36 */ 0002104, /* (IOR WD CH) */ +/* 37 */ 0076016 /* (POPJ) */ + + +#if 0 + 0010000, /* NOP */ + 0010000, /* NOP */ + 0010000, /* NOP */ + 0040025, /* PUSHJ GETC Call subroutine to read TTY character. */ + 0007001, /* SUBI 0 WD 32-bit instruction computes 147577 - WD */ + 0147577, /* 147577 (The constant "LOGO" is stored here.) */ + 0133774, /* BNE START Branch to START if result Not zero. */ + 0040022, /* PUSHJ GETW Reads 4 characters to make 16-bit word. */ + 0074201, /* GET ADR WD Move word from WD to ADR (register 2). */ + 0040022, /* PUSHJ GETW Get next data word into WD. */ + 0074301, /* GET CNT WD Move it to CNT. */ + 0040022, /* PUSHJ GETW Get another data word. */ + 0004220, /* DEC ADR Decrement the Address and use it to */ + 0025100, /* CWRITE WD write [WD] into control memory. */ + 0004320, /* DEC CNT Decrement the word in CNT (count). */ + 0133773, /* BNE LOOP Branch to LOOP unless CNT is zero. */ + 0074023, /* GET 0 XR Makes PC leave Bootstrap Loader. */ + 0050100, /* JUMP 100 Jump to location 100. */ + 0040025, /* PUSHJ GETC Get 4 bits and shift into WD. */ + 0040025, /* PUSHJ GETC Get 4 more. */ + 0040025, /* PUSHJ GETC Get 4 more. */ + 0073320, /* DIS INTS 2 Skip 2 steps if TTY interrupt active. */ + 0050025, /* JUMP GETC If not, go back and wait. */ + 0010000, /* NOP (Skip over this.) */ + 0074424, /* GET CH UART Put the character into CH. */ + 0001444, /* ANDI CH CH Mask out all but last four bits by */ + 0000017, /* 17 ANDing with 0 000 000 000 001 111. */ + 0004114, /* ROT WD 14 Rotate WD four places right. */ + 0001141, /* ANDI WD WD Zero out last four bits by */ + 0177760, /* 177760 ANDing with 1 111 111 111 110 000. */ + 0002104, /* IOR WD CH Finally, OR them together. */ + 0075600, /* POPJ Return to calling program. */ +#endif +};