Benutzer-Werkzeuge

    ~~ RM: keiner ~~ UI: ---start--- ~~ IP:3.239.97.34~~

Webseiten-Werkzeuge


Minimig Interna

Baustelle

Vollständiger Name/Bezeichnung

… kleine Beschreibung … … mit Bild rechtsbündig … Darstellungs-Größe auf ca.200px eingstellt

ARM-Controller

SPI-Protokoll

// OSD SPI commands:
//
// 8'b00000000 	NOP
// 8'b001H0NNN 	write data to osd buffer line <NNN> (H - highlight)
// 8'b0100--KE	enable OSD display (E) and disable Amiga keyboard (K)
// 8'b1000000B	reset Minimig (B - reset to bootloader)
// 8'b100001AA	set autofire rate
// 8'b1001---S	set cpu speed
// 8'b1010--SS	set scanline mode
// 8'b1011-SMC	set hard disk config (C - enable HDC, M - enable Master HDD, S - enable Slave HDD)
// 8'b1100FF-S	set floppy speed and drive number
// 8'b1101-EAN	set chipset features (N - ntsc, A - OCS A1000, E - ECS)
// 8'b1110HHLL	set interpolation filter (H - Hires, L - Lores)
// 8'b1111SSCC	set memory configuration (S - Slow, C - Chip)

Floppy.v

	//decoded SPI commands
	reg		cmd_fdd;				//SPI host accesses floppy drive buffer
	reg		cmd_hdd_rd;				//SPI host reads task file registers		
	reg		cmd_hdd_wr;				//SPI host writes task file registers
	reg		cmd_hdd_data_wr;		//SPI host writes data to HDD buffer
	reg		cmd_hdd_data_rd;		//SPI host reads data from HDD buffer

		cmd_fdd <= rx_data[15:13]==3'b000 ? 1 : 0;
		cmd_hdd_rd <= rx_data[15:12]==4'b1000 ? 1 : 0;
		cmd_hdd_wr <= rx_data[15:12]==4'b1001 ? 1 : 0;
		cmd_hdd_data_wr <= rx_data[15:12]==4'b1010 ? 1 : 0;
		cmd_hdd_data_rd <= rx_data[15:12]==4'b1011 ? 1 : 0;

HDD.h

#define CMD_IDECMD 0x04
#define CMD_IDEDAT 0x08

#define CMD_IDE_REGS_RD 0x80
#define CMD_IDE_REGS_WR 0x90
#define CMD_IDE_DATA_WR 0xA0
#define CMD_IDE_DATA_RD 0xB0
#define CMD_IDE_STATUS_WR 0xF0

#define IDE_STATUS_END 0x80
#define IDE_STATUS_IRQ 0x10
#define IDE_STATUS_RDY 0x08
#define IDE_STATUS_REQ 0x04
#define IDE_STATUS_ERR 0x01

#define ACMD_RECALIBRATE 0x10
#define ACMD_IDENTIFY_DEVICE 0xEC
#define ACMD_INITIALIZE_DEVICE_PARAMETERS 0x91
#define ACMD_READ_SECTORS 0x20
#define ACMD_WRITE_SECTORS 0x30
#define ACMD_READ_MULTIPLE 0xC4
#define ACMD_WRITE_MULTIPLE 0xC5
#define ACMD_SET_MULTIPLE_MODE 0xC6

FDD.h

// floppy disk interface defs
#define CMD_RDTRK 0x01
#define CMD_WRTRK 0x02

// floppy status
#define DSK_INSERTED 0x01 /*disk is inserted*/
#define DSK_WRITABLE 0x10 /*disk is writable*/

fpga.c

#define CMD_HDRID 0xAA69

osd.h

/*constants*/
#define OSDCTRLUP        0x01        /*OSD up control*/
#define OSDCTRLDOWN      0x02        /*OSD down control*/
#define OSDCTRLSELECT    0x04        /*OSD select control*/
#define OSDCTRLMENU      0x08        /*OSD menu control*/
#define OSDCTRLRIGHT     0x10        /*OSD right control*/
#define OSDCTRLLEFT      0x20        /*OSD left control*/

// some constants
#define OSDNLINE         8           // number of lines of OSD
#define OSDLINELEN       256         // single line length in bytes
#define OSDCMDREAD       0x00        // OSD read controller/key status
#define OSDCMDWRITE      0x20        // OSD write video data command
#define OSDCMDENABLE     0x41        // OSD enable command
#define OSDCMDDISABLE    0x40        // OSD disable command
#define OSDCMDRST        0x80        // OSD reset command
#define OSDCMDAUTOFIRE   0x84        // OSD autofire command
#define OSDCMDCFGSCL     0xA0        // OSD settings: scanlines effect
#define OSDCMDCFGIDE     0xB0        // OSD enable HDD command
#define OSDCMDCFGFLP     0xC0        // OSD settings: floppy config
#define OSDCMDCFGCHP     0xD0        // OSD settings: chipset config
#define OSDCMDCFGFLT     0xE0        // OSD settings: filter
#define OSDCMDCFGMEM     0xF0        // OSD settings: memory config

#define DISABLE_KEYBOARD 0x02        // disable keyboard while OSD is active

Links

  • zu Nachweisquellen
  • zu Dokumentationen
  • Software-Updates
Zuletzt geändert: 2024/09/22 00:27