main target : sound player, photo viewer and digital output software in lab.
example 1
Code: Select all
[This code]
your software code
example 2
Code: Select all
[NOP NOP XOR PXOR code]
[This code]
your software code
have fun.
Code: Select all
; Booting high quality memory initialize program
; Copyright (c) Hiroyuki Yokota [oryaaaaa]
Declare ReWriteMemory_mmx(*in_buf, in_pos.i)
Procedure FirstRewriteProcess()
Protected *memory, *memory2
*memory = AllocateMemory(52428800, #PB_Memory_NoClear) ; every 50MB
*memory2 = AllocateMemory(52428800, #PB_Memory_NoClear) ; every 50MB
FillMemory(*memory, 52428800, 0, #PB_Byte)
FillMemory(*memory2, 52428800, 0, #PB_Byte)
FillMemory(*memory, 52428800, $FF, #PB_Byte)
FillMemory(*memory2, 52428800, $FF, #PB_Byte)
ReWriteMemory_mmx(*memory, 52428800)
ReWriteMemory_mmx(*memory2, 52428800)
FillMemory(*memory, 52428800, $F0, #PB_Byte)
FillMemory(*memory2, 52428800, $F0, #PB_Byte)
ReWriteMemory_mmx(*memory, 52428800)
ReWriteMemory_mmx(*memory2, 52428800)
FillMemory(*memory, 52428800, 0, #PB_Byte)
FillMemory(*memory2, 52428800, 0, #PB_Byte)
ReWriteMemory_mmx(*memory, 52428800)
ReWriteMemory_mmx(*memory2, 52428800)
FreeMemory(*memory)
FreeMemory(*memory2)
Delay(4000) ; need
EndProcedure
FirstRewriteProcess()
; more sound quality up priority List, need Declare sentence
Declare.l AsioProc(input.b, channel.l, *buffer, length.l, *User)
Declare CopyMemory(*memory, *memory2, mem_size.i, *dummy)
Declare CounterInfomation()
Declare LoadingMusic(Plist.b, index.l)
Procedure ReWriteMemory_mmx(*in_buf, in_pos.i)
Protected s.i
If in_pos%8>0
s = in_pos + (8 - in_pos%8)
Else
s = in_pos
EndIf
If s < 1
Goto ReWriteMemory_mmx_end
EndIf
CompilerSelect #PB_Compiler_Processor
CompilerCase #PB_Processor_x86
!PXOR mm5, mm5
!PXOR mm3, mm3
!MOV Eax, [p.v_s]
!MOV Ecx, [p.p_in_buf]
!ReWrite_mmx:
!PXOR mm5, mm5
!movq mm5, [Ecx]
!movntq [Ecx], mm5
!PXOR mm3, mm3
!movq mm3, mm5
!movntq [Ecx], mm3
!ADD Ecx, 8
!SUB Eax, 8
!JNZ ReWrite_mmx
!emms
CompilerCase #PB_Processor_x64
!PXOR mm5, mm5
!PXOR mm3, mm3
!MOV Rax, [p.v_s]
!MOV Rcx, [p.p_in_buf]
!ReWrite_mmx:
!PXOR mm5, mm5
!movq mm5, [Rcx]
!movntq [Rcx], mm5
!PXOR mm3, mm3
!movq mm3, mm5
!movntq [Rcx], mm3
!ADD Rcx, 8
!SUB Rax, 8
!JNZ ReWrite_mmx
!emms
CompilerEndSelect
ReWriteMemory_mmx_end:
EndProcedure