URL
https://opencores.org/ocsvn/minirisc/minirisc/trunk
Subversion Repositories minirisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 2 to Rev 3
- ↔ Reverse comparison
Rev 2 → Rev 3
/trunk/xilinx_primitives.zip
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
trunk/xilinx_primitives.zip
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: trunk/scode/tmr_wdt.asm
===================================================================
--- trunk/scode/tmr_wdt.asm (nonexistent)
+++ trunk/scode/tmr_wdt.asm (revision 3)
@@ -0,0 +1,155 @@
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Mini-RISC-1 ////
+;//// Timer / Wachdog ////
+;//// Tests Timer / Wachdog ////
+;//// ////
+;//// Author: Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Copyright (C) 2000 Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;//// This source file may be used and distributed without ////
+;//// restriction provided that this copyright statement is not ////
+;//// removed from the file and that any derivative work contains ////
+;//// the original copyright notice and the associated disclaimer.////
+;//// ////
+;//// THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY ////
+;//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT ////
+;//// LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND ////
+;//// FITNESS FOR A PARTICULAR PURPOSE. ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+
+ list p=16c57
+ #include p16c5x.inc
+
+; global Registers
+r0 equ 0x8
+r1 equ 0x9
+r2 equ 0xa
+r3 equ 0xb
+r4 equ 0xc
+r5 equ 0xd
+r6 equ 0xe
+r7 equ 0xf
+
+; banked Registers
+br0 equ 0x10
+br1 equ 0x11
+br2 equ 0x12
+br3 equ 0x13
+br4 equ 0x14
+br5 equ 0x15
+br6 equ 0x16
+br7 equ 0x17
+br8 equ 0x18
+br9 equ 0x19
+br10 equ 0x1a
+br11 equ 0x1b
+br12 equ 0x1c
+br13 equ 0x1d
+br14 equ 0x1e
+br15 equ 0x1f
+
+
+; PORTB Indicates Test Number
+; PORTA Indicates Status: 0 - Running; 1 - done OK; ff - stoped on error
+
+main ; Main code entry
+ ; Port IO Test
+ ; All ports have a Pull up resistor
+
+ ; SETUP all ports
+ clrw
+ movwf FSR
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+ tris PORTA
+ tris PORTB
+ tris PORTC
+
+ ; ---------------------------------------
+ ; ---- Test RMW on Register fil ----
+ ; ---------------------------------------
+
+ movlw 0x01 ; TEST 1
+ movwf PORTB ; Set Test Number
+
+ movlw 0x00
+ option
+ movwf TMR0
+ clrwdt
+ nop
+ nop
+ nop
+ nop
+
+ clrw
+ movwf r1
+
+loop2 ; repeat 256 times
+ clrw
+ movwf r0
+
+
+ ; repeat 256 times
+loop1
+ movfw TMR0
+ decfsz r0,F
+ goto loop1
+
+ decfsz r1,F
+ goto loop2
+
+
+
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+
+ clrw
+ movwf TMR0
+ clrwdt
+
+ nop
+ nop
+ nop
+ nop
+ movlw 0x01
+ movwf PORTA
+ nop
+ nop
+ nop
+ nop
+good ; Loop in good on success
+ goto good
+ nop
+ nop
+ nop
+ nop
+
+lerr
+ movlw 0xff
+ movwf PORTA
+
+ nop
+ nop
+ nop
+ nop
+lerr_loop ; Loop in lerr on failure
+ goto lerr_loop
+ nop
+ nop
+ nop
+ nop
+
+ END
+
Index: trunk/scode/rf1.rom
===================================================================
--- trunk/scode/rf1.rom (nonexistent)
+++ trunk/scode/rf1.rom (revision 3)
@@ -0,0 +1,584 @@
+
+@000 040
+@001 024
+@002 025
+@003 026
+@004 027
+@005 005
+@006 006
+@007 007
+@008 5A3
+@009 C81
+@00A 028
+@00B C82
+@00C 029
+@00D C83
+@00E 02A
+@00F C84
+@010 02B
+@011 C85
+@012 02C
+@013 C86
+@014 02D
+@015 C87
+@016 02E
+@017 C88
+@018 02F
+@019 C90
+@01A 030
+@01B C91
+@01C 031
+@01D C92
+@01E 032
+@01F C93
+@020 033
+@021 C94
+@022 034
+@023 C95
+@024 035
+@025 C96
+@026 036
+@027 C97
+@028 037
+@029 C98
+@02A 038
+@02B C99
+@02C 039
+@02D C9A
+@02E 03A
+@02F C9B
+@030 03B
+@031 C9C
+@032 03C
+@033 C9D
+@034 03D
+@035 C9E
+@036 03E
+@037 C9F
+@038 03F
+@039 5A4
+@03A CA0
+@03B 030
+@03C CA1
+@03D 031
+@03E CA2
+@03F 032
+@040 CA3
+@041 033
+@042 CA4
+@043 034
+@044 CA5
+@045 035
+@046 CA6
+@047 036
+@048 CA7
+@049 037
+@04A CA8
+@04B 038
+@04C CA9
+@04D 039
+@04E CAA
+@04F 03A
+@050 CAB
+@051 03B
+@052 CAC
+@053 03C
+@054 CAD
+@055 03D
+@056 CAE
+@057 03E
+@058 CAF
+@059 03F
+@05A 4A4
+@05B 5C4
+@05C CB0
+@05D 030
+@05E CB1
+@05F 031
+@060 CB2
+@061 032
+@062 CB3
+@063 033
+@064 CB4
+@065 034
+@066 CB5
+@067 035
+@068 CB6
+@069 036
+@06A CB7
+@06B 037
+@06C CB8
+@06D 038
+@06E CB9
+@06F 039
+@070 CBA
+@071 03A
+@072 CBB
+@073 03B
+@074 CBC
+@075 03C
+@076 CBD
+@077 03D
+@078 CBE
+@079 03E
+@07A CBF
+@07B 03F
+@07C 5A4
+@07D 5C4
+@07E CC0
+@07F 030
+@080 CC1
+@081 031
+@082 CC2
+@083 032
+@084 CC3
+@085 033
+@086 CC4
+@087 034
+@088 CC5
+@089 035
+@08A CC6
+@08B 036
+@08C CC7
+@08D 037
+@08E CC8
+@08F 038
+@090 CC9
+@091 039
+@092 CCA
+@093 03A
+@094 CCB
+@095 03B
+@096 CCC
+@097 03C
+@098 CCD
+@099 03D
+@09A CCE
+@09B 03E
+@09C CCF
+@09D 03F
+@09E C01
+@09F 026
+@0A0 040
+@0A1 024
+@0A2 C81
+@0A3 088
+@0A4 743
+@0A5 A3C
+@0A6 C82
+@0A7 089
+@0A8 743
+@0A9 A3C
+@0AA C83
+@0AB 08A
+@0AC 743
+@0AD A3C
+@0AE C84
+@0AF 08B
+@0B0 743
+@0B1 A3C
+@0B2 C85
+@0B3 08C
+@0B4 743
+@0B5 A3C
+@0B6 C86
+@0B7 08D
+@0B8 743
+@0B9 A3C
+@0BA C87
+@0BB 08E
+@0BC 743
+@0BD A3C
+@0BE C88
+@0BF 08F
+@0C0 743
+@0C1 A3C
+@0C2 C90
+@0C3 090
+@0C4 743
+@0C5 A3C
+@0C6 C91
+@0C7 091
+@0C8 743
+@0C9 A3C
+@0CA C92
+@0CB 092
+@0CC 743
+@0CD A3C
+@0CE C93
+@0CF 093
+@0D0 743
+@0D1 A3C
+@0D2 C94
+@0D3 094
+@0D4 743
+@0D5 A3C
+@0D6 C95
+@0D7 095
+@0D8 743
+@0D9 A3C
+@0DA C96
+@0DB 096
+@0DC 743
+@0DD A3C
+@0DE C97
+@0DF 097
+@0E0 743
+@0E1 A3C
+@0E2 C98
+@0E3 098
+@0E4 743
+@0E5 A3C
+@0E6 C99
+@0E7 099
+@0E8 743
+@0E9 A3C
+@0EA C9A
+@0EB 09A
+@0EC 743
+@0ED A3C
+@0EE C9B
+@0EF 09B
+@0F0 743
+@0F1 A3C
+@0F2 C9C
+@0F3 09C
+@0F4 743
+@0F5 A3C
+@0F6 C9D
+@0F7 09D
+@0F8 743
+@0F9 A3C
+@0FA C9E
+@0FB 09E
+@0FC 743
+@0FD A3C
+@0FE C9F
+@0FF 09F
+@100 743
+@101 A3C
+@102 C02
+@103 026
+@104 5A4
+@105 C81
+@106 088
+@107 743
+@108 A3C
+@109 C82
+@10A 089
+@10B 743
+@10C A3C
+@10D C83
+@10E 08A
+@10F 743
+@110 A3C
+@111 C84
+@112 08B
+@113 743
+@114 A3C
+@115 C85
+@116 08C
+@117 743
+@118 A3C
+@119 C86
+@11A 08D
+@11B 743
+@11C A3C
+@11D C87
+@11E 08E
+@11F 743
+@120 A3C
+@121 C88
+@122 08F
+@123 743
+@124 A3C
+@125 CA0
+@126 090
+@127 743
+@128 A3C
+@129 CA1
+@12A 091
+@12B 743
+@12C A3C
+@12D CA2
+@12E 092
+@12F 743
+@130 A3C
+@131 CA3
+@132 093
+@133 743
+@134 A3C
+@135 CA4
+@136 094
+@137 743
+@138 A3C
+@139 CA5
+@13A 095
+@13B 743
+@13C A3C
+@13D CA6
+@13E 096
+@13F 743
+@140 A3C
+@141 CA7
+@142 097
+@143 743
+@144 A3C
+@145 CA8
+@146 098
+@147 743
+@148 A3C
+@149 CA9
+@14A 099
+@14B 743
+@14C A3C
+@14D CAA
+@14E 09A
+@14F 743
+@150 A3C
+@151 CAB
+@152 09B
+@153 743
+@154 A3C
+@155 CAC
+@156 09C
+@157 743
+@158 A3C
+@159 CAD
+@15A 09D
+@15B 743
+@15C A3C
+@15D CAE
+@15E 09E
+@15F 743
+@160 A3C
+@161 CAF
+@162 09F
+@163 743
+@164 A3C
+@165 C03
+@166 026
+@167 4A4
+@168 5C4
+@169 C81
+@16A 088
+@16B 743
+@16C A3C
+@16D C82
+@16E 089
+@16F 743
+@170 A3C
+@171 C83
+@172 08A
+@173 743
+@174 A3C
+@175 C84
+@176 08B
+@177 743
+@178 A3C
+@179 C85
+@17A 08C
+@17B 743
+@17C A3C
+@17D C86
+@17E 08D
+@17F 743
+@180 A3C
+@181 C87
+@182 08E
+@183 743
+@184 A3C
+@185 C88
+@186 08F
+@187 743
+@188 A3C
+@189 CB0
+@18A 090
+@18B 743
+@18C A3C
+@18D CB1
+@18E 091
+@18F 743
+@190 A3C
+@191 CB2
+@192 092
+@193 743
+@194 A3C
+@195 CB3
+@196 093
+@197 743
+@198 A3C
+@199 CB4
+@19A 094
+@19B 743
+@19C A3C
+@19D CB5
+@19E 095
+@19F 743
+@1A0 A3C
+@1A1 CB6
+@1A2 096
+@1A3 743
+@1A4 A3C
+@1A5 CB7
+@1A6 097
+@1A7 743
+@1A8 A3C
+@1A9 CB8
+@1AA 098
+@1AB 743
+@1AC A3C
+@1AD CB9
+@1AE 099
+@1AF 743
+@1B0 A3C
+@1B1 CBA
+@1B2 09A
+@1B3 743
+@1B4 A3C
+@1B5 CBB
+@1B6 09B
+@1B7 743
+@1B8 A3C
+@1B9 CBC
+@1BA 09C
+@1BB 743
+@1BC A3C
+@1BD CBD
+@1BE 09D
+@1BF 743
+@1C0 A3C
+@1C1 CBE
+@1C2 09E
+@1C3 743
+@1C4 A3C
+@1C5 CBF
+@1C6 09F
+@1C7 743
+@1C8 A3C
+@1C9 C04
+@1CA 026
+@1CB 5A4
+@1CC 5C4
+@1CD C81
+@1CE 088
+@1CF 743
+@1D0 A3C
+@1D1 C82
+@1D2 089
+@1D3 743
+@1D4 A3C
+@1D5 C83
+@1D6 08A
+@1D7 743
+@1D8 A3C
+@1D9 C84
+@1DA 08B
+@1DB 743
+@1DC A3C
+@1DD C85
+@1DE 08C
+@1DF 743
+@1E0 A3C
+@1E1 C86
+@1E2 08D
+@1E3 743
+@1E4 A3C
+@1E5 C87
+@1E6 08E
+@1E7 743
+@1E8 A3C
+@1E9 C88
+@1EA 08F
+@1EB 743
+@1EC A3C
+@1ED CC0
+@1EE 090
+@1EF 743
+@1F0 A3C
+@1F1 CC1
+@1F2 091
+@1F3 743
+@1F4 A3C
+@1F5 CC2
+@1F6 092
+@1F7 743
+@1F8 A3C
+@1F9 CC3
+@1FA 093
+@1FB 743
+@1FC A3C
+@1FD CC4
+@1FE 094
+@1FF 743
+@200 A3C
+@201 CC5
+@202 095
+@203 743
+@204 A3C
+@205 CC6
+@206 096
+@207 743
+@208 A3C
+@209 CC7
+@20A 097
+@20B 743
+@20C A3C
+@20D CC8
+@20E 098
+@20F 743
+@210 A3C
+@211 CC9
+@212 099
+@213 743
+@214 A3C
+@215 CCA
+@216 09A
+@217 743
+@218 A3C
+@219 CCB
+@21A 09B
+@21B 743
+@21C A3C
+@21D CCC
+@21E 09C
+@21F 743
+@220 A3C
+@221 CCD
+@222 09D
+@223 743
+@224 A3C
+@225 CCE
+@226 09E
+@227 743
+@228 A3C
+@229 CCF
+@22A 09F
+@22B 743
+@22C A3C
+@22D 000
+@22E 000
+@22F 000
+@230 000
+@231 C01
+@232 025
+@233 000
+@234 000
+@235 000
+@236 000
+@237 A37
+@238 000
+@239 000
+@23A 000
+@23B 000
+@23C CFF
+@23D 025
+@23E 000
+@23F 000
+@240 000
+@241 000
+@242 A42
+@243 000
+@244 000
+@245 000
+@246 000
Index: trunk/scode/sanity1.rom
===================================================================
--- trunk/scode/sanity1.rom (nonexistent)
+++ trunk/scode/sanity1.rom (revision 3)
@@ -0,0 +1,181 @@
+
+@000 040
+@001 025
+@002 026
+@003 027
+@004 FFF
+@005 005
+@006 006
+@007 007
+@008 705
+@009 AAF
+@00A 725
+@00B AAF
+@00C 745
+@00D AAF
+@00E 765
+@00F AAF
+@010 785
+@011 AAF
+@012 7A5
+@013 AAF
+@014 7C5
+@015 AAF
+@016 7E5
+@017 AAF
+@018 706
+@019 AAF
+@01A 726
+@01B AAF
+@01C 746
+@01D AAF
+@01E 766
+@01F AAF
+@020 786
+@021 AAF
+@022 7A6
+@023 AAF
+@024 7C6
+@025 AAF
+@026 7E6
+@027 AAF
+@028 707
+@029 AAF
+@02A 727
+@02B AAF
+@02C 747
+@02D AAF
+@02E 767
+@02F AAF
+@030 787
+@031 AAF
+@032 7A7
+@033 AAF
+@034 7C5
+@035 AAF
+@036 7E7
+@037 AAF
+@038 040
+@039 005
+@03A 006
+@03B 007
+@03C 040
+@03D FAA
+@03E 025
+@03F 026
+@040 027
+@041 605
+@042 AAF
+@043 725
+@044 AAF
+@045 645
+@046 AAF
+@047 765
+@048 AAF
+@049 685
+@04A AAF
+@04B 7A5
+@04C AAF
+@04D 6C5
+@04E AAF
+@04F 7E5
+@050 AAF
+@051 606
+@052 AAF
+@053 726
+@054 AAF
+@055 646
+@056 AAF
+@057 766
+@058 AAF
+@059 686
+@05A AAF
+@05B 7A6
+@05C AAF
+@05D 6C6
+@05E AAF
+@05F 7E6
+@060 AAF
+@061 607
+@062 AAF
+@063 727
+@064 AAF
+@065 647
+@066 AAF
+@067 767
+@068 AAF
+@069 687
+@06A AAF
+@06B 7A7
+@06C AAF
+@06D 6C7
+@06E AAF
+@06F 7E7
+@070 AAF
+@071 040
+@072 F55
+@073 025
+@074 026
+@075 027
+@076 705
+@077 AAF
+@078 625
+@079 AAF
+@07A 745
+@07B AAF
+@07C 665
+@07D AAF
+@07E 785
+@07F AAF
+@080 6A5
+@081 AAF
+@082 7C5
+@083 AAF
+@084 6E5
+@085 AAF
+@086 706
+@087 AAF
+@088 626
+@089 AAF
+@08A 746
+@08B AAF
+@08C 666
+@08D AAF
+@08E 786
+@08F AAF
+@090 6A6
+@091 AAF
+@092 7C6
+@093 AAF
+@094 6E6
+@095 AAF
+@096 707
+@097 AAF
+@098 627
+@099 AAF
+@09A 747
+@09B AAF
+@09C 667
+@09D AAF
+@09E 787
+@09F AAF
+@0A0 6A7
+@0A1 AAF
+@0A2 7C7
+@0A3 AAF
+@0A4 6E7
+@0A5 AAF
+@0A6 000
+@0A7 000
+@0A8 000
+@0A9 000
+@0AA AAA
+@0AB 000
+@0AC 000
+@0AD 000
+@0AE 000
+@0AF AAF
+@0B0 000
+@0B1 000
+@0B2 000
+@0B3 000
Index: trunk/scode/rf2.rom
===================================================================
--- trunk/scode/rf2.rom (nonexistent)
+++ trunk/scode/rf2.rom (revision 3)
@@ -0,0 +1,720 @@
+
+@000 040
+@001 024
+@002 025
+@003 026
+@004 027
+@005 005
+@006 006
+@007 007
+@008 5A3
+@009 C81
+@00A 028
+@00B C82
+@00C 029
+@00D C83
+@00E 02A
+@00F C84
+@010 02B
+@011 C85
+@012 02C
+@013 C86
+@014 02D
+@015 C87
+@016 02E
+@017 C88
+@018 02F
+@019 C90
+@01A 030
+@01B C91
+@01C 031
+@01D C92
+@01E 032
+@01F C93
+@020 033
+@021 C94
+@022 034
+@023 C95
+@024 035
+@025 C96
+@026 036
+@027 C97
+@028 037
+@029 C98
+@02A 038
+@02B C99
+@02C 039
+@02D C9A
+@02E 03A
+@02F C9B
+@030 03B
+@031 C9C
+@032 03C
+@033 C9D
+@034 03D
+@035 C9E
+@036 03E
+@037 C9F
+@038 03F
+@039 5A4
+@03A CA0
+@03B 030
+@03C CA1
+@03D 031
+@03E CA2
+@03F 032
+@040 CA3
+@041 033
+@042 CA4
+@043 034
+@044 CA5
+@045 035
+@046 CA6
+@047 036
+@048 CA7
+@049 037
+@04A CA8
+@04B 038
+@04C CA9
+@04D 039
+@04E CAA
+@04F 03A
+@050 CAB
+@051 03B
+@052 CAC
+@053 03C
+@054 CAD
+@055 03D
+@056 CAE
+@057 03E
+@058 CAF
+@059 03F
+@05A 4A4
+@05B 5C4
+@05C CB0
+@05D 030
+@05E CB1
+@05F 031
+@060 CB2
+@061 032
+@062 CB3
+@063 033
+@064 CB4
+@065 034
+@066 CB5
+@067 035
+@068 CB6
+@069 036
+@06A CB7
+@06B 037
+@06C CB8
+@06D 038
+@06E CB9
+@06F 039
+@070 CBA
+@071 03A
+@072 CBB
+@073 03B
+@074 CBC
+@075 03C
+@076 CBD
+@077 03D
+@078 CBE
+@079 03E
+@07A CBF
+@07B 03F
+@07C 5A4
+@07D 5C4
+@07E CC0
+@07F 030
+@080 CC1
+@081 031
+@082 CC2
+@083 032
+@084 CC3
+@085 033
+@086 CC4
+@087 034
+@088 CC5
+@089 035
+@08A CC6
+@08B 036
+@08C CC7
+@08D 037
+@08E CC8
+@08F 038
+@090 CC9
+@091 039
+@092 CCA
+@093 03A
+@094 CCB
+@095 03B
+@096 CCC
+@097 03C
+@098 CCD
+@099 03D
+@09A CCE
+@09B 03E
+@09C CCF
+@09D 03F
+@09E C08
+@09F 024
+@0A0 260
+@0A1 2A4
+@0A2 260
+@0A3 2A4
+@0A4 260
+@0A5 2A4
+@0A6 260
+@0A7 2A4
+@0A8 260
+@0A9 2A4
+@0AA 260
+@0AB 2A4
+@0AC 260
+@0AD 2A4
+@0AE 260
+@0AF 2A4
+@0B0 C10
+@0B1 024
+@0B2 260
+@0B3 2A4
+@0B4 260
+@0B5 2A4
+@0B6 260
+@0B7 2A4
+@0B8 260
+@0B9 2A4
+@0BA 260
+@0BB 2A4
+@0BC 260
+@0BD 2A4
+@0BE 260
+@0BF 2A4
+@0C0 260
+@0C1 2A4
+@0C2 260
+@0C3 2A4
+@0C4 260
+@0C5 2A4
+@0C6 260
+@0C7 2A4
+@0C8 260
+@0C9 2A4
+@0CA 260
+@0CB 2A4
+@0CC 260
+@0CD 2A4
+@0CE 260
+@0CF 2A4
+@0D0 260
+@0D1 2A4
+@0D2 C10
+@0D3 024
+@0D4 5A4
+@0D5 260
+@0D6 2A4
+@0D7 260
+@0D8 2A4
+@0D9 260
+@0DA 2A4
+@0DB 260
+@0DC 2A4
+@0DD 260
+@0DE 2A4
+@0DF 260
+@0E0 2A4
+@0E1 260
+@0E2 2A4
+@0E3 260
+@0E4 2A4
+@0E5 260
+@0E6 2A4
+@0E7 260
+@0E8 2A4
+@0E9 260
+@0EA 2A4
+@0EB 260
+@0EC 2A4
+@0ED 260
+@0EE 2A4
+@0EF 260
+@0F0 2A4
+@0F1 260
+@0F2 2A4
+@0F3 260
+@0F4 2A4
+@0F5 C10
+@0F6 024
+@0F7 5C4
+@0F8 260
+@0F9 2A4
+@0FA 260
+@0FB 2A4
+@0FC 260
+@0FD 2A4
+@0FE 260
+@0FF 2A4
+@100 260
+@101 2A4
+@102 260
+@103 2A4
+@104 260
+@105 2A4
+@106 260
+@107 2A4
+@108 260
+@109 2A4
+@10A 260
+@10B 2A4
+@10C 260
+@10D 2A4
+@10E 260
+@10F 2A4
+@110 260
+@111 2A4
+@112 260
+@113 2A4
+@114 260
+@115 2A4
+@116 260
+@117 2A4
+@118 C10
+@119 024
+@11A 5A4
+@11B 5C4
+@11C 260
+@11D 2A4
+@11E 260
+@11F 2A4
+@120 260
+@121 2A4
+@122 260
+@123 2A4
+@124 260
+@125 2A4
+@126 260
+@127 2A4
+@128 260
+@129 2A4
+@12A 260
+@12B 2A4
+@12C 260
+@12D 2A4
+@12E 260
+@12F 2A4
+@130 260
+@131 2A4
+@132 260
+@133 2A4
+@134 260
+@135 2A4
+@136 260
+@137 2A4
+@138 260
+@139 2A4
+@13A 260
+@13B 2A4
+@13C C01
+@13D 026
+@13E C08
+@13F 024
+@140 C7E
+@141 080
+@142 743
+@143 AC4
+@144 C7D
+@145 2A4
+@146 080
+@147 743
+@148 AC4
+@149 C7C
+@14A 2A4
+@14B 080
+@14C 743
+@14D AC4
+@14E C7B
+@14F 2A4
+@150 080
+@151 743
+@152 AC4
+@153 C7A
+@154 2A4
+@155 080
+@156 743
+@157 AC4
+@158 C79
+@159 2A4
+@15A 080
+@15B 743
+@15C AC4
+@15D C78
+@15E 2A4
+@15F 080
+@160 743
+@161 AC4
+@162 C77
+@163 2A4
+@164 080
+@165 743
+@166 AC4
+@167 C10
+@168 024
+@169 C6F
+@16A 080
+@16B 743
+@16C AC4
+@16D C6E
+@16E 2A4
+@16F 080
+@170 743
+@171 AC4
+@172 C6D
+@173 2A4
+@174 080
+@175 743
+@176 AC4
+@177 C6C
+@178 2A4
+@179 080
+@17A 743
+@17B AC4
+@17C C6B
+@17D 2A4
+@17E 080
+@17F 743
+@180 AC4
+@181 C6A
+@182 2A4
+@183 080
+@184 743
+@185 AC4
+@186 C69
+@187 2A4
+@188 080
+@189 743
+@18A AC4
+@18B C68
+@18C 2A4
+@18D 080
+@18E 743
+@18F AC4
+@190 C67
+@191 2A4
+@192 080
+@193 743
+@194 AC4
+@195 C66
+@196 2A4
+@197 080
+@198 743
+@199 AC4
+@19A C65
+@19B 2A4
+@19C 080
+@19D 743
+@19E AC4
+@19F C64
+@1A0 2A4
+@1A1 080
+@1A2 743
+@1A3 AC4
+@1A4 C63
+@1A5 2A4
+@1A6 080
+@1A7 743
+@1A8 AC4
+@1A9 C62
+@1AA 2A4
+@1AB 080
+@1AC 743
+@1AD AC4
+@1AE C61
+@1AF 2A4
+@1B0 080
+@1B1 743
+@1B2 AC4
+@1B3 C60
+@1B4 2A4
+@1B5 080
+@1B6 743
+@1B7 AC4
+@1B8 C02
+@1B9 026
+@1BA C10
+@1BB 024
+@1BC 5A4
+@1BD C5F
+@1BE 080
+@1BF 743
+@1C0 AC4
+@1C1 C5E
+@1C2 2A4
+@1C3 080
+@1C4 743
+@1C5 AC4
+@1C6 C5D
+@1C7 2A4
+@1C8 080
+@1C9 743
+@1CA AC4
+@1CB C5C
+@1CC 2A4
+@1CD 080
+@1CE 743
+@1CF AC4
+@1D0 C5B
+@1D1 2A4
+@1D2 080
+@1D3 743
+@1D4 AC4
+@1D5 C5A
+@1D6 2A4
+@1D7 080
+@1D8 743
+@1D9 AC4
+@1DA C59
+@1DB 2A4
+@1DC 080
+@1DD 743
+@1DE AC4
+@1DF C58
+@1E0 2A4
+@1E1 080
+@1E2 743
+@1E3 AC4
+@1E4 C57
+@1E5 2A4
+@1E6 080
+@1E7 743
+@1E8 AC4
+@1E9 C56
+@1EA 2A4
+@1EB 080
+@1EC 743
+@1ED AC4
+@1EE C55
+@1EF 2A4
+@1F0 080
+@1F1 743
+@1F2 AC4
+@1F3 C54
+@1F4 2A4
+@1F5 080
+@1F6 743
+@1F7 AC4
+@1F8 C53
+@1F9 2A4
+@1FA 080
+@1FB 743
+@1FC AC4
+@1FD C52
+@1FE 2A4
+@1FF 080
+@200 743
+@201 AC4
+@202 C51
+@203 2A4
+@204 080
+@205 743
+@206 AC4
+@207 C50
+@208 2A4
+@209 080
+@20A 743
+@20B AC4
+@20C C03
+@20D 026
+@20E C10
+@20F 024
+@210 5C4
+@211 C4F
+@212 080
+@213 743
+@214 AC4
+@215 C4E
+@216 2A4
+@217 080
+@218 743
+@219 AC4
+@21A C4D
+@21B 2A4
+@21C 080
+@21D 743
+@21E AC4
+@21F C4C
+@220 2A4
+@221 080
+@222 743
+@223 AC4
+@224 C4B
+@225 2A4
+@226 080
+@227 743
+@228 AC4
+@229 C4A
+@22A 2A4
+@22B 080
+@22C 743
+@22D AC4
+@22E C49
+@22F 2A4
+@230 080
+@231 743
+@232 AC4
+@233 C48
+@234 2A4
+@235 080
+@236 743
+@237 AC4
+@238 C47
+@239 2A4
+@23A 080
+@23B 743
+@23C AC4
+@23D C46
+@23E 2A4
+@23F 080
+@240 743
+@241 AC4
+@242 C45
+@243 2A4
+@244 080
+@245 743
+@246 AC4
+@247 C44
+@248 2A4
+@249 080
+@24A 743
+@24B AC4
+@24C C43
+@24D 2A4
+@24E 080
+@24F 743
+@250 AC4
+@251 C42
+@252 2A4
+@253 080
+@254 743
+@255 AC4
+@256 C41
+@257 2A4
+@258 080
+@259 743
+@25A AC4
+@25B C40
+@25C 2A4
+@25D 080
+@25E 743
+@25F AC4
+@260 C04
+@261 026
+@262 C10
+@263 024
+@264 5A4
+@265 5C4
+@266 C3F
+@267 080
+@268 743
+@269 AC4
+@26A C3E
+@26B 2A4
+@26C 080
+@26D 743
+@26E AC4
+@26F C3D
+@270 2A4
+@271 080
+@272 743
+@273 AC4
+@274 C3C
+@275 2A4
+@276 080
+@277 743
+@278 AC4
+@279 C3B
+@27A 2A4
+@27B 080
+@27C 743
+@27D AC4
+@27E C3A
+@27F 2A4
+@280 080
+@281 743
+@282 AC4
+@283 C39
+@284 2A4
+@285 080
+@286 743
+@287 AC4
+@288 C38
+@289 2A4
+@28A 080
+@28B 743
+@28C AC4
+@28D C37
+@28E 2A4
+@28F 080
+@290 743
+@291 AC4
+@292 C36
+@293 2A4
+@294 080
+@295 743
+@296 AC4
+@297 C35
+@298 2A4
+@299 080
+@29A 743
+@29B AC4
+@29C C34
+@29D 2A4
+@29E 080
+@29F 743
+@2A0 AC4
+@2A1 C33
+@2A2 2A4
+@2A3 080
+@2A4 743
+@2A5 AC4
+@2A6 C32
+@2A7 2A4
+@2A8 080
+@2A9 743
+@2AA AC4
+@2AB C31
+@2AC 2A4
+@2AD 080
+@2AE 743
+@2AF AC4
+@2B0 C30
+@2B1 2A4
+@2B2 080
+@2B3 743
+@2B4 AC4
+@2B5 000
+@2B6 000
+@2B7 000
+@2B8 000
+@2B9 C01
+@2BA 025
+@2BB 000
+@2BC 000
+@2BD 000
+@2BE 000
+@2BF ABF
+@2C0 000
+@2C1 000
+@2C2 000
+@2C3 000
+@2C4 CFF
+@2C5 025
+@2C6 000
+@2C7 000
+@2C8 000
+@2C9 000
+@2CA ACA
+@2CB 000
+@2CC 000
+@2CD 000
+@2CE 000
Index: trunk/scode/sanity2.rom
===================================================================
--- trunk/scode/sanity2.rom (nonexistent)
+++ trunk/scode/sanity2.rom (revision 3)
@@ -0,0 +1,282 @@
+
+@000 040
+@001 024
+@002 025
+@003 026
+@004 027
+@005 005
+@006 006
+@007 007
+@008 C0B
+@009 028
+@00A 202
+@00B 088
+@00C 743
+@00D B23
+@00E C01
+@00F 026
+@010 C13
+@011 02B
+@012 202
+@013 08B
+@014 743
+@015 B23
+@016 C02
+@017 026
+@018 C1D
+@019 022
+@01A B23
+@01B B23
+@01C B23
+@01D A21
+@01E B23
+@01F B23
+@020 B23
+@021 C03
+@022 026
+@023 C28
+@024 022
+@025 B23
+@026 B23
+@027 B23
+@028 A2C
+@029 B23
+@02A B23
+@02B B23
+@02C C04
+@02D 026
+@02E C35
+@02F 028
+@030 C32
+@031 088
+@032 1E2
+@033 B23
+@034 B23
+@035 B23
+@036 A3A
+@037 B23
+@038 B23
+@039 B23
+@03A C05
+@03B 026
+@03C C43
+@03D 038
+@03E C40
+@03F 098
+@040 1E2
+@041 B23
+@042 B23
+@043 B23
+@044 A48
+@045 B23
+@046 B23
+@047 B23
+@048 C06
+@049 026
+@04A A60
+@060 522
+@061 B23
+@062 B23
+@063 A68
+@064 B23
+@065 B23
+@066 B23
+@067 B23
+@068 C07
+@069 026
+@06A 542
+@06B B23
+@06C B23
+@06D B23
+@06E B23
+@06F A72
+@070 B23
+@071 B23
+@072 C08
+@073 026
+@074 A7C
+@075 B23
+@076 B23
+@077 B23
+@078 B23
+@079 A7D
+@07A B23
+@07B B23
+@07C 442
+@07D C09
+@07E 026
+@07F A8A
+@080 000
+@081 000
+@082 000
+@083 000
+@084 CFF
+@085 025
+@086 000
+@087 000
+@088 000
+@089 000
+@08A C0A
+@08B 026
+@08C 9A5
+@08D 028
+@08E C55
+@08F 088
+@090 743
+@091 B23
+@092 9A7
+@093 028
+@094 CAA
+@095 088
+@096 743
+@097 B23
+@098 9AA
+@099 028
+@09A CC3
+@09B 088
+@09C 743
+@09D B23
+@09E 9AE
+@09F 028
+@0A0 C3C
+@0A1 088
+@0A2 743
+@0A3 B23
+@0A4 AC5
+@0A5 855
+@0A6 B23
+@0A7 000
+@0A8 8AA
+@0A9 B23
+@0AA 000
+@0AB 000
+@0AC 8C3
+@0AD B23
+@0AE 000
+@0AF 000
+@0B0 000
+@0B1 83C
+@0B2 B23
+@0B3 1E2
+@0B4 8FF
+@0B5 8FE
+@0B6 8FD
+@0B7 8FC
+@0B8 8FB
+@0B9 8FA
+@0BA 8F9
+@0BB 8F8
+@0BC 8F7
+@0BD 8F6
+@0BE 8F5
+@0BF B23
+@0C0 B23
+@0C1 B23
+@0C2 B23
+@0C3 B23
+@0C4 B23
+@0C5 C0B
+@0C6 026
+@0C7 C00
+@0C8 028
+@0C9 9B3
+@0CA 268
+@0CB 0A8
+@0CC 743
+@0CD B23
+@0CE C01
+@0CF 028
+@0D0 9B3
+@0D1 268
+@0D2 0A8
+@0D3 743
+@0D4 B23
+@0D5 C02
+@0D6 028
+@0D7 9B3
+@0D8 268
+@0D9 0A8
+@0DA 743
+@0DB B23
+@0DC C03
+@0DD 028
+@0DE 9B3
+@0DF 268
+@0E0 0A8
+@0E1 743
+@0E2 B23
+@0E3 C04
+@0E4 028
+@0E5 9B3
+@0E6 268
+@0E7 0A8
+@0E8 743
+@0E9 B23
+@0EA C05
+@0EB 028
+@0EC 9B3
+@0ED 268
+@0EE 0A8
+@0EF 743
+@0F0 B23
+@0F1 C06
+@0F2 028
+@0F3 9B3
+@0F4 268
+@0F5 0A8
+@0F6 743
+@0F7 B23
+@0F8 C07
+@0F9 028
+@0FA 9B3
+@0FB 268
+@0FC 0A8
+@0FD 743
+@0FE B23
+@0FF C08
+@100 028
+@101 9B3
+@102 268
+@103 0A8
+@104 743
+@105 B23
+@106 C09
+@107 028
+@108 9B3
+@109 268
+@10A 0A8
+@10B 743
+@10C B23
+@10D C0A
+@10E 028
+@10F 9B3
+@110 268
+@111 0A8
+@112 743
+@113 B23
+@114 000
+@115 000
+@116 000
+@117 000
+@118 C01
+@119 025
+@11A 000
+@11B 000
+@11C 000
+@11D 000
+@11E B1E
+@11F 000
+@120 000
+@121 000
+@122 000
+@123 CFF
+@124 025
+@125 000
+@126 000
+@127 000
+@128 000
+@129 B29
+@12A 000
+@12B 000
+@12C 000
+@12D 000
Index: trunk/scode/rf3.rom
===================================================================
--- trunk/scode/rf3.rom (nonexistent)
+++ trunk/scode/rf3.rom (revision 3)
@@ -0,0 +1,219 @@
+
+@000 040
+@001 024
+@002 025
+@003 026
+@004 027
+@005 005
+@006 006
+@007 007
+@008 C01
+@009 026
+@00A CFC
+@00B 028
+@00C 2A8
+@00D 2A8
+@00E 2A8
+@00F 2A8
+@010 743
+@011 ACF
+@012 CFC
+@013 038
+@014 2B8
+@015 2B8
+@016 2B8
+@017 2B8
+@018 743
+@019 ACF
+@01A C02
+@01B 026
+@01C C09
+@01D 024
+@01E CFC
+@01F 020
+@020 2A0
+@021 2A0
+@022 2A0
+@023 2A0
+@024 743
+@025 ACF
+@026 C19
+@027 024
+@028 CFC
+@029 020
+@02A 2A0
+@02B 2A0
+@02C 2A0
+@02D 2A0
+@02E 743
+@02F ACF
+@030 C03
+@031 026
+@032 C04
+@033 028
+@034 0E8
+@035 0E8
+@036 0E8
+@037 0E8
+@038 743
+@039 ACF
+@03A C04
+@03B 030
+@03C 0F0
+@03D 0F0
+@03E 0F0
+@03F 0F0
+@040 743
+@041 ACF
+@042 C04
+@043 026
+@044 C09
+@045 024
+@046 C04
+@047 020
+@048 0E0
+@049 0E0
+@04A 0E0
+@04B 0E0
+@04C 743
+@04D ACF
+@04E C19
+@04F 024
+@050 C04
+@051 020
+@052 0E0
+@053 0E0
+@054 0E0
+@055 0E0
+@056 743
+@057 ACF
+@058 C05
+@059 026
+@05A CFC
+@05B 02C
+@05C 3EC
+@05D 3EC
+@05E 3EC
+@05F 3EC
+@060 ACF
+@061 CFC
+@062 038
+@063 3F8
+@064 3F8
+@065 3F8
+@066 3F8
+@067 ACF
+@068 C06
+@069 026
+@06A C09
+@06B 024
+@06C CFC
+@06D 020
+@06E 3E0
+@06F 3E0
+@070 3E0
+@071 3E0
+@072 ACF
+@073 C19
+@074 024
+@075 CFC
+@076 020
+@077 3E0
+@078 3E0
+@079 3E0
+@07A 3E0
+@07B ACF
+@07C C07
+@07D 026
+@07E C04
+@07F 028
+@080 2E8
+@081 2E8
+@082 2E8
+@083 2E8
+@084 ACF
+@085 C04
+@086 030
+@087 2F0
+@088 2F0
+@089 2F0
+@08A 2F0
+@08B ACF
+@08C C08
+@08D 026
+@08E C09
+@08F 024
+@090 C04
+@091 020
+@092 2E0
+@093 2E0
+@094 2E0
+@095 2E0
+@096 ACF
+@097 C19
+@098 024
+@099 C04
+@09A 020
+@09B 2E0
+@09C 2E0
+@09D 2E0
+@09E 2E0
+@09F ACF
+@0A0 C09
+@0A1 026
+@0A2 CFC
+@0A3 024
+@0A4 2A4
+@0A5 2A4
+@0A6 2A4
+@0A7 2A4
+@0A8 743
+@0A9 ACF
+@0AA C04
+@0AB 024
+@0AC C7F
+@0AD 0E4
+@0AE 0E4
+@0AF 0E4
+@0B0 0E4
+@0B1 164
+@0B2 743
+@0B3 ACF
+@0B4 C0A
+@0B5 026
+@0B6 CFC
+@0B7 023
+@0B8 C18
+@0B9 2A3
+@0BA 2A3
+@0BB 2A3
+@0BC 2A3
+@0BD 083
+@0BE 743
+@0BF ACF
+@0C0 000
+@0C1 000
+@0C2 000
+@0C3 000
+@0C4 C01
+@0C5 025
+@0C6 000
+@0C7 000
+@0C8 000
+@0C9 000
+@0CA ACA
+@0CB 000
+@0CC 000
+@0CD 000
+@0CE 000
+@0CF CFF
+@0D0 025
+@0D1 000
+@0D2 000
+@0D3 000
+@0D4 000
+@0D5 AD5
+@0D6 000
+@0D7 000
+@0D8 000
+@0D9 000
Index: trunk/scode/rf1.asm
===================================================================
--- trunk/scode/rf1.asm (nonexistent)
+++ trunk/scode/rf1.asm (revision 3)
@@ -0,0 +1,694 @@
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Mini-RISC-1 ////
+;//// Register File Test 1 ////
+;//// Tests Register File ////
+;//// ////
+;//// Author: Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Copyright (C) 2000 Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;//// This source file may be used and distributed without ////
+;//// restriction provided that this copyright statement is not ////
+;//// removed from the file and that any derivative work contains ////
+;//// the original copyright notice and the associated disclaimer.////
+;//// ////
+;//// THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY ////
+;//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT ////
+;//// LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND ////
+;//// FITNESS FOR A PARTICULAR PURPOSE. ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+
+ list p=16c57
+ #include p16c5x.inc
+
+; global Registers
+r0 equ 0x8
+r1 equ 0x9
+r2 equ 0xa
+r3 equ 0xb
+r4 equ 0xc
+r5 equ 0xd
+r6 equ 0xe
+r7 equ 0xf
+
+; banked Registers
+br0 equ 0x10
+br1 equ 0x11
+br2 equ 0x12
+br3 equ 0x13
+br4 equ 0x14
+br5 equ 0x15
+br6 equ 0x16
+br7 equ 0x17
+br8 equ 0x18
+br9 equ 0x19
+br10 equ 0x1a
+br11 equ 0x1b
+br12 equ 0x1c
+br13 equ 0x1d
+br14 equ 0x1e
+br15 equ 0x1f
+
+
+; PORTB Indicates Test Number
+; PORTA Indicates Status: 0 - Running; 1 - done OK; ff - stoped on error
+
+main ; Main code entry
+ ; Port IO Test
+ ; All ports have a Pull up resistor
+
+ ; SETUP all ports
+ clrw
+ movwf FSR
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+ tris PORTA
+ tris PORTB
+ tris PORTC
+
+ bsf STATUS,5
+
+ ; ---------------------------------------
+ ; ---- Test the entire register file ----
+ ; ---------------------------------------
+
+ movlw 0x81
+ movwf r0
+ movlw 0x82
+ movwf r1
+ movlw 0x83
+ movwf r2
+ movlw 0x84
+ movwf r3
+ movlw 0x85
+ movwf r4
+ movlw 0x86
+ movwf r5
+ movlw 0x87
+ movwf r6
+ movlw 0x88
+ movwf r7
+
+
+ movlw 0x90
+ movwf br0
+ movlw 0x91
+ movwf br1
+ movlw 0x92
+ movwf br2
+ movlw 0x93
+ movwf br3
+ movlw 0x94
+ movwf br4
+ movlw 0x95
+ movwf br5
+ movlw 0x96
+ movwf br6
+ movlw 0x97
+ movwf br7
+ movlw 0x98
+ movwf br8
+ movlw 0x99
+ movwf br9
+ movlw 0x9a
+ movwf br10
+ movlw 0x9b
+ movwf br11
+ movlw 0x9c
+ movwf br12
+ movlw 0x9d
+ movwf br13
+ movlw 0x9e
+ movwf br14
+ movlw 0x9f
+ movwf br15
+
+ bsf FSR,5 ; Select Register Bank 01
+
+ movlw 0xa0
+ movwf br0
+ movlw 0xa1
+ movwf br1
+ movlw 0xa2
+ movwf br2
+ movlw 0xa3
+ movwf br3
+ movlw 0xa4
+ movwf br4
+ movlw 0xa5
+ movwf br5
+ movlw 0xa6
+ movwf br6
+ movlw 0xa7
+ movwf br7
+ movlw 0xa8
+ movwf br8
+ movlw 0xa9
+ movwf br9
+ movlw 0xaa
+ movwf br10
+ movlw 0xab
+ movwf br11
+ movlw 0xac
+ movwf br12
+ movlw 0xad
+ movwf br13
+ movlw 0xae
+ movwf br14
+ movlw 0xaf
+ movwf br15
+
+ bcf FSR,5 ; Select Register Bank 10
+ bsf FSR,6
+
+ movlw 0xb0
+ movwf br0
+ movlw 0xb1
+ movwf br1
+ movlw 0xb2
+ movwf br2
+ movlw 0xb3
+ movwf br3
+ movlw 0xb4
+ movwf br4
+ movlw 0xb5
+ movwf br5
+ movlw 0xb6
+ movwf br6
+ movlw 0xb7
+ movwf br7
+ movlw 0xb8
+ movwf br8
+ movlw 0xb9
+ movwf br9
+ movlw 0xba
+ movwf br10
+ movlw 0xbb
+ movwf br11
+ movlw 0xbc
+ movwf br12
+ movlw 0xbd
+ movwf br13
+ movlw 0xbe
+ movwf br14
+ movlw 0xbf
+ movwf br15
+
+ bsf FSR,5 ; Select Register Bank 11
+ bsf FSR,6
+
+ movlw 0xc0
+ movwf br0
+ movlw 0xc1
+ movwf br1
+ movlw 0xc2
+ movwf br2
+ movlw 0xc3
+ movwf br3
+ movlw 0xc4
+ movwf br4
+ movlw 0xc5
+ movwf br5
+ movlw 0xc6
+ movwf br6
+ movlw 0xc7
+ movwf br7
+ movlw 0xc8
+ movwf br8
+ movlw 0xc9
+ movwf br9
+ movlw 0xca
+ movwf br10
+ movlw 0xcb
+ movwf br11
+ movlw 0xcc
+ movwf br12
+ movlw 0xcd
+ movwf br13
+ movlw 0xce
+ movwf br14
+ movlw 0xcf
+ movwf br15
+
+ ; Register File TEST 1
+ movlw 0x01
+ movwf PORTB ; Set Test Number
+
+ clrw
+ movwf FSR
+
+ movlw 0x81
+ subwf r0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x82
+ subwf r1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x83
+ subwf r2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x84
+ subwf r3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x85
+ subwf r4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x86
+ subwf r5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x87
+ subwf r6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x88
+ subwf r7,W
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x90
+ subwf br0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x91
+ subwf br1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x92
+ subwf br2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x93
+ subwf br3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x94
+ subwf br4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x95
+ subwf br5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x96
+ subwf br6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x97
+ subwf br7,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x98
+ subwf br8,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x99
+ subwf br9,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x9a
+ subwf br10,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x9b
+ subwf br11,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x9c
+ subwf br12,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x9d
+ subwf br13,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x9e
+ subwf br14,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x9f
+ subwf br15,W
+ btfss STATUS,Z
+ goto lerr
+
+ ; Register File TEST 2
+ movlw 0x02
+ movwf PORTB ; Set Test Number
+
+ bsf FSR,5 ; Select Register Bank 01
+
+ movlw 0x81
+ subwf r0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x82
+ subwf r1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x83
+ subwf r2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x84
+ subwf r3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x85
+ subwf r4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x86
+ subwf r5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x87
+ subwf r6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x88
+ subwf r7,W
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0xa0
+ subwf br0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa1
+ subwf br1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa2
+ subwf br2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa3
+ subwf br3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa4
+ subwf br4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa5
+ subwf br5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa6
+ subwf br6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa7
+ subwf br7,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa8
+ subwf br8,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xa9
+ subwf br9,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xaa
+ subwf br10,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xab
+ subwf br11,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xac
+ subwf br12,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xad
+ subwf br13,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xae
+ subwf br14,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xaf
+ subwf br15,W
+ btfss STATUS,Z
+ goto lerr
+
+ ; Register File TEST 3
+ movlw 0x03
+ movwf PORTB ; Set Test Number
+
+ bcf FSR,5 ; Select Register Bank 10
+ bsf FSR,6
+
+ movlw 0x81
+ subwf r0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x82
+ subwf r1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x83
+ subwf r2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x84
+ subwf r3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x85
+ subwf r4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x86
+ subwf r5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x87
+ subwf r6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x88
+ subwf r7,W
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0xb0
+ subwf br0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb1
+ subwf br1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb2
+ subwf br2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb3
+ subwf br3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb4
+ subwf br4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb5
+ subwf br5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb6
+ subwf br6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb7
+ subwf br7,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb8
+ subwf br8,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xb9
+ subwf br9,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xba
+ subwf br10,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xbb
+ subwf br11,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xbc
+ subwf br12,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xbd
+ subwf br13,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xbe
+ subwf br14,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xbf
+ subwf br15,W
+ btfss STATUS,Z
+ goto lerr
+
+
+ ; Register File TEST 4
+ movlw 0x04
+ movwf PORTB ; Set Test Number
+
+ bsf FSR,5 ; Select Register Bank 11
+ bsf FSR,6
+
+ movlw 0x81
+ subwf r0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x82
+ subwf r1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x83
+ subwf r2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x84
+ subwf r3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x85
+ subwf r4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x86
+ subwf r5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x87
+ subwf r6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x88
+ subwf r7,W
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0xc0
+ subwf br0,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc1
+ subwf br1,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc2
+ subwf br2,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc3
+ subwf br3,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc4
+ subwf br4,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc5
+ subwf br5,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc6
+ subwf br6,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc7
+ subwf br7,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc8
+ subwf br8,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xc9
+ subwf br9,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xca
+ subwf br10,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xcb
+ subwf br11,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xcc
+ subwf br12,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xcd
+ subwf br13,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xce
+ subwf br14,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0xcf
+ subwf br15,W
+ btfss STATUS,Z
+ goto lerr
+
+
+ nop
+ nop
+ nop
+ nop
+ movlw 0x01
+ movwf PORTA
+ nop
+ nop
+ nop
+ nop
+good ; Loop in good on success
+ goto good
+ nop
+ nop
+ nop
+ nop
+
+lerr
+ movlw 0xff
+ movwf PORTA
+
+ nop
+ nop
+ nop
+ nop
+lerr_loop ; Loop in lerr on failure
+ goto lerr_loop
+ nop
+ nop
+ nop
+ nop
+
+ END
+
Index: trunk/scode/sanity1.asm
===================================================================
--- trunk/scode/sanity1.asm (nonexistent)
+++ trunk/scode/sanity1.asm (revision 3)
@@ -0,0 +1,250 @@
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Mini-RISC-1 ////
+;//// Compliance Test 1 ////
+;//// Tests Ports ////
+;//// ////
+;//// Author: Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Copyright (C) 2000 Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;//// This source file may be used and distributed without ////
+;//// restriction provided that this copyright statement is not ////
+;//// removed from the file and that any derivative work contains ////
+;//// the original copyright notice and the associated disclaimer.////
+;//// ////
+;//// THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY ////
+;//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT ////
+;//// LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND ////
+;//// FITNESS FOR A PARTICULAR PURPOSE. ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+
+ list p=16c57
+ #include p16c5x.inc
+
+
+main ; Main code entry
+ ; Port IO Test
+ ; All ports have a Pull up resistor
+
+ ; Tristate all ports
+ clrw
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+ xorlw 0xff
+ tris PORTA
+ tris PORTB
+ tris PORTC
+
+ ; Now check that porta is 0xff
+ btfss PORTA,0
+ goto lerr
+ btfss PORTA,1
+ goto lerr
+ btfss PORTA,2
+ goto lerr
+ btfss PORTA,3
+ goto lerr
+ btfss PORTA,4
+ goto lerr
+ btfss PORTA,5
+ goto lerr
+ btfss PORTA,6
+ goto lerr
+ btfss PORTA,7
+ goto lerr
+
+
+ ; Now check that portb is 0xff
+ btfss PORTB,0
+ goto lerr
+ btfss PORTB,1
+ goto lerr
+ btfss PORTB,2
+ goto lerr
+ btfss PORTB,3
+ goto lerr
+ btfss PORTB,4
+ goto lerr
+ btfss PORTB,5
+ goto lerr
+ btfss PORTB,6
+ goto lerr
+ btfss PORTB,7
+ goto lerr
+
+ ; Now check that portc is 0xff
+ btfss PORTC,0
+ goto lerr
+ btfss PORTC,1
+ goto lerr
+ btfss PORTC,2
+ goto lerr
+ btfss PORTC,3
+ goto lerr
+ btfss PORTC,4
+ goto lerr
+ btfss PORTC,5
+ goto lerr
+ btfss PORTA,6
+ goto lerr
+ btfss PORTC,7
+ goto lerr
+
+
+
+ ; Enable all ports
+ clrw
+ tris PORTA
+ tris PORTB
+ tris PORTC
+
+ ; Drive them all 0xaa
+ clrw
+ xorlw 0xaa
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+
+ ; Now check that porta is 0xaa
+ btfsc PORTA,0
+ goto lerr
+ btfss PORTA,1
+ goto lerr
+ btfsc PORTA,2
+ goto lerr
+ btfss PORTA,3
+ goto lerr
+ btfsc PORTA,4
+ goto lerr
+ btfss PORTA,5
+ goto lerr
+ btfsc PORTA,6
+ goto lerr
+ btfss PORTA,7
+ goto lerr
+
+ ; Now check that portb is 0xaa
+ btfsc PORTB,0
+ goto lerr
+ btfss PORTB,1
+ goto lerr
+ btfsc PORTB,2
+ goto lerr
+ btfss PORTB,3
+ goto lerr
+ btfsc PORTB,4
+ goto lerr
+ btfss PORTB,5
+ goto lerr
+ btfsc PORTB,6
+ goto lerr
+ btfss PORTB,7
+ goto lerr
+
+ ; Now check that portc is 0xaa
+ btfsc PORTC,0
+ goto lerr
+ btfss PORTC,1
+ goto lerr
+ btfsc PORTC,2
+ goto lerr
+ btfss PORTC,3
+ goto lerr
+ btfsc PORTC,4
+ goto lerr
+ btfss PORTC,5
+ goto lerr
+ btfsc PORTC,6
+ goto lerr
+ btfss PORTC,7
+ goto lerr
+
+ ; Drive them all 0x55
+ clrw
+ xorlw 0x55
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+
+ ; Now check that porta is 0x55
+ btfss PORTA,0
+ goto lerr
+ btfsc PORTA,1
+ goto lerr
+ btfss PORTA,2
+ goto lerr
+ btfsc PORTA,3
+ goto lerr
+ btfss PORTA,4
+ goto lerr
+ btfsc PORTA,5
+ goto lerr
+ btfss PORTA,6
+ goto lerr
+ btfsc PORTA,7
+ goto lerr
+
+ ; Now check that portb is 0x55
+ btfss PORTB,0
+ goto lerr
+ btfsc PORTB,1
+ goto lerr
+ btfss PORTB,2
+ goto lerr
+ btfsc PORTB,3
+ goto lerr
+ btfss PORTB,4
+ goto lerr
+ btfsc PORTB,5
+ goto lerr
+ btfss PORTB,6
+ goto lerr
+ btfsc PORTB,7
+ goto lerr
+
+ ; Now check that portc is 0x55
+ btfss PORTC,0
+ goto lerr
+ btfsc PORTC,1
+ goto lerr
+ btfss PORTC,2
+ goto lerr
+ btfsc PORTC,3
+ goto lerr
+ btfss PORTC,4
+ goto lerr
+ btfsc PORTC,5
+ goto lerr
+ btfss PORTC,6
+ goto lerr
+ btfsc PORTC,7
+ goto lerr
+
+ nop
+ nop
+ nop
+ nop
+
+good ; Loop in good on success
+ goto good
+ nop
+ nop
+ nop
+ nop
+
+lerr ; Loop in lerr on failure
+ goto lerr
+ nop
+ nop
+ nop
+ nop
+
+ END
+
Index: trunk/scode/rf2.asm
===================================================================
--- trunk/scode/rf2.asm (nonexistent)
+++ trunk/scode/rf2.asm (revision 3)
@@ -0,0 +1,827 @@
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Mini-RISC-1 ////
+;//// Register File Test 2 ////
+;//// Tests Register File ////
+;//// ////
+;//// Author: Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Copyright (C) 2000 Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;//// This source file may be used and distributed without ////
+;//// restriction provided that this copyright statement is not ////
+;//// removed from the file and that any derivative work contains ////
+;//// the original copyright notice and the associated disclaimer.////
+;//// ////
+;//// THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY ////
+;//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT ////
+;//// LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND ////
+;//// FITNESS FOR A PARTICULAR PURPOSE. ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+
+ list p=16c57
+ #include p16c5x.inc
+
+; global Registers
+r0 equ 0x8
+r1 equ 0x9
+r2 equ 0xa
+r3 equ 0xb
+r4 equ 0xc
+r5 equ 0xd
+r6 equ 0xe
+r7 equ 0xf
+
+; banked Registers
+br0 equ 0x10
+br1 equ 0x11
+br2 equ 0x12
+br3 equ 0x13
+br4 equ 0x14
+br5 equ 0x15
+br6 equ 0x16
+br7 equ 0x17
+br8 equ 0x18
+br9 equ 0x19
+br10 equ 0x1a
+br11 equ 0x1b
+br12 equ 0x1c
+br13 equ 0x1d
+br14 equ 0x1e
+br15 equ 0x1f
+
+
+; PORTB Indicates Test Number
+; PORTA Indicates Status: 0 - Running; 1 - done OK; ff - stoped on error
+
+main ; Main code entry
+ ; Port IO Test
+ ; All ports have a Pull up resistor
+
+ ; SETUP all ports
+ clrw
+ movwf FSR
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+ tris PORTA
+ tris PORTB
+ tris PORTC
+
+ bsf STATUS,5
+
+ ; ---------------------------------------
+ ; ---- Test the entire register file ----
+ ; ---------------------------------------
+
+ movlw 0x81
+ movwf r0
+ movlw 0x82
+ movwf r1
+ movlw 0x83
+ movwf r2
+ movlw 0x84
+ movwf r3
+ movlw 0x85
+ movwf r4
+ movlw 0x86
+ movwf r5
+ movlw 0x87
+ movwf r6
+ movlw 0x88
+ movwf r7
+
+
+ movlw 0x90
+ movwf br0
+ movlw 0x91
+ movwf br1
+ movlw 0x92
+ movwf br2
+ movlw 0x93
+ movwf br3
+ movlw 0x94
+ movwf br4
+ movlw 0x95
+ movwf br5
+ movlw 0x96
+ movwf br6
+ movlw 0x97
+ movwf br7
+ movlw 0x98
+ movwf br8
+ movlw 0x99
+ movwf br9
+ movlw 0x9a
+ movwf br10
+ movlw 0x9b
+ movwf br11
+ movlw 0x9c
+ movwf br12
+ movlw 0x9d
+ movwf br13
+ movlw 0x9e
+ movwf br14
+ movlw 0x9f
+ movwf br15
+
+ bsf FSR,5 ; Select Register Bank 01
+
+ movlw 0xa0
+ movwf br0
+ movlw 0xa1
+ movwf br1
+ movlw 0xa2
+ movwf br2
+ movlw 0xa3
+ movwf br3
+ movlw 0xa4
+ movwf br4
+ movlw 0xa5
+ movwf br5
+ movlw 0xa6
+ movwf br6
+ movlw 0xa7
+ movwf br7
+ movlw 0xa8
+ movwf br8
+ movlw 0xa9
+ movwf br9
+ movlw 0xaa
+ movwf br10
+ movlw 0xab
+ movwf br11
+ movlw 0xac
+ movwf br12
+ movlw 0xad
+ movwf br13
+ movlw 0xae
+ movwf br14
+ movlw 0xaf
+ movwf br15
+
+ bcf FSR,5 ; Select Register Bank 10
+ bsf FSR,6
+
+ movlw 0xb0
+ movwf br0
+ movlw 0xb1
+ movwf br1
+ movlw 0xb2
+ movwf br2
+ movlw 0xb3
+ movwf br3
+ movlw 0xb4
+ movwf br4
+ movlw 0xb5
+ movwf br5
+ movlw 0xb6
+ movwf br6
+ movlw 0xb7
+ movwf br7
+ movlw 0xb8
+ movwf br8
+ movlw 0xb9
+ movwf br9
+ movlw 0xba
+ movwf br10
+ movlw 0xbb
+ movwf br11
+ movlw 0xbc
+ movwf br12
+ movlw 0xbd
+ movwf br13
+ movlw 0xbe
+ movwf br14
+ movlw 0xbf
+ movwf br15
+
+ bsf FSR,5 ; Select Register Bank 11
+ bsf FSR,6
+
+ movlw 0xc0
+ movwf br0
+ movlw 0xc1
+ movwf br1
+ movlw 0xc2
+ movwf br2
+ movlw 0xc3
+ movwf br3
+ movlw 0xc4
+ movwf br4
+ movlw 0xc5
+ movwf br5
+ movlw 0xc6
+ movwf br6
+ movlw 0xc7
+ movwf br7
+ movlw 0xc8
+ movwf br8
+ movlw 0xc9
+ movwf br9
+ movlw 0xca
+ movwf br10
+ movlw 0xcb
+ movwf br11
+ movlw 0xcc
+ movwf br12
+ movlw 0xcd
+ movwf br13
+ movlw 0xce
+ movwf br14
+ movlw 0xcf
+ movwf br15
+
+ movlw r0
+ movwf FSR
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+
+
+ movlw br0
+ movwf FSR
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+
+ movlw br0
+ movwf FSR
+ bsf FSR,5
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+
+ movlw br0
+ movwf FSR
+ bsf FSR,6
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+
+ movlw br0
+ movwf FSR
+ bsf FSR,5
+ bsf FSR,6
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+ comf INDF,F
+ incf FSR,F
+
+ ; Register File TEST 1
+ movlw 0x01
+ movwf PORTB ; Set Test Number
+
+ movlw r0
+ movwf FSR
+ movlw 0x7e
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x7d
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x7c
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x7b
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x7a
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x79
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x78
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x77
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+
+ movlw br0
+ movwf FSR
+ movlw 0x6f
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x6e
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x6d
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x6c
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x6b
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x6a
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x69
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x68
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x67
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x66
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x65
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x64
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x63
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x62
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x61
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x60
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+
+ ; Register File TEST 2
+ movlw 0x02
+ movwf PORTB ; Set Test Number
+
+ movlw br0
+ movwf FSR
+ bsf FSR,5
+ movlw 0x5f
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x5e
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x5d
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x5c
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x5b
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x5a
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x59
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x58
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x57
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x56
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x55
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x54
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x53
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x52
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x51
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x50
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+
+ ; Register File TEST 3
+ movlw 0x03
+ movwf PORTB ; Set Test Number
+
+ movlw br0
+ movwf FSR
+ bsf FSR,6
+ movlw 0x4f
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x4e
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x4d
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x4c
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x4b
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x4a
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x49
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x48
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x47
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x46
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x45
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x44
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x43
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x42
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x41
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x40
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+
+ ; Register File TEST 4
+ movlw 0x04
+ movwf PORTB ; Set Test Number
+
+ movlw br0
+ movwf FSR
+ bsf FSR,5
+ bsf FSR,6
+ movlw 0x3f
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x3e
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x3d
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x3c
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x3b
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x3a
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x39
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x38
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x37
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x36
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x35
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x34
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x33
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x32
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x31
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+ movlw 0x30
+ incf FSR,F
+ subwf INDF,W
+ btfss STATUS,Z
+ goto lerr
+
+ nop
+ nop
+ nop
+ nop
+ movlw 0x01
+ movwf PORTA
+ nop
+ nop
+ nop
+ nop
+good ; Loop in good on success
+ goto good
+ nop
+ nop
+ nop
+ nop
+
+lerr
+ movlw 0xff
+ movwf PORTA
+
+ nop
+ nop
+ nop
+ nop
+lerr_loop ; Loop in lerr on failure
+ goto lerr_loop
+ nop
+ nop
+ nop
+ nop
+
+ END
+
Index: trunk/scode/sanity2.asm
===================================================================
--- trunk/scode/sanity2.asm (nonexistent)
+++ trunk/scode/sanity2.asm (revision 3)
@@ -0,0 +1,454 @@
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Mini-RISC-1 ////
+;//// Compliance Test 2 ////
+;//// Tests PLC register Rd/Wr ////
+;//// ////
+;//// Author: Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Copyright (C) 2000 Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;//// This source file may be used and distributed without ////
+;//// restriction provided that this copyright statement is not ////
+;//// removed from the file and that any derivative work contains ////
+;//// the original copyright notice and the associated disclaimer.////
+;//// ////
+;//// THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY ////
+;//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT ////
+;//// LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND ////
+;//// FITNESS FOR A PARTICULAR PURPOSE. ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+
+ list p=16c57
+ #include p16c5x.inc
+
+; global Registers
+r0 equ 0x8
+r1 equ 0x9
+r2 equ 0xa
+r3 equ 0xb
+r4 equ 0xc
+r5 equ 0xd
+r6 equ 0xe
+r7 equ 0xf
+
+; banked Registers
+br0 equ 0x10
+br1 equ 0x11
+br2 equ 0x12
+br3 equ 0x13
+br4 equ 0x14
+br5 equ 0x15
+br6 equ 0x16
+br7 equ 0x17
+br8 equ 0x18
+br9 equ 0x19
+br10 equ 0x1a
+br11 equ 0x1b
+br12 equ 0x1c
+br13 equ 0x1d
+br14 equ 0x1e
+br15 equ 0x1f
+
+
+; PORTB Indicates Test Number
+; PORTA Indicates Status: 0 - Running; 1 - done OK; ff - stoped on error
+
+main ; Main code entry
+ ; Port IO Test
+ ; All ports have a Pull up resistor
+
+ ; SETUP all ports
+ clrw
+ movwf FSR
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+ tris PORTA
+ tris PORTB
+ tris PORTC
+
+ ; -------------------------------
+ ; ---- Test the PLC register ----
+ ; -------------------------------
+
+ ; PLC read test 1 TEST 0
+
+ movlw pclrd1
+ movwf r0
+ movf PCL,W
+pclrd1 subwf r0,W
+ btfss STATUS,Z
+ goto lerr
+
+ ; PLC read test 2 TEST 1
+ movlw 0x01
+ movwf PORTB ; Set Test Number
+
+ movlw pclrd2
+ movwf r3
+ movf PCL,W
+pclrd2 subwf r3,W
+ btfss STATUS,Z
+ goto lerr
+
+ ; PLC write test 2 TEST 2
+ movlw 0x02
+ movwf PORTB ; Set Test Number
+
+ movlw pclwr1
+ movwf PCL
+
+ goto lerr
+ goto lerr
+ goto lerr
+pclwr1 goto pcl1
+ goto lerr
+ goto lerr
+ goto lerr
+
+pcl1
+ ; PLC write test 2 TEST 3
+ movlw 0x03
+ movwf PORTB ; Set Test Number
+
+ movlw pclwr2
+ movwf PCL
+
+ goto lerr
+ goto lerr
+ goto lerr
+pclwr2 goto pcl2
+ goto lerr
+ goto lerr
+ goto lerr
+
+pcl2 ; Test other instructions that modify PC
+ ; This are ADDWF PC, BSF PC,X and BCF PC,X
+ ; (movwf pc already tested above)
+
+ ; PLC write test 3 TEST 4
+ ; test addwf PC
+ movlw 0x04
+ movwf PORTB ; Set Test Number
+
+ movlw pcl3b
+ movwf r0
+ movlw pcl3a
+ subwf r0,W
+pcl3a addwf PCL,1
+
+ goto lerr
+ goto lerr
+pcl3b goto lerr
+ goto pcl3c
+ goto lerr
+ goto lerr
+ goto lerr
+pcl3c
+
+ ; PLC write test 4 TEST 5
+ ; test addwf PC
+ movlw 0x05
+ movwf PORTB ; Set Test Number
+
+ movlw pcl4b
+ movwf br8
+ movlw pcl4a
+ subwf br8,W
+pcl4a addwf PCL,1
+
+ goto lerr
+ goto lerr
+pcl4b goto lerr
+ goto pcl4c
+ goto lerr
+ goto lerr
+ goto lerr
+pcl4c
+
+ ; PLC write test 5 TEST 6
+ ; test bsf PC,N
+ movlw 0x06
+ movwf PORTB ; Set Test N
+
+; allign memory
+ goto pcl50
+
+pcl50 org 0x60
+
+ bsf PCL,1 ; 60
+ goto lerr ; 61
+ goto lerr ; 62
+ goto pcl5a ; 63
+ goto lerr ; 64
+ goto lerr ; 65
+ goto lerr ; 66
+ goto lerr ; 67
+
+pcl5a
+
+ ; PLC write test 6 TEST 7
+ ; test bsf PC,N
+ movlw 0x07
+ movwf PORTB ; Set Test N
+
+ bsf PCL,2 ; 6A
+ goto lerr ; 6B
+ goto lerr ; 6C
+ goto lerr ; 6D
+ goto lerr ; 6E
+ goto pcl6a ; 6F
+ goto lerr ; 70
+ goto lerr ; 71
+
+pcl6a
+
+ ; PLC write test 7 TEST 8
+ ; test bcf PC,N
+ movlw 0x08
+ movwf PORTB ; Set Test N
+
+ goto pcl7a ; 74
+ goto lerr ; 75
+ goto lerr ; 76
+ goto lerr ; 77
+ goto lerr ; 78
+ goto pcl7b ; 79
+ goto lerr ; 7a
+ goto lerr ; 7b
+
+pcl7a
+ bcf PCL,2 ; 7c
+
+pcl7b
+
+
+ ; Make sure goto works
+ movlw 0x09 ; TEST 9
+ movwf PORTB ; Set Test Number
+
+
+ goto gt1
+ nop
+ nop
+ nop
+ nop
+ movlw 0xff
+ movwf PORTA
+ nop
+ nop
+ nop
+ nop
+gt1
+
+ ; Make sure call works
+ movlw 0x0a ; TEST 10
+ movwf PORTB ; Set Test Number
+
+ call cal1
+ movwf r0
+ movlw 0x55
+ subwf r0,w
+ btfss STATUS,Z
+ goto lerr
+
+ call cal2
+ movwf r0
+ movlw 0xaa
+ subwf r0,w
+ btfss STATUS,Z
+ goto lerr
+
+ call cal3
+ movwf r0
+ movlw 0xc3
+ subwf r0,w
+ btfss STATUS,Z
+ goto lerr
+
+ call cal4
+ movwf r0
+ movlw 0x3c
+ subwf r0,w
+ btfss STATUS,Z
+ goto lerr
+
+ goto next1
+
+cal1
+ retlw 0x55
+ goto lerr
+
+cal2
+ nop
+ retlw 0xaa
+ goto lerr
+
+cal3
+ nop
+ nop
+ retlw 0xc3
+ goto lerr
+
+cal4
+ nop
+ nop
+ nop
+ retlw 0x3c
+ goto lerr
+
+table1
+ addwf PCL,F
+ retlw 0xff
+ retlw 0xfe
+ retlw 0xfd
+ retlw 0xfc
+ retlw 0xfb
+ retlw 0xfa
+ retlw 0xf9
+ retlw 0xf8
+ retlw 0xf7
+ retlw 0xf6
+ retlw 0xf5
+ goto lerr
+ goto lerr
+ goto lerr
+ goto lerr
+ goto lerr
+ goto lerr
+
+next1
+
+
+ ; Make sure call works (2)
+ movlw 0x0b ; TEST 11
+ movwf PORTB ; Set Test Number
+
+ movlw 0x0
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x1
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x2
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x3
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x4
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x5
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x6
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x7
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x8
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x9
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0xa
+ movwf r0
+ call table1
+ comf r0,F
+ subwf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ nop
+ nop
+ nop
+ nop
+ movlw 0x01
+ movwf PORTA
+ nop
+ nop
+ nop
+ nop
+good ; Loop in good on success
+ goto good
+ nop
+ nop
+ nop
+ nop
+
+lerr
+ movlw 0xff
+ movwf PORTA
+
+ nop
+ nop
+ nop
+ nop
+lerr_loop ; Loop in lerr on failure
+ goto lerr_loop
+ nop
+ nop
+ nop
+ nop
+
+ END
+
Index: trunk/scode/rf3.asm
===================================================================
--- trunk/scode/rf3.asm (nonexistent)
+++ trunk/scode/rf3.asm (revision 3)
@@ -0,0 +1,338 @@
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Mini-RISC-1 ////
+;//// Register File Test 3 ////
+;//// Tests Register File ////
+;//// ////
+;//// Author: Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+;//// ////
+;//// Copyright (C) 2000 Rudolf Usselmann ////
+;//// russelmann@hotmail.com ////
+;//// ////
+;//// This source file may be used and distributed without ////
+;//// restriction provided that this copyright statement is not ////
+;//// removed from the file and that any derivative work contains ////
+;//// the original copyright notice and the associated disclaimer.////
+;//// ////
+;//// THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY ////
+;//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT ////
+;//// LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND ////
+;//// FITNESS FOR A PARTICULAR PURPOSE. ////
+;//// ////
+;/////////////////////////////////////////////////////////////////////
+
+ list p=16c57
+ #include p16c5x.inc
+
+; global Registers
+r0 equ 0x8
+r1 equ 0x9
+r2 equ 0xa
+r3 equ 0xb
+r4 equ 0xc
+r5 equ 0xd
+r6 equ 0xe
+r7 equ 0xf
+
+; banked Registers
+br0 equ 0x10
+br1 equ 0x11
+br2 equ 0x12
+br3 equ 0x13
+br4 equ 0x14
+br5 equ 0x15
+br6 equ 0x16
+br7 equ 0x17
+br8 equ 0x18
+br9 equ 0x19
+br10 equ 0x1a
+br11 equ 0x1b
+br12 equ 0x1c
+br13 equ 0x1d
+br14 equ 0x1e
+br15 equ 0x1f
+
+
+; PORTB Indicates Test Number
+; PORTA Indicates Status: 0 - Running; 1 - done OK; ff - stoped on error
+
+main ; Main code entry
+ ; Port IO Test
+ ; All ports have a Pull up resistor
+
+ ; SETUP all ports
+ clrw
+ movwf FSR
+ movwf PORTA
+ movwf PORTB
+ movwf PORTC
+ tris PORTA
+ tris PORTB
+ tris PORTC
+
+ ; ---------------------------------------
+ ; ---- Test RMW on Register fil ----
+ ; ---------------------------------------
+
+ movlw 0x01 ; TEST 1
+ movwf PORTB ; Set Test Number
+
+ movlw 0xfc
+ movwf r0
+ incf r0,F
+ incf r0,F
+ incf r0,F
+ incf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0xfc
+ movwf br8
+ incf br8,F
+ incf br8,F
+ incf br8,F
+ incf br8,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x02 ; TEST 2
+ movwf PORTB ; Set Test Number
+
+ movlw r1
+ movwf FSR
+ movlw 0xfc
+ movwf INDF
+ incf INDF,F
+ incf INDF,F
+ incf INDF,F
+ incf INDF,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw br9
+ movwf FSR
+ movlw 0xfc
+ movwf INDF
+ incf INDF,F
+ incf INDF,F
+ incf INDF,F
+ incf INDF,F
+ btfss STATUS,Z
+ goto lerr
+
+
+
+ movlw 0x03 ; TEST 3
+ movwf PORTB ; Set Test Number
+
+ movlw 0x04
+ movwf r0
+ decf r0,F
+ decf r0,F
+ decf r0,F
+ decf r0,F
+ btfss STATUS,Z
+ goto lerr
+
+
+ movlw 0x04
+ movwf br0
+ decf br0,F
+ decf br0,F
+ decf br0,F
+ decf br0,F
+ btfss STATUS,Z
+ goto lerr
+
+
+ movlw 0x04 ; TEST 4
+ movwf PORTB ; Set Test Number
+
+ movlw r1
+ movwf FSR
+ movlw 0x04
+ movwf INDF
+ decf INDF,F
+ decf INDF,F
+ decf INDF,F
+ decf INDF,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw br9
+ movwf FSR
+ movlw 0x04
+ movwf INDF
+ decf INDF,F
+ decf INDF,F
+ decf INDF,F
+ decf INDF,F
+ btfss STATUS,Z
+ goto lerr
+
+
+ movlw 0x05 ; TEST 5
+ movwf PORTB ; Set Test Number
+
+ movlw 0xfc
+ movwf r4
+ incfsz r4,F
+ incfsz r4,F
+ incfsz r4,F
+ incfsz r4,F
+ goto lerr
+
+ movlw 0xfc
+ movwf br8
+ incfsz br8,F
+ incfsz br8,F
+ incfsz br8,F
+ incfsz br8,F
+ goto lerr
+
+
+ movlw 0x06 ; TEST 6
+ movwf PORTB ; Set Test Number
+
+ movlw r1
+ movwf FSR
+ movlw 0xfc
+ movwf INDF
+ incfsz INDF,F
+ incfsz INDF,F
+ incfsz INDF,F
+ incfsz INDF,F
+ goto lerr
+
+ movlw br9
+ movwf FSR
+ movlw 0xfc
+ movwf INDF
+ incfsz INDF,F
+ incfsz INDF,F
+ incfsz INDF,F
+ incfsz INDF,F
+ goto lerr
+
+ movlw 0x07 ; TEST 7
+ movwf PORTB ; Set Test Number
+
+ movlw 0x04
+ movwf r0
+ decfsz r0,F
+ decfsz r0,F
+ decfsz r0,F
+ decfsz r0,F
+ goto lerr
+
+
+ movlw 0x04
+ movwf br0
+ decfsz br0,F
+ decfsz br0,F
+ decfsz br0,F
+ decfsz br0,F
+ goto lerr
+
+
+ movlw 0x08 ; TEST 8
+ movwf PORTB ; Set Test Number
+
+ movlw r1
+ movwf FSR
+ movlw 0x04
+ movwf INDF
+ decfsz INDF,F
+ decfsz INDF,F
+ decfsz INDF,F
+ decfsz INDF,F
+ goto lerr
+
+ movlw br9
+ movwf FSR
+ movlw 0x04
+ movwf INDF
+ decfsz INDF,F
+ decfsz INDF,F
+ decfsz INDF,F
+ decfsz INDF,F
+ goto lerr
+
+
+ movlw 0x09 ; TEST 9
+ movwf PORTB ; Set Test Number
+
+ movlw 0xfc
+ movwf FSR
+ incf FSR,F
+ incf FSR,F
+ incf FSR,F
+ incf FSR,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x04
+ movwf FSR
+ movlw 0x7f
+ decf FSR,F
+ decf FSR,F
+ decf FSR,F
+ decf FSR,F
+ andwf FSR,F
+ btfss STATUS,Z
+ goto lerr
+
+ movlw 0x0a ; TEST 10
+ movwf PORTB ; Set Test Number
+
+ movlw 0xfc
+ movwf STATUS
+ movlw 0x18
+ incf STATUS,F
+ incf STATUS,F
+ incf STATUS,F
+ incf STATUS,F
+ subwf STATUS,W
+ btfss STATUS,Z
+ goto lerr
+
+
+
+
+ nop
+ nop
+ nop
+ nop
+ movlw 0x01
+ movwf PORTA
+ nop
+ nop
+ nop
+ nop
+good ; Loop in good on success
+ goto good
+ nop
+ nop
+ nop
+ nop
+
+lerr
+ movlw 0xff
+ movwf PORTA
+
+ nop
+ nop
+ nop
+ nop
+lerr_loop ; Loop in lerr on failure
+ goto lerr_loop
+ nop
+ nop
+ nop
+ nop
+
+ END
+
Index: trunk/scode/tmr_wdt.rom
===================================================================
--- trunk/scode/tmr_wdt.rom (nonexistent)
+++ trunk/scode/tmr_wdt.rom (revision 3)
@@ -0,0 +1,63 @@
+
+@000 040
+@001 024
+@002 025
+@003 026
+@004 027
+@005 005
+@006 006
+@007 007
+@008 C01
+@009 026
+@00A C00
+@00B 002
+@00C 021
+@00D 004
+@00E 000
+@00F 000
+@010 000
+@011 000
+@012 040
+@013 029
+@014 040
+@015 028
+@016 201
+@017 2E8
+@018 A16
+@019 2E9
+@01A A14
+@01B 000
+@01C 000
+@01D 000
+@01E 000
+@01F 000
+@020 000
+@021 040
+@022 021
+@023 004
+@024 000
+@025 000
+@026 000
+@027 000
+@028 C01
+@029 025
+@02A 000
+@02B 000
+@02C 000
+@02D 000
+@02E A2E
+@02F 000
+@030 000
+@031 000
+@032 000
+@033 CFF
+@034 025
+@035 000
+@036 000
+@037 000
+@038 000
+@039 A39
+@03A 000
+@03B 000
+@03C 000
+@03D 000
Index: trunk/scode/hex2v.c
===================================================================
--- trunk/scode/hex2v.c (nonexistent)
+++ trunk/scode/hex2v.c (revision 3)
@@ -0,0 +1,125 @@
+/* ***********************************************************************
+ The Free IP Project
+ Free-RISC8 -- Verilog 8-bit Microcontroller
+ (c) 1999, The Free IP Project and Thomas Coonan
+
+
+ FREE IP GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR USE, COPYING, DISTRIBUTION, AND MODIFICATION
+
+ 1. You may copy and distribute verbatim copies of this core, as long
+ as this file, and the other associated files, remain intact and
+ unmodified. Modifications are outlined below.
+ 2. You may use this core in any way, be it academic, commercial, or
+ military. Modified or not.
+ 3. Distribution of this core must be free of charge. Charging is
+ allowed only for value added services. Value added services
+ would include copying fees, modifications, customizations, and
+ inclusion in other products.
+ 4. If a modified source code is distributed, the original unmodified
+ source code must also be included (or a link to the Free IP web
+ site). In the modified source code there must be clear
+ identification of the modified version.
+ 5. Visit the Free IP web site for additional information.
+ http://www.free-ip.com
+
+*********************************************************************** */
+
+// Intel HEX to Verilog converter.
+//
+// Usage:
+// hex2v
+//
+// You probably want to simply redirect the output into a file.
+//
+#include
+#include
+#include
+
+// Input and Output file streams.
+FILE *fpi;
+
+// Well.. Let's read stuff in completely before outputting.. Programs
+// should be pretty small..
+//
+#define MAX_MEMORY_SIZE 2048
+struct {
+ unsigned int nAddress;
+ unsigned int byData;
+} Memory[MAX_MEMORY_SIZE];
+
+char szLine[80];
+unsigned int start_address, address, ndata_bytes, ndata_words;
+unsigned int data;
+unsigned int nMemoryCount;
+
+int main (int argc, char *argv[])
+{
+ int i;
+
+ if (argc != 2) {
+ printf ("\nThe Synthetic PIC --- Intel HEX File to Verilog memory file");
+ printf ("\nUsage: hex2verilog ");
+ printf ("\n");
+ return 0;
+ }
+
+
+ // Open input HEX file
+ fpi=fopen(argv[1], "r");
+ if (!fpi) {
+ printf("\nCan't open input file %s.\n", argv[1]);
+ return 1;
+ }
+
+ // Read in the HEX file
+ //
+ // !! Note, that things are a little strange for us, because the PIC is
+ // a 12-bit instruction, addresses are 16-bit, and the hex format is
+ // 8-bit oriented!!
+ //
+ nMemoryCount = 0;
+ while (!feof(fpi)) {
+ // Get one Intel HEX line
+ fgets (szLine, 80, fpi);
+ if (strlen(szLine) >= 10) {
+ // This is the PIC, with its 12-bit "words". We're interested in these
+ // words and not the bytes. Read 4 hex digits at a time for each
+ // address.
+ //
+ sscanf (&szLine[1], "%2x%4x", &ndata_bytes, &start_address);
+ if (start_address >= 0 && start_address <= 20000 && ndata_bytes > 0) {
+ // Suck up data bytes starting at 9th byte.
+ i = 9;
+
+ // Words.. not bytes..
+ ndata_words = ndata_bytes/2;
+ start_address = start_address/2;
+
+ // Spit out all the data that is supposed to be on this line.
+ for (address = start_address; address < start_address + ndata_words; address++) {
+ // Scan out 4 hex digits for a word. This will be one address.
+ sscanf (&szLine[i], "%04x", &data);
+
+ // Need to swap bytes...
+ data = ((data >> 8) & 0x00ff) | ((data << 8) & 0xff00);
+ i += 4;
+
+ // Store in our memory buffer
+ Memory[nMemoryCount].nAddress = address;
+ Memory[nMemoryCount].byData = data;
+ nMemoryCount++;
+ }
+ }
+ }
+ }
+ fclose (fpi);
+
+ // Now output the Verilog $readmemh format!
+ //
+ for (i = 0; i < nMemoryCount; i++) {
+ printf ("\n@%03X %03X", Memory[i].nAddress, Memory[i].byData);
+ }
+ printf ("\n");
+
+}