; MemFree 0.0.3 ; (c) 1997 Michael Donat @program prog_code,prog_name ;************** Start of Fargo program ************** MemFree: movem.l d0-d1,-(a7) move.l ($00005d36),d0 ; pointer to top of heap sub.l ($00005d2e),d0 ; pointer to first free byte move.w ($000056b0),d1 ; handle # of current running ti-basic program cmp.w #0,d1 ; will be 0 if hot key used bne MemFree_ok move.l #100,d0 ; memory count bad (set to 0 after next instruction) MemFree_ok: sub.l #100,d0 ; diferance in what is reported and what is acually free move.w d0,memfree movem.l (a7)+,d0-d1 rts prog_code: movem.l d0-d7/a0-a6,-(a7) bsr MemFree move.l #959,d0 move.l #$4440,a0 clr_loop: clr.l (a0)+ dbra d0,clr_loop lea temp_string(pc),a0 move.w memfree,d0 moveq #5,d1 adda.l d1,a0 clr.b (a0) subq.b #1,d1 conv_loop: divu #10,d0 move.l d0,d2 lsr.l #8,d2 lsr.l #8,d2 add.b #48,d2 move.b d2,-(a0) and.l #$FFFF,d0 dbra d1,conv_loop move.w #2,-(a7) jsr romlib[set_font] lea 2(a7),a7 move.w #4,-(a7) pea temp_string(PC) move.w #59,-(a7) move.w #95,-(a7) jsr romlib[puttext] lea 10(a7),a7 loop: tst.w ($75B0) beq loop movem.l (a7)+,d0-d7/a0-a6 rts ;**************************************************** memfree dc.l 0 temp_string dc.b " ",0 prog_name: dc.b "MemFree 0.0.3",0 ;************** End of Fargo program **************** reloc_open add_library romlib reloc_close end