;Screen and File Routines cseg xref _asmlines xdef _p64to16 _p64to16: movem.l d0-d7/a0-a6,-(a7) move.l 64(a7),a0 move.l 68(a7),d7 subq.w #1,d7 move.l a0,a1 slp: move.w (a0)+,d0 lsr.w #2,d0 lsl.b #4,d0 lsr.w #4,d0 move.b d0,(a1)+ dbra d7,slp movem.l (a7)+,d0-d7/a0-a6 rts xdef _clrscr _clrscr: movem.l d0-d7/a0-a6,-(a7) move.l 64(a7),a1 move.l 68(a7),a2 move.l 72(a7),a3 move.l 76(a7),a4 move.w _asmlines,d5 clrlp0: move.w #38,d7 clrlp1: clr.w (a1)+ clr.w (a2)+ clr.w (a3)+ clr.w (a4)+ dbra d7,clrlp1 lea.l 2(a1),a1 lea.l 2(a2),a2 lea.l 2(a3),a3 lea.l 2(a4),a4 dbra d5,clrlp0 movem.l (a7)+,d0-d7/a0-a6 rts xdef _bwview _bwview: movem.l d0-d7/a0-a6,-(a7) move.l 64(a7),a0 move.l 68(a7),a1 move.l 72(a7),a2 move.l 76(a7),a3 move.l 80(a7),a4 move.l 84(a7),a5 move.w _asmlines,d5 bwlp0: move.l a0,a6 move.w #38,d7 bwlp1: move.w (a6)+,d6 move.w d6,(a1)+ clr.w (a2)+ clr.w (a3)+ clr.w (a4)+ dbra d7,bwlp1 lea.l 2(a1),a1 lea.l 2(a2),a2 lea.l 2(a3),a3 lea.l 2(a4),a4 adda.l a5,a0 dbra d5,bwlp0 movem.l (a7)+,d0-d7/a0-a6 rts xdef _grayview _grayview: movem.l d0-d7/a0-a6,-(a7) move.l 64(a7),a0 move.l 68(a7),a1 move.l 72(a7),a2 move.l 76(a7),a3 move.l 80(a7),a4 move.l 84(a7),a5 move.l #$10000000,d6 move.w _asmlines,d5 grlp0: move.l a0,a6 move.w #77,d7 grlp1: move.l (a6)+,d0 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 move.b d1,(a1)+ move.b d2,(a2)+ move.b d3,(a3)+ move.b d4,(a4)+ dbra d7,grlp1 lea.l 2(a1),a1 lea.l 2(a2),a2 lea.l 2(a3),a3 lea.l 2(a4),a4 adda.l a5,a0 dbra d5,grlp0 movem.l (a7)+,d0-d7/a0-a6 rts xdef _vplanesep _vplanesep: movem.l d0-d7/a0-a6,-(a7) move.l 64(a7),a0 move.l 68(a7),a1 move.l 72(a7),a2 move.l 76(a7),a3 move.l 80(a7),a4 move.l 84(a7),d7 move.l #$10000000,d6 subq.w #1,d7 vplp: move.l (a0)+,d0 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 add.l d6,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 move.b d1,(a1)+ move.b d2,(a2)+ move.b d3,(a3)+ move.b d4,(a4)+ dbra d7,vplp movem.l (a7)+,d0-d7/a0-a6 rts xdef _fplanesep _fplanesep: movem.l d0-d7/a0-a6,-(a7) move.l 64(a7),a0 move.l 68(a7),a1 move.l 72(a7),a2 move.l 76(a7),a3 move.l 80(a7),a4 move.l 84(a7),d7 subq.w #1,d7 fplp: move.l (a0)+,d0 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 lsl.l #1,d0 roxl.b #1,d4 lsl.l #1,d0 roxl.b #1,d3 lsl.l #1,d0 roxl.b #1,d2 lsl.l #1,d0 roxl.b #1,d1 not.b d1 not.b d2 not.b d3 not.b d4 move.b d1,(a1)+ move.b d2,(a2)+ move.b d3,(a3)+ move.b d4,(a4)+ dbra d7,fplp movem.l (a7)+,d0-d7/a0-a6 rts xdef _fplanegen _fplanegen: movem.l d0-d7/a0-a6,-(a7) move.l 64(a7),a0 move.l 68(a7),a1 move.l 72(a7),a2 move.l 76(a7),a3 move.l 80(a7),a4 move.l 84(a7),d7 subq.w #1,d7 fpglp: move.b (a1)+,d1 not.b d1 move.b (a2)+,d2 not.b d2 move.b (a3)+,d3 not.b d3 move.b (a4)+,d4 not.b d4 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 lsl.b #1,d4 roxl.l #1,d0 lsl.b #1,d3 roxl.l #1,d0 lsl.b #1,d2 roxl.l #1,d0 lsl.b #1,d1 roxl.l #1,d0 move.l d0,(a0)+ dbra d7,fpglp movem.l (a7)+,d0-d7/a0-a6 rts