URL
https://opencores.org/ocsvn/System09/System09/trunk
Subversion Repositories System09
[/] [System09/] [trunk/] [src/] [sys09bug/] [sys09equ.asm] - Rev 78
Go to most recent revision | Compare with Previous | Blame | View Log
***************************************************** MEMORY MAP EQUATES ****************************************************MONIO EQU $E000 I/O SPACEIFD S3EOPTMONRAM EQU $7FC0ELSEMONRAM EQU $DFC0 STACK SPACEENDIF S3EOPTMONROM EQU $F800 START OF ROMIFD S3SOPTMONEXT EQU $F000 START OF EXTENDED COMMANDSEXTCMD EQU $00 EXTENDED OFFSETENDIF S3SOPTIFD XESOPTMONEXT EQU $F000 START OF EXTENDED COMMANDSEXTCMD EQU $00 EXTENDED OFFSETENDIF XESOPT***************************************************IFD S3EOPT** DIGILENT SPARTAN 3E STARTER*ACIAOPT EQU $FF ACIA AT PORT 0PS2OPT EQU $FF PS2 KEYBOARD AT $E020VDUOPT EQU $FF VDU AT $E030TRAOPT EQU $FF PIA TRACE TIMERENDIF S3EOPT*IFD S3SOPT** DIGILENT SPARTAN 3 STARTER*ACIAOPT EQU $FF ACIA AT PORT 0PS2OPT EQU $FF PS2 KEYBOARD AT $E020VDUOPT EQU $FF VDU AT $E030CF8OPT EQU $FF COMPACT FLASH AT $E040DATOPT EQU $FF DYNAMIC ADDRESS TRANSLATIONEXTOPT EQU $FF EXTENDED COMMANDSENDIF S3SOPT*IFD B5XOPT** BURCHED B5-X300*ACIAOPT EQU $FF ACIA AT PORT 0PS2OPT EQU $FF PS2 KEYBOARD AT $E020VDUOPT EQU $FF VDU AT $E030CF8OPT EQU $FF COMPACT FLASH AT $E040DATOPT EQU $FF DYNAMIC ADDRESS TRANSLATIONENDIF B5XOPT*IFD XESOPT** XESS XSA-3S1000 & XST-3.0*ACIAOPT EQU $FF ACIA AT PORT 0PS2OPT EQU $FF PS2 KEYBOARD AT $E020VDUOPT EQU $FF VDU AT $E030IDEOPT EQU $FF XESS IDE AT $E100DATOPT EQU $FF DYNAMIC ADDRESS TRANSLATIONEXTOPT EQU $FF EXTENDED COMMANDSENDIF XESOPT*IFD ADSOPT** ACKERMAN DIGITAL ADS6809*DG640OPT EQU $FF DG640 VDU AT $E800*RTCOPT EQU $FF REAL TIME CLOCKPRTOPT EQU $FF PRINTER DRIVERSMFDCOPT EQU $FF MINIFLOPPY 5.25" DISK BOOTENDIF ADSOPT*IFD SWTOPT** SOUTH WEST TECHNICAL PRODUCTS COMPUTER*ACIAOPT EQU $FF ACIA AT PORT 0DMAFOPT EQU $FF DMAF2 8" FLOPPY DISK BOOTMFDCOPT EQU $FF MINIFLOPPY 5.25" DISK BOOTDATOPT EQU $FF DYNAMIC ADDRESS TRANSLATIONENDIF*IFD ACIAOPT***************************************************** SERIAL PORT ******************************************************* ACIA SITS ON PORT 0*ACIAS EQU MONIO+$00 CONTROL PORT*ENDIF ACIAOPTIFD MFDCOPT***************************************************** MINIFLOPPY DRIVE ******************************************************* FLOPPY DISK CONTROLLER SITS ON PORT 1*DRVFDC EQU MONIO+$14CMDFDC EQU MONIO+$18SECFDC EQU MONIO+$1ADATFDC EQU MONIO+$1BENDIF MFDCOPTIFD PS2OPT***************************************************** VDU8 PS/2 KEYBOARD PORT ******************************************************* KEYBOARD SITS ON PORT 2*PS2KBD EQU MONIO+$20 PS/2 KEYBOARD PORTENDIF PS2OPTIFD VDUOPT***************************************************** VDU8 DISPLAY DRIVER EQUATES ******************************************************* VDU8 DISPLAY SITS ON PORT 3*VDU EQU MONIO+$30VDUCHR EQU 0 CHARACTER REGISTERVDUATT EQU 1 ATTRIBUTE REGISTERVDUCOL EQU 2 CURSOR COLUMNVDUROW EQU 3 CURSOR ROWVDUOFF EQU 4 ROW OFFSET*LINLEN EQU 80 LENGTH OF A LINENUMLIN EQU 25 NUMBER OF LINESENDIF VDUOPT*IFD CF8OPT***************************************************** COMPACT FLASH EQUATES 8 BIT TRANSFER ******************************************************* COMPACT FLASH SITS AT PORT 4*CF_BASE EQU MONIO+$40CF_DATA EQU CF_BASE+0CF_ERROR EQU CF_BASE+1 ; read errorCF_FEATURE EQU CF_BASE+1 ; write featureCF_SECCNT EQU CF_BASE+2CF_SECNUM EQU CF_BASE+3CF_CYLLO EQU CF_BASE+4CF_CYLHI EQU CF_BASE+5CF_HEAD EQU CF_BASE+6CF_STATUS EQU CF_BASE+7 ; read statusCF_COMAND EQU CF_BASE+7 ; write command** Command Equates*CMDREAD EQU $20 ; Read Single sectorCMDWRITE EQU $30 ; Write Single sectorCMDFEATURE EQU $EFFEAT8BIT EQU $01 ; enable 8 bit transfersHEADLBA EQU $E0** Status bit equates*BUSY EQU $80DRDY EQU $40DRQ EQU $08ERR EQU $01*ENDIF CF8OPT*IFD IDEOPT***************************************************** COMPACT FLASH EQUATES 16 BIT TRANSFER (XESS) ******************************************************* COMPACT FLASH SITS AT PORT 4*CF_BASE EQU MONIO+$0100CF_DATA EQU CF_BASE+0CF_ERROR EQU CF_BASE+2 ; read errorCF_FEATURE EQU CF_BASE+2 ; write featureCF_SECCNT EQU CF_BASE+4CF_SECNUM EQU CF_BASE+6CF_CYLLO EQU CF_BASE+8CF_CYLHI EQU CF_BASE+10CF_HEAD EQU CF_BASE+12CF_STATUS EQU CF_BASE+14 ; read statusCF_COMAND EQU CF_BASE+14 ; write commandCF_AUX EQU CF_BASE+30** Command Equates*CMDREAD EQU $20 ; Read Single sectorCMDWRITE EQU $30 ; Write Single sectorAUXRESET EQU $06 ; Reset IDEAUXRSTREL EQU $02 ; Reset release IRQ maskedHEADLBA EQU $E0** Status bit equates*BUSY EQU $80DRDY EQU $40DRQ EQU $08ERR EQU $01*ENDIF CF8OPT*IFD RTCOPT**************************************************** MM58167A REAL TIME CLOCK MEMORY MAP:***************************************************** REAL TIME CLOCK SITS ON PORT 4 AND PORT 5*CLOCK EQU MONIO+$40 CLOCK BASE ADDRESS AND REGISTERS** COUNTER AND COMPARITOR REGISTERS:** Both the Clock Counter and Clock Comparitor* consist of 8 registers for holding the time.* The register offsets from the Counter and* Comparitor registers are listed above.*COUNTR EQU CLOCK+0CMPRAM EQU CLOCK+8 COMPARITOR REGISTERS** CLOCK REGISTER OFFSETS:* These register offsets are used for the CLOCK* and comparitor ram CMPRAM.*S10000 EQU 0 TEN THOUNSANDTHS OF SECONDSS100 EQU 1 HUNDRETHS AND TENTHS OF SECONDSSECOND EQU 2MINUIT EQU 3HOUR EQU 4WKDAY EQU 5MTHDAY EQU 6MONTH EQU 7** INTERRUPT OUTPUT REGISTERS:** An interrupt output may be generated at the* following rates by setting the appropriate bit* in the Interrupt Control Register (CINTCR).* The Interrupt Status Register (CINTSR) must be* read to clear the interrupt and will return* the source of the interrupt.** 1/Month Bit 7* 1/Week Bit 6* 1/Day Bit 5* 1/Hour Bit 4* 1/Minuite Bit 3* 1/Second Bit 2* 10/Second Bit 1* Comparitor Bit 0*CINTSR EQU CLOCK+16 INTERRUPT STATUS REGISTERCINTCR EQU CLOCK+17 INTERRUPT CONTROL REGISTER** COUNTER AND RAM RESETS; GO COMMAND.** The counter and comparitor may be reset* by writing $FF into CTRRES and CMPRES* respectivly.* A write to the Go command register (GOCMND)* will reset the 1/1000ths, 1/100ths and 1/10ths* of a second counter.*CTRRES EQU CLOCK+18 COUNTER RESETCMPRES EQU CLOCK+19 COMPARITOR RAM RESETGOCMND EQU CLOCK+21 GO COMMAND** CLOCK STATUS REGISTER.** The counter takes 61 usec. to rollover for* every 1KHz clock pulse. If the Status bit is* set after reading the counter, the counter* should be re-read to ensure the time is correct.*CLKSTA EQU CLOCK+20 STATUS BITSBYINT EQU CLOCK+22 STANDBY INTERRUPTTSTMOD EQU CLOCK+31 TEST MODE REGISTERENDIF RTCOPT*IFD TRAOPT**************************************************** PIA INTERRUPT TIMER***************************************************** PIA INTERRUPT TIMER SITS ON PORT 7*** PIA TIMER FOR SINGLE STEP / TRACE** TADATA = Output = Timer preset register* TACTRL - CA1 = input = rising edge = NMI* - CA2 = Output = Timer Reset (Active High)* TBDATA = Input = Timer read back register* TBCTRL - CB1 = input = rising edge = FIRQ* - CB2 = output = strobe low on write to TBDATA = Timer Preset** CRA0 = 0 CA1 IRQ DISAB, CRA0 = 1 CA1 IRQ ENAB* CRA1 = 1 CA1 Rising edge IRQ* CRA2 = 0 TADATA = Data Direction, CRA2 = 1 TADATA = I/O Register* CRA3 = 0 CA2 = 0 output, CRA3 = 1 CA2 = 1* CRA4 = 1 ] CA2 = Set/Reset output* CRA5 = 1 ]* CRA6 = X CA2 Input Interrupt Flag* CRA7 = X CA1 Interrupt Flag** CRB0 = 0 CB1 IRQ DISAB, CRB0 = 1 CA1 IRQ ENAB* CRB1 = 1 CB1 Rising edge IRQ* CRB2 = 0 TBDATA = Data Direction, CRB2 = 1 TBDATA = I/O Register* CRB3 = 0 CB2 = 0 output, CRB3 = 1 CB2 = 1* CRB4 = 1 ] CB2 = Set/Reset output* CRB5 = 1 ]* CRB6 = X CB2 Input Interrupt Flag* CRB7 = X CB1 Interrupt Flag** DDRA = 0 TADATA = Input, DDRA = 1 TADATA = Output* DDRB = 0 TBDATA = Input, DDRB = 1 TBDATA = Output*TADATA EQU MONIO+$70 Timer preset portTACTRL EQU MONIO+$71TBDATA EQU MONIO+$72 Timer read back portTBCTRL EQU MONIO+$73*TRADEL EQU 13 Number of E cycles for RTI (May need to be fudged)*ENDIF TRAOPTIFD ADSOPT***************************************************** SERIAL PORT FOR DG640 ******************************************************* SET UP FOR ACKERMAN DIGITAL ADS6809** THE ADS6809 S100 BOAD HAS AN ON BOARD ACIA*ACIAS EQU MONIO+$400 CONTROL PORT*ENDIF ADSOPTIFD PRTOPT***************************************************** PRINTER INTERFACE *****************************************************PADATA EQU MONIO+$404PACTRL EQU MONIO+$405PBDATA EQU MONIO+$406PBCTRL EQU MONIO+$407*** CB1 ACK. I/P** CB2 STB. O/P** PB0 - PB7 DATA 1 - 8 O/P** PORT A BIT ASSIGNMENT*PBUSY EQU $80 I/PPEMPTY EQU $40 I/PSELECT EQU $20 I/PPERROR EQU $10 I/PPRESET EQU %00000100 O/P PA3 = 0AUTOFD EQU %00001000 O/P PA2 = 0DIRMSK EQU %00001100ENDIF PRTOPTIFD DG640OPT***************************************************** DG640 MEMORY MAPPED DISPLAY DRIVER VARIABLES ******************************************************* VIDEO DISPLAY DEFINITIONS*SCREEN EQU MONIO+$0800 START OF SCREEN MEMORYLINLEN EQU 64 LENGTH OF A LINENUMLIN EQU 16 NUMBER OF LINESSCNLEN EQU $400 LENGTH OF SCREENENDIF DG640OPT*IFD DMAFOPT***************************************************** DMAF2 8" DRIVE *****************************************************ADDREG EQU $F000 ADDRESS REGISTERCNTREG EQU $F002 COUNT REGISTERCCREG EQU $F010 CHANNEL CONTROL REGISTERPRIREG EQU $F014 DMA PRIORITY REGISTERAAAREG EQU $F015 ???BBBREG EQU $F016 ???COMREG EQU $F020 1791 COMMAND REGISTERSECREG EQU $F022 SECTOR REGISTERDRVREG EQU $F024 DRIVE SELECT LATCHCCCREG EQU $F040 ???ENDIF DMAFOPTIFD DATOPT*************************************************** DYNAMIC ADDRESS TRANSLATION REGISTERS ****************************************************IC11 EQU $FFF0 DAT RAM CHIPTSTPAT EQU $55AA TEST PATTERNENDIF DATOPT*END
Go to most recent revision | Compare with Previous | Blame | View Log
