home *** CD-ROM | disk | FTP | other *** search
- opt l+
-
- incdir "vd0:include/"
-
-
-
- include intuition/intuition.i
- include intuition/intuition_lib.i
- include exec/memory.i
- include exec/exec_lib.i
- include graphics/graphics_lib.i
- include graphics/text.i
- include libraries/dos_lib.i
- include libraries/dos.i
- include "misc/easystart.i"
-
- jmp Start
-
- PRINT macro
- move #\1,d0
- move #\2,d1
- move.l _Window,a1
- move.l wd_RPort(a1),a1
- CALLGRAF Move
- move #\3,d0
- move.l _Window,a1
- move.l wd_RPort(a1),a1
- CALLGRAF SetAPen
- lea \4,a0
- move.l #\5,d0
- move.l _Window,a1
- move.l wd_RPort(a1),a1
- CALLGRAF Text
- endm
-
- OpenThem lea dosname(pc),a1
- moveq.l #0,d0
- CALLEXEC OpenLibrary
- move.l d0,_DOSBase
- lea intname(pc),a1
- moveq.l #0,d0
- CALLEXEC OpenLibrary
- move.l d0,_IntuitionBase
- lea grafname(pc),a1
- moveq.l #0,d0
- CALLEXEC OpenLibrary
- move.l d0,_GfxBase
- rts
- _DOSBase dc.l 0
- dosname DOSNAME
- _GfxBase dc.l 0
- grafname GRAFNAME
- _IntuitionBase dc.l 0
- intname INTNAME
-
- _NewWindow dc.w 300,100,160,45
- dc.b 1,2
- dc.l CLOSEWINDOW!GADGETUP!MENUPICK
- dc.l WINDOWCLOSE!ACTIVATE!WINDOWDRAG!WINDOWDEPTH
- dc.l Gadget1
- dc.l 0,Title
- dc.l 0,0
- dc.w 0,0,0,0
- dc.w WBENCHSCREEN
- Title dc.b "FMC by RF",0
- Gadget1 dc.l 0
- dc.w 9,13,32,30
- dc.w GADGHCOMP!GADGHIMAGE!GADGIMAGE,RELVERIFY!TOGGLESELECT,BOOLGADGET
- dc.l Image1,Image2,0,0,0
- dc.w 1
- dc.l 0
- Image1 dc.w 0,0,32,30,2
- dc.l Data1
- dc.b 1+2,0
- dc.l 0
- Image2 dc.w 0,0,32,30,2
- dc.l Data2
- dc.b 1+2,0
- dc.l 0
- Font dc.l FName
- dc.w TOPAZ_EIGHTY
- dc.b FS_NORMAL
- dc.b FPF_ROMFONT
- FName dc.b "topaz.font",0
-
- _Window dc.l 0
-
- Start bsr OpenThem
- lea.l _NewWindow(pc),a0
- CALLINT OpenWindow
- move.l d0,_Window
- beq exit
- jsr Init
- lea.l Font(pc),a0
- CALLGRAF OpenFont
- move.l _Window,a1
- move.l wd_RPort(a1),a1
- move.l d0,a0
- CALLGRAF SetFont
-
-
- wait PRINT 50,20,2,Text1,4
- PRINT 50,30,3,Text2,4
- PRINT 50,40,3,Text3,4
- moveq #MEMF_PUBLIC,d1
- CALLEXEC AvailMem
- move.l d0,d2
- lea buffer,a0
- bsr ASCII
- PRINT 90,20,1,buffer,8
- moveq #MEMF_FAST,d1
- CALLEXEC AvailMem
- move.l d0,d2
- lea buffer,a0
- bsr ASCII
- PRINT 90,30,1,buffer,8
- moveq #MEMF_CHIP,d1
- CALLEXEC AvailMem
- move.l d0,d2
- lea buffer,a0
- bsr ASCII
- PRINT 90,40,1,buffer,8
-
- move.l _Window,a0
- move.l wd_UserPort(a0),a0
- CALLEXEC GetMsg
- tst.l d0
- bne Message
- move.l #30,d1
- CALLDOS Delay
- bra wait
- Message move.l d0,a1
- move.l im_Class(a1),d4
- CALLEXEC ReplyMsg
- cmp.l #MENUPICK,d4
- beq Menue
- cmp.l #CLOSEWINDOW,d4
- bne Change
- move.l _Window,a0
- CALLINT CloseWindow
- jsr Reset
- exit moveq #0,d0
- rts
- Change eor.b #$ff,FM_Flag
- bra wait
-
-
-
-
-
- ASCII clr.b d3
- moveq #7,d0
- lea buffer,a0
- lea pwrof10,a1
- nex moveq #'0',d1
- dec addq #1,d1
- sub.l (a1),d2
- bcc.s dec
- subq #1,d1
- add.l (a1),d2
- move.b d1,(a0)+
- lea 4(a1),a1
- dbra d0,nex
- moveq #6,d0
- lea buffer,a0
- rep cmp.b #'0',(a0)
- bne done
- move.b #' ',(a0)+
- dbra d0,rep
- done rts
-
- pwrof10 dc.l 10000000
- dc.l 1000000
- dc.l 100000
- dc.l 10000
- dc.l 1000
- dc.l 100
- dc.l 10
- dc.l 1
- buffer ds.b 10
-
-
- Text1 dc.b "RAM "
- Text2 dc.b "Fast"
- Text3 dc.b "Chip"
- Init move.l 4,a6
- move.l _LVOAvailMem+2(a6),NAvM+2
- move.l #NewAvailMem,_LVOAvailMem+2(a6)
- move.l _LVOAllocMem+2(a6),NAcM+2
- move.l #NewAllocMem,_LVOAllocMem+2(a6)
- rts
- Reset move.l 4,a6
- move.l NAvM+2,_LVOAvailMem+2(a6)
- move.l NAcM+2,_LVOAllocMem+2(a6)
- rts
-
- FM_Flag dc.b 0
- even
- NewAvailMem tst.b FM_Flag
- beq.s NAvM
- btst #2,d1
- bne NAvM2
- or.b #%11,d1
- NAvM jmp 0
- NAvM2 moveq.l #0,d0
- rts
-
- NewAllocMem tst.b FM_Flag
- beq.s NAcM
- btst #2,d1
- bne NAvM2
- or.b #%11,d1
- NAcM jmp 0
-
-
-
-
-
-
- Menue CALLEXEC Forbid
- move.l _Window,a0
- cmp.w #20,wd_Height(a0)
- bls MakeBig ; stretch window to normal size
- moveq.l #0,d0
- move.w #10,d1
- sub.w wd_Height(a0),d1
- CALLINT SizeWindow
- CALLEXEC Permit
- bra wait
- MakeBig move.l _Window,a0 ;crunch window to min. size
- moveq.l #0,d0
- move.w wd_TopEdge(a0),d1
- neg.w d1
- CALLINT MoveWindow ; move window to top (to have enough room)
- move.l _Window,a0
- moveq.l #0,d0
- move.w #35,d1
- CALLINT SizeWindow ; resize window
- CALLEXEC Permit
- move.l #10,d1 ; Intuition needs time to understand it
- CALLDOS Delay ; (don't ask me why !)
- bra wait
-
-
- section "data",DATA_C
-
- Data1 dc.b $ff,$ff,$ff,$ff,$c0,$00,$00,$03,$c0,$79,$f0,$03,$c0,$cd,$98,$03
- dc.b $c0,$cd,$98,$03,$c0,$79,$98,$03,$c0,$00,$00,$03,$c0,$03,$c0,$03
- dc.b $c0,$07,$e0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$03,$c0,$03
- dc.b $c0,$07,$e0,$03,$c0,$0b,$d0,$03,$c0,$13,$c8,$03,$c0,$13,$c8,$03
- dc.b $c0,$08,$10,$03,$c0,$07,$e0,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$01,$c7,$03
- dc.b $c1,$e3,$0c,$03,$c3,$37,$9e,$03,$c3,$33,$0c,$03,$c1,$e3,$0c,$03
- dc.b $c0,$00,$00,$03,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$28,$00,$03,$c0,$57,$c0,$03,$c0,$2f,$e0,$03,$c0,$17,$e0,$03
- dc.b $c0,$2b,$c0,$03,$c0,$17,$c0,$03,$c0,$2b,$c0,$03,$c0,$17,$e0,$03
- dc.b $c0,$2f,$f0,$03,$c0,$0f,$f0,$03,$c0,$07,$e0,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$ff,$ff,$ff,$ff
-
- Data2 dc.b $ff,$ff,$ff,$ff,$c0,$00,$00,$03,$c0,$79,$f0,$03,$c0,$cd,$98,$03
- dc.b $c0,$cd,$98,$03,$c0,$79,$98,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$07,$e0,$03,$c0,$08,$10,$03,$c0,$13,$c8,$03,$c0,$13,$c8,$03
- dc.b $c0,$0b,$d0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$03,$c0,$03
- dc.b $c0,$07,$e0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$01,$c7,$03
- dc.b $c1,$e3,$0c,$03,$c3,$37,$9e,$03,$c3,$33,$0c,$03,$c1,$e3,$0c,$03
- dc.b $c0,$00,$00,$03,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$07,$e0,$03
- dc.b $c0,$0f,$f0,$03,$c0,$2f,$f0,$03,$c0,$17,$e0,$03,$c0,$2b,$c0,$03
- dc.b $c0,$17,$c0,$03,$c0,$2b,$c0,$03,$c0,$17,$e0,$03,$c0,$2f,$e0,$03
- dc.b $c0,$57,$c0,$03,$c0,$28,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
- dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$ff,$ff,$ff,$ff
-
-