OpenLibrary = -552 Forbid = -132 Permit = -138 AllocMem = -198 FreeMem = -210 StartList = 38 ExecBase = 4 InitMem: move.l ExecBase.s,a6 move.l #CLend-CLstart,d0 moveq #2, d1 jsr AllocMem(a6) move.l d0,CLaddr beq Ende move.l #40000, d0 moveq#2,d1 jsr AllocMem(a6) move.l d0, BPaddr beq Ende move.l #CLstart, a0 move.l CLaddr, a1 move.l #CLend-CLstart-1, d0 CLcopy: move.b (a0)+,(a1)+ dbf d0, CLcopy move.l CLaddr, a1 addq.l #$2, a1 move.l BPaddr, d1 moveq #$05, d0 RLoop: swap d1 move.w d1,(a1) addq.l #$4, a1 swap d1 move.w d1,(a1) add.l #8000, d1 addq.l #$4,a1 subq.l #1, d0 cmp.l #$00, d0 bne RLoop jsr Forbid(a6) move.w #$03A0, $DFF096 move.l CLaddr, $DFF080 clr.w $DFF088 move.w #$8280, $DFF096 move.w #%0101001000000100, $DFF100 move.w #$2C81, $DFF08E move.w #$F4C1, $DFF090 move.w #$0038, $DFF092 move.w #$00D0, $DFF094 clr.w $DFF102 clr.w $DFF104 clr.w $DFF108 clr.w $DFF10A move.w #$8380, $DFF096 move.l BPaddr, a1 move.l #9999, d0 BPClr: move.l #$00, (a1) addq.l #$4, a1 subq.l #$01, d0 cmp.l #$00, d0 bne BPClr move.w #1, Xadd move.w #1, Yadd move.w #1, PixelX move.w #1, PixelY move.b #17, PixelC move.w #$0001, Count move.w #$0001, CountEnd main: jsr Draw btst #6, $BFE001 bne main ShutDown: move.l ExecBase.s, a6 move.l #GRname, a1 clr.l d0 jsr OpenLibrary(a6) move.l d0,a4 move.l StartList(a4),$DFF080 clr.w $DFF088 move.w #$83E0, $DFF096 jsr Permit(a6) move.l CLaddr, a1 move.l #CLend-CLstart, d0 jsr FreeMem(a6) move.l BPaddr, a1 move.l #40000, d0 jsr FreeMem(a6) Ende: clr.l d0 rts Slow: move.l #$FFFF, Scrap LSlow: subq.l #$00001, Scrap cmp.l #$00, Scrap bne LSlow rts Draw2: addq.w #1, PixelX addq.b #$01, PixelC cmp.b #32, PixelC bne skippy move.b #$00, PixelC skippy: cmp.w #319, PixelX bne skippy2 move.w #$01, PixelX addq.w #$01, PixelY cmp.w #199, PixelY bne skippy2 move.w #$01, PixelY skippy2: jsr Plot rts Draw: subq.w #$01, Count cmp.w #$00, Count bne fuckit move.w CountEnd, Count addq.b #$01, PixelC cmp.b #32, PixelC bne fuckit move.b #$00, PixelC fuckit: move.w Xadd, d0 add.w d0, PixelX jsr Plot cmp.w #319, PixelX bne FXSkip move.w #$FFFF, Xadd addq.w #1, PixelY cmp.w #199, PixelY bne FXSkip move.w #1, PixelY FXSkip: cmp.w #1, PixelX bne CXSkip move.w #$1, Xadd addq.w #1, PixelY cmp.w #199, PixelY bne CXSkip ; jsr Slow move.w #1, PixelY CXSkip: rts Plot: clr.l d0 move.w PixelX, d0 divu #8, d0 clr.l d1 add.w d0, d1 clr.l d2 move.w PixelY, d2 lsl.l #3, d2 add.l d2, d1 lsl.l #2, d2 add.l d2, d1 cmp.l #7999, d1 bhi skip move.l BPaddr, a1 add.l d1, a1 move.l #128, d1 swap d0 lsr.b d0, d1 moveq #$0, d2 NBP: btst d2, PixelC beq nope or.b d1, (a1) bra nnope nope: move.l d1,d0 eor.b #$FF, d0 and.b d0, (a1) nnope: add.l #8000, a1 addq.l #1, d2 cmp.w #$05, d2 bne NBP skip: rts CLstart: dc.w $00E0, $0000, $00E2, $0000 dc.w $00E4, $0000, $00E6, $0000 dc.w $00E8, $0000, $00EA, $0000 dc.w $00EC, $0000, $00EE, $0000 dc.w $00F0, $0000, $00F2, $0000 dc.w $0180, $0000, $0182, $0FFF dc.w $0184, $0EEE, $0186, $0DDD dc.w $0188, $0CCC, $018A, $0BBB dc.w $018C, $0AAB, $018E, $099B dc.w $0190, $089B, $0192, $078B dc.w $0194, $056C, $0196, $034B dc.w $0198, $023B, $019A, $003B dc.w $019C, $003A, $019E, $0058 dc.w $01A0, $0057, $01A2, $0355 dc.w $01A4, $0444, $01A6, $0533 dc.w $01A8, $0722, $01AA, $0811 dc.w $01AC, $0900, $01AE, $0A00 dc.w $01B0, $0B00, $01B2, $0C00 dc.w $01B4, $0D00, $01B6, $0E00 dc.w $01B8, $0F00, $01BA, $0F03 dc.w $01BC, $0F05, $01BE, $0F08 dc.w $FFFF, $FFFE CLend: CLaddr: blk.l 1 BPaddr: blk.l 1 GRname: dc.b 'graphics.library',0 PixelX: blk.w 1 PixelY: blk.w 1 PixelC: blk.b 1 Xadd: blk.w 1 Yadd: blk.w 1 Scrap: blk.l 1 Count: blk.w 1 CountEnd: blk.w 1