home *** CD-ROM | disk | FTP | other *** search
- | Decrunch30.s, MIT syntax for GNU C Compiler 2.2.2
- |
- | Copyright © 1992-1994 by Stefano Reksten
- |
- | Use Decrunch30.c to interface with GCC !
- |
- | 1112821571 = 'BTOC'
-
- .text
- .even
- .globl _Decrunch30
- _Decrunch25:
- moveml d1-d5/a0-a1,sp@-
- movel a1@+,d0
- cmpl #1112821571,d0
- beq ok_go
- moveq #0,d0
- bra end
- ok_go:
- movel a1@+,d0
- moveb a1@+,d1
- moveq #0,d4
- moveb a1@+,d4
- loop:
- cmpb a1@,d1
- beq explode
- moveb a1@+,a0@+
- subl #1,d0
- beq end
- bra loop
- explode:
- addl #1,a1
- moveq #0,d2
- moveb a1@+,d2
- cmpb d2,d4
- bhi else
- subl d4,d2
- beq skip_byt
- moveb a1@+,d3
- bra expl
- skip_byt:
- moveb a1@+,d5
- moveq #7,d2
- moveb d1,a0@+
- skip_loop:
- btst d2,d5
- bne put_byte
- moveb d1,a0@+
- bra ok
- put_byte:
- moveb a1@+,a0@+
- ok:
- dbra d2,skip_loop
- subl #9,d0
- bra done
- else:
- moveb d1,d3
- expl:
- subl d2,d0
- subb #1,d2
- exploop:
- moveb d3,a0@+
- dbra d2,exploop
- done:
- tstl d0
- beq end
- bra loop
- moveq #1,d0
- end:
- moveml sp@+,d1-d5/a0-a1
- rts
-