AltairZ80 SOL20: Minor corrections and formatting
While working on the AltairZ80 documentation, I found some problems with the SOL20 registers and fixed some formatting issues. Added static and "vdm1_" prefix to "charset" variable in s100_vdm1.c
This commit is contained in:
parent
7a8cfcac05
commit
d70a0a16c5
2 changed files with 36 additions and 31 deletions
|
@ -79,7 +79,7 @@ static enum vdm1_switch vdm1_ctrl = VDM1_MODE4;
|
||||||
static enum vdm1_switch vdm1_cursor = VDM1_NOBLINK;
|
static enum vdm1_switch vdm1_cursor = VDM1_NOBLINK;
|
||||||
static enum vdm1_switch vdm1_display = VDM1_NORMAL;
|
static enum vdm1_switch vdm1_display = VDM1_NORMAL;
|
||||||
|
|
||||||
const uint8 charset[128][VDM1_CHAR_YSIZE] =
|
static const uint8 vdm1_charset[128][VDM1_CHAR_YSIZE] =
|
||||||
{{0x00,0x7f,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x7f,0x00,0x00,0x00},
|
{{0x00,0x7f,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x7f,0x00,0x00,0x00},
|
||||||
{0x00,0x7f,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00},
|
{0x00,0x7f,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00},
|
||||||
{0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x7f,0x00,0x00,0x00},
|
{0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x7f,0x00,0x00,0x00},
|
||||||
|
@ -537,7 +537,7 @@ static void vdm1_render_char(uint8 byte, uint8 x, uint8 y)
|
||||||
|
|
||||||
pixel = start + (VDM1_XSIZE * ry);
|
pixel = start + (VDM1_XSIZE * ry);
|
||||||
|
|
||||||
c = charset[byte & 0x7f][ry];
|
c = vdm1_charset[byte & 0x7f][ry];
|
||||||
|
|
||||||
if (!vdm1_blink && byte & 0x80) {
|
if (!vdm1_blink && byte & 0x80) {
|
||||||
c = ~(c & 0xff);
|
c = ~(c & 0xff);
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
format allowed about 88K of storage per diskette. Later, the DSDD North
|
format allowed about 88K of storage per diskette. Later, the DSDD North
|
||||||
Star controller increased capacity to 350K of storage per diskette.
|
Star controller increased capacity to 350K of storage per diskette.
|
||||||
|
|
||||||
Both SSSD (MDSA) and DSDD (MDSAD) are supported by AltairZ80.
|
Both SSSD (MDSA) and SSDD/DSDD (MDSAD) are supported by AltairZ80.
|
||||||
|
|
||||||
Disk images of North Star DOS and CP/M for both of the North Star
|
Disk images of North Star DOS and CP/M for both of the North Star
|
||||||
controllers, along with utilities for disk image transfer, are available at
|
controllers, along with utilities for disk image transfer, are available at
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
SET SOL20 ENA
|
SET SOL20 ENA
|
||||||
SET SOL20 ROM=13C
|
SET SOL20 VER=13C
|
||||||
SET MDSA ENA
|
SET MDSA ENA
|
||||||
ATTACH MDSA0 CPM22b14-48K-SDC-SOL.NSI
|
ATTACH MDSA0 CPM22b14-48K-SDC-SOL.NSI
|
||||||
BOOT SOL20
|
BOOT SOL20
|
||||||
|
@ -937,12 +937,12 @@ static uint8 *sol20_rom = sol20_rom_41; /* Default 4.1 ROM */
|
||||||
/*
|
/*
|
||||||
** PORT ASSIGNMENTS
|
** PORT ASSIGNMENTS
|
||||||
*/
|
*/
|
||||||
#define SOL20_SERST 0xf8 /* SERIAL STATUS PORT */
|
#define SOL20_SERST 0xf8 /* SERIAL STATUS PORT */
|
||||||
#define SOL20_SDATA 0xf9 /* SERIAL DATA */
|
#define SOL20_SDATA 0xf9 /* SERIAL DATA */
|
||||||
#define SOL20_STAPT 0xfa /* STATUS PORT GENERAL */
|
#define SOL20_STAPT 0xfa /* STATUS PORT GENERAL */
|
||||||
#define SOL20_TDATA 0xfb /* TAPE DATA */
|
#define SOL20_TDATA 0xfb /* TAPE DATA */
|
||||||
#define SOL20_KDATA 0xfc /* KEYBOARD DATA */
|
#define SOL20_KDATA 0xfc /* KEYBOARD DATA */
|
||||||
#define SOL20_PDATA 0xfd /* PARALLEL DATA */
|
#define SOL20_PDATA 0xfd /* PARALLEL DATA */
|
||||||
/*
|
/*
|
||||||
** BIT ASSIGNMENT MASKS
|
** BIT ASSIGNMENT MASKS
|
||||||
*/
|
*/
|
||||||
|
@ -1001,7 +1001,7 @@ static MTAB sol20_mod[] = {
|
||||||
&set_membase, &show_membase, NULL, "ROM address"},
|
&set_membase, &show_membase, NULL, "ROM address"},
|
||||||
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "VER", "VER={13,13C,41}",
|
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "VER", "VER={13,13C,41}",
|
||||||
&sol20_set_rom, &sol20_show_rom, NULL, "ROM version"},
|
&sol20_set_rom, &sol20_show_rom, NULL, "ROM version"},
|
||||||
{ MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT",
|
{ MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT",
|
||||||
NULL, sol20_show_ports, NULL, "I/O port address" },
|
NULL, sol20_show_ports, NULL, "I/O port address" },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
@ -1078,6 +1078,8 @@ static SOL20_PORT_CTX sol20k_ctx = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static REG sol20k_reg[] = {
|
static REG sol20k_reg[] = {
|
||||||
|
{ HRDATAD (RDR, sol20k_ctx.rdr, 1, "Keyboard port RX data ready"), },
|
||||||
|
{ HRDATAD (RXD, sol20k_ctx.rxd, 8, "Keyboard port RX data register"), },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1086,9 +1088,9 @@ static UNIT sol20k_unit[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static MTAB sol20k_mod[] = {
|
static MTAB sol20k_mod[] = {
|
||||||
{ MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT",
|
{ MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT",
|
||||||
NULL, sol20_show_ports, NULL, "Show serial I/O ports" },
|
NULL, sol20_show_ports, NULL, "Show serial I/O ports" },
|
||||||
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "BAUD", "BAUD",
|
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "BAUD", "BAUD",
|
||||||
&sol20_set_baud, &sol20_show_baud, NULL, "Set baud rate (default=9600)" },
|
&sol20_set_baud, &sol20_show_baud, NULL, "Set baud rate (default=9600)" },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
@ -1151,12 +1153,11 @@ static SOL20_PORT_CTX sol20t_ctx = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static REG sol20t_reg[] = {
|
static REG sol20t_reg[] = {
|
||||||
{ HRDATAD (BAUD, sol20t_ctx.baud, 16, "Tape port baud register"), },
|
{ HRDATAD (STATUS, sol20t_ctx.status, 8, "Tape port status register"), },
|
||||||
{ HRDATAD (STATUS, sol20t_ctx.baud, 8, "Tape port status register"), },
|
{ HRDATAD (TBE, sol20t_ctx.tbe, 1, "Tape port TX buffer empty register"), },
|
||||||
{ HRDATAD (TXP, sol20t_ctx.tbe, 8, "Tape port TX buffer empty register"), },
|
{ HRDATAD (TXD, sol20t_ctx.txd, 8, "Tape port TX data register"), },
|
||||||
{ HRDATAD (TXD, sol20t_ctx.txd, 8, "Tape port TX data register"), },
|
{ HRDATAD (RDR, sol20t_ctx.rdr, 1, "Tape port RX data ready"), },
|
||||||
{ HRDATAD (RXD, sol20t_ctx.rdr, 8, "Tape port RX data ready"), },
|
{ HRDATAD (RXD, sol20t_ctx.rxd, 8, "Tape port RX data register"), },
|
||||||
{ HRDATAD (RXD, sol20t_ctx.rxd, 8, "Tape port RX data register"), },
|
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1227,10 +1228,11 @@ static SOL20_PORT_CTX sol20s_ctx = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static REG sol20s_reg[] = {
|
static REG sol20s_reg[] = {
|
||||||
{ HRDATAD (BAUD, sol20s_ctx.baud, 16, "Modem port baud register"), },
|
{ HRDATAD (BAUD, sol20s_ctx.baud, 16, "Serial port baud register"), },
|
||||||
{ HRDATAD (TXP, sol20s_ctx.tbe, 8, "Modem port TX buffer empty register"), },
|
{ HRDATAD (TBE, sol20s_ctx.tbe, 1, "Serial port TX buffer empty register"), },
|
||||||
{ HRDATAD (TXD, sol20s_ctx.txd, 8, "Modem port TX data register"), },
|
{ HRDATAD (TXD, sol20s_ctx.txd, 8, "Serial port TX data register"), },
|
||||||
{ HRDATAD (RXD, sol20s_ctx.rxd, 8, "Modem port RX register"), },
|
{ HRDATAD (RDR, sol20s_ctx.rdr, 1, "Serial port RX data ready"), },
|
||||||
|
{ HRDATAD (RXD, sol20s_ctx.rxd, 8, "Serial port RX register"), },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1239,9 +1241,9 @@ static UNIT sol20s_unit[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static MTAB sol20s_mod[] = {
|
static MTAB sol20s_mod[] = {
|
||||||
{ MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT",
|
{ MTAB_XTD|MTAB_VDV, 0, "PORT", "PORT",
|
||||||
NULL, sol20_show_ports, NULL, "Show serial I/O ports" },
|
NULL, sol20_show_ports, NULL, "Show serial I/O ports" },
|
||||||
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "BAUD", "BAUD",
|
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "BAUD", "BAUD",
|
||||||
&sol20_set_baud, &sol20_show_baud, NULL, "Set baud rate (default=9600)" },
|
&sol20_set_baud, &sol20_show_baud, NULL, "Set baud rate (default=9600)" },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
@ -1301,8 +1303,11 @@ static SOL20_PORT_CTX sol20p_ctx = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static REG sol20p_reg[] = {
|
static REG sol20p_reg[] = {
|
||||||
{ HRDATAD (TXP, sol20p_ctx.tbe, 8, "Printer port buffer empty register"), },
|
{ HRDATAD (BAUD, sol20s_ctx.baud, 16, "Serial port baud register"), },
|
||||||
|
{ HRDATAD (TBE, sol20p_ctx.tbe, 1, "Printer port buffer empty register"), },
|
||||||
{ HRDATAD (TXD, sol20p_ctx.txd, 8, "Printer port data register"), },
|
{ HRDATAD (TXD, sol20p_ctx.txd, 8, "Printer port data register"), },
|
||||||
|
{ HRDATAD (RDR, sol20k_ctx.rdr, 1, "Printer port RX data ready"), },
|
||||||
|
{ HRDATAD (RXD, sol20p_ctx.rxd, 8, "Printer port RX data register"), },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1311,7 +1316,7 @@ static UNIT sol20p_unit[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static MTAB sol20p_mod[] = {
|
static MTAB sol20p_mod[] = {
|
||||||
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "BAUD", "BAUD",
|
{ MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "BAUD", "BAUD",
|
||||||
&sol20_set_baud, &sol20_show_baud, NULL, "Set baud rate (default=9600)" },
|
&sol20_set_baud, &sol20_show_baud, NULL, "Set baud rate (default=9600)" },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
@ -2262,11 +2267,11 @@ static t_stat sol20_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const
|
||||||
fprintf(st, "F2: Eject tape\n");
|
fprintf(st, "F2: Eject tape\n");
|
||||||
fprintf(st, "F3: Erase tape\n");
|
fprintf(st, "F3: Erase tape\n");
|
||||||
fprintf(st, "F4: Tape speed\n");
|
fprintf(st, "F4: Tape speed\n");
|
||||||
fprintf(st, "F5: Load\n");
|
fprintf(st, "F5: LOAD\n");
|
||||||
fprintf(st, "F6: Mode Select\n");
|
fprintf(st, "F6: MODE SELECT\n");
|
||||||
fprintf(st, "F7: Clear\n");
|
fprintf(st, "F7: CLEAR\n");
|
||||||
fprintf(st, "F8: CAPS lock\n");
|
fprintf(st, "F8: CAPS lock\n");
|
||||||
fprintf(st, "F10: Reboot\n");
|
fprintf(st, "F10: Reboot System\n");
|
||||||
|
|
||||||
|
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
|
|
Loading…
Add table
Reference in a new issue