Annotation of hatari/tests/buserror/buserr_b.s, revision 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.