1234567891011121314151617181920212223242526272829303132 |
- .define .inn
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- .inn: ! d0 bitnumber
- ! d1 setsize in bytes
- ! on exit: 0 or 1 in d0
- move.l d2, -(sp)
- move.l d0, d2
- asr.l #3, d2 ! offset .sect from sp in bytes
- eor.l #3, d2 ! longs are stored in high-to-low order
- cmp.l d1, d2
- bge 1f ! bitnumber too large
- btst d0, 8(sp, d2.l)
- beq 2f
- move.l #1, d0
- bra 3f
- 1:
- move.l #ESET, -(sp)
- jsr .trp
- 2:
- clr.l d0
- 3:
- move.l (sp)+, d2
- move.l (sp)+, a0 ! return address
- add.l d1, sp ! pop bitset
- jmp (a0) ! return
- .align 2
|