home *** CD-ROM | disk | FTP | other *** search
- incdir include:
- incdir lvo:
-
- include intuition/intuition.i
- include devices/timer.i
- include powerpc/ppcmacros.i
- include powerpc/powerpc.i
-
- include exec_lib.i
- include dos_lib.i
- include intuition_lib.i
- include graphics_lib.i
- include powerpc_lib.i
-
- xref _PowerPCBase
- xref _SysBase
- xref _DOSBase
- xref _LinkerDB
-
- smalldata
- executable
- escapestr
-
- section "PixelOMania",code
-
- WINDOWWIDTH = 200
- WINDOWHEIGHT = 100
-
- start
- prolog
- pushgpr r26-r31
- la r6,int_name
- li r3,0
- RUN68K _SysBase,OpenLibrary
- tstw r3
- beq .end
- sw r3,_IntuitionBase
- la r6,gfx_name
- li r3,0
- RUN68K _SysBase,OpenLibrary
- tstw r3
- beq .closeint
- sw r3,_GfxBase
- la r4,title
- la r22,Args
- RUN68K_XL _DOSBase,VPrintf
- li r5,0
- la r6,WindowTags
- RUN68K _IntuitionBase,OpenWindowTagList
- tstw r3
- beq .closegfx
- sw r3,_Window
- lwz r31,wd_UserPort(r3)
- lwz r29,wd_RPort(r3)
- sw r29,_RPort
- li r30,0
- li r28,0
- li r27,0
- li r26,1
- la r4,TimeVal1
- CALLPOWERPC GetSysTimePPC
- .loop
- mr r5,r31
- RUN68K _SysBase,GetMsg
- tstw r3
- beq .nomsg
- lwz r4,im_Class(r3)
- liw r5,IDCMP_MOUSEBUTTONS
- and. r4,r4,r5
- beq .nomsg
- li r30,-1
- mr r6,r3
- RUN68K _SysBase,ReplyMsg
- .nomsg
- tstw r30
- bne .abort
- mr r6,r29
- mr r3,r26
- xori r26,r26,2
- RUN68K _GfxBase,SetAPen
- mr r6,r29
- mr r3,r27
- mr r4,r28
- RUN68K _GfxBase,WritePixel
- addi r27,r27,1
- cmplwi r27,WINDOWWIDTH
- blt .loop
- li r27,0
- addi r28,r28,1
- cmplwi r28,WINDOWHEIGHT
- blt .loop
- la r4,TimeVal2
- CALLPOWERPC GetSysTimePPC
- la r4,TimeVal2
- la r5,TimeVal1
- CALLPOWERPC SubTimePPC
- la r4,TimeVal2
- lwz r0,TV_MICRO(r4)
- push r0
- lwz r0,TV_SECS(r4)
- push r0
- la r4,time
- mr r22,local
- RUN68K_XL _DOSBase,VPrintf
- addi local,local,8
- b .close
- .abort
- la r4,abort
- la r22,Args
- RUN68K_XL _DOSBase,VPrintf
- .close
- lw r5,_Window
- RUN68K _IntuitionBase,CloseWindow
- .closegfx
- lw r6,_GfxBase
- RUN68K _SysBase,CloseLibrary
- .closeint
- lw r6,_IntuitionBase
- RUN68K _SysBase,CloseLibrary
- .end
- popgpr
- epilog
-
-
- section "PixelOMania",data
-
- int_name INTNAME
- gfx_name GRAFNAME
- title dc.b "\nPixelOMania V1.0 18.9.97 by Sam Jordan\n"
- dc.b "---------------------------------------\n"
- dc.b "Measures the performance of CPU context switches\n"
- dc.b "In every iteration (for every pixel) four AMIGAOS\n"
- dc.b "system functions are called by the PowerPC\n\n"
- dc.b "Click on the window to abort the program\n"
- dc.b "Let's go:\n\n",0
- abort dc.b "Program aborted\n",0
- time dc.b "Time elapsed: %ld.%06ld seconds\n\n",0
-
-
- cnop 0,4
-
- WindowTags dc.l WA_Left
- dc.l 100
- dc.l WA_Top
- dc.l 100
- dc.l WA_Width
- dc.l WINDOWWIDTH
- dc.l WA_Height
- dc.l WINDOWHEIGHT
- dc.l WA_Activate
- dc.l -1
- dc.l WA_IDCMP
- dc.l IDCMP_MOUSEBUTTONS
- dc.l TAG_DONE
-
-
- section "PixelOMania",bss
-
- _IntuitionBase ds.l 1
- _GfxBase ds.l 1
- _Window ds.l 1
- _RPort ds.l 1
- TimeVal1 ds.b TV_SIZE
- TimeVal2 ds.b TV_SIZE
- Args ds.l 2
-