LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cvs-checkins > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: cvs at opencores.org<cvs@o...>
    Date: Fri Mar 14 16:52:48 CET 2008
    Subject: [cvs-checkins] MODIFIED: System09 ...
    Top
    Date: 00/08/03 14:16:52

    Added: System09/src/boot bootcf8.lst bootcf8.s19 bootcf8.sh
    bootcf8.txt
    Log:
    Updated software - XSA-3S1000 now runs FLEX on an IDE drive or CF card.


    Revision Changes Path
    1.1 System09/src/boot/bootcf8.lst

    http://www.opencores.org/cvsweb.shtml/System09/src/boot/bootcf8.lst?rev=1.1&content-type=text/x-cvsweb-markup

    Index: bootcf8.lst
    ===================================================================
    Assembler release DWC_2.0 version 2.11
    May 6, 2004 (c) Motorola (free ware)
    0001 *******************************************************
    0002 *
    0003 * Bootstrap FLEX Loader
    0004 *
    0005 * SBUG1.8 loads the bootstap loader at $C000
    0006 * however the Flex adaption manual has the
    0007 * bootstrap loader residing at $C100
    0008 *
    0009 ******************************************************
    0010 *
    0011 * Equates
    0012 *
    0013 C0FF STACK EQU $C0FF
    0014 C300 SCTBUF EQU $C300
    0015 *
    0016 * Start of Utility
    0017 *
    0018 C000 ORG $C000
    0019 C000 20 0B BOOT BRA LOAD0
    0020 C002 00 00 00 FCB 0,0,0
    0021 C005 00 TRK FCB 0 File start track
    0022 C006 00 SCT FCB 0 File start sector
    0023 C007 00 DNS FCB 0 Density Flag (not used)
    0024 C008 C0 00 TADR FDB $C000 Transfer address
    0025 C00A 00 00 LADR FDB 0 Load Address
    0026 C00C 00 DRVNUM FCB 0 Drive number 0
    0027 *
    0028 C00D 10 CE C0 FF LOAD0 LDS #STACK Set up stack
    0029 C011 FC C0 05 LDD TRK Set up start track and sector
    0030 C014 FD C3 00 STD SCTBUF
    0031 C017 10 8E C4 00 LDY #SCTBUF+256
    0032 *
    0033 * Perform actual file load
    0034 *
    0035 C01B 8D 35 LOAD1 BSR GETCH Get acharcater
    0036 C01D 81 02 CMPA #$02 Data record hearder ?
    0037 C01F 27 10 BEQ LOAD2 Skip, is so
    0038 C021 81 16 CMPA #$16 Xfr address hearder ?
    0039 C023 26 F6 BNE LOAD1 Loop if neither
    0040 *
    0041 * Get transfer address
    0042 *
    0043 C025 8D 2B BSR GETCH
    0044 C027 B7 C0 08 STA TADR
    0045 C02A 8D 26 BSR GETCH
    0046 C02C B7 C0 09 STA TADR+1
    0047 C02F 20 EA BRA LOAD1
    0048 *
    0049 * Load data record
    0050 *
    0051 C031 8D 1F LOAD2 BSR GETCH Get load address
    0052 C033 B7 C0 0A STA LADR
    0053 C036 8D 1A BSR GETCH
    0054 C038 B7 C0 0B STA LADR+1
    0055 C03B 8D 15 BSR GETCH Get Bytes count
    0056 C03D 1F 89 TFR A,B
    0057 C03F 5D TSTB
    0058 C040 27 D9 BEQ LOAD1 Loop if count = 0
    0059 C042 BE C0 0A LDX LADR Get load address
    0060 C045 34 14 LOAD3 PSHS B,X
    0061 C047 8D 09 BSR GETCH Get data character
    0062 C049 35 14 PULS B,X
    0063 C04B A7 80 STA ,X+ Store at load address
    0064 C04D 5A DECB
    0065 C04E 26 F5 BNE LOAD3 Loop until count = 0
    0066 C050 20 C9 BRA LOAD1
    0067 *
    0068 * Get Character routine
    0069 * Reads a sector if needed
    0070 *
    0071 C052 10 8C C4 00 GETCH CMPY #SCTBUF+256 out of data ?
    0072 C056 26 0F BNE GETCH4 Go read Character if not
    0073 C058 8E C3 00 GETCH2 LDX #SCTBUF Point to buffer
    0074 C05B EC 84 LDD 0,X Get forward Link
    0075 C05D 27 0B BEQ GO if zero, file is loaded
    0076 C05F 8D 27 BSR READ Read next sector
    0077 C061 26 9D BNE BOOT start over if error
    0078 C063 10 8E C3 04 LDY #SCTBUF+4 Point past link
    0079 C067 A6 A0 GETCH4 LDA ,Y+ Else, get a character
    0080 C069 39 RTS
    0081 *
    0082 * File is loaded, Jump to it
    0083 *
    0084 C06A 6E 9F C0 08 GO JMP [TADR] Jump to transfer address
    0085
    0086 * 0087 ** FLEX 9 COMPACT FLASH DISK DRIVERS 0088 * 0089 * FOR SYS09BUG 1.2 ON THE BURCHED B5-X300 0090 * WITH I/O MAPPED AT $XE000 0091 * AND ROM MAPPED AT $XF000 0092 * THE BURCHED B5-X300 HAS 256KBYTES OF SRAM 0093 * THE FIRST 64K IS USED BY FLEX, 0094 * THE SECOND 192K MAY BE USED AS A RAM DISK 0095 * 0096 * 0097 0010 IMASK EQU $10 IRQ MASK CC 0098 0040 FMASK EQU $40 FIRQ MASK CC 0099 FFF0 DATREG EQU $FFF0 DAT REGISTERS 0100 * 0101 E040 CF_BASE EQU $E040 0102 E040 CF_DATA EQU CF_BASE+0 0103 E041 CF_ERROR EQU CF_BASE+1 ; read error 0104 E041 CF_FEATURE EQU CF_BASE+1 ; write feature 0105 E042 CF_SECCNT EQU CF_BASE+2 0106 E043 CF_SECNUM EQU CF_BASE+3 0107 E044 CF_CYLLO EQU CF_BASE+4 0108 E045 CF_CYLHI EQU CF_BASE+5 0109 E046 CF_HEAD EQU CF_BASE+6 0110 E047 CF_STATUS EQU CF_BASE+7 ; read status 0111 E047 CF_COMAND EQU CF_BASE+7 ; write command 0112 * 0113 * Command Equates 0114 * 0115 0020 CMDREAD EQU $20 ; Read Single sector 0116 0030 CMDWRITE EQU $30 ; Write Single sector 0117 00EF CMDFEATURE EQU $EF 0118 0001 FEAT8BIT EQU $01 ; enable 8 bit transfers 0119 00E0 HEADLBA EQU $E0 0120 * 0121 * Status bit equates 0122 * 0123 0080 BSY EQU $80 0124 0040 DRDY EQU $40 0125 0008 DRQ EQU $08 0126 0001 ERR EQU $01 0127 * 0128 * RESTORE DISK DRIVER (SEEK TRACK 00) 0129 * 0130 C06E 7F C0 0C RESTR1 CLR DRVNUM 0131 C071 4F CLRA ; Track 0 0132 C072 C6 01 LDB #$01 ; Sector 1 0133 * 0134 * Seek track and sector 0135 * A holds track number (0 - ??) 0136 * B holds sector number (1 - ??) 0137 * Sector numbers starts from 1 0138 * subtract 1 to start from sector 0 on CF 0139 * 0140 C074 5A SEEKTS DECB 0141 C075 F7 E0 43 STB CF_SECNUM 0142 C078 B7 E0 44 STA CF_CYLLO 0143 C07B F6 C0 0C LDB DRVNUM 0144 C07E F7 E0 45 STB CF_CYLHI 0145 C081 C6 01 LDB #$01 0146 C083 F7 E0 42 STB CF_SECCNT 0147 C086 5F CLRB 0148 C087 39 WARMD1 RTS 0149 * 0150 * READ SECTORS FROM CF 0151 * 0152 * 0153 C088 8D EA READ BSR SEEKTS 0154 C08A 86 20 LDA #CMDREAD ; IDE READ MULTIPLE 0155 C08C B7 E0 47 STA CF_COMAND 0156 C08F 8D 18 BSR WAITRDY 0157 * 0158 * READ LOOP 0159 * 0160 C091 5F CLRB 0161 C092 8D 24 RDLP1 BSR WAITDRQ 0162 C094 B6 E0 40 LDA CF_DATA 0163 C097 A7 80 STA ,X+ 0164 C099 5A DECB 0165 C09A 26 F6 BNE RDLP1 0166 * 0167 C09C 5F CLRB 0168 C09D 8D 19 RDLP2 BSR WAITDRQ 0169 C09F B6 E0 40 LDA CF_DATA 0170 C0A2 5A DECB 0171 C0A3 26 F8 BNE RDLP2 0172 * 0173 C0A5 8D 02 BSR WAITRDY 0174 C0A7 5F CLRB 0175 C0A8 39 RTS 0176 * 0177 * WAIT UNTIL READY 0178 * 0179 C0A9 B6 E0 47 WAITRDY LDA CF_STATUS 0180 C0AC 85 80 BITA #BSY 0181 C0AE 26 F9 BNE WAITRDY 0182 C0B0 B6 E0 47 LDA CF_STATUS 0183 C0B3 85 40 BITA #DRDY 0184 C0B5 27 F2 BEQ WAITRDY 0185 C0B7 39 RTS 0186 * 0187 * WAIT FOR DATA REQUEST 0188 * 0189 C0B8 B6 E0 47 WAITDRQ LDA CF_STATUS 0190 C0BB 85 08 BITA #DRQ 0191 C0BD 27 F9 BEQ WAITDRQ 0192 C0BF 39 RTS 0193 * 0194 END Program + Init Data = 192 bytes Error count = 0 1.1 System09/src/boot/bootcf8.s19 http://www.opencores.org/cvsweb.shtml/System09/src/boot/bootcf8.s19?rev=1.1&content-type=text/x-cvsweb-markup Index: bootcf8.s19 =================================================================== S123C000200B000000000000C00000000010CEC0FFFCC005FDC300108EC4008D3581022745 S123C02010811626F68D2BB7C0088D26B7C00920EA8D1FB7C00A8D1AB7C00B8D151F895DC8 S123C04027D9BEC00A34148D093514A7805A26F520C9108CC400260F8EC300EC84270B8D93 S123C06027269D108EC304A6A0396E9FC0087FC00C4FC6015AF7E043B7E044F6C00CF7E0D0 S123C08045C601F7E0425F398DEA8620B7E0478D185F8D24B6E040A7805A26F65F8D19B601 S123C0A0E0405A26F88D025F39B6E047858026F9B6E047854027F239B6E047850827F93905 S9030000FC 1.1 System09/src/boot/bootcf8.sh http://www.opencores.org/cvsweb.shtml/System09/src/boot/bootcf8.sh?rev=1.1&content-type=text/x-cvsweb-markup Index: bootcf8.sh =================================================================== ../../Tools/as09/as09.exe cf8boot.txt -l > cf8boot.lst 1.1 System09/src/boot/bootcf8.txt http://www.opencores.org/cvsweb.shtml/System09/src/boot/bootcf8.txt?rev=1.1&content-type=text/x-cvsweb-markup Index: bootcf8.txt =================================================================== ******************************************************* * * Bootstrap FLEX Loader * * SBUG1.8 loads the bootstap loader at $C000 * however the Flex adaption manual has the * bootstrap loader residing at $C100 * ****************************************************** * * Equates * STACK EQU $C0FF SCTBUF EQU $C300 * * Start of Utility * ORG $C000 BOOT BRA LOAD0 FCB 0,0,0 TRK FCB 0 File start track SCT FCB 0 File start sector DNS FCB 0 Density Flag (not used) TADR FDB $C000 Transfer address LADR FDB 0 Load Address DRVNUM FCB 0 Drive number 0 * LOAD0 LDS #STACK Set up stack LDD TRK Set up start track and sector STD SCTBUF LDY #SCTBUF+256 * * Perform actual file load * LOAD1 BSR GETCH Get acharcater CMPA #$02 Data record hearder ? BEQ LOAD2 Skip, is so CMPA #$16 Xfr address hearder ? BNE LOAD1 Loop if neither * * Get transfer address * BSR GETCH STA TADR BSR GETCH STA TADR+1 BRA LOAD1 * * Load data record * LOAD2 BSR GETCH Get load address STA LADR BSR GETCH STA LADR+1 BSR GETCH Get Bytes count TFR A,B TSTB BEQ LOAD1 Loop if count = 0 LDX LADR Get load address LOAD3 PSHS B,X BSR GETCH Get data character PULS B,X STA ,X+ Store at load address DECB BNE LOAD3 Loop until count = 0 BRA LOAD1 * * Get Character routine * Reads a sector if needed * GETCH CMPY #SCTBUF+256 out of data ? BNE GETCH4 Go read Character if not GETCH2 LDX #SCTBUF Point to buffer LDD 0,X Get forward Link BEQ GO if zero, file is loaded BSR READ Read next sector BNE BOOT start over if error LDY #SCTBUF+4 Point past link GETCH4 LDA ,Y+ Else, get a character RTS * * File is loaded, Jump to it * GO JMP [TADR] Jump to transfer address * ** FLEX 9 COMPACT FLASH DISK DRIVERS * * FOR SYS09BUG 1.2 ON THE BURCHED B5-X300 * WITH I/O MAPPED AT $XE000 * AND ROM MAPPED AT $XF000 * THE BURCHED B5-X300 HAS 256KBYTES OF SRAM * THE FIRST 64K IS USED BY FLEX, * THE SECOND 192K MAY BE USED AS A RAM DISK * * IMASK EQU $10 IRQ MASK CC FMASK EQU $40 FIRQ MASK CC DATREG EQU $FFF0 DAT REGISTERS * CF_BASE EQU $E040 CF_DATA EQU CF_BASE+0 CF_ERROR EQU CF_BASE+1 ; read error CF_FEATURE EQU CF_BASE+1 ; write feature CF_SECCNT EQU CF_BASE+2 CF_SECNUM EQU CF_BASE+3 CF_CYLLO EQU CF_BASE+4 CF_CYLHI EQU CF_BASE+5 CF_HEAD EQU CF_BASE+6 CF_STATUS EQU CF_BASE+7 ; read status CF_COMAND EQU CF_BASE+7 ; write command * * Command Equates * CMDREAD EQU $20 ; Read Single sector CMDWRITE EQU $30 ; Write Single sector CMDFEATURE EQU $EF FEAT8BIT EQU $01 ; enable 8 bit transfers HEADLBA EQU $E0 * * Status bit equates * BSY EQU $80 DRDY EQU $40 DRQ EQU $08 ERR EQU $01 * * RESTORE DISK DRIVER (SEEK TRACK 00) * RESTR1 CLR DRVNUM CLRA ; Track 0 LDB #$01 ; Sector 1 * * Seek track and sector * A holds track number (0 - ??) * B holds sector number (1 - ??) * Sector numbers starts from 1 * subtract 1 to start from sector 0 on CF * SEEKTS DECB STB CF_SECNUM STA CF_CYLLO LDB DRVNUM STB CF_CYLHI LDB #$01 STB CF_SECCNT CLRB WARMD1 RTS * * READ SECTORS FROM CF * * READ BSR SEEKTS LDA #CMDREAD ; IDE READ MULTIPLE STA CF_COMAND BSR WAITRDY * * READ LOOP * CLRB RDLP1 BSR WAITDRQ LDA CF_DATA STA ,X+ DECB BNE RDLP1 * CLRB RDLP2 BSR WAITDRQ LDA CF_DATA DECB BNE RDLP2 * BSR WAITRDY CLRB RTS * * WAIT UNTIL READY * WAITRDY LDA CF_STATUS BITA #BSY BNE WAITRDY LDA CF_STATUS BITA #DRDY BEQ WAITRDY RTS * * WAIT FOR DATA REQUEST * WAITDRQ LDA CF_STATUS BITA #DRQ BEQ WAITDRQ RTS * END

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.