Annotation of hatari/tests/buserror/buserr_b.s, revision 1.1.1.1

1.1       root        1: ; Bus error tester - byte access
                      2: ; (assemble with TurboAss)
                      3: 
                      4: startaddr       EQU $FF8000
                      5: endaddr         EQU $FFFFFF
                      6: 
                      7: 
                      8:                 movea.l 4(SP),A5
                      9:                 move.l  $0C(A5),D0
                     10:                 add.l   $14(SP),D0
                     11:                 add.l   $1C(SP),D0
                     12:                 add.l   #$0800,D0
                     13: 
                     14:                 move.l  D0,D1
                     15:                 add.l   A5,D1
                     16:                 and.l   #-2,D1
                     17: 
                     18:                 movea.l D1,SP
                     19:                 move.l  D0,-(SP)
                     20:                 move.l  A5,-(SP)
                     21:                 clr.w   -(SP)
                     22:                 move.w  #$4A,-(SP)
                     23:                 trap    #1              ; Mshrink
                     24:                 lea     12(SP),SP
                     25: 
                     26:                 clr.l   -(SP)
                     27:                 move.w  #$20,-(SP)
                     28:                 trap    #1              ; Super
                     29:                 addq.l  #6,SP
                     30:                 move.w  D0,old_ssp
                     31: 
                     32:                 clr.w   -(SP)
                     33:                 pea     filename
                     34:                 move.w  #$3C,-(SP)
                     35:                 trap    #1              ; Fcreate
                     36:                 addq.l  #8,SP
                     37:                 move.w  D0,fhndl
                     38: 
                     39:                 pea     welcometxt
                     40:                 move.l  #welcometxtend-welcometxt-1,-(SP)
                     41:                 move.w  D0,-(SP)
                     42:                 move.w  #$40,-(SP)
                     43:                 trap    #1              ; Fwrite(welcometxt)
                     44:                 lea     12(SP),SP
                     45: 
                     46:                 move.l  $08,oldbushandler
                     47:                 move.l  #buserrcatch,$08
                     48: 
                     49:                 movea.l #startaddr,A5
                     50: 
                     51: loop:
                     52:                 movea.l SP,A6
                     53: 
                     54:                 move.b  (A5),D0         ; *** Try to generate a bus error ***
                     55: 
                     56:                 tst.w   be_region
                     57:                 beq.s   cont
                     58:                 lea     hex_buf+10,A0
                     59:                 bsr     write_hex
                     60:                 clr.w   be_region
                     61: 
                     62:                 pea     hex_buf
                     63:                 move.l  #19,-(SP)
                     64:                 move.w  fhndl,-(SP)
                     65:                 move.w  #$40,-(SP)
                     66:                 trap    #1              ; Fwrite
                     67:                 lea     12(SP),SP
                     68: 
                     69: cont:
                     70:                 addq.l  #1,A5
                     71:                 cmpa.l  #endaddr,A5
                     72:                 bne.s   loop
                     73: 
                     74:                 tst.w   be_region
                     75:                 beq.s   nofinalwrite
                     76:                 lea     hex_buf+10,A0
                     77:                 bsr     write_hex
                     78:                 pea     hex_buf
                     79:                 move.l  #19,-(SP)
                     80:                 move.w  fhndl,-(SP)
                     81:                 move.w  #$40,-(SP)
                     82:                 trap    #1              ; Fwrite
                     83:                 lea     12(SP),SP
                     84: 
                     85: nofinalwrite:
                     86:                 move.l  oldbushandler,$08
                     87: 
                     88:                 pea     eoftxt
                     89:                 move.l  #8,-(SP)
                     90:                 move.w  fhndl,-(SP)
                     91:                 move.w  #$40,-(SP)
                     92:                 trap    #1              ; Fwrite(eoftxt)
                     93:                 lea     12(SP),SP
                     94: 
                     95: 
                     96:                 move.w  fhndl,-(SP)
                     97:                 move.w  #$3E,-(SP)
                     98:                 trap    #1              ; Fclose
                     99:                 addq.l  #4,SP
                    100: 
                    101:                 move.l  old_ssp,-(SP)
                    102:                 move.w  #$20,-(SP)
                    103:                 trap    #1              ; Super
                    104:                 addq.l  #6,SP
                    105: 
                    106:                 clr.w   -(SP)
                    107:                 trap    #1              ; Pterm0
                    108: 
                    109: 
                    110: buserrcatch:
                    111:                 movea.l A6,SP
                    112:                 tst.w   be_region
                    113:                 bne     cont
                    114:                 move.w  #-1,be_region
                    115:                 lea     hex_buf,A0
                    116:                 bsr.s   write_hex
                    117:                 bra     cont
                    118: 
                    119: write_hex:
                    120:                 move.l  A5,D1
                    121:                 and.b   #$0F,D1
                    122:                 cmp.b   #10,D1
                    123:                 bge.s   b6_10
                    124:                 add.b   #'0',D1
                    125:                 bra.s   b6_ok
                    126: b6_10:          add.b   #'A'-10,D1
                    127: b6_ok:          move.b  D1,6(A0)
                    128: 
                    129:                 move.l  A5,D1
                    130:                 lsr.b   #4,D1
                    131:                 and.b   #$0F,D1
                    132:                 cmp.b   #10,D1
                    133:                 bge.s   b5_10
                    134:                 add.b   #'0',D1
                    135:                 bra.s   b5_ok
                    136: b5_10:          add.b   #'A'-10,D1
                    137: b5_ok:          move.b  D1,5(A0)
                    138: 
                    139:                 move.l  A5,D1
                    140:                 lsr.w   #8,D1
                    141:                 and.b   #$0F,D1
                    142:                 cmp.b   #10,D1
                    143:                 bge.s   b4_10
                    144:                 add.b   #'0',D1
                    145:                 bra.s   b4_ok
                    146: b4_10:          add.b   #'A'-10,D1
                    147: b4_ok:          move.b  D1,4(A0)
                    148: 
                    149:                 move.l  A5,D1
                    150:                 move.w  #12,D2
                    151:                 lsr.w   D2,D1
                    152:                 and.b   #$0F,D1
                    153:                 cmp.b   #10,D1
                    154:                 bge.s   b3_10
                    155:                 add.b   #'0',D1
                    156:                 bra.s   b3_ok
                    157: b3_10:          add.b   #'A'-10,D1
                    158: b3_ok:          move.b  D1,3(A0)
                    159: 
                    160:                 move.l  A5,D1
                    161:                 move.w  #16,D2
                    162:                 lsr.l   D2,D1
                    163:                 and.b   #$0F,D1
                    164:                 cmp.b   #10,D1
                    165:                 bge.s   b2_10
                    166:                 add.b   #'0',D1
                    167:                 bra.s   b2_ok
                    168: b2_10:          add.b   #'A'-10,D1
                    169: b2_ok:          move.b  D1,2(A0)
                    170: 
                    171:                 move.l  A5,D1
                    172:                 move.w  #20,D2
                    173:                 lsr.l   D2,D1
                    174:                 and.b   #$0F,D1
                    175:                 cmp.b   #10,D1
                    176:                 bge.s   b1_10
                    177:                 add.b   #'0',D1
                    178:                 bra.s   b1_ok
                    179: b1_10:          add.b   #'A'-10,D1
                    180: b1_ok:          move.b  D1,1(A0)
                    181: 
                    182:                 rts
                    183: 
                    184: 
                    185: 
                    186:                 DATA
                    187: filename:
                    188:                 DC.B "BUSERR_B.TXT",0
                    189: 
                    190: welcometxt:
                    191:                 DC.B "Bus Error testing results (byte access):",13,10,13,10,0
                    192: welcometxtend:
                    193: 
                    194: eoftxt:
                    195:                 DC.B 13,10,"EOF!",13,10,0
                    196: 
                    197: hex_buf:        DC.B "$000000 - $000000",13,10,0
                    198:                 EVEN
                    199: 
                    200: be_region:      DC.W 0
                    201: 
                    202: 
                    203:                 BSS
                    204: old_ssp:
                    205:                 DS.L 1
                    206: 
                    207: oldbushandler:
                    208:                 DS.L 1
                    209: 
                    210: fhndl:
                    211:                 DS.W 1
                    212:                 END

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.