Japanese ANIME quality up on streming

Share your advanced PureBasic knowledge/code with the community.
User avatar
oryaaaaa
Addict
Addict
Posts: 825
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Re: Japanese ANIME quality up on streming

Post by oryaaaaa »

I want to JOB with salary, but this CPU design problems don't finish my pain 20 years.
And my family said "We have voice-actor jobs many, but You are darkside worker BAN!".
I want to ride NEVER ENDING STORY savior DRAGON.

CPU cache have QWORD way Initialize process, this WORD way did'nt CLEAR NOISE DATA on Power-on.
This code run clear 512 bytes cpu cache area by WORD way. #FX_WORD_REVERSE with FXCLEAR_ALL
This code run clear 512 bytes cpu cache area by DWORD way. #FX_DWORD_REVERSE with FXCLEAR_ALL
This code run clear 512 bytes cpu cache area by QWORD way. #FX_QWORD_REVERSE with FXCLEAR_ALL
This process will over clock mode on static CPU clocks, then required FNOP two lines for clock down.

This "MajiorityLabyrinth 6" is super low-digital-noise process for intel CPU 13th 14th

CPU 13th 14th keep codes some rules.
1. Don't remove "NOP QWORD [Rip] x2 lines" CPU power management brake down
2. Don't remove "XCHG al, ah ... dh, dl , XCHG spl, spl after NOP" same reason
3. Don't remove "FNOP" ; ## Don't remove this lines ## 800MHz to 300MHz clock down
If you can try crush CPU, You should hear CPU fan motor noise. boom ? RESET!

This troubles is not depend 13th 14th only, others Skylake CometLake any crushed

but more quality for Anime Video Streaming is BEST solution.
I test Core i7-13700 (13th Rapter).

Code: Select all

Debug "; MajiorityLabyrinth 6 (2024 09 14)"
Debug "; RDSEED CRC32 BLSRx64 BZHI CPU reg. Stabilizer from JAPAN"
Debug "; Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa) 444-3174"
Debug "; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)"
Debug ""
Debug "MessageRequester("+Chr(34)+"END"+Chr(34)+","+Chr(34)+"Compiler options Executable Format Console And CPU With MMX"+Chr(34)+") : End"
Debug ""
!extrn PB_RandomSeed

; ; ; ; ; ; ; ; Intel® 64 And IA-32 ArchitecturesSoftware Developer’s Manual
; ; ; ; ; ; ; ; Volume 2 (2A, 2B, 2C, & 2D):Instruction Set Reference, A-Z
; ; ; ; ; ; ; ; Opcode Column in the Instruction Summary Table (Instructions without VEX Prefix)
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; ALNone0AXNone0EAXNone0RAXNone0
; ; ; ; ; ; ; ; DLNone2DXNone2EDXNone2RDXNone2
; ; ; ; ; ; ; ; SPLYes 4SPNone4ESPNone4RSPNone4
; ; ; ; ; ; ; ; SILYes6SINone6ESINone6RSINone6
; ; ; ; ; ; ; ; R8BYes0R8WYes0R8DYes0R8Yes0
; ; ; ; ; ; ; ; R10BYes2R10WYes2R10DYes2R10Yes2
; ; ; ; ; ; ; ; R12BYes4R12WYes4R12DYes4R12Yes4
; ; ; ; ; ; ; ; R14BYes6R14WYes6R14DYes6R14Yes6
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; CLNone1CXNone1ECXNone1RCXNone1
; ; ; ; ; ; ; ; BLNone3BXNone3EBXNone3RBXNone3
; ; ; ; ; ; ; ; BPLYes5BPNone5EBPNone5RBPNone5
; ; ; ; ; ; ; ; DILYes7DINone7EDINone7RDINone7
; ; ; ; ; ; ; ; R9BYes1R9WYes1R9DYes1R9Yes1
; ; ; ; ; ; ; ; R11BYes3R11WYes3R11DYes3R11Yes3
; ; ; ; ; ; ; ; R13BYes5R13WYes5R13DYes5R13Yes5
; ; ; ; ; ; ; ; R15BYes7R15WYes7R15DYes7R15Yes7

Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R8" : AddElement(Reg64A()) : Reg64A() ="R10"
AddElement(Reg64A()) : Reg64A() ="R12" : AddElement(Reg64A()) : Reg64A() ="R14"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R9" : AddElement(Reg64B()) : Reg64B() ="R11"
AddElement(Reg64B()) : Reg64B() ="R13" : AddElement(Reg64B()) : Reg64B() ="R15"

!RDRAND Rcx
!ROR Rcx, 1
!ROR Rcx, 1
!CALL QWORD PB_RandomSeed
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

ForEach Reg64()
  Debug "Macro BLSR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !BLSR "+Reg64()+", "+Reg64()
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro SHR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !SHR "+Reg64()+", 1"
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro MOV_"+Reg64()+"_Up_Down"
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  Debug "  !MOV "+Reg64()+", "+Reg64()
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  Debug "EndMacro"
  Debug ""
Next

Debug "Macro Set_CL1"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  ; cx = 1"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL8"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 8"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL64"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 64"
Debug "EndMacro"
Debug ""
Debug "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  BLSR_Rcx_x64"
Debug "  Set_CL1"
Debug "  MOVZX_Rcx"
Debug "  !MOVQ mm1, Rcx"
For Loop=1 To 16
  Debug "  !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift"
Next
Debug "  !MOVQ mm0, mm1"
For Roop=1 To 7
  For Loop=1 To 16
    Debug "  !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift"
  Next
Next
Debug "EndMacro"
Debug ""

Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
    RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
    ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
    ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
EndMacro

Debug "Macro MOVZX_Rcx"
Debug "  !MOVZX cx, cl"
Debug "  !MOVZX Rcx, cl"
Debug "  !MOVZX cx, cl"
Debug "EndMacro"
Debug ""

Macro BeforeProcedureRegisters_1st
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64A() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64A() : Loop + 1 : Next
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
 EndMacro
 
Macro BeforeProcedureRegisters_2nd
  Loop=0
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
  ForEach Reg64A() : Debug "  !MOVQ "+Reg64A()+", mm"+Str(Loop) : Loop + 1 : Next
  RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Debug "  ;"
  ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64B() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64B() : Loop + 1 : Next
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
EndMacro

Macro BeforeProcedureRegisters_3rd
  Loop=0
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
  ForEach Reg64B() : Debug "  !MOVQ "+Reg64B()+", mm"+Str(Loop) : Loop + 1 : Next
  RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Debug "  !EMMS"
EndMacro

Macro BeforeProcedureRegisters_RDSEED_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64A()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64B()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !CRC32 "+Reg64A()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !CRC32 "+Reg64B()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_MOVBE_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !MOVBE "+Reg64A()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !MOVBE "+Reg64B()+", QWORD [Rip]"
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_RDSEED_SHR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64A()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  SHR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !RDSEED "+Reg64B()
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  SHR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_NOP_EAX_BLSR
  For Loop=1 To 32
    Debug "  !BLSR Eax, Eax"
  Next
  Debug "  !BZHI Eax, Eax, Eax"
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP ax"
    Debug "  !NOP ax"
  Next
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP Eax"
    Debug "  !NOP Eax"
  Next
  For Loop=1 To 32
    Debug "  !BLSR Eax, Eax"
  Next
  Debug "  !BZHI Eax, Eax, Eax"
EndMacro

Macro BeforeProcedureRegisters_NOP_ESP_BLSR
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  ;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ;   ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Debug "!MOVQ mm5, Rsp"
  Debug "!MOVQ mm5, mm5"
  For Loop=1 To 32
    Debug "  !BLSR Esp, Esp"
  Next
  Debug "  !BZHI Esp, Esp, Esp"
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP sp"
    Debug "  !NOP sp"
  Next
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !XCHG bl, bh"
  Debug "  !XCHG bh, bl"
  Debug "  !XCHG cl, ch"
  Debug "  !XCHG ch, cl"
  Debug "  !XCHG al, ah"
  Debug "  !XCHG ah, al"
  Debug "  !XCHG dl, dh"
  Debug "  !XCHG dh, dl"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !XCHG spl, spl"
  Debug "  !MOVQ mm1, mm5"
  Debug "  !MOVQ mm2, mm1"
  Debug "  !MOVQ mm3, mm2"
  Debug "  !MOVQ mm4, mm3"
  Debug "  !MOVQ mm6, mm4"
  Debug "  !MOVQ mm7, mm6"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !XCHG al, ah"
  Debug "  !XCHG ah, al"
  Debug "  !XCHG dl, dh"
  Debug "  !XCHG dh, dl"
  Debug "  !XCHG bl, bh"
  Debug "  !XCHG bh, bl"
  Debug "  !XCHG cl, ch"
  Debug "  !XCHG ch, cl"
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP Esp"
    Debug "  !NOP Esp"
  Next
  For Loop=1 To 32
    Debug "  !BLSR Esp, Esp"
  Next
  Debug "  !BZHI Esp, Esp, Esp"
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Debug "  !MOVQ Rsp, mm7"
  Debug "  !EMMS"
EndMacro

Macro FXCACHE
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
EndMacro
  
Macro FXSAVE
  ;   Debug "  !MOV R8, QWORD [p_FXSAVE]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !FXSAVE64 [R8]"
EndMacro

Macro FXRSTOR
  ; Debug "    !MOV R8, QWORD [p_FXSAVE] "
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !FXRSTOR64 [R8]"
EndMacro

Macro FX_WORD_REVERSE
  For Loop=0 To 510 Step 2
    Debug "  !NOT WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP" ; ## Don't remove this lines ##
    Debug "  !FNOP" ; ## Don't remove this lines ##
  Next
  For Loop=0 To 510 Step 2
    Debug "  !NOP WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP" ; ## Don't remove this lines ##
    Debug "  !FNOP" ; ## Don't remove this lines ##
  Next  
EndMacro

Macro FX_DWORD_REVERSE
  For Loop=0 To 508 Step 4
    Debug "  !NOT DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP" ; ## Don't remove this lines ##
    Debug "  !FNOP" ; ## Don't remove this lines ##
  Next
  For Loop=0 To 508 Step 4
    Debug "  !NOP DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP" ; ## Don't remove this lines ##
    Debug "  !FNOP" ; ## Don't remove this lines ##
  Next  
EndMacro

Macro FX_QWORD_REVERSE
  For Loop=0 To 504 Step 8
    Debug "  !NOT QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP" ; ## Don't remove this lines ##
    Debug "  !FNOP" ; ## Don't remove this lines ##
  Next
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP" ; ## Don't remove this lines ##
    Debug "  !FNOP" ; ## Don't remove this lines ##
  Next  
EndMacro

Macro FXCLEAR_ALL
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ;   Debug "  !MOV R8, QWORD [p_FXSAVE2]"
  For Loop=-512 To -8 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
  For Loop=512 To 1023 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  Debug "  !EMMS"
EndMacro

Macro FXCLEAR_512
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ;   Debug "  !MOV R8, QWORD [p_FXSAVE2]"
  For Loop=0 To 504 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
  Debug "  !EMMS"
EndMacro

Debug "  Set_CL64"
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CALL QWORD Sleep"
Debug "  !NOP QWORD [Rip-32]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"

Debug "  Global *FXSAVE, *FXSAVE2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !SHL R8, cl" ; 16,384
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL R8, cl" ; 8,192
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !MOV al, al"
Debug "  !MOV ah, ah"
Debug "  !MOV ax, ax"
Debug "  !MOV Rax, Rax"
Debug "  !ADD Rax, R8"
Debug "  !MOVNTI QWORD [p_FXSAVE], Rax"
Debug "  !NOP QWORD [p_FXSAVE]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE]"
FXCLEAR_ALL
FX_WORD_REVERSE
FXCLEAR_ALL
FX_DWORD_REVERSE
FXCLEAR_ALL
FX_QWORD_REVERSE
FXCLEAR_ALL
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !SHL R8, cl" ; 16,384
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL R8, cl" ; 8,192
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !MOV al, al"
Debug "  !MOV ah, ah"
Debug "  !MOV ax, ax"
Debug "  !MOV Rax, Rax"
Debug "  !ADD Rax, R8"
Debug "  !MOVNTI QWORD [p_FXSAVE2], Rax"
Debug "  !NOP QWORD [p_FXSAVE2]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE2]"
FXCLEAR_ALL
FX_WORD_REVERSE
FXCLEAR_ALL
FX_DWORD_REVERSE
FXCLEAR_ALL
FX_QWORD_REVERSE
FXCLEAR_ALL
  
;- Start
Debug ";- PureBasicStart"
BeforeProcedureRegisters_RDSEED_SHR
Debug "If OpenConsole("+Chr(34)+"MajiorityLabyrinth 6 setup To General-purpose 64-bit registers."+Chr(34)+")"
Debug "  Set_CL1"
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CALL QWORD BlockInput"
Debug "  !NOP QWORD [Rip-32]"
Debug "  Set_CL64"
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CALL QWORD Sleep"
Debug "  !NOP QWORD [Rip-32]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  PrintN("+Chr(34)+"Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa) 444-3174"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"-"+Chr(34)+")"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !StartStabilizer:"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  PrintN("+Chr(34)+"Instruction CPU cache to TimeAPI ProfileAPI for multimedia timer."+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 1... NOP Reg32 BLSRx32 CPU reg. Expressions"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 2... MOVBE BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 3... CRC32 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 4... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 5... Logical to Physical CPU reg. Balancer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"[Loop 29 times] ... Setup + FXSAVE64 sleep_(sine wave) ...[End] FXRSTOR64"+Chr(34)+")"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Global SineWave.i, SineBits.i, SineAngels.i, CountBits.i, CountChk.i
; totalWave = 19,356 ms
For SineAngels=1 To 178 Step 6
  CountChk = 0
  Debug "  ; "+Str(SineAngels)+" Setup"
  BeforeProcedureRegisters_NOP_EAX_BLSR
  BeforeProcedureRegisters_NOP_ESP_BLSR
  BeforeProcedureRegisters_MOVBE_BLSR
  BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_RDSEED_BLSR
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Debug "    !MOV R8, QWORD [p_FXSAVE] "
  FXCACHE
  FXSAVE
  FXCACHE
  Debug "  BLSR_Rcx_x64"
  Debug "  BLSR_R8_x64"
  SineWave = Abs(Round(Sin(Radian(SineAngels))*1000, #PB_Round_Nearest))
  !MOV Rax, [v_SineWave]
  !MOV R8, Rax
  !MOV [v_SineBits], R8
  Debug "; "+Str(SineWave)
  totalWave.i + SineWave
  Debug  "  !INC cl"
  For CountBits=63 To 1 Step -1
    If SineBits&(2<<CountBits)
      CountChk+1
      Debug  "  !INC R8b"
      Debug  "  !SHL R8, cl"
    ElseIf CountChk
      Debug  "  !SHL R8, cl"
    EndIf  
  Next
  If SineBits&2
    Debug  "  !INC R8b"
    Debug  "  !SHL R8, cl"
  Else
    Debug  "  !SHL R8, cl"
  EndIf  
  If SineBits&1
    Debug  "  !INC R8b"
  EndIf
  Debug "  !MOV cl, R8b"
  Debug "  !MOV cx, R8w"
  Debug "  !MOV Rcx, R8"
  Debug "  !NOP QWORD [Rip+16]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !CALL QWORD Sleep"
  Debug "  !NOP QWORD [Rip-32]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  !RDRAND Rcx
  !ROL Rcx, 1
  !ROL Rcx, 1
  !CALL QWORD PB_RandomSeed
  RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
Next
SortList(Reg64(), #PB_Sort_Ascending)
SortList(Reg64A(), #PB_Sort_Ascending)
SortList(Reg64B(), #PB_Sort_Ascending)
BeforeProcedureRegisters_NOP_EAX_BLSR
BeforeProcedureRegisters_NOP_ESP_BLSR
BeforeProcedureRegisters_MOVBE_BLSR
BeforeProcedureRegisters_CRC32_BLSR
BeforeProcedureRegisters_RDSEED_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !MOV R8, QWORD [p_FXSAVE]"
FXCACHE
FXRSTOR
Debug "  Swap *FXSAVE2, *FXSAVE"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE]"
FXCLEAR_ALL
FX_WORD_REVERSE
FXCLEAR_ALL
FX_DWORD_REVERSE
FXCLEAR_ALL
FX_QWORD_REVERSE
FXCLEAR_ALL
FXCACHE
Debug "  PrintN("+Chr(34)+"Finished"+Chr(34)+")"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !JMP QWORD StartStabilizer"
Debug "  CloseConsole()"
Debug "EndIf"
Debug "BlockInput_(0)"
Debug "Sleep_(0)"
Debug "AllocateMemory(0,0)"
Debug "IncludeFile "+Chr(34)+"CPUcache_MacroSentence_MC222.pbi"+Chr(34)
Debug "End"
CallDebugger
End
Filename "CPUcache_MacroSentence_MC222.pbi"

Code: Select all

Macro CPUcache_timeGetTime_Sentence
  timeBeginPeriod_(0)
  timeEndPeriod_(0)
  timeGetTime_()
  timeGetDevCaps_(0,0)
  timeGetSystemTime_(0,0)
  QueryPerformanceCounter_(0)
  QueryPerformanceFrequency_(0)
EndMacro
CPUcache_timeGetTime_Sentence
Macro CPUcache_SmallSize_Sentence
  FlushFileBuffers_(0)
  GetFileSize_(0,0)
  GetFileTime_(0,0,0,0)
  GetFileType_(0)
  ReadFile_(0,0,0,0,0)
  ReadFileEx_(0,0,0,0,0)
  SetFilePointer_(0,0,0,0)
  SetFileTime_(0,0,0,0)
  WriteFile_(0,0,0,0,0)
  WriteFileEx_(0,0,0,0,0)
  DisableThreadLibraryCalls_(0)
  FreeLibrary_(0)
  FreeLibraryAndExitThread_(0,0)
  GetProcAddress_(0,0)
  LoadResource_(0,0)
  LockResource_(0)
  FreeResource_(0)
  CreateRemoteThread_(0,0,0,0,0,0,0)
  CreateThread_(0,0,0,0,0,0)
  ExitProcess_(0)
  ExitThread_(0)
  FlushInstructionCache_(0,0,0)
  GetCurrentProcess_()
  GetCurrentProcessId_()
  GetCurrentThread_()
  GetCurrentThreadId_()
  GetExitCodeProcess_(0,0)
  GetExitCodeThread_(0,0)
  GetPriorityClass_(0)
  GetProcessPriorityBoost_(0,0)
  GetProcessShutdownParameters_(0,0)
  GetProcessTimes_(0,0,0,0,0)
  GetProcessVersion_(0)
  GetThreadContext_(0,0)
  GetThreadPriority_(0)
  GetThreadPriorityBoost_(0,0)
  GetThreadTimes_(0,0,0,0,0)
  IsProcessorFeaturePresent_(0)
  OpenProcess_(0,0,0)
  OpenProcessToken_(0,0,0)
  OpenThreadToken_(0,0,0,0)
  ResumeThread_(0)
  SetPriorityClass_(0,0)
  SetProcessPriorityBoost_(0,0)
  SetProcessShutdownParameters_(0,0)
  SetThreadContext_(0,0)
  SetThreadIdealProcessor_(0,0)
  SetThreadPriority_(0,0)
  SetThreadPriorityBoost_(0,0)
  SetThreadToken_(0,0)
  SuspendThread_(0)
  SwitchToThread_()
  TerminateProcess_(0,0)
  TerminateThread_(0,0)
EndMacro
CPUcache_SmallSize_Sentence
Macro CPUcache_MC220_Sentence
  FreeLibraryAndExitThread_(0, 0)
  GetLastError_()
  GetModuleHandle_(0)
  FreeLibrary_(0)
  GetProcAddress_(0, 0)
  LoadLibrary_(0)
  LoadLibraryEx_(0, 0, 0)
  GetSysColor_(0)
  WindowFromPoint_(0)
  IsWindow_(0)
  IsWindowEnabled_(0)
  IsWindowUnicode_(0)
  IsWindowVisible_(0)
  GetWindowThreadProcessId_(0, 0)
  GetProp_(0, 0)
  GetParent_(0)
  GetMessageExtraInfo_()
  GetMessagePos_()
  GetMessageTime_()
  GetMessage_(0, 0, 0, 0)
EndMacro
CPUcache_MC220_Sentence
Macro CPUcache_COLOR_Sentence
  AnimatePalette_(0,0,0,0)
  CreateHalftonePalette_(0)
  CreatePalette_(0)
  GetColorAdjustment_(0,0)
  GetEnhMetaFilePaletteEntries_(0,0,0)
  GetNearestPaletteIndex_(0,0)
  GetPaletteEntries_(0,0,0,0)
  GetSystemPaletteEntries_(0,0,0,0)
  GetSystemPaletteUse_(0)
  RealizePalette_(0)
  ResizePalette_(0,0)
  SelectPalette_(0,0,0)
  SetColorAdjustment_(0,0)
  SetPaletteEntries_(0,0,0,0)
  SetSystemPaletteUse_(0,0)
  wglGetLayerPaletteEntries_(0,0,0,0,0)
  wglRealizeLayerPalette_(0,0,0)
  wglSetLayerPaletteEntries_(0,0,0,0,0)
  UnrealizeObject_(0)
  UpdateColors_(0)
EndMacro
CPUcache_COLOR_Sentence
1. run
2. output "clipboard text"
3. paste New tab
4. cpu optimize MMX and CONSOLE set
5. remove message
6. run
User avatar
Mindphazer
Enthusiast
Enthusiast
Posts: 456
Joined: Mon Sep 10, 2012 10:41 am
Location: Savoie

Re: Japanese ANIME quality up on streming

Post by Mindphazer »

Every post from oryaaaaa is a deep mystery to me :mrgreen:
MacBook Pro 16" M4 Pro - 24 Gb - MacOS 15.4.1 - Iphone 15 Pro Max - iPad at home
...and unfortunately... Windows at work...
User avatar
oryaaaaa
Addict
Addict
Posts: 825
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Re: Japanese ANIME quality up on streming

Post by oryaaaaa »

I am very tired, Please next world's best programmer keep to me.

CPU improve technique list

1. SIMPLE_MOVE_REGISTERS_Up_and_Down before startup process
this codes is setup after startup process, recommend setup after "PureBasicStart:"

2. Bit reverse call Sleep_ API
this tips is keep correct clocks over than re-clock process.

3. Burn-in CPUID inside
Please setup BIOS, PCIE bus set Gen2 mode.

and You should use 8K HDMI 2.1 OFC cable 5.0m , don't use "1.0m 2.0m 3.0m"

LIMIT BREAK
; Limit break follows line
; RefreshCPUinside("!MOV Eax, "+Str(loop+$80000000), "!CPUID")

; Limit break follows line
; Data.q 4096, 8191, 8192, 16383, 8192, 8191, 4096, 4095

Code: Select all

Global NewList Buffer.s()
Macro Dabuga
  AddElement(Buffer()) : Buffer() =
EndMacro
Filename$ = "SIMPLE_MOVE_REGISTERS_Up_and_Down_4000.pbi"

Dabuga "; MajiorityVideo (2024 10 03) ML26"
Dabuga "; RDSEED CRC32 BLSRx64 BZHI CPU reg. Stabilizer from JAPAN"
Dabuga "; Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa) 444-3174"
Dabuga "; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)"
Dabuga ""
Dabuga "MessageRequester("+Chr(34)+"END"+Chr(34)+","+Chr(34)+"Compiler options Executable Format Console And CPU With MMX"+Chr(34)+") : End"
Dabuga ""
If FileSize(Filename$)>0
  Dabuga "IncludeFile "+Chr(34)+Filename$+Chr(34)
EndIf
!extrn PB_RandomSeed

; ; ; ; ; ; ; ; Intel® 64 And IA-32 ArchitecturesSoftware Developer’s Manual
; ; ; ; ; ; ; ; Volume 2 (2A, 2B, 2C, & 2D):Instruction Set Reference, A-Z
; ; ; ; ; ; ; ; Opcode Column in the Instruction Summary Table (Instructions without VEX Prefix)
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; ALNone0AXNone0EAXNone0RAXNone0
; ; ; ; ; ; ; ; DLNone2DXNone2EDXNone2RDXNone2
; ; ; ; ; ; ; ; SPLYes 4SPNone4ESPNone4RSPNone4
; ; ; ; ; ; ; ; SILYes6SINone6ESINone6RSINone6
; ; ; ; ; ; ; ; R8BYes0R8WYes0R8DYes0R8Yes0
; ; ; ; ; ; ; ; R10BYes2R10WYes2R10DYes2R10Yes2
; ; ; ; ; ; ; ; R12BYes4R12WYes4R12DYes4R12Yes4
; ; ; ; ; ; ; ; R14BYes6R14WYes6R14DYes6R14Yes6
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; CLNone1CXNone1ECXNone1RCXNone1
; ; ; ; ; ; ; ; BLNone3BXNone3EBXNone3RBXNone3
; ; ; ; ; ; ; ; BPLYes5BPNone5EBPNone5RBPNone5
; ; ; ; ; ; ; ; DILYes7DINone7EDINone7RDINone7
; ; ; ; ; ; ; ; R9BYes1R9WYes1R9DYes1R9Yes1
; ; ; ; ; ; ; ; R11BYes3R11WYes3R11DYes3R11Yes3
; ; ; ; ; ; ; ; R13BYes5R13WYes5R13DYes5R13Yes5
; ; ; ; ; ; ; ; R15BYes7R15WYes7R15DYes7R15Yes7

; ; ; ; ; ; ; ; EAX/AX/AL/MM0/XMM0
; ; ; ; ; ; ; ; ECX/CX/CL/MM1/XMM1
; ; ; ; ; ; ; ; EDX/DX/DL/MM2/XMM2
; ; ; ; ; ; ; ; EBX/BX/BL/MM3/XMM3
; ; ; ; ; ; ; ; ESP/SP/AH/MM4/XMM4
; ; ; ; ; ; ; ; EBP/BP/CH/MM5/XMM5
; ; ; ; ; ; ; ; ESI/SI/DH/MM6/XMM6
; ; ; ; ; ; ; ; EDI/DI/BH/MM7/XMM7

; ; ; ; ; ; ; ; Table 2-8.  VEX.vvvv To register name mapping
; ; ; ; ; ; ; ; 1111B XMM0/YMM0 RAX/EAXValid
; ; ; ; ; ; ; ; 1110B XMM1/YMM1 RCX/ECXValid
; ; ; ; ; ; ; ; 1101B XMM2/YMM2 RDX/EDXValid
; ; ; ; ; ; ; ; 1100B XMM3/YMM3 RBX/EBXValid
; ; ; ; ; ; ; ; 1011B XMM4/YMM4 RSP/ESPValid
; ; ; ; ; ; ; ; 1010B XMM5/YMM5 RBP/EBPValid
; ; ; ; ; ; ; ; 1001B XMM6/YMM6 RSI/ESIValid
; ; ; ; ; ; ; ; 1000B XMM7/YMM7 RDI/EDIValid
; ; ; ; ; ; ; ; 0111B XMM8/YMM8 R8/R8DInvalid
; ; ; ; ; ; ; ; 0110B XMM9/YMM9 R9/R9DInvalid
; ; ; ; ; ; ; ; 0101B XMM10/YMM10 R10/R10DInvalid
; ; ; ; ; ; ; ; 0100B XMM11/YMM11 R11/R11DInvalid
; ; ; ; ; ; ; ; 0011B XMM12/YMM12 R12/R12DInvalid
; ; ; ; ; ; ; ; 0010B XMM13/YMM13 R13/R13DInvalid
; ; ; ; ; ; ; ; 0001B XMM14/YMM14 R14/R14DInvalid
; ; ; ; ; ; ; ; 0000B XMM15/YMM15 R15/R15DInvalid

Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R8" : AddElement(Reg64A()) : Reg64A() ="R10"
AddElement(Reg64A()) : Reg64A() ="R12" : AddElement(Reg64A()) : Reg64A() ="R14"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R9" : AddElement(Reg64B()) : Reg64B() ="R11"
AddElement(Reg64B()) : Reg64B() ="R13" : AddElement(Reg64B()) : Reg64B() ="R15"

!RDRAND Rcx
!ROR Rcx, 1
!ROR Rcx, 1
!CALL QWORD PB_RandomSeed
RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

ForEach Reg64()
  Dabuga "Macro BLSR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Dabuga "  !BLSR "+Reg64()+", "+Reg64()
  Next
  Dabuga "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Dabuga "EndMacro"
  Dabuga ""
Next

ForEach Reg64()
  Dabuga "Macro SHR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Dabuga "  !SHR "+Reg64()+", 1"
  Next
  Dabuga "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Dabuga "EndMacro"
  Dabuga ""
Next

ForEach Reg64()
  Dabuga "Macro MOV_"+Reg64()+"_Up_Down"
  Dabuga "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  If Len(Reg8(Reg64()))=2
    Dabuga "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Dabuga "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  Dabuga "  !MOV "+Reg64()+", "+Reg64()
  Dabuga "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  If Len(Reg8(Reg64()))=2
    Dabuga "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Dabuga "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  Dabuga "EndMacro"
  Dabuga ""
Next

Dabuga "Macro Set_CL1"
Dabuga "  BLSR_Rcx_x64"
Dabuga "  !INC cl"
Dabuga "  ; cx = 1"
Dabuga "EndMacro"
Dabuga ""
Dabuga "Macro Set_CL8"
Dabuga "  BLSR_Rcx_x64"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !SHL cl, cl"
Dabuga "  ; cx = 8"
Dabuga "EndMacro"
Dabuga ""
Dabuga "Macro Set_CL64"
Dabuga "  BLSR_Rcx_x64"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !SHL cl, cl"
Dabuga "  ; cx = 64"
Dabuga "EndMacro"
Dabuga ""
Dabuga "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Dabuga "  BLSR_Rcx_x64"
Dabuga "  Set_CL1"
Dabuga "  MOVZX_Rcx"
Dabuga "  !MOVQ mm1, Rcx"
For Loop=1 To 16
  Dabuga "  !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift"
Next
Dabuga "  !MOVQ mm0, mm1"
For Roop=1 To 7
  For Loop=1 To 16
    Dabuga "  !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift"
  Next
Next
Dabuga "EndMacro"
Dabuga ""

Global SIMPLE_Count.i
Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
  RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64A()
    Dabuga  "!MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
    If Len(Reg8(Reg64A()))=2
      Dabuga "!MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    Dabuga "!MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    Dabuga "!MOV "+Reg64A()+", "+Reg64A()
    Dabuga "!MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    If Len(Reg8(Reg64A()))=2
      Dabuga "!MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    Dabuga "!MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
  Next
  ForEach Reg64B()
    Dabuga  "!MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
    If Len(Reg8(Reg64B()))=2
      Dabuga "!MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    Dabuga "!MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    Dabuga "!MOV "+Reg64B()+", "+Reg64B()
    Dabuga "!MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    If Len(Reg8(Reg64B()))=2
      Dabuga "!MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    Dabuga "!MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
  Next
EndMacro

Dabuga "Macro MOVZX_Rcx"
Dabuga "  !MOVZX cx, cl"
Dabuga "  !MOVZX Rcx, cl"
Dabuga "  !MOVZX cx, cl"
Dabuga "EndMacro"
Dabuga ""

Macro BeforeProcedureRegisters_1st
  Dabuga "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Loop=0
  ForEach Reg64A() : Dabuga "  !MOVQ mm"+Str(Loop)+", "+Reg64A() : Loop + 1 : Next
  Dabuga "!MOVQ mm0, mm0"
  Dabuga "!MOVQ mm1, mm1"
  Dabuga "!MOVQ mm2, mm2"
  Dabuga "!MOVQ mm3, mm3"
  Dabuga "!MOVQ mm4, mm4"
  Dabuga "!MOVQ mm5, mm5"
  Dabuga "!MOVQ mm6, mm6"
  Dabuga "!MOVQ mm7, mm7"
 EndMacro
 
Macro BeforeProcedureRegisters_2nd
  Loop=0
  Dabuga "!MOVQ mm0, mm0"
  Dabuga "!MOVQ mm1, mm1"
  Dabuga "!MOVQ mm2, mm2"
  Dabuga "!MOVQ mm3, mm3"
  Dabuga "!MOVQ mm4, mm4"
  Dabuga "!MOVQ mm5, mm5"
  Dabuga "!MOVQ mm6, mm6"
  Dabuga "!MOVQ mm7, mm7"
  ForEach Reg64A() : Dabuga "  !MOVQ "+Reg64A()+", mm"+Str(Loop) : Loop + 1 : Next
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Loop=0
  ForEach Reg64B() : Dabuga "  !MOVQ mm"+Str(Loop)+", "+Reg64B() : Loop + 1 : Next
  Dabuga "!MOVQ mm0, mm0"
  Dabuga "!MOVQ mm1, mm1"
  Dabuga "!MOVQ mm2, mm2"
  Dabuga "!MOVQ mm3, mm3"
  Dabuga "!MOVQ mm4, mm4"
  Dabuga "!MOVQ mm5, mm5"
  Dabuga "!MOVQ mm6, mm6"
  Dabuga "!MOVQ mm7, mm7"
EndMacro

Macro BeforeProcedureRegisters_3rd
  Loop=0
  Dabuga "!MOVQ mm0, mm0"
  Dabuga "!MOVQ mm1, mm1"
  Dabuga "!MOVQ mm2, mm2"
  Dabuga "!MOVQ mm3, mm3"
  Dabuga "!MOVQ mm4, mm4"
  Dabuga "!MOVQ mm5, mm5"
  Dabuga "!MOVQ mm6, mm6"
  Dabuga "!MOVQ mm7, mm7"
  ForEach Reg64B() : Dabuga "  !MOVQ "+Reg64B()+", mm"+Str(Loop) : Loop + 1 : Next
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Dabuga "  !EMMS"
EndMacro

Macro BeforeProcedureRegisters_RDSEED_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !RDSEED "+Reg64A()
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !RDSEED "+Reg64B()
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !CRC32 "+Reg64A()+", QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !CRC32 "+Reg64B()+", QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_MOVBE_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !MOVBE "+Reg64A()+", QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !MOVBE "+Reg64B()+", QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_RDSEED_SHR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !RDSEED "+Reg64A()
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  SHR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Dabuga "  !NOP QWORD [Rip+16]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !RDSEED "+Reg64B()
    Dabuga "  !NOP QWORD [Rip-36]"
    Dabuga "  SHR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_NOP_EAX_BLSR
  For Loop=1 To 32
    Dabuga "  !BLSR Eax, Eax"
  Next
  Dabuga "  !BZHI Eax, Eax, Eax"
  For Loop=1 To 64
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP ax"
    Dabuga "  !NOP ax"
  Next
  For Loop=1 To 64
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP Eax"
    Dabuga "  !NOP Eax"
  Next
  For Loop=1 To 32
    Dabuga "  !BLSR Eax, Eax"
  Next
  Dabuga "  !BZHI Eax, Eax, Eax"
EndMacro

Macro BeforeProcedureRegisters_NOP_ESP_BLSR
  Dabuga "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Dabuga "!MOVQ mm5, Rsp"
  Dabuga "!MOVQ mm5, mm5"
  For Loop=1 To 32
    Dabuga "  !BLSR Esp, Esp"
  Next
  Dabuga "  !BZHI Esp, Esp, Esp"
  For Loop=1 To 64
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP sp"
    Dabuga "  !NOP sp"
  Next
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !XCHG bl, bh"
  Dabuga "  !XCHG bh, bl"
  Dabuga "  !XCHG cl, ch"
  Dabuga "  !XCHG ch, cl"
  Dabuga "  !XCHG al, ah"
  Dabuga "  !XCHG ah, al"
  Dabuga "  !XCHG dl, dh"
  Dabuga "  !XCHG dh, dl"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !XCHG spl, spl"
  Dabuga "  !MOVQ mm1, mm5"
  Dabuga "  !MOVQ mm2, mm1"
  Dabuga "  !MOVQ mm3, mm2"
  Dabuga "  !MOVQ mm4, mm3"
  Dabuga "  !MOVQ mm6, mm4"
  Dabuga "  !MOVQ mm7, mm6"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !XCHG al, ah"
  Dabuga "  !XCHG ah, al"
  Dabuga "  !XCHG dl, dh"
  Dabuga "  !XCHG dh, dl"
  Dabuga "  !XCHG bl, bh"
  Dabuga "  !XCHG bh, bl"
  Dabuga "  !XCHG cl, ch"
  Dabuga "  !XCHG ch, cl"
  For Loop=1 To 64
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP QWORD [Rip]"
    Dabuga "  !NOP Esp"
    Dabuga "  !NOP Esp"
  Next
  For Loop=1 To 32
    Dabuga "  !BLSR Esp, Esp"
  Next
  Dabuga "  !BZHI Esp, Esp, Esp"
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Dabuga "  !MOVQ Rsp, mm7"
  Dabuga "  !EMMS"
EndMacro

Macro FXCACHE
  For Loop=0 To 504 Step 8
    Dabuga "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
EndMacro
  
Macro FXSAVE
  ;   Dabuga "  !MOV R8, QWORD [p_FXSAVE]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !FXSAVE64 [R8]"
EndMacro

Macro FXRSTOR
  ; Dabuga "    !MOV R8, QWORD [p_FXSAVE] "
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !FXRSTOR64 [R8]"
EndMacro

Macro FX_WORD_REVERSE
  For Loop=-512 To -8 Step 8
    Dabuga "  !NOT WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Dabuga "  !FNOP"
    Dabuga "  !FNOP"
  Next
  For Loop=-512 To -8 Step 8
    Dabuga "  !NOP WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Dabuga "  !FNOP"
    Dabuga "  !FNOP"
  Next  
EndMacro

Macro FX_DWORD_REVERSE
  For Loop=512 To 1016 Step 8
    Dabuga "  !NOT DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Dabuga "  !FNOP"
    Dabuga "  !FNOP"
  Next
  For Loop=512 To 1016 Step 8
    Dabuga "  !NOP DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Dabuga "  !FNOP"
    Dabuga "  !FNOP"
  Next  
EndMacro

Macro FX_QWORD_REVERSE
  For Loop=0 To 504 Step 8
    Dabuga "  !NOT QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Dabuga "  !FNOP"
    Dabuga "  !FNOP"
  Next
  For Loop=0 To 504 Step 8
    Dabuga "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Dabuga "  !FNOP"
    Dabuga "  !FNOP"
  Next  
EndMacro

Macro FXCLEAR_ALL
  Dabuga "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ;   Dabuga "  !MOV R8, QWORD [p_FXSAVE2]"
  For Loop=-512 To -8 Step 8
    Dabuga "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Dabuga "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Dabuga "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
  For Loop=512 To 1016 Step 8
    Dabuga "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  Dabuga "  !EMMS"
EndMacro

Macro FXCLEAR_512
  Dabuga "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ;   Dabuga "  !MOV R8, QWORD [p_FXSAVE2]"
  For Loop=0 To 504 Step 8
    Dabuga "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Dabuga "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
  Dabuga "  !EMMS"
EndMacro

Macro RefreshCPUinside(Instruction1, Instruction2)
  For RefreshCPUID_no.i=5 To 32
;     Dabuga ";- "+Str(Val("%"+LSet("1", RefreshCPUID_no, "0"))) + " | " + Str(Val("%"+LSet("1", RefreshCPUID_no, "1")))
    RefreshCPUIDval.i = Val("%"+LSet("1", RefreshCPUID_no, "0"))
    RefreshCPUIDbits.i = RefreshCPUIDval
    RefreshCPUIDchk.i = 0
    RefreshCPUIDcount.i = 0
    Dabuga "  BLSR_Rcx_x64"
    Dabuga "  BLSR_R8_x64"
    !MOV Rax, [v_RefreshCPUIDval]
    !MOV R8, Rax
    !MOV [v_RefreshCPUIDbits], R8
    Dabuga "  !INC cl"
    For RefreshCPUIDcount=31 To 1 Step -1
      If RefreshCPUIDbits&(2<<RefreshCPUIDcount)
        RefreshCPUIDchk+1
        Dabuga "  !INC R8b"
        Dabuga "  !SHL R8d, cl"
      ElseIf RefreshCPUIDchk
        Dabuga "  !SHL R8d, cl"
      EndIf  
    Next
    If RefreshCPUIDbits&2
      Dabuga "  !INC R8b"
      Dabuga "  !SHL R8d, cl"
    Else
      Dabuga "  !SHL R8d, cl"
    EndIf  
    If RefreshCPUIDbits&1
      Dabuga "  !INC R8b"
    EndIf
    Dabuga "  !MOV bl, R8b"
    Dabuga "  !MOV bx, R8w"
    Dabuga "  !MOV Ebx, R8d"
    Dabuga "  !MOV bl, bl"
    Dabuga "  !MOV bh, bh"
    Dabuga "  !MOV bx, bx"
    Dabuga "  !MOV Ebx, Ebx"
    Dabuga "  !MOV cl, R8b"
    Dabuga "  !MOV cx, R8w"
    Dabuga "  !MOV Ecx, R8d"
    Dabuga "  !MOV cl, cl"
    Dabuga "  !MOV ch, ch"
    Dabuga "  !MOV cx, cx"
    Dabuga "  !MOV Ecx, Ecx"
    Dabuga "  !MOV al, R8b"
    Dabuga "  !MOV ax, R8w"
    Dabuga "  !MOV Eax, R8d"
    Dabuga "  !MOV al, al"
    Dabuga "  !MOV ah, ah"
    Dabuga "  !MOV ax, ax"
    Dabuga "  !MOV Eax, Eax"
    Dabuga "  !MOV dl, R8b"
    Dabuga "  !MOV dx, R8w"
    Dabuga "  !MOV Edx, R8d"
    Dabuga "  !MOV dl, dl"
    Dabuga "  !MOV dh, dh"
    Dabuga "  !MOV dx, dx"
    Dabuga "  !MOV Edx, Edx"
    Dabuga Instruction1
    Dabuga Instruction2
    ;
    RefreshCPUIDval.i = Val("%"+LSet("1", RefreshCPUID_no, "1"))
    RefreshCPUIDbits.i = RefreshCPUIDval
    RefreshCPUIDchk.i = 0
    RefreshCPUIDcount.i = 0
    Dabuga "  BLSR_Rcx_x64"
    Dabuga "  BLSR_R8_x64"
    !MOV Rax, [v_RefreshCPUIDval]
    !MOV R8, Rax
    !MOV [v_RefreshCPUIDbits], R8
    Dabuga "  !INC cl"
    For RefreshCPUIDcount=31 To 1 Step -1
      If RefreshCPUIDbits&(2<<RefreshCPUIDcount)
        RefreshCPUIDchk+1
        Dabuga "  !INC R8b"
        Dabuga "  !SHL R8d, cl"
      ElseIf RefreshCPUIDchk
        Dabuga "  !SHL R8d, cl"
      EndIf  
    Next
    If RefreshCPUIDbits&2
      Dabuga "  !INC R8b"
      Dabuga "  !SHL R8d, cl"
    Else
      Dabuga "  !SHL R8d, cl"
    EndIf  
    If RefreshCPUIDbits&1
      Dabuga "  !INC R8b"
    EndIf
    Dabuga "  !MOV bl, R8b"
    Dabuga "  !MOV bx, R8w"
    Dabuga "  !MOV Ebx, R8d"
    Dabuga "  !MOV bl, bl"
    Dabuga "  !MOV bh, bh"
    Dabuga "  !MOV bx, bx"
    Dabuga "  !MOV Ebx, Ebx"
    Dabuga "  !MOV cl, R8b"
    Dabuga "  !MOV cx, R8w"
    Dabuga "  !MOV Ecx, R8d"
    Dabuga "  !MOV cl, cl"
    Dabuga "  !MOV ch, ch"
    Dabuga "  !MOV cx, cx"
    Dabuga "  !MOV Ecx, Ecx"
    Dabuga "  !MOV al, R8b"
    Dabuga "  !MOV ax, R8w"
    Dabuga "  !MOV Eax, R8d"
    Dabuga "  !MOV al, al"
    Dabuga "  !MOV ah, ah"
    Dabuga "  !MOV ax, ax"
    Dabuga "  !MOV Eax, Eax"
    Dabuga "  !MOV dl, R8b"
    Dabuga "  !MOV dx, R8w"
    Dabuga "  !MOV Edx, R8d"
    Dabuga "  !MOV dl, dl"
    Dabuga "  !MOV dh, dh"
    Dabuga "  !MOV dx, dx"
    Dabuga "  !MOV Edx, Edx"
    Dabuga Instruction1
    Dabuga Instruction2
  Next  
EndMacro

Dabuga ";- PureBasicStart"
Dabuga "; Procedure MajiorityLabyrinth2(*dummy)"
Dabuga "; MajiorityVideo (2024 10 03) ML26"
Dabuga "; RDSEED CRC32 BLSRx64 BZHI CPU reg. Stabilizer from JAPAN"
Dabuga "; Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa) 444-3174"
Dabuga "; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)"
Dabuga ""
For loop=0 To 16
  RefreshCPUinside("!MOV Eax, "+Str(loop), "!CPUID")
Next
Dabuga "  Set_CL64"
Dabuga "  !NOP QWORD [Rip+16]"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !CALL QWORD Sleep"
Dabuga "  !NOP QWORD [Rip-32]"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !NOP QWORD [Rip]"

Dabuga "  Global *FXSAVE, *FXSAVE2"
Dabuga "  BLSR_Rcx_x64"
Dabuga "  BLSR_Rdx_x64"
Dabuga "  BLSR_R8_x64"
Dabuga "  !INC R8b"
Dabuga "  !INC R8b"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !MOV R8b, R8b"
Dabuga "  !MOV R8w, R8w"
Dabuga "  !MOV R8, R8"
Dabuga "  !SHL R8, cl" ; 16,384
Dabuga "  !XCHG Rcx, R8"
Dabuga "  !INC dl"
Dabuga "  !MOVZX Rdx, dl"
Dabuga "  !CALL PB_AllocateMemory2"
Dabuga "  BLSR_Rcx_x64"
Dabuga "  BLSR_R8_x64"
Dabuga "  !INC R8b"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !SHL R8, cl" ; 8,192
Dabuga "  !MOV R8b, R8b"
Dabuga "  !MOV R8w, R8w"
Dabuga "  !MOV R8, R8"
Dabuga "  !MOV al, al"
Dabuga "  !MOV ah, ah"
Dabuga "  !MOV ax, ax"
Dabuga "  !MOV Rax, Rax"
Dabuga "  !ADD Rax, R8"
Dabuga "  !MOVNTI QWORD [p_FXSAVE], Rax"
Dabuga "  !NOP QWORD [p_FXSAVE]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Dabuga "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Dabuga "  !MOV R8, QWORD [p_FXSAVE]"
FXCLEAR_ALL
FX_WORD_REVERSE
FX_DWORD_REVERSE
FX_QWORD_REVERSE
FXCLEAR_ALL
Dabuga "  BLSR_Rcx_x64"
Dabuga "  BLSR_Rdx_x64"
Dabuga "  BLSR_R8_x64"
Dabuga "  !INC R8b"
Dabuga "  !INC R8b"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !MOV R8b, R8b"
Dabuga "  !MOV R8w, R8w"
Dabuga "  !MOV R8, R8"
Dabuga "  !SHL R8, cl" ; 16,384
Dabuga "  !XCHG Rcx, R8"
Dabuga "  !INC dl"
Dabuga "  !MOVZX Rdx, dl"
Dabuga "  !CALL PB_AllocateMemory2"
Dabuga "  BLSR_Rcx_x64"
Dabuga "  BLSR_R8_x64"
Dabuga "  !INC R8b"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !INC cl"
Dabuga "  !SHL R8, cl" ; 8,192
Dabuga "  !MOV R8b, R8b"
Dabuga "  !MOV R8w, R8w"
Dabuga "  !MOV R8, R8"
Dabuga "  !MOV al, al"
Dabuga "  !MOV ah, ah"
Dabuga "  !MOV ax, ax"
Dabuga "  !MOV Rax, Rax"
Dabuga "  !ADD Rax, R8"
Dabuga "  !MOVNTI QWORD [p_FXSAVE2], Rax"
Dabuga "  !NOP QWORD [p_FXSAVE2]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Dabuga "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Dabuga "  !MOV R8, QWORD [p_FXSAVE2]"
FXCLEAR_ALL
FX_WORD_REVERSE
FX_DWORD_REVERSE
FX_QWORD_REVERSE
FXCLEAR_ALL
  
;- Start
Dabuga ";- PureBasicStart"
BeforeProcedureRegisters_RDSEED_SHR
Dabuga ";- OpenConsole"
Dabuga "If OpenConsole("+Chr(34)+"MajiorityVideo ML26 setup To General-purpose 64-bit registers."+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Copyright (c) 2020-2024 Hiroyuki Yokota (oryaaaaa) 444-3174"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"-"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Instruction CPU cache to TimeAPI ProfileAPI for multimedia timer."+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Setup 1... Reverse pattern Eax Ebx Ecx Edx 32bits CPUID refresh"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Setup 2... NOP Reg32 BLSRx32 CPU reg. Expressions"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Setup 3... MOVBE BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Setup 4... CRC32 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Setup 5... RDSEED BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"Setup 6... Logical to Physical CPU reg. Balancer"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"[DelayLoop 16 ms to 4095 ms] Total 20,368 ms"+Chr(34)+")"
Dabuga "  PrintN("+Chr(34)+"... Setup + FXSAVE64 sleep_(reverse bits) ...[End] FXRSTOR64"+Chr(34)+")"
Dabuga "  Set_CL64"
Dabuga "  !NOP QWORD [Rip+16]"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !CALL QWORD Sleep"
Dabuga "  !NOP QWORD [Rip-32]"
Dabuga "  CloseConsole()"
BeforeProcedureRegisters_CRC32_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !StartStabilizer:"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !NOP QWORD [Rip]"
SIMPLE_MOVE_REGISTERS_Up_and_Down
For loop=0 To 16
  RefreshCPUinside("!MOV Eax, "+Str(loop), "!CPUID")
  ; Limit break follows line
  ; RefreshCPUinside("!MOV Eax, "+Str(loop+$80000000), "!CPUID")
Next
SIMPLE_MOVE_REGISTERS_Up_and_Down
Global SineWave.i, SineBits.i, CountBits.i, CountChk.i
; totalWave = 20,368 ms
DataSection
  SineData:
  Data.q 16, 31, 32, 63, 64, 127, 128, 255, 256, 511, 512, 1023, 1024, 2047, 2048, 4095
  ; Limit break follows line
  ; Data.q 4096, 8191, 8192, 16383, 8192, 8191, 4096, 4095
  Data.q 2048, 2047, 1024, 1023, 512, 511, 256, 255, 128, 127, 64, 63, 32, 31, 16, -1

;   ; 2024-09-30
;   
;   For no.i=1 To 17
;     Debug Str(Val("%"+LSet("1", no, "0"))) + " | " + Str(Val("%"+LSet("1", no, "1")))
;     Debug LSet("1", no, "0")
;     Debug LSet("1", no, "1")
;   Next
;   
;   1 | 1
;   1
;   1
;   2 | 3
;   10
;   11
;   4 | 7
;   100
;   111
;   8 | 15
;   1000
;   1111
;   16 | 31
;   10000
;   11111
;   32 | 63
;   100000
;   111111
;   64 | 127
;   1000000
;   1111111
;   128 | 255
;   10000000
;   11111111
;   256 | 511
;   100000000
;   111111111
;   512 | 1023
;   1000000000
;   1111111111
;   1024 | 2047
;   10000000000
;   11111111111
;   2048 | 4095
;   100000000000
;   111111111111
;   4096 | 8191
;   1000000000000
;   1111111111111
;   8192 | 16383
;   10000000000000
;   11111111111111
;   16384 | 32767
;   100000000000000
;   111111111111111
;   32768 | 65535
;   1000000000000000
;   1111111111111111
;   65536 | 131071
;   10000000000000000
;   11111111111111111
;   
;   For no.i=1 To 17
;     Debug Str(Val("%"+LSet("1", no, "0"))) + " | " + Str(Val("%"+LSet("1", no, "1")))
;     Debug LSet("1", no, "0")
;     Debug LSet("1", no, "1")
;   Next

EndDataSection
Restore SineData
SineLoop:
Read.q SineWave
If SineWave>0
  CountChk = 0
  Dabuga "  ; "+Bin(SineWave)+" Setup"
  BeforeProcedureRegisters_NOP_EAX_BLSR
  BeforeProcedureRegisters_NOP_ESP_BLSR
  BeforeProcedureRegisters_MOVBE_BLSR
  BeforeProcedureRegisters_CRC32_BLSR
  BeforeProcedureRegisters_RDSEED_BLSR
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Dabuga "    !MOV R8, QWORD [p_FXSAVE] "
  FXCACHE
  FXSAVE
  FXCACHE
  Dabuga "  BLSR_Rcx_x64"
  Dabuga "  BLSR_R8_x64"
  !MOV Rax, [v_SineWave]
  !MOV R8, Rax
  !MOV [v_SineBits], R8
  Dabuga "; "+Str(SineWave)
  totalWave.i + SineWave
  Dabuga "  !INC cl"
  For CountBits=63 To 1 Step -1
    If SineBits&(2<<CountBits)
      CountChk+1
      Dabuga "  !INC R8b"
      Dabuga "  !SHL R8, cl"
    ElseIf CountChk
      Dabuga "  !SHL R8, cl"
    EndIf  
  Next
  If SineBits&2
    Dabuga "  !INC R8b"
    Dabuga "  !SHL R8, cl"
  Else
    Dabuga "  !SHL R8, cl"
  EndIf  
  If SineBits&1
    Dabuga "  !INC R8b"
  EndIf
  Dabuga "  !MOV cl, R8b"
  Dabuga "  !MOV cx, R8w"
  Dabuga "  !MOV Rcx, R8"
  Dabuga "  !NOP QWORD [Rip+16]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !CALL QWORD Sleep"
  Dabuga "  !NOP QWORD [Rip-32]"
  Dabuga "  !NOP QWORD [Rip]"
  Dabuga "  !NOP QWORD [Rip]"
  !RDRAND Rcx
  !ROL Rcx, 1
  !ROL Rcx, 1
  !CALL QWORD PB_RandomSeed
  RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  Goto SineLoop
EndIf
SortList(Reg64(), #PB_Sort_Ascending)
SortList(Reg64A(), #PB_Sort_Ascending)
SortList(Reg64B(), #PB_Sort_Ascending)
BeforeProcedureRegisters_NOP_EAX_BLSR
BeforeProcedureRegisters_NOP_ESP_BLSR
BeforeProcedureRegisters_MOVBE_BLSR
BeforeProcedureRegisters_CRC32_BLSR
BeforeProcedureRegisters_RDSEED_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
Dabuga "  !MOV R8, QWORD [p_FXSAVE]"
FXCACHE
FXRSTOR
Dabuga "  Swap *FXSAVE2, *FXSAVE"
Dabuga "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Dabuga "  !MOV R8, QWORD [p_FXSAVE]"
FXCLEAR_ALL
FX_WORD_REVERSE
FX_DWORD_REVERSE
FX_QWORD_REVERSE
FXCLEAR_ALL
FXCACHE
SIMPLE_MOVE_REGISTERS_Up_and_Down
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !NOP QWORD [Rip]"
Dabuga "  !JMP QWORD StartStabilizer"
Dabuga ";- EndProcedure"
Dabuga "EndIf"
Dabuga "Sleep_(0)"
Dabuga "AllocateMemory(0,0)"
Dabuga "End"

;- File Output
Filename$ = OpenFileRequester("Create CPU Stabilizer PBI", "MajiorityLabyrinth26.pb", "PureBasic Include (*.pb)|*.pb", 0)
If FileSize(Filename$)>0
  If MessageRequester("FILE existed", "Over write?", #PB_MessageRequester_YesNo)=#PB_MessageRequester_No
    End
  EndIf
EndIf
FileNum.i = CreateFile(#PB_Any, Filename$)
If FileNum
  ForEach Buffer()
    WriteStringN(FileNum, Buffer(), #PB_Ascii)
  Next
  WriteStringN(FileNum, "")
  WriteStringN(FileNum, "; IDE Options = PureBasic 6.02 LTS (Windows - x64)")
  WriteStringN(FileNum, "; ExecutableFormat = Console")
  WriteStringN(FileNum, "; CPU = 2")
  CloseFile(FileNum)
EndIf
;- END 216,055 lines
End

Code: Select all

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R8" : AddElement(Reg64A()) : Reg64A() ="R10"
AddElement(Reg64A()) : Reg64A() ="R12" : AddElement(Reg64A()) : Reg64A() ="R14"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R9" : AddElement(Reg64B()) : Reg64B() ="R11"
AddElement(Reg64B()) : Reg64B() ="R13" : AddElement(Reg64B()) : Reg64B() ="R15"

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

Global NewList Buffer.s()
;- Create Source Code ; Loop = 4000
For Loop=1 To 4000
  RandomSeed(Loop)
  RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64A()
    AddElement(Buffer()) : Buffer() =  "MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    AddElement(Buffer()) : Buffer() = "MOV "+Reg64A()+", "+Reg64A()
    AddElement(Buffer()) : Buffer() = "MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
  Next
  ForEach Reg64B()
    AddElement(Buffer()) : Buffer() =  "MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    AddElement(Buffer()) : Buffer() = "MOV "+Reg64B()+", "+Reg64B()
    AddElement(Buffer()) : Buffer() = "MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
  Next
Next
;- File Output
Filename$ = OpenFileRequester("Create CPU Stabilizer PBI", "SIMPLE_MOVE_REGISTERS_Up_and_Down_4000.pbi", "PureBasic Include (*.pbi)|*.pbi", 0)
If FileSize(Filename$)>0
  If MessageRequester("FILE existed", "Over write?", #PB_MessageRequester_YesNo)=#PB_MessageRequester_No
    End
  EndIf
EndIf
FileNum.i = CreateFile(#PB_Any, Filename$)
If FileNum
  ForEach Buffer()
    WriteStringN(FileNum, "!"+Buffer(), #PB_Ascii)
  Next
  CloseFile(FileNum)
EndIf
;- END 352,000 lines
End
; How to test?
; Create "Up_Down_4000.pbi"
; Create "MajiorityLabyrinth26.pb"
; Run "MajiorityLabyrinth26.pb" ( Comment MessageRequester )

Thank you.
User avatar
oryaaaaa
Addict
Addict
Posts: 825
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Re: Japanese ANIME quality up on streming

Post by oryaaaaa »

MajiorityAudio ML68
Console wrote:Copyright (c) 2020-2025 Hiroyuki Yokota (oryaaaaa) 444-3174
-
Instruction CPU cache to TimeAPI FileAPI LibraryAPI ProcessAPI.
Setup 1... Reverse pattern Eax Ebx Ecx Edx 32bits CPUID refresh
Setup 2... NOP Reg32 BLSRx32 CPU reg. Expressions
Setup 3... SMSW16 MOVZX64 BLSRx64 BZHI CPU reg. Stabilizer
Setup 4... Logical to Physical CPU reg. Balancer
[DelayLoop 16 ms to 16383 ms] Total 81,805 ms
... Setup + FXSAVE64 sleep_(reverse bits) ...[End] FXRSTOR64
Setup 7... Logical to Physical 16 bits CPU reg. refresh
-
23:58:31 00:00:59
Google wrote:By improving the state of the CPU registers, it is possible to realize a high-quality ZERO world and a high-quality ZERO world on an ordinary PC, and while it is said to be an unexplored technology, quality improvements have been continued. It has contributed to improving the sales of paid video distribution and paid music distribution, and it also seems to have the effect of extending the life of the PC.

Extremely difficult adjustment work
This is not easy. There are more than 1 million cases worldwide where a brand new PC breaks down in a few seconds if the wrong basis is used. Even if the email address to contact the author is published, the trouble information is lost along the way or nothing is delivered. Instead, I have experienced hell that seems like death by the method of technology crime. When I hesitated to improve the adult ZERO video, wondering if it would violate the Entertainment and Amusement Act, a female idol with a chainsaw appeared due to technology crime that interfered with my dream, and yelled, "Don't worry about us, just make it quickly!" and cut my body into pieces with the chainsaw. At that time, it became a never-ending dream of intense pain, and the hell of the tragedy that I could not wake up from from 4 am until 9 am continued for 5 hours. I experienced an unusual hell of darkness.

If we reproduce the semiconductor process in the future, it will cost 10 trillion yen.

We can make it later, right? Such idiots are unnecessary human resources in software development. If we try to investigate the basis of the improvement in the future, it will be to reproduce unsellable CPUs and motherboards, and it is said that the investigation cost will exceed 10 trillion yen because there is no prospect of recovering the cost. In that case, we should think that the complainers who investigate later will not be able to prosecute even if they use all their assets, and we have continued to do so no matter how much they are opposed, because we thought that improving it will give us credibility.

INFORMATION
Operating conditions
Windows 64bit, operation confirmed on Windows 11 Home 64bit.
Includes optimization for 12th generation AlderLake and 13th generation RapterLake.
It may work on older computers, but it has been adjusted for the latest motherboard.

Author's recommended computer
ThinkPad Intel T L X specifications, 12th generation AlderLake 13th generation RapterLake
Intel Core i5 i7 RapterLake, GIGABYTE AORUS, OC limited model

If you notice any signs of impending failure, press the RESET button immediately!
Do you feel "noise" on the entire screen? Do you feel "lag" in the response of the keyboard and mouse?
Do you feel "small freezes" even though you have been using the SSD for a long time? Do you smell a "burning smell" from your computer?
Is your CPU fan cooler maintaining high rotations at low load and the rotation speed increasing?

If this phenomenon occurs even a little, press the RESET button immediately!

The cause is a problem with the CPU design or the M/B design, and this failure is unrepairable, so the only option is to build a new PC. If this problem occurs, the only solution is to replace all PC parts connected to the PCIE bus. If there is a problem, it is impossible to sell it to individuals! Don't you think so?
DeepL wrote:By improving the state of CPU registers, this is a technology that has continued to improve quality while being called a technology that has not yet been explored by mankind, realizing a ZERO world of high picture quality and a ZERO world of high sound quality on ordinary personal computers. It has contributed to the improvement of sales of paid video distribution and paid music distribution, and also seems to have the effect of extending the life of personal computers.

Extremely difficult adjustment work
This is not easy. The number of cases in which a computer breaks within seconds of being brand new when using the wrong basis reaches more than one million worldwide. Even if the e-mail address to contact the author is open to the public, the trouble information is either lost in the route or nothing is received. Instead, we have been through a deadly hell by way of technology crimes. Wouldn't improving the Adult ZERO video “violate the Entertainment Business Act?” And when I hesitated, a technology crime intervening in my dream brought a female idol with a chainsaw to my door, “Don't worry about us, just make it!” and then she yells at me and cuts me up with a chainsaw. It became a never-ending dream of intense pain at that time, and lasted for five hours, from 4:00 AM until 9:00 AM, a hell of a scourge that I never woke up from. I experience a hell of darkness that is not normal.

Replicating the semiconductor process in the future would cost 10 trillion
We can make it later, right? Such fools are unnecessary personnel in software development. If you try to investigate the basis of improvement in the future, you will have to reproduce CPUs and motherboards that will not sell, and the cost of investigation is said to exceed 10 trillion yen for the reason that there is no way to recover the cost. If that is the case, we should consider that Kramer, who investigates later, cannot make a case even if he spends all his property. We have continued to do so, no matter how much opposition we have received, because we believe that making improvements anyway is the way to gain credibility.

INFORMATION
Operating Conditions
Windows 64bit, tested on Windows 11 Home 64bit.
Includes optimizations for 12th generation AlderLake and 13th generation RapterLake.
May work on older PCs, but we have adjusted to the latest motherboards.

Author's recommended PC
ThinkPad Intel T L X specification with 12th generation AlderLake 13th generation RapterLake
Intel Core i5 i7 RapterLake , GIGABYTE AORUS , limited OC model

If you see signs of possible breakage, press the RESET button immediately!
Do you feel “noise” across the screen? Do you feel “lag” in keyboard or mouse response?
Do you feel “puchifuri” even though you have been using the SSD for a long time? Do you feel “burning smell” from your PC?
Does the CPU fan cooler maintain a high RPM under low load and the RPM is increasing further?

If any of these phenomena occur, press the RESET button immediately!

The cause is either a problem with the CPU design or a problem with the M/B design, and this failure will be beyond repair, and you will have to build yourself a new PC. When this problem occurs, all PC parts that connect to the PCIE bus must be replaced to fix the problem. If you have the problem, you can't sell it privately! Don't you think?
CopyMemoryMaya10.pbi
Executable format: Shared DLL CPU with MMX "CopyMemoryMaya.dll"

Code: Select all

Macro CopyMemoryMace_Inside
  !PSLLW mm1, mm0 ;1  Left 1bit shift
  !PSLLW mm1, mm0 ;2  Left 1bit shift
  !PSLLW mm1, mm0 ;3  Left 1bit shift
  !PSLLW mm1, mm0 ;4  Left 1bit shift
  !PSLLW mm1, mm0 ;5  Left 1bit shift
  !PSLLW mm1, mm0 ;6  Left 1bit shift
  !PSLLW mm1, mm0 ;7  Left 1bit shift
  !PSLLW mm1, mm0 ;8  Left 1bit shift
  !PSLLW mm1, mm0 ;9  Left 1bit shift
  !PSLLW mm1, mm0 ;A  Left 1bit shift
  !PSLLW mm1, mm0 ;B  Left 1bit shift
  !PSLLW mm1, mm0 ;C  Left 1bit shift
  !PSLLW mm1, mm0 ;D  Left 1bit shift
  !PSLLW mm1, mm0 ;E  Left 1bit shift
  !PSLLW mm1, mm0 ;F  Left 1bit shift
  !PSLLW mm1, mm0 ;0  Left 1bit shift
  !PSLLW mm2, mm0 ;1  Left 1bit shift
  !PSLLW mm2, mm0 ;2  Left 1bit shift
  !PSLLW mm2, mm0 ;3  Left 1bit shift
  !PSLLW mm2, mm0 ;4  Left 1bit shift
  !PSLLW mm2, mm0 ;5  Left 1bit shift
  !PSLLW mm2, mm0 ;6  Left 1bit shift
  !PSLLW mm2, mm0 ;7  Left 1bit shift
  !PSLLW mm2, mm0 ;8  Left 1bit shift
  !PSLLW mm2, mm0 ;9  Left 1bit shift
  !PSLLW mm2, mm0 ;A  Left 1bit shift
  !PSLLW mm2, mm0 ;B  Left 1bit shift
  !PSLLW mm2, mm0 ;C  Left 1bit shift
  !PSLLW mm2, mm0 ;D  Left 1bit shift
  !PSLLW mm2, mm0 ;E  Left 1bit shift
  !PSLLW mm2, mm0 ;F  Left 1bit shift
  !PSLLW mm2, mm0 ;0  Left 1bit shift
  !PSLLW mm3, mm0 ;1  Left 1bit shift
  !PSLLW mm3, mm0 ;2  Left 1bit shift
  !PSLLW mm3, mm0 ;3  Left 1bit shift
  !PSLLW mm3, mm0 ;4  Left 1bit shift
  !PSLLW mm3, mm0 ;5  Left 1bit shift
  !PSLLW mm3, mm0 ;6  Left 1bit shift
  !PSLLW mm3, mm0 ;7  Left 1bit shift
  !PSLLW mm3, mm0 ;8  Left 1bit shift
  !PSLLW mm3, mm0 ;9  Left 1bit shift
  !PSLLW mm3, mm0 ;A  Left 1bit shift
  !PSLLW mm3, mm0 ;B  Left 1bit shift
  !PSLLW mm3, mm0 ;C  Left 1bit shift
  !PSLLW mm3, mm0 ;D  Left 1bit shift
  !PSLLW mm3, mm0 ;E  Left 1bit shift
  !PSLLW mm3, mm0 ;F  Left 1bit shift
  !PSLLW mm3, mm0 ;0  Left 1bit shift
  !PSLLW mm4, mm0 ;1  Left 1bit shift
  !PSLLW mm4, mm0 ;2  Left 1bit shift
  !PSLLW mm4, mm0 ;3  Left 1bit shift
  !PSLLW mm4, mm0 ;4  Left 1bit shift
  !PSLLW mm4, mm0 ;5  Left 1bit shift
  !PSLLW mm4, mm0 ;6  Left 1bit shift
  !PSLLW mm4, mm0 ;7  Left 1bit shift
  !PSLLW mm4, mm0 ;8  Left 1bit shift
  !PSLLW mm4, mm0 ;9  Left 1bit shift
  !PSLLW mm4, mm0 ;A  Left 1bit shift
  !PSLLW mm4, mm0 ;B  Left 1bit shift
  !PSLLW mm4, mm0 ;C  Left 1bit shift
  !PSLLW mm4, mm0 ;D  Left 1bit shift
  !PSLLW mm4, mm0 ;E  Left 1bit shift
  !PSLLW mm4, mm0 ;F  Left 1bit shift
  !PSLLW mm4, mm0 ;0  Left 1bit shift
  !PSLLW mm5, mm0 ;1  Left 1bit shift
  !PSLLW mm5, mm0 ;2  Left 1bit shift
  !PSLLW mm5, mm0 ;3  Left 1bit shift
  !PSLLW mm5, mm0 ;4  Left 1bit shift
  !PSLLW mm5, mm0 ;5  Left 1bit shift
  !PSLLW mm5, mm0 ;6  Left 1bit shift
  !PSLLW mm5, mm0 ;7  Left 1bit shift
  !PSLLW mm5, mm0 ;8  Left 1bit shift
  !PSLLW mm5, mm0 ;9  Left 1bit shift
  !PSLLW mm5, mm0 ;A  Left 1bit shift
  !PSLLW mm5, mm0 ;B  Left 1bit shift
  !PSLLW mm5, mm0 ;C  Left 1bit shift
  !PSLLW mm5, mm0 ;D  Left 1bit shift
  !PSLLW mm5, mm0 ;E  Left 1bit shift
  !PSLLW mm5, mm0 ;F  Left 1bit shift
  !PSLLW mm5, mm0 ;0  Left 1bit shift
  !PSLLW mm6, mm0 ;1  Left 1bit shift
  !PSLLW mm6, mm0 ;2  Left 1bit shift
  !PSLLW mm6, mm0 ;3  Left 1bit shift
  !PSLLW mm6, mm0 ;4  Left 1bit shift
  !PSLLW mm6, mm0 ;5  Left 1bit shift
  !PSLLW mm6, mm0 ;6  Left 1bit shift
  !PSLLW mm6, mm0 ;7  Left 1bit shift
  !PSLLW mm6, mm0 ;8  Left 1bit shift
  !PSLLW mm6, mm0 ;9  Left 1bit shift
  !PSLLW mm6, mm0 ;A  Left 1bit shift
  !PSLLW mm6, mm0 ;B  Left 1bit shift
  !PSLLW mm6, mm0 ;C  Left 1bit shift
  !PSLLW mm6, mm0 ;D  Left 1bit shift
  !PSLLW mm6, mm0 ;E  Left 1bit shift
  !PSLLW mm6, mm0 ;F  Left 1bit shift
  !PSLLW mm6, mm0 ;0  Left 1bit shift
  !PSLLW mm7, mm0 ;1  Left 1bit shift
  !PSLLW mm7, mm0 ;2  Left 1bit shift
  !PSLLW mm7, mm0 ;3  Left 1bit shift
  !PSLLW mm7, mm0 ;4  Left 1bit shift
  !PSLLW mm7, mm0 ;5  Left 1bit shift
  !PSLLW mm7, mm0 ;6  Left 1bit shift
  !PSLLW mm7, mm0 ;7  Left 1bit shift
  !PSLLW mm7, mm0 ;8  Left 1bit shift
  !PSLLW mm7, mm0 ;9  Left 1bit shift
  !PSLLW mm7, mm0 ;A  Left 1bit shift
  !PSLLW mm7, mm0 ;B  Left 1bit shift
  !PSLLW mm7, mm0 ;C  Left 1bit shift
  !PSLLW mm7, mm0 ;D  Left 1bit shift
  !PSLLW mm7, mm0 ;E  Left 1bit shift
  !PSLLW mm7, mm0 ;F  Left 1bit shift
  !PSLLW mm7, mm0 ;0  Left 1bit shift
  !PSLLW mm1, mm0 ;1  Left 1bit shift
  !PSLLW mm1, mm0 ;2  Left 1bit shift
  !PSLLW mm2, mm0 ;1  Left 1bit shift
  !PSLLW mm2, mm0 ;2  Left 1bit shift
  !PSLLW mm3, mm0 ;1  Left 1bit shift
  !PSLLW mm3, mm0 ;2  Left 1bit shift
  !PSLLW mm4, mm0 ;1  Left 1bit shift
  !PSLLW mm4, mm0 ;2  Left 1bit shift
  !PSLLW mm5, mm0 ;1  Left 1bit shift
  !PSLLW mm5, mm0 ;2  Left 1bit shift
  !PSLLW mm6, mm0 ;1  Left 1bit shift
  !PSLLW mm6, mm0 ;2  Left 1bit shift
  !PSLLW mm7, mm0 ;1  Left 1bit shift
  !PSLLW mm7, mm0 ;2  Left 1bit shift
EndMacro

Macro CopyMemoryMace_InsideSetup
  !MOV dl, cl
  !SUB cl, dl
  !MOVZX Rcx, cl
  !INC cl
  !MOVZX Rcx, cl
  !MOVQ mm1, Rcx
  !PSLLW mm0, mm1 ;1  Left 1bit shift
  !PSLLW mm0, mm1 ;2  Left 1bit shift
  !PSLLW mm0, mm1 ;3  Left 1bit shift
  !PSLLW mm0, mm1 ;4  Left 1bit shift
  !PSLLW mm0, mm1 ;5  Left 1bit shift
  !PSLLW mm0, mm1 ;6  Left 1bit shift
  !PSLLW mm0, mm1 ;7  Left 1bit shift
  !PSLLW mm0, mm1 ;8  Left 1bit shift
  !PSLLW mm0, mm1 ;9  Left 1bit shift
  !PSLLW mm0, mm1 ;A  Left 1bit shift
  !PSLLW mm0, mm1 ;B  Left 1bit shift
  !PSLLW mm0, mm1 ;C  Left 1bit shift
  !PSLLW mm0, mm1 ;D  Left 1bit shift
  !PSLLW mm0, mm1 ;E  Left 1bit shift
  !PSLLW mm0, mm1 ;F  Left 1bit shift
  !PSLLW mm0, mm1 ;0  Left 1bit shift
  !MOVQ mm0, mm1
EndMacro

ProcedureDLL CopyMemoryMaya(dummyRcx.i, CMM_length.i, *CMM_in, *CMM_out)
  CopyMemoryMace_InsideSetup
  CopyMemoryMace_Inside
  Protected CMM_D48.i, CMM_D40.i, CMM_D32.i, CMM_D24.i, CMM_D16.i, CMM_D8.i
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !MOVZX R8, R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !MOVZX R8, R8b
  !MOVQ mm1, R8
  !MOVNTQ QWORD [p.v_CMM_D8], mm1
  !PADDQ mm2, mm1
  !PADDQ mm2, mm1
  !MOVNTQ QWORD [p.v_CMM_D16], mm2
  !PADDQ mm3, mm1
  !PADDQ mm3, mm1
  !PADDQ mm3, mm1
  !MOVNTQ QWORD [p.v_CMM_D24], mm3
  !PADDQ mm4, mm1
  !PADDQ mm4, mm1
  !PADDQ mm4, mm1
  !PADDQ mm4, mm1
  !MOVNTQ QWORD [p.v_CMM_D32], mm4
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !MOVNTQ QWORD [p.v_CMM_D40], mm5
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !MOVNTQ QWORD [p.v_CMM_D48], mm6
  CopyMemoryMace_Top:
  If CMM_length>=CMM_D48
    CMM_length - CMM_D48
    CopyMemoryMace_InsideSetup
    !LEA Rcx, [p.v_CMM_length]
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    !MOV Rax, [Rcx]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8+Rax]
    !MOVQ mm2, QWORD [R8+Rax+$8]
    !MOVQ mm3, QWORD [R8+Rax+$10]
    !MOVQ mm4, QWORD [R8+Rax+$18]
    !MOVQ mm5, QWORD [R8+Rax+$20]
    !MOVQ mm6, QWORD [R8+Rax+$28]
    !MOVNTQ QWORD [R9+Rax], mm1
    !MOVNTQ QWORD [R9+Rax+$8], mm2
    !MOVNTQ QWORD [R9+Rax+$10], mm3
    !MOVNTQ QWORD [R9+Rax+$18], mm4
    !MOVNTQ QWORD [R9+Rax+$20], mm5
    !MOVNTQ QWORD [R9+Rax+$28], mm6
    Goto CopyMemoryMace_Top
  ElseIf CMM_length>=CMM_D40
    CMM_length - CMM_D40
    CopyMemoryMace_InsideSetup
    !LEA Rcx, [p.v_CMM_length]
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    !MOV Rax, [Rcx]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8+Rax]
    !MOVQ mm2, QWORD [R8+Rax+$8]
    !MOVQ mm3, QWORD [R8+Rax+$10]
    !MOVQ mm4, QWORD [R8+Rax+$18]
    !MOVQ mm5, QWORD [R8+Rax+$20]
    !MOVNTQ QWORD [R9+Rax], mm1
    !MOVNTQ QWORD [R9+Rax+$8], mm2
    !MOVNTQ QWORD [R9+Rax+$10], mm3
    !MOVNTQ QWORD [R9+Rax+$18], mm4
    !MOVNTQ QWORD [R9+Rax+$20], mm5
    Goto CopyMemoryMace_Top
  ElseIf CMM_length>=CMM_D32
    CMM_length - CMM_D32
    CopyMemoryMace_InsideSetup
    !LEA Rcx, [p.v_CMM_length]
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    !MOV Rax, [Rcx]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8+Rax]
    !MOVQ mm2, QWORD [R8+Rax+$8]
    !MOVQ mm3, QWORD [R8+Rax+$10]
    !MOVQ mm4, QWORD [R8+Rax+$18]
    !MOVNTQ QWORD [R9+Rax], mm1
    !MOVNTQ QWORD [R9+Rax+$8], mm2
    !MOVNTQ QWORD [R9+Rax+$10], mm3
    !MOVNTQ QWORD [R9+Rax+$18], mm4
    Goto CopyMemoryMace_Top
  ElseIf CMM_length>=CMM_D24
    CMM_length - CMM_D24
    CopyMemoryMace_InsideSetup
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVQ mm2, QWORD [R8+$8]
    !MOVQ mm3, QWORD [R8+$10]
    !MOVNTQ QWORD [R9], mm1
    !MOVNTQ QWORD [R9+$8], mm2
    !MOVNTQ QWORD [R9+$10], mm3
    Goto CopyMemoryMace_Top
  ElseIf CMM_length>=CMM_D16
    CMM_length - CMM_D16
    CopyMemoryMace_InsideSetup
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVQ mm2, QWORD [R8+$8]
    !MOVNTQ QWORD [R9], mm1
    !MOVNTQ QWORD [R9+$8], mm2
    Goto CopyMemoryMace_Top
  ElseIf CMM_length>=CMM_D8
    CMM_length - CMM_D8
    CopyMemoryMace_InsideSetup
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVNTQ QWORD [R9], mm1
    Goto CopyMemoryMace_Top
  EndIf
  !EMMS
EndProcedure

ProcedureDLL ClearMemoryMaya(dummyRcx.i, CMM_length.i, *CMM_in, *CMM_out)
  CopyMemoryMace_InsideSetup
  CopyMemoryMace_Inside
  Protected CMM_D48.i, CMM_D40.i, CMM_D32.i, CMM_D24.i, CMM_D16.i, CMM_D8.i
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !MOVZX R8, R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !MOVZX R8, R8b
  !MOVQ mm1, R8
  !MOVNTQ QWORD [p.v_CMM_D8], mm1
  !PADDQ mm2, mm1
  !PADDQ mm2, mm1
  !MOVNTQ QWORD [p.v_CMM_D16], mm2
  !PADDQ mm3, mm1
  !PADDQ mm3, mm1
  !PADDQ mm3, mm1
  !MOVNTQ QWORD [p.v_CMM_D24], mm3
  !PADDQ mm4, mm1
  !PADDQ mm4, mm1
  !PADDQ mm4, mm1
  !PADDQ mm4, mm1
  !MOVNTQ QWORD [p.v_CMM_D32], mm4
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !PADDQ mm5, mm1
  !MOVNTQ QWORD [p.v_CMM_D40], mm5
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !PADDQ mm6, mm1
  !MOVNTQ QWORD [p.v_CMM_D48], mm6
  ClearMemoryMaya_Top:
  If CMM_length>=CMM_D48
    CMM_length - CMM_D48
    CopyMemoryMace_InsideSetup
    !LEA Rcx, [p.v_CMM_length]
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    !MOV Rax, [Rcx]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVQ mm2, QWORD [R8]
    !MOVQ mm3, QWORD [R8]
    !MOVQ mm4, QWORD [R8]
    !MOVQ mm5, QWORD [R8]
    !MOVQ mm6, QWORD [R8]
    !MOVNTQ QWORD [R9+Rax], mm1
    !MOVNTQ QWORD [R9+Rax+$8], mm2
    !MOVNTQ QWORD [R9+Rax+$10], mm3
    !MOVNTQ QWORD [R9+Rax+$18], mm4
    !MOVNTQ QWORD [R9+Rax+$20], mm5
    !MOVNTQ QWORD [R9+Rax+$28], mm6
    Goto ClearMemoryMaya_Top
  ElseIf CMM_length>=CMM_D40
    CMM_length - CMM_D40
    CopyMemoryMace_InsideSetup
    !LEA Rcx, [p.v_CMM_length]
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    !MOV Rax, [Rcx]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVQ mm2, QWORD [R8]
    !MOVQ mm3, QWORD [R8]
    !MOVQ mm4, QWORD [R8]
    !MOVQ mm5, QWORD [R8]
    !MOVNTQ QWORD [R9+Rax], mm1
    !MOVNTQ QWORD [R9+Rax+$8], mm2
    !MOVNTQ QWORD [R9+Rax+$10], mm3
    !MOVNTQ QWORD [R9+Rax+$18], mm4
    !MOVNTQ QWORD [R9+Rax+$20], mm5
    Goto ClearMemoryMaya_Top
  ElseIf CMM_length>=CMM_D32
    CMM_length - CMM_D32
    CopyMemoryMace_InsideSetup
    !LEA Rcx, [p.v_CMM_length]
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    !MOV Rax, [Rcx]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVQ mm2, QWORD [R8]
    !MOVQ mm3, QWORD [R8]
    !MOVQ mm4, QWORD [R8]
    !MOVNTQ QWORD [R9+Rax], mm1
    !MOVNTQ QWORD [R9+Rax+$8], mm2
    !MOVNTQ QWORD [R9+Rax+$10], mm3
    !MOVNTQ QWORD [R9+Rax+$18], mm4
    Goto ClearMemoryMaya_Top
  ElseIf CMM_length>=CMM_D24
    CMM_length - CMM_D24
    CopyMemoryMace_InsideSetup
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVQ mm2, QWORD [R8]
    !MOVQ mm3, QWORD [R8]
    !MOVNTQ QWORD [R9], mm1
    !MOVNTQ QWORD [R9+$8], mm2
    !MOVNTQ QWORD [R9+$10], mm3
    Goto ClearMemoryMaya_Top
  ElseIf CMM_length>=CMM_D16
    CMM_length - CMM_D16
    CopyMemoryMace_InsideSetup
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVQ mm2, QWORD [R8]
    !MOVNTQ QWORD [R9], mm1
    !MOVNTQ QWORD [R9+$8], mm2
    Goto ClearMemoryMaya_Top
  ElseIf CMM_length>=CMM_D8
    CMM_length - CMM_D8
    CopyMemoryMace_InsideSetup
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8]
    !MOVNTQ QWORD [R9], mm1
    Goto ClearMemoryMaya_Top
  EndIf
  !EMMS
EndProcedure

ProcedureDLL TransMemoryLorya(dummyRcx.i, CMM_length.i, *CMM_in, *CMM_out)
  CopyMemoryMace_InsideSetup
  CopyMemoryMace_Inside
  Protected CMM_D8.i
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !SHL R8b,1
  !MOVZX R8, R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !INC R8b
  !MOVZX R8, R8b
  !MOVQ mm1, R8
  !MOVNTQ QWORD [p.v_CMM_D8], mm1
  TransMemoryLorya_Top:
  If CMM_length>=CMM_D8
    CMM_length - CMM_D8
    CopyMemoryMace_InsideSetup
    !LEA Rcx, [p.v_CMM_length]
    !MOV R8, [p.p_CMM_in]
    !MOV R9, [p.p_CMM_out]
    !MOV Rax, [Rcx]
    CopyMemoryMace_Inside
    !MOVQ mm1, QWORD [R8+Rax]
    !MOVQ mm7, mm1
    !MOVQ mm2, mm7
    !MOVQ mm6, mm2
    !MOVQ mm4, mm6
    !MOVQ mm3, mm4
    !MOVQ mm5, mm3
    !MOVNTQ QWORD [R9+Rax], mm5
    Goto TransMemoryLorya_Top
  EndIf
  !EMMS
EndProcedure
Build program

Code: Select all

; PureBasicForumTips_BuildExecutable.pb
; Copyright (c) 2017-2025, Hiroyuki Yokota ( oryaaaaa ) 444-3174
; !extrn PB_RandomSeed
SetPriorityClass_(GetCurrentProcess_(),#IDLE_PRIORITY_CLASS)
UseSHA1Fingerprint()

Global NewList Buffer.s()

; ; ; ; ; ; ; ; Intel® 64 And IA-32 ArchitecturesSoftware Developer’s Manual
; ; ; ; ; ; ; ; Volume 2 (2A, 2B, 2C, & 2D):Instruction Set Reference, A-Z
; ; ; ; ; ; ; ; Opcode Column in the Instruction Summary Table (Instructions without VEX Prefix)
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; ALNone0AXNone0EAXNone0RAXNone0
; ; ; ; ; ; ; ; DLNone2DXNone2EDXNone2RDXNone2
; ; ; ; ; ; ; ; SPLYes 4SPNone4ESPNone4RSPNone4
; ; ; ; ; ; ; ; SILYes6SINone6ESINone6RSINone6
; ; ; ; ; ; ; ; R8BYes0R8WYes0R8DYes0R8Yes0
; ; ; ; ; ; ; ; R10BYes2R10WYes2R10DYes2R10Yes2
; ; ; ; ; ; ; ; R12BYes4R12WYes4R12DYes4R12Yes4
; ; ; ; ; ; ; ; R14BYes6R14WYes6R14DYes6R14Yes6
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; CLNone1CXNone1ECXNone1RCXNone1
; ; ; ; ; ; ; ; BLNone3BXNone3EBXNone3RBXNone3
; ; ; ; ; ; ; ; BPLYes5BPNone5EBPNone5RBPNone5
; ; ; ; ; ; ; ; DILYes7DINone7EDINone7RDINone7
; ; ; ; ; ; ; ; R9BYes1R9WYes1R9DYes1R9Yes1
; ; ; ; ; ; ; ; R11BYes3R11WYes3R11DYes3R11Yes3
; ; ; ; ; ; ; ; R13BYes5R13WYes5R13DYes5R13Yes5
; ; ; ; ; ; ; ; R15BYes7R15WYes7R15DYes7R15Yes7

Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R8" : AddElement(Reg64A()) : Reg64A() ="R10"
AddElement(Reg64A()) : Reg64A() ="R12" : AddElement(Reg64A()) : Reg64A() ="R14"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R9" : AddElement(Reg64B()) : Reg64B() ="R11"
AddElement(Reg64B()) : Reg64B() ="R13" : AddElement(Reg64B()) : Reg64B() ="R15"

Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg32.s()
AddElement(Reg32()) : Reg32() ="Eax" : AddElement(Reg32()) : Reg32() ="Ebx"
AddElement(Reg32()) : Reg32() ="Ecx" : AddElement(Reg32()) : Reg32() ="Edx"
AddElement(Reg32()) : Reg32() ="Esp" : AddElement(Reg32()) : Reg32() ="Esi"
AddElement(Reg32()) : Reg32() ="Ebp" : AddElement(Reg32()) : Reg32() ="Edi"
AddElement(Reg32()) : Reg32() ="R8d" : AddElement(Reg32()) : Reg32() ="R9d"
AddElement(Reg32()) : Reg32() ="R10d" : AddElement(Reg32()) : Reg32() ="R11d"
AddElement(Reg32()) : Reg32() ="R12d" : AddElement(Reg32()) : Reg32() ="R13d"
AddElement(Reg32()) : Reg32() ="R14d" : AddElement(Reg32()) : Reg32() ="R15d"

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

Procedure.s MajiorityBuildBefore(MajiorityBuildBefore_Str.s, MajiorityBuildBefore_Opt.s, MajiorityBuildBefore_Path.s)
  Protected Compiler.i
  
  MajiorityBuildBefore_Str + Chr(13) + "MajiorityBuildBefore" + Chr(13)
  Compiler = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", Chr(34)+ MajiorityBuildBefore_Str + Chr(34) + Space(1) + MajiorityBuildBefore_Opt, MajiorityBuildBefore_Path, #PB_Program_Open | #PB_Program_Read)
  If Compiler
    While ProgramRunning(Compiler)
      If AvailableProgramOutput(Compiler)
        MajiorityBuildBefore_Str + ReadProgramString(Compiler) + Chr(13)
      EndIf
    Wend
    MajiorityBuildBefore_Str + Chr(13) + Chr(13)
    MajiorityBuildBefore_Str + "Exitcode: " + Str(ProgramExitCode(Compiler))
    CloseProgram(Compiler) ; Close the connection to the program
  EndIf
  
  Debug Right(MajiorityBuildBefore_Str, 15)
  ProcedureReturn MajiorityBuildBefore_Str
EndProcedure

Procedure.s MajiorityBuildReasm(MajiorityBuildReasm_Str.s, MajiorityBuildReasm_Opt.s, MajiorityBuildReasm_Path.s)
  Protected Compiler.i
  
  Debug Right(MajiorityBuildReasm_Opt, 15)
  MajiorityBuildReasm_Str + Chr(13) + "MajiorityBuildReasm" + Chr(13)
  Compiler = RunProgram(#PB_Compiler_Home+"\Compilers\pbcompiler", MajiorityBuildReasm_Opt, MajiorityBuildReasm_Path, #PB_Program_Open | #PB_Program_Read)
  If Compiler
    While ProgramRunning(Compiler)
      If AvailableProgramOutput(Compiler)
        MajiorityBuildReasm_Str + ReadProgramString(Compiler) + Chr(13)
      EndIf
    Wend
    MajiorityBuildReasm_Str + Chr(13) + Chr(13)
    MajiorityBuildReasm_Str + "Exitcode: " + Str(ProgramExitCode(Compiler))
    CloseProgram(Compiler) ; Close the connection to the program
  EndIf
  
  ProcedureReturn MajiorityBuildReasm_Str
EndProcedure

Global MajiorityBuild_Tunes_3_Error.i

Macro MajiorityBuild_Tunes_3
  
  ForEach Buffer()
    If FindString(UCase(Buffer()), "JMP")>0 And FindString(UCase(Buffer()), "QWORD")=0
      Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1)
    ElseIf FindString(UCase(Buffer()), "JE")>0 And FindString(UCase(Buffer()), "QWORD")=0
      Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1)
    ElseIf FindString(UCase(Buffer()), "JZ")>0 And FindString(UCase(Buffer()), "QWORD")=0
      Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1)
    ElseIf FindString(UCase(Buffer()), "JNE")>0 And FindString(UCase(Buffer()), "QWORD")=0
      Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1)
    ElseIf FindString(UCase(Buffer()), "JNZ")>0 And FindString(UCase(Buffer()), "QWORD")=0
      Buffer() = ReplaceString(Buffer(), " ", " QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "J"), 1)
    ElseIf FindString(UCase(Buffer()), "CALL ")>0 And FindString(UCase(Buffer()), "QWORD")=0
      Buffer() = ReplaceString(Buffer(), "CALL ", "CALL QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "C"), 1)
    ElseIf FindString(UCase(Buffer()), "NOP ")>0 And FindString(UCase(Buffer()), "QWORD")=0 And FindString(UCase(Buffer()), "FNOP")=0
      MajiorityBuild_Tunes_3_Error = 0
      ForEach Reg32()
        If FindString(UCase(Buffer()), Reg32())=0
          MajiorityBuild_Tunes_3_Error + 1
        EndIf
      Next
      ForEach Reg16()
        If FindString(UCase(Buffer()), Reg16())=0
          MajiorityBuild_Tunes_3_Error + 1
        EndIf
      Next
      ForEach Reg8()
        If FindString(UCase(Buffer()), Reg8())=0
          MajiorityBuild_Tunes_3_Error + 1
        EndIf
      Next
      If  MajiorityBuild_Tunes_3_Error = 0
        Buffer() = ReplaceString(Buffer(), "NOP ", "NOP QWORD ", #PB_String_NoCase, FindString(UCase(Buffer()), "N"), 1)
      EndIf
    ElseIf FindString(UCase(Buffer()), "[")>0 And FindString(UCase(Buffer()), "QWORD")=0
      MajiorityBuild_Tunes_3_Error = 0
      ForEach Reg32()
        If FindString(UCase(Buffer()), Reg32())=0
          MajiorityBuild_Tunes_3_Error + 1
        EndIf
      Next
      ForEach Reg16()
        If FindString(UCase(Buffer()), Reg16())=0
          MajiorityBuild_Tunes_3_Error + 1
        EndIf
      Next
      ForEach Reg8()
        If FindString(UCase(Buffer()), Reg8())=0
          MajiorityBuild_Tunes_3_Error + 1
        EndIf
      Next
      If  MajiorityBuild_Tunes_3_Error = 0
        Buffer() = ReplaceString(Buffer(), "[", "QWORD [", #PB_String_NoCase, FindString(UCase(Buffer()), "["), 1)
      EndIf
      ;       And FindString(UCase(Buffer()), "QWORD")=0 And FindString(UCase(Buffer()), "FLD")=0 And FindString(UCase(Buffer()), "FSTP")=0  And FindString(UCase(Buffer()), "DWORD")=0 And FindString(UCase(Buffer()), "R8D")=0 And FindString(UCase(Buffer()), "EAX")=0
      ;       Buffer() = ReplaceString(Buffer(), "[", "QWORD [", #PB_String_NoCase, FindString(UCase(Buffer()), "["), 1)
    EndIf
  Next
  
EndMacro

Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
;   !RDRAND Rcx
;   !ROL Rcx, 1
;   !ROL Rcx, 1
;   !CALL QWORD PB_RandomSeed
  ; RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64A()
    AddElement(Buffer()) : Buffer() =  "  MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg64A()+", "+Reg64A()
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
  Next
  
  ForEach Reg64B()
    AddElement(Buffer()) : Buffer() =  "  MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg64B()+", "+Reg64B()
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
  Next
  ;   MOV_Rax_Rax_Up_Down
  ;   MOV_Rdx_Rdx_Up_Down
  ;   MOV_Rsp_Rsp_Up_Down
  ;   MOV_Rsi_Rsi_Up_Down
  ;   MOV_R9_R9_Up_Down
  ;   MOV_R11_R11_Up_Down
  ;   MOV_R13_R13_Up_Down
  ;   MOV_R15_R15_Up_Down
  ;   MOV_Rcx_Rcx_Up_Down
  ;   MOV_Rbx_Rbx_Up_Down
  ;   MOV_Rbp_Rbp_Up_Down
  ;   MOV_Rdi_Rdi_Up_Down
  ;   MOV_R8_R8_Up_Down
  ;   MOV_R10_R10_Up_Down
  ;   MOV_R12_R12_Up_Down
  ;   MOV_R14_R14_Up_Down
EndMacro

Macro SIMPLE_A_MOVE_REGISTERS_Up_and_Down
;   !RDRAND Rcx
;   !ROL Rcx, 1
;   !ROL Rcx, 1
;   !CALL QWORD PB_RandomSeed
  ; RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64A()
    AddElement(Buffer()) : Buffer() =  "  MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg64A()+", "+Reg64A()
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
  Next
EndMacro

Macro SIMPLE_B_MOVE_REGISTERS_Up_and_Down
;   !RDRAND Rcx
;   !ROL Rcx, 1
;   !ROL Rcx, 1
;   !CALL QWORD PB_RandomSeed
  ; RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64B()
    AddElement(Buffer()) : Buffer() =  "  MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg64B()+", "+Reg64B()
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
  Next
EndMacro

Macro SIMPLE_A16_MOVE_REGISTERS_Up_and_Down
;   !RDRAND Rcx
;   !ROL Rcx, 1
;   !ROL Rcx, 1
;   !CALL QWORD PB_RandomSeed
  ; RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64A()
    AddElement(Buffer()) : Buffer() =  "  MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
  Next
  ForEach Reg64A()
    AddElement(Buffer()) : Buffer() =  "  XCHG "+Reg8(Reg64A())+", "+Reg8(Reg64A())
    If Len(Reg8(Reg64A()))=2
      AddElement(Buffer()) : Buffer() = "  XCHG "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
    EndIf
  Next
EndMacro

Macro SIMPLE_B16_MOVE_REGISTERS_Up_and_Down
;   !RDRAND Rcx
;   !ROL Rcx, 1
;   !ROL Rcx, 1
;   !CALL QWORD PB_RandomSeed
  ; RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ForEach Reg64B()
    AddElement(Buffer()) : Buffer() =  "  MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "  MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
    AddElement(Buffer()) : Buffer() = "  MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
  Next
  ForEach Reg64B()
    AddElement(Buffer()) : Buffer() =  "  XCHG "+Reg8(Reg64B())+", "+Reg8(Reg64B())
    If Len(Reg8(Reg64B()))=2
      AddElement(Buffer()) : Buffer() = "  XCHG "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
    EndIf
  Next
EndMacro

Macro MajiorityBuild_Tunes_9
  ForEach Buffer()
    If FindString(Buffer(), "; SIMPLE_MOVE_REGISTERS_Up_and_Down") And Left(Buffer(), 1) = ";"
      SIMPLE_MOVE_REGISTERS_Up_and_Down
    EndIf
  Next
  ForEach Buffer()
    If FindString(Buffer(), "; SIMPLE_A_MOVE_REGISTERS_Up_and_Down") And Left(Buffer(), 1) = ";"
      SIMPLE_A_MOVE_REGISTERS_Up_and_Down
    EndIf
  Next
  ForEach Buffer()
    If FindString(Buffer(), "; SIMPLE_B_MOVE_REGISTERS_Up_and_Down") And Left(Buffer(), 1) = ";"
      SIMPLE_B_MOVE_REGISTERS_Up_and_Down
    EndIf
  Next
EndMacro

Global Tunes_20_str.s
Macro MajiorityBuild_Tunes_20
  ForEach Buffer()
    If FindString(UCase(Buffer()), "CALL ")>0
      Tunes_20_str = LTrim(Buffer())
      Tunes_20_str = ReplaceString( Tunes_20_str, Space(2), Space(1))
      Tunes_20_str = ReplaceString( Tunes_20_str, Space(3), Space(1))
      Tunes_20_str = ReplaceString( Tunes_20_str, Space(2), Space(1))
      If Left(Tunes_20_str, 1)=";"
;         Debug Tunes_20_str
      Else
;         Debug ">> "+Tunes_20_str
        If UCase(StringField(Tunes_20_str, 2, " "))="QWORD"
          Tunes_20_str = StringField(Tunes_20_str, 3, " ")
        ElseIf UCase(StringField(Tunes_20_str, 3, " "))="QWORD"
          Tunes_20_str = StringField(Tunes_20_str, 4, " ")
        Else
          Tunes_20_str = StringField(Tunes_20_str, 2, " ")        
        EndIf
        If FindString(Tunes_20_str, "[")
          Tunes_20_str = RemoveString(Tunes_20_str, "[")
        EndIf
        If FindString(Tunes_20_str, "]")
          Tunes_20_str = RemoveString(Tunes_20_str, "]")
        EndIf
;         If FindString(Tunes_20_str, "!CALL")
;           Debug Buffer()
;         EndIf 
        If Len(Tunes_20_str)>0
          PreviousElement(Buffer())
          AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
          AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
          AddElement(Buffer()) : Buffer() = "NOP QWORD ["+Tunes_20_str+"]"
          AddElement(Buffer()) : Buffer() = "NOP QWORD ["+Tunes_20_str+"+8]"
          AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
          AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
          NextElement(Buffer())
        EndIf
      EndIf
    EndIf
  Next
EndMacro

NewList ResultString.s()

#ReBuildPath = "OutputFolder\"

#SourceTarget1 = "MajiorityAudioR20250715_ML68.pb"
#SourceIcon1 = "NR5_ES.ico"
#SourcePath1 = "A:\SourceFolder\"
#Execute1 = "MajiorityAudioML68.exe"
#ExecutePath1 = "A:\ExecutablesFolder\" + #ReBuildPath
If FileSize(#ExecutePath1+#Execute1)>0
  Debug "Please DELETE "+#Execute1
  CallDebugger
EndIf
Debug MajiorityBuildBefore(#SourceTarget1, Chr(34)+#SourcePath1+#SourceTarget1+Chr(34)+" /MMX /UNICODE /CONSOLE /commented /OPTIMIZER", #SourcePath1)
ClearList(Buffer())
; MajiorityBuild_Tunes_Open
If ReadFile(2, #SourcePath1+"PureBasic.asm")
  While Eof(2)=0
    AddElement(Buffer())
    Buffer() = ReadString(2)
  Wend
  CloseFile(2)
EndIf
; MajiorityCamisole A
CallDebugger
; _Tunes_Open
MajiorityBuild_Tunes_3
MajiorityBuild_Tunes_20
; ; MajiorityBuild_Tunes_9
If CreateFile(2, #SourcePath1+"PureBasic.asm")
  ForEach Buffer()
    WriteStringN(2, Buffer())
  Next
  FlushFileBuffers(2)
  CloseFile(2)
EndIf
If CreateFile(2, #ExecutePath1+GetFilePart(#Execute1, #PB_FileSystem_NoExtension)+".asm")
  ForEach Buffer()
    If Not Left(Buffer(), 1) = ";"
      Buffer() = LTrim(Buffer())
      If CountString(Buffer(), ";")>0
        Buffer() = StringField(Buffer(), 1, ";")
      EndIf
      Buffer() = RTrim(Buffer())
      Buffer() = RemoveString(Buffer(), #SourcePath1)
      Buffer() = ReplaceString(Buffer(), "      ", " ")
      Buffer() = ReplaceString(Buffer(), "     ", " ")
      Buffer() = ReplaceString(Buffer(), "    ", " ")
      Buffer() = ReplaceString(Buffer(), "   ", " ")
      Buffer() = ReplaceString(Buffer(), "  ", " ")
      If Len(Buffer())>0
        WriteStringN(2, Buffer())
      EndIf
    EndIf
  Next
  FlushFileBuffers(2)
  CloseFile(2)
EndIf
; _Tunes_Write ; MajiorityCamisole A
Debug MajiorityBuildReasm(#SourceTarget1, Chr(34)+"PureBasic.asm"+Chr(34)+" /MMX /UNICODE /CONSOLE /REASM /OPTIMIZER /ICON "+Chr(34)+#SourceIcon1+Chr(34)+" /OUTPUT "+Chr(34)+#ExecutePath1+#Execute1+Chr(34), #SourcePath1)
; CallDebugger
Debug GetFilePart(#Execute1, #PB_FileSystem_NoExtension)+".asm" + " | SHA-1 " + FileFingerprint(#ExecutePath1+GetFilePart(#Execute1, #PB_FileSystem_NoExtension)+".asm", #PB_Cipher_SHA1)
AddElement(ResultString()) : ResultString() = GetFilePart(#Execute1, #PB_FileSystem_NoExtension)+".asm" + " | SHA-1 " + FileFingerprint(#ExecutePath1+GetFilePart(#Execute1, #PB_FileSystem_NoExtension)+".asm", #PB_Cipher_SHA1)
Debug #Execute1 + " | SHA-1 " + FileFingerprint(#ExecutePath1+#Execute1, #PB_Cipher_SHA1)
AddElement(ResultString()) : ResultString() = #Execute1 + " | SHA-1 " + FileFingerprint(#ExecutePath1+#Execute1, #PB_Cipher_SHA1)
DeleteFile(#SourcePath1+"PureBasic.asm")
DeleteFile(#SourcePath1+"PureBasic.exe")

ForEach ResultString()
  Debug ResultString()
Next

End
User avatar
oryaaaaa
Addict
Addict
Posts: 825
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Re: Japanese ANIME quality up on streming

Post by oryaaaaa »

MajiorityAudio (2025 07 15) ML68
Compile with debugger, display Output, Copy and paste.

Code: Select all

Debug "; MajiorityAudio (2025 07 15) ML68"
Debug "; SMSW16 MOVZX r64,r16 BLSRx64 CPU reg. Stabilizer from JAPAN"
Debug "; Copyright (c) 2020-2025 Hiroyuki Yokota (oryaaaaa) 444-3174"
Debug "; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)"
Debug ""
Debug "MessageRequester("+Chr(34)+"END"+Chr(34)+","+Chr(34)+"Compiler options Executable Format Console And CPU With MMX"+Chr(34)+") : End"
Debug ""
; !extrn PB_RandomSeed

; ; ; ; ; ; ; ; Intel® 64 And IA-32 ArchitecturesSoftware Developer’s Manual
; ; ; ; ; ; ; ; Volume 2 (2A, 2B, 2C, & 2D):Instruction Set Reference, A-Z
; ; ; ; ; ; ; ; Opcode Column in the Instruction Summary Table (Instructions without VEX Prefix)
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; ALNone0AXNone0EAXNone0RAXNone0
; ; ; ; ; ; ; ; DLNone2DXNone2EDXNone2RDXNone2
; ; ; ; ; ; ; ; SPLYes 4SPNone4ESPNone4RSPNone4
; ; ; ; ; ; ; ; SILYes6SINone6ESINone6RSINone6
; ; ; ; ; ; ; ; R8BYes0R8WYes0R8DYes0R8Yes0
; ; ; ; ; ; ; ; R10BYes2R10WYes2R10DYes2R10Yes2
; ; ; ; ; ; ; ; R12BYes4R12WYes4R12DYes4R12Yes4
; ; ; ; ; ; ; ; R14BYes6R14WYes6R14DYes6R14Yes6
; ; ; ; ; ; ; ; 
; ; ; ; ; ; ; ; CLNone1CXNone1ECXNone1RCXNone1
; ; ; ; ; ; ; ; BLNone3BXNone3EBXNone3RBXNone3
; ; ; ; ; ; ; ; BPLYes5BPNone5EBPNone5RBPNone5
; ; ; ; ; ; ; ; DILYes7DINone7EDINone7RDINone7
; ; ; ; ; ; ; ; R9BYes1R9WYes1R9DYes1R9Yes1
; ; ; ; ; ; ; ; R11BYes3R11WYes3R11DYes3R11Yes3
; ; ; ; ; ; ; ; R13BYes5R13WYes5R13DYes5R13Yes5
; ; ; ; ; ; ; ; R15BYes7R15WYes7R15DYes7R15Yes7

; ; ; ; ; ; ; ; EAX/AX/AL/MM0/XMM0
; ; ; ; ; ; ; ; ECX/CX/CL/MM1/XMM1
; ; ; ; ; ; ; ; EDX/DX/DL/MM2/XMM2
; ; ; ; ; ; ; ; EBX/BX/BL/MM3/XMM3
; ; ; ; ; ; ; ; ESP/SP/AH/MM4/XMM4
; ; ; ; ; ; ; ; EBP/BP/CH/MM5/XMM5
; ; ; ; ; ; ; ; ESI/SI/DH/MM6/XMM6
; ; ; ; ; ; ; ; EDI/DI/BH/MM7/XMM7

; ; ; ; ; ; ; ; Table 2-8.  VEX.vvvv To register name mapping
; ; ; ; ; ; ; ; 1111B XMM0/YMM0 RAX/EAXValid
; ; ; ; ; ; ; ; 1110B XMM1/YMM1 RCX/ECXValid
; ; ; ; ; ; ; ; 1101B XMM2/YMM2 RDX/EDXValid
; ; ; ; ; ; ; ; 1100B XMM3/YMM3 RBX/EBXValid
; ; ; ; ; ; ; ; 1011B XMM4/YMM4 RSP/ESPValid
; ; ; ; ; ; ; ; 1010B XMM5/YMM5 RBP/EBPValid
; ; ; ; ; ; ; ; 1001B XMM6/YMM6 RSI/ESIValid
; ; ; ; ; ; ; ; 1000B XMM7/YMM7 RDI/EDIValid
; ; ; ; ; ; ; ; 0111B XMM8/YMM8 R8/R8DInvalid
; ; ; ; ; ; ; ; 0110B XMM9/YMM9 R9/R9DInvalid
; ; ; ; ; ; ; ; 0101B XMM10/YMM10 R10/R10DInvalid
; ; ; ; ; ; ; ; 0100B XMM11/YMM11 R11/R11DInvalid
; ; ; ; ; ; ; ; 0011B XMM12/YMM12 R12/R12DInvalid
; ; ; ; ; ; ; ; 0010B XMM13/YMM13 R13/R13DInvalid
; ; ; ; ; ; ; ; 0001B XMM14/YMM14 R14/R14DInvalid
; ; ; ; ; ; ; ; 0000B XMM15/YMM15 R15/R15DInvalid

Global NewList Reg64.s()
AddElement(Reg64()) : Reg64() ="Rax" : AddElement(Reg64()) : Reg64() ="Rbx"
AddElement(Reg64()) : Reg64() ="Rcx" : AddElement(Reg64()) : Reg64() ="Rdx"
AddElement(Reg64()) : Reg64() ="Rsp" : AddElement(Reg64()) : Reg64() ="Rsi"
AddElement(Reg64()) : Reg64() ="Rbp" : AddElement(Reg64()) : Reg64() ="Rdi"
AddElement(Reg64()) : Reg64() ="R8" : AddElement(Reg64()) : Reg64() ="R9"
AddElement(Reg64()) : Reg64() ="R10" : AddElement(Reg64()) : Reg64() ="R11"
AddElement(Reg64()) : Reg64() ="R12" : AddElement(Reg64()) : Reg64() ="R13"
AddElement(Reg64()) : Reg64() ="R14" : AddElement(Reg64()) : Reg64() ="R15"

Global NewList Reg64A.s()
AddElement(Reg64A()) : Reg64A() ="Rax" : AddElement(Reg64A()) : Reg64A() ="Rdx"
AddElement(Reg64A()) : Reg64A() ="Rsp" : AddElement(Reg64A()) : Reg64A() ="Rsi"
AddElement(Reg64A()) : Reg64A() ="R8" : AddElement(Reg64A()) : Reg64A() ="R10"
AddElement(Reg64A()) : Reg64A() ="R12" : AddElement(Reg64A()) : Reg64A() ="R14"

Global NewList Reg64B.s()
AddElement(Reg64B()) : Reg64B() ="Rbx" : AddElement(Reg64B()) : Reg64B() ="Rcx"
AddElement(Reg64B()) : Reg64B() ="Rbp" : AddElement(Reg64B()) : Reg64B() ="Rdi"
AddElement(Reg64B()) : Reg64B() ="R9" : AddElement(Reg64B()) : Reg64B() ="R11"
AddElement(Reg64B()) : Reg64B() ="R13" : AddElement(Reg64B()) : Reg64B() ="R15"

; !RDRAND Rcx
; !ROR Rcx, 1
; !ROR Rcx, 1
; !CALL QWORD PB_RandomSeed
; RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())

NewMap Reg16.s()
Reg16("Rax")="ax" : Reg16("Rbx")="bx" : Reg16("Rcx")="cx" : Reg16("Rdx")="dx"
Reg16("Rsp")="sp" : Reg16("Rsi")="si" : Reg16("Rbp")="bp" : Reg16("Rdi")="di"
Reg16("R8")="R8w" : Reg16("R9")="R9w" : Reg16("R10")="R10w" : Reg16("R11")="R11w"
Reg16("R12")="R12w" : Reg16("R13")="R13w" : Reg16("R14")="R14w" : Reg16("R15")="R15w"

NewMap Reg8.s()
Reg8("Rax")="al" : Reg8("Rbx")="bl" : Reg8("Rcx")="cl" : Reg8("Rdx")="dl"
Reg8("Rsp")="spl" : Reg8("Rsi")="sil" : Reg8("Rbp")="bpl" : Reg8("Rdi")="dil"
Reg8("R8")="R8b" : Reg8("R9")="R9b" : Reg8("R10")="R10b" : Reg8("R11")="R11b"
Reg8("R12")="R12b" : Reg8("R13")="R13b" : Reg8("R14")="R14b" : Reg8("R15")="R15b"

ForEach Reg64()
  Debug "Macro BLSR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !BLSR "+Reg64()+", "+Reg64()
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro SHR_"+Reg64()+"_x64"
  For Loop=1 To 64
    Debug "  !SHR "+Reg64()+", 1"
  Next
  Debug "  !BZHI "+Reg64()+", "+Reg64()+", "+Reg64()
  Debug "EndMacro"
  Debug ""
Next

ForEach Reg64()
  Debug "Macro MOV_"+Reg64()+"_Up_Down"
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  Debug "  !MOV "+Reg64()+", "+Reg64()
  Debug "  !MOV "+Reg16(Reg64())+", "+Reg16(Reg64())
  If Len(Reg8(Reg64()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64()), "l", "h")+", "+ReplaceString(Reg8(Reg64()), "l", "h")
  EndIf
  Debug "  !MOV "+Reg8(Reg64())+", "+Reg8(Reg64())
  Debug "EndMacro"
  Debug ""
Next

Debug "Macro Set_CL1"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  ; cx = 1"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL8"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 8"
Debug "EndMacro"
Debug ""
Debug "Macro Set_CL64"
Debug "  BLSR_Rcx_x64"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL cl, cl"
Debug "  ; cx = 64"
Debug "EndMacro"
Debug ""
Debug "Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  BLSR_Rcx_x64"
Debug "  Set_CL1"
Debug "  MOVZX_Rcx"
Debug "  !MOVQ mm1, Rcx"
For Loop=1 To 16
  Debug "  !PSLLW mm0, mm1 ;"+Str(Loop)+" Left 1bit shift"
Next
Debug "  !MOVQ mm0, mm1"
For Roop=1 To 7
  For Loop=1 To 16
    Debug "  !PSLLW mm"+Str(Roop)+", mm0 ;"+Str(Loop)+" Left 1bit shift"
  Next
Next
Debug "EndMacro"
Debug ""

Global SIMPLE_Count.i
Macro SIMPLE_MOVE_REGISTERS_Up_and_Down
  Debug "SIMPLE_MOVE_REGISTERS_Up_and_Down"+Str(SIMPLE_Count) +":" : SIMPLE_Count+1
  ;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ;   ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  ;   ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
EndMacro

Debug "Macro MOVZX_Rcx"
Debug "  !MOVZX cx, cl"
Debug "  !MOVZX Rcx, cl"
Debug "  !MOVZX cx, cl"
Debug "EndMacro"
Debug ""

Macro BeforeProcedureRegisters_1st
;   Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  Debug "SIMPLE_A_MOVE_REGISTERS_Up_and_Down"+Str(SIMPLE_Count) +":" : SIMPLE_Count+1
  ;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ;   ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64A() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64A() : Loop + 1 : Next
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
 EndMacro
 
Macro BeforeProcedureRegisters_2nd
  Loop=0
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
  ForEach Reg64A() : Debug "  !MOVQ "+Reg64A()+", mm"+Str(Loop) : Loop + 1 : Next
  Debug "SIMPLE_MOVE_REGISTERS_Up_and_Down"+Str(SIMPLE_Count) +":" : SIMPLE_Count+1
  ;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ;   ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  ;   Debug "  ;"
  ;   ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Loop=0
  ForEach Reg64B() : Debug "  !MOVQ mm"+Str(Loop)+", "+Reg64B() : Loop + 1 : Next
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
EndMacro

Macro BeforeProcedureRegisters_3rd
  Loop=0
  Debug "!MOVQ mm0, mm0"
  Debug "!MOVQ mm1, mm1"
  Debug "!MOVQ mm2, mm2"
  Debug "!MOVQ mm3, mm3"
  Debug "!MOVQ mm4, mm4"
  Debug "!MOVQ mm5, mm5"
  Debug "!MOVQ mm6, mm6"
  Debug "!MOVQ mm7, mm7"
  ForEach Reg64B() : Debug "  !MOVQ "+Reg64B()+", mm"+Str(Loop) : Loop + 1 : Next
  Debug "SIMPLE_B_MOVE_REGISTERS_Up_and_Down"+Str(SIMPLE_Count) +":" : SIMPLE_Count+1
  ;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ;   ForEach Reg64B() : Debug "  MOV_"+Reg64B()+"_Up_Down" : Next
  Debug "  !EMMS"
EndMacro

Macro BeforeProcedureRegisters_SMSW16_BLSR
  BeforeProcedureRegisters_1st
  ForEach Reg64A()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !SMSW "+Reg16(Reg64A())
    Debug "  !MOVZX "+Reg64A()+", "+Reg16(Reg64A())
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64A()+"_x64"
  Next
  BeforeProcedureRegisters_2nd
  ForEach Reg64B()
    Debug "  !NOP QWORD [Rip+16]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !SMSW "+Reg16(Reg64B())
    Debug "  !MOVZX "+Reg64B()+", "+Reg16(Reg64B())
    Debug "  !NOP QWORD [Rip-36]"
    Debug "  BLSR_"+Reg64B()+"_x64"
  Next
  BeforeProcedureRegisters_3rd
EndMacro

Macro BeforeProcedureRegisters_NOP_EAX_BLSR
  For Loop=1 To 32
    Debug "  !BLSR Eax, Eax"
  Next
  Debug "  !BZHI Eax, Eax, Eax"
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP ax"
    Debug "  !NOP ax"
  Next
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP Eax"
    Debug "  !NOP Eax"
  Next
  For Loop=1 To 32
    Debug "  !BLSR Eax, Eax"
  Next
  Debug "  !BZHI Eax, Eax, Eax"
EndMacro

Macro BeforeProcedureRegisters_NOP_ESP_BLSR
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  ;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  ;   ForEach Reg64A() : Debug "  MOV_"+Reg64A()+"_Up_Down" : Next
  Debug "!MOVQ mm5, Rsp"
  Debug "!MOVQ mm5, mm5"
  For Loop=1 To 32
    Debug "  !BLSR Esp, Esp"
  Next
  Debug "  !BZHI Esp, Esp, Esp"
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP sp"
    Debug "  !NOP sp"
  Next
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !XCHG bl, bh"
  Debug "  !XCHG bh, bl"
  Debug "  !XCHG cl, ch"
  Debug "  !XCHG ch, cl"
  Debug "  !XCHG al, ah"
  Debug "  !XCHG ah, al"
  Debug "  !XCHG dl, dh"
  Debug "  !XCHG dh, dl"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !XCHG spl, spl"
  Debug "  !MOVQ mm1, mm5"
  Debug "  !MOVQ mm2, mm1"
  Debug "  !MOVQ mm3, mm2"
  Debug "  !MOVQ mm4, mm3"
  Debug "  !MOVQ mm6, mm4"
  Debug "  !MOVQ mm7, mm6"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !XCHG al, ah"
  Debug "  !XCHG ah, al"
  Debug "  !XCHG dl, dh"
  Debug "  !XCHG dh, dl"
  Debug "  !XCHG bl, bh"
  Debug "  !XCHG bh, bl"
  Debug "  !XCHG cl, ch"
  Debug "  !XCHG ch, cl"
  For Loop=1 To 64
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP QWORD [Rip]"
    Debug "  !NOP Esp"
    Debug "  !NOP Esp"
  Next
  For Loop=1 To 32
    Debug "  !BLSR Esp, Esp"
  Next
  Debug "  !BZHI Esp, Esp, Esp"
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Debug "  !MOVQ Rsp, mm7"
  Debug "  !EMMS"
EndMacro

Macro FXCACHE
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
EndMacro
  
Macro FXSAVE
  ;   Debug "  !MOV R8, QWORD [p_FXSAVE]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !FXSAVE64 [R8]"
EndMacro

Macro FXRSTOR
  ; Debug "    !MOV R8, QWORD [p_FXSAVE] "
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !FXRSTOR64 [R8]"
EndMacro

Macro FX_WORD_REVERSE
  For Loop=-512 To -8 Step 8
    Debug "  !NOT WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next
  For Loop=-512 To -8 Step 8
    Debug "  !NOP WORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
EndMacro

Macro FX_DWORD_REVERSE
  For Loop=512 To 1016 Step 8
    Debug "  !NOT DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next
  For Loop=512 To 1016 Step 8
    Debug "  !NOP DWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
EndMacro

Macro FX_QWORD_REVERSE
  For Loop=0 To 504 Step 8
    Debug "  !NOT QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
    Debug "  !FNOP"
    Debug "  !FNOP"
  Next  
EndMacro

Macro FXCLEAR_ALL
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ;   Debug "  !MOV R8, QWORD [p_FXSAVE2]"
  For Loop=-512 To -8 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
  For Loop=512 To 1016 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  Debug "  !EMMS"
EndMacro

Macro FXCLEAR_512
  Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
  ;   Debug "  !MOV R8, QWORD [p_FXSAVE2]"
  For Loop=0 To 504 Step 8
    Debug "  !MOVNTQ QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"], mm5"
  Next
  For Loop=0 To 504 Step 8
    Debug "  !NOP QWORD [R8"+ReplaceString("+"+Str(Loop), "+-", "-")+"]"
  Next
  Debug "  !EMMS"
EndMacro

Macro RefreshCPUinside(Instruction1, Instruction2)
  For RefreshCPUID_no.i=5 To 32
;     Debug ";- "+Str(Val("%"+LSet("1", RefreshCPUID_no, "0"))) + " | " + Str(Val("%"+LSet("1", RefreshCPUID_no, "1")))
    RefreshCPUIDval.i = Val("%"+LSet("1", RefreshCPUID_no, "0"))
    RefreshCPUIDbits.i = RefreshCPUIDval
    RefreshCPUIDchk.i = 0
    RefreshCPUIDcount.i = 0
    Debug "  BLSR_Rcx_x64"
    Debug "  BLSR_R8_x64"
    !MOV Rax, [v_RefreshCPUIDval]
    !MOV R8, Rax
    !MOV [v_RefreshCPUIDbits], R8
    Debug  "  !INC cl"
    For RefreshCPUIDcount=31 To 1 Step -1
      If RefreshCPUIDbits&(2<<RefreshCPUIDcount)
        RefreshCPUIDchk+1
        Debug  "  !INC R8b"
        Debug  "  !SHL R8d, cl"
      ElseIf RefreshCPUIDchk
        Debug  "  !SHL R8d, cl"
      EndIf  
    Next
    If RefreshCPUIDbits&2
      Debug  "  !INC R8b"
      Debug  "  !SHL R8d, cl"
    Else
      Debug  "  !SHL R8d, cl"
    EndIf  
    If RefreshCPUIDbits&1
      Debug  "  !INC R8b"
    EndIf
    Debug "  !MOV bl, R8b"
    Debug "  !MOV bx, R8w"
    Debug "  !MOV Ebx, R8d"
    Debug "  !MOV bl, bl"
    Debug "  !MOV bh, bh"
    Debug "  !MOV bx, bx"
    Debug "  !MOV Ebx, Ebx"
    Debug "  !MOV cl, R8b"
    Debug "  !MOV cx, R8w"
    Debug "  !MOV Ecx, R8d"
    Debug "  !MOV cl, cl"
    Debug "  !MOV ch, ch"
    Debug "  !MOV cx, cx"
    Debug "  !MOV Ecx, Ecx"
    Debug "  !MOV al, R8b"
    Debug "  !MOV ax, R8w"
    Debug "  !MOV Eax, R8d"
    Debug "  !MOV al, al"
    Debug "  !MOV ah, ah"
    Debug "  !MOV ax, ax"
    Debug "  !MOV Eax, Eax"
    Debug "  !MOV dl, R8b"
    Debug "  !MOV dx, R8w"
    Debug "  !MOV Edx, R8d"
    Debug "  !MOV dl, dl"
    Debug "  !MOV dh, dh"
    Debug "  !MOV dx, dx"
    Debug "  !MOV Edx, Edx"
    Debug Instruction1
    Debug Instruction2
    ;
    RefreshCPUIDval.i = Val("%"+LSet("1", RefreshCPUID_no, "1"))
    RefreshCPUIDbits.i = RefreshCPUIDval
    RefreshCPUIDchk.i = 0
    RefreshCPUIDcount.i = 0
    Debug "  BLSR_Rcx_x64"
    Debug "  BLSR_R8_x64"
    !MOV Rax, [v_RefreshCPUIDval]
    !MOV R8, Rax
    !MOV [v_RefreshCPUIDbits], R8
    Debug  "  !INC cl"
    For RefreshCPUIDcount=31 To 1 Step -1
      If RefreshCPUIDbits&(2<<RefreshCPUIDcount)
        RefreshCPUIDchk+1
        Debug  "  !INC R8b"
        Debug  "  !SHL R8d, cl"
      ElseIf RefreshCPUIDchk
        Debug  "  !SHL R8d, cl"
      EndIf  
    Next
    If RefreshCPUIDbits&2
      Debug  "  !INC R8b"
      Debug  "  !SHL R8d, cl"
    Else
      Debug  "  !SHL R8d, cl"
    EndIf  
    If RefreshCPUIDbits&1
      Debug  "  !INC R8b"
    EndIf
    Debug "  !MOV bl, R8b"
    Debug "  !MOV bx, R8w"
    Debug "  !MOV Ebx, R8d"
    Debug "  !MOV bl, bl"
    Debug "  !MOV bh, bh"
    Debug "  !MOV bx, bx"
    Debug "  !MOV Ebx, Ebx"
    Debug "  !MOV cl, R8b"
    Debug "  !MOV cx, R8w"
    Debug "  !MOV Ecx, R8d"
    Debug "  !MOV cl, cl"
    Debug "  !MOV ch, ch"
    Debug "  !MOV cx, cx"
    Debug "  !MOV Ecx, Ecx"
    Debug "  !MOV al, R8b"
    Debug "  !MOV ax, R8w"
    Debug "  !MOV Eax, R8d"
    Debug "  !MOV al, al"
    Debug "  !MOV ah, ah"
    Debug "  !MOV ax, ax"
    Debug "  !MOV Eax, Eax"
    Debug "  !MOV dl, R8b"
    Debug "  !MOV dx, R8w"
    Debug "  !MOV Edx, R8d"
    Debug "  !MOV dl, dl"
    Debug "  !MOV dh, dh"
    Debug "  !MOV dx, dx"
    Debug "  !MOV Edx, Edx"
    Debug Instruction1
    Debug Instruction2
  Next  
EndMacro

Debug ";- PureBasicStart"
Debug "; Procedure MajiorityLabyrinth1(*dummy)"
Debug "; MajiorityAudio (2025 07 15) ML68"
Debug "; SMSW16 MOVZX r64,r16 BLSRx64 CPU reg. Stabilizer from JAPAN"
Debug "; Copyright (c) 2020-2025 Hiroyuki Yokota (oryaaaaa) 444-3174"
Debug "; Design based by Military LAB-AI designed (Customized  Hiroyuki Yokota)"
Debug ""
Debug "; IncludeFile "+Chr(34)+"CopyMemoryMaya10.pbi"+Chr(34)
Debug "Import "+Chr(34)+"CopyMemoryMaya.lib"+Chr(34)
Debug "  CopyMemoryMaya(dummyRcx.i, CMM_length.i, *CMM_in, *CMM_out)"
Debug "  ClearMemoryMaya(dummyRcx.i, CMM_length.i, *CMM_in, *CMM_out)"
Debug "  TransMemoryLorya(dummyRcx.i, CMM_length.i, *CMM_in, *CMM_out)"
Debug "EndImport"
Debug "Global dummyRcx.i"
Debug "!MOV cl, R8b"
Debug "!SUB R8b, cl"
Debug "!MOVZX R8, R8b"
Debug "!MOVNTI QWORD [v_dummyRcx], R8"
Debug "Global MayaZero.i"
Debug "!MOV dl, cl"
Debug "!SUB cl, dl"
Debug "!INC cl"
Debug "!MOVZX Rcx, cl"
Debug "!MOVQ mm5, Rcx"
Debug "!PSLLW mm1, mm5 ;1  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;2  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;3  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;4  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;5  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;6  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;7  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;8  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;9  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;A  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;B  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;C  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;D  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;E  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;F  Left 1bit shift"
Debug "!PSLLW mm1, mm5 ;0  Left 1bit shift"
Debug "!MOVQ mm1, Rcx"
Debug "!PSLLW mm5, mm1 ;1  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;2  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;3  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;4  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;5  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;6  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;7  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;8  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;9  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;A  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;B  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;C  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;D  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;E  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;F  Left 1bit shift"
Debug "!PSLLW mm5, mm1 ;0  Left 1bit shift"
Debug "; mm5 = 0000 , mm1 = 001"
Debug "!MOVQ R8, mm1"
Debug "!MOV R8, R8"
Debug "!MOV R8w, R8w"
Debug "!MOV R8b, R8b"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!SHL R8b,1"
Debug "!MOVZX R8, R8b"
Debug "!MOVQ mm5, R8"
Debug "!MOVNTQ QWORD [v_MayaZero], mm5"
Debug "!EMMS"
For loop=0 To 16
  RefreshCPUinside("!MOV Eax, "+Str(loop), "!CPUID")
  RefreshCPUinside("!MOV Eax, "+Str(loop+$80000000), "!CPUID")
Next
Debug "  Set_CL64"
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CALL QWORD Sleep"
Debug "  !NOP QWORD [Rip-32]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"

Debug "  Global *FXSAVE, *FXSAVE2"
Debug "  Global D60.i, D59.i, D15.i, D1000.i, D8192.i, D16384.i"
Debug "BLSR_R8_x64"
Debug "!MOVNTI QWORD [v_D60], R8"
Debug "!MOVNTI QWORD [v_D59], R8"
Debug "!MOVNTI QWORD [v_D15], R8"
Debug "!MOVNTI QWORD [v_D1000], R8"
Debug "!MOVNTI QWORD [v_D8192], R8"
Debug "!MOVNTI QWORD [v_D16384], R8"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC cl"
Debug "  !INC R8b"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !SHL R8, cl"
Debug "  !MOVNTI QWORD [v_D8192], R8"
Debug "  !SHL R8, cl"
Debug "  !MOVNTI QWORD [v_D16384], R8"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !SHL R8, cl" ; 16,384
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL R8, cl" ; 8,192
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !MOV al, al"
Debug "  !MOV ah, ah"
Debug "  !MOV ax, ax"
Debug "  !MOV Rax, Rax"
Debug "  !ADD Rax, R8"
Debug "  !MOVNTI QWORD [p_FXSAVE], Rax"
Debug "  !NOP QWORD [p_FXSAVE]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Debug "  ClearMemoryMaya(dummyRcx, D16384, @MayaZero, *FXSAVE-D8192)"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE]"
FXCLEAR_ALL
FX_WORD_REVERSE
FX_DWORD_REVERSE
FX_QWORD_REVERSE
FXCLEAR_ALL
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_Rdx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !SHL R8, cl" ; 16,384
Debug "  !XCHG Rcx, R8"
Debug "  !INC dl"
Debug "  !MOVZX Rdx, dl"
Debug "  !CALL PB_AllocateMemory2"
Debug "  BLSR_Rcx_x64"
Debug "  BLSR_R8_x64"
Debug "  !INC R8b"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !INC cl"
Debug "  !SHL R8, cl" ; 8,192
Debug "  !MOV R8b, R8b"
Debug "  !MOV R8w, R8w"
Debug "  !MOV R8, R8"
Debug "  !MOV al, al"
Debug "  !MOV ah, ah"
Debug "  !MOV ax, ax"
Debug "  !MOV Rax, Rax"
Debug "  !ADD Rax, R8"
Debug "  !MOVNTI QWORD [p_FXSAVE2], Rax"
Debug "  !NOP QWORD [p_FXSAVE2]"
;  "*FXSAVE = AllocateMemory(16384,1) + 8192"
Debug "  ClearMemoryMaya(dummyRcx, D16384, @MayaZero, *FXSAVE2-D8192)"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE2]"
FXCLEAR_ALL
FX_WORD_REVERSE
FX_DWORD_REVERSE
FX_QWORD_REVERSE
FXCLEAR_ALL
  
;- Start
Debug ";- PureBasicStart"
BeforeProcedureRegisters_SMSW16_BLSR
Debug ";- OpenConsole"
Debug "If OpenConsole("+Chr(34)+"MajiorityAudio ML68 setup To General-purpose 64-bit registers."+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Copyright (c) 2020-2025 Hiroyuki Yokota (oryaaaaa) 444-3174"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"-"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Instruction CPU cache to TimeAPI FileAPI LibraryAPI ProcessAPI."+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 1... Reverse pattern Eax Ebx Ecx Edx 32bits CPUID refresh"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 2... NOP Reg32 BLSRx32 CPU reg. Expressions"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 3... SMSW16 MOVZX64 BLSRx64 BZHI CPU reg. Stabilizer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 4... Logical to Physical CPU reg. Balancer"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"[DelayLoop 16 ms to 16383 ms] Total 81,805 ms"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"... Setup + FXSAVE64 sleep_(reverse bits) ...[End] FXRSTOR64"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"Setup 7... Logical to Physical 16 bits CPU reg. refresh"+Chr(34)+")"
Debug "  PrintN("+Chr(34)+"-"+Chr(34)+")"
Debug "  Set_CL64"
Debug "  !NOP QWORD [Rip+16]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !CALL QWORD Sleep"
Debug "  !NOP QWORD [Rip-32]"
; Debug "  CloseConsole()"
BeforeProcedureRegisters_SMSW16_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !StartStabilizer:"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  Print(FormatDate("+Chr(34)+"%hh:%ii:%ss "+Chr(34)+", Date()))"
SIMPLE_MOVE_REGISTERS_Up_and_Down
For loop=0 To 16
  RefreshCPUinside("!MOV Eax, "+Str(loop), "!CPUID")
  RefreshCPUinside("!MOV Eax, "+Str(loop+$80000000), "!CPUID")
Next
SIMPLE_MOVE_REGISTERS_Up_and_Down
Global SineWave.i, SineBits.i, CountBits.i, CountChk.i
; totalWave = 81,805 ms
DataSection
  SineData:
  Data.q 16, 31, 32, 63, 64, 127, 128, 255, 256, 511, 512, 1023, 1024, 2047, 2048, 4095, 4096, 8191, 8192, 16383
  Data.q 8192, 8191, 4096, 4095, 2048, 2047, 1024, 1023, 512, 511, 256, 255, 128, 127, 64, 63, 32, 31, 16, -1

;   ; 2024-09-30
;   
;   For no.i=1 To 17
;     Debug Str(Val("%"+LSet("1", no, "0"))) + " | " + Str(Val("%"+LSet("1", no, "1")))
;     Debug LSet("1", no, "0")
;     Debug LSet("1", no, "1")
;   Next
;   
;   1 | 1
;   1
;   1
;   2 | 3
;   10
;   11
;   4 | 7
;   100
;   111
;   8 | 15
;   1000
;   1111
;   16 | 31
;   10000
;   11111
;   32 | 63
;   100000
;   111111
;   64 | 127
;   1000000
;   1111111
;   128 | 255
;   10000000
;   11111111
;   256 | 511
;   100000000
;   111111111
;   512 | 1023
;   1000000000
;   1111111111
;   1024 | 2047
;   10000000000
;   11111111111
;   2048 | 4095
;   100000000000
;   111111111111
;   4096 | 8191
;   1000000000000
;   1111111111111
;   8192 | 16383
;   10000000000000
;   11111111111111
;   16384 | 32767
;   100000000000000
;   111111111111111
;   32768 | 65535
;   1000000000000000
;   1111111111111111
;   65536 | 131071
;   10000000000000000
;   11111111111111111
;   
;   For no.i=1 To 17
;     Debug Str(Val("%"+LSet("1", no, "0"))) + " | " + Str(Val("%"+LSet("1", no, "1")))
;     Debug LSet("1", no, "0")
;     Debug LSet("1", no, "1")
;   Next

EndDataSection
Restore SineData
SineLoop:
Read.q SineWave
If SineWave>0
  CountChk = 0
  Debug "  ; "+Bin(SineWave)+" Setup"
  BeforeProcedureRegisters_NOP_EAX_BLSR
  BeforeProcedureRegisters_NOP_ESP_BLSR
  BeforeProcedureRegisters_SMSW16_BLSR
  SIMPLE_MOVE_REGISTERS_Up_and_Down
  Debug "    !MOV R8, QWORD [p_FXSAVE] "
  FXCACHE
  FXSAVE
  FXCACHE
  Debug "  BLSR_Rcx_x64"
  Debug "  BLSR_R8_x64"
  !MOV Rax, [v_SineWave]
  !MOV R8, Rax
  !MOV [v_SineBits], R8
  Debug "; "+Str(SineWave)
  totalWave.i + SineWave
  Debug  "  !INC cl"
  For CountBits=63 To 1 Step -1
    If SineBits&(2<<CountBits)
      CountChk+1
      Debug  "  !INC R8b"
      Debug  "  !SHL R8, cl"
    ElseIf CountChk
      Debug  "  !SHL R8, cl"
    EndIf  
  Next
  If SineBits&2
    Debug  "  !INC R8b"
    Debug  "  !SHL R8, cl"
  Else
    Debug  "  !SHL R8, cl"
  EndIf  
  If SineBits&1
    Debug  "  !INC R8b"
  EndIf
  Debug "  !MOV cl, R8b"
  Debug "  !MOV cx, R8w"
  Debug "  !MOV Rcx, R8"
  Debug "  !NOP QWORD [Rip+16]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !CALL QWORD Sleep"
  Debug "  !NOP QWORD [Rip-32]"
  Debug "  !NOP QWORD [Rip]"
  Debug "  !NOP QWORD [Rip]"
;   !RDRAND Rcx
;   !ROL Rcx, 1
;   !ROL Rcx, 1
;   !CALL QWORD PB_RandomSeed
;   RandomizeList(Reg64()) : RandomizeList(Reg64A()) : RandomizeList(Reg64B())
  Goto SineLoop
EndIf
; SortList(Reg64(), #PB_Sort_Ascending)
; SortList(Reg64A(), #PB_Sort_Ascending)
; SortList(Reg64B(), #PB_Sort_Ascending)
BeforeProcedureRegisters_NOP_EAX_BLSR
BeforeProcedureRegisters_NOP_ESP_BLSR
BeforeProcedureRegisters_SMSW16_BLSR
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !MOV R8, QWORD [p_FXSAVE]"
FXCACHE
FXRSTOR
Debug "  Swap *FXSAVE2, *FXSAVE"
Debug "  ALL_MMX_CLEAR_SHIFTWORD_INC_CL"
Debug "  !MOV R8, QWORD [p_FXSAVE]"
FXCLEAR_ALL
FX_WORD_REVERSE
FX_DWORD_REVERSE
FX_QWORD_REVERSE
FXCLEAR_ALL
FXCACHE
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "Set_CL64"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !EndStabilizer:"
ForEach Reg64A()
  Debug "  !MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
  If Len(Reg8(Reg64A()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
  EndIf
  Debug  "  !MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
Next
ForEach Reg64B()
  Debug "  !MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
  If Len(Reg8(Reg64B()))=2
    Debug "  !MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
  EndIf
  Debug  "  !MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
Next
Debug "  !LOOP QWORD EndStabilizer"
ForEach Reg64()
  Debug "  !FNOP"
Next
Debug "  ClearMemoryMaya(dummyRcx, D16384, @MayaZero, *FXSAVE2-D8192)"
Debug "  TransMemoryLorya(dummyRcx, D16384, @MayaZero, *FXSAVE-D8192)"
Debug "; p.v_D60 = 60"
Debug "BLSR_Rcx_x64"
Debug "BLSR_R8_x64"
Debug "!INC cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!SHL R8, cl"
Debug "!MOVNTI QWORD [v_D60], R8"
Debug "; p.v_D59 = 59"
Debug "BLSR_Rcx_x64"
Debug "BLSR_R8_x64"
Debug "!INC cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!MOVNTI QWORD [v_D59], R8"
Debug "; p.v_D15 = 15"
Debug "BLSR_Rcx_x64"
Debug "BLSR_R8_x64"
Debug "!INC cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!MOVNTI QWORD [v_D15], R8"
Debug "; p.v_D1000 = 1000"
Debug "BLSR_Rcx_x64"
Debug "BLSR_R8_x64"
Debug "!INC cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!SHL R8, cl"
Debug "!INC R8b"
Debug "!SHL R8, cl"
Debug "!SHL R8, cl"
Debug "!SHL R8, cl"
Debug "!MOVNTI QWORD [v_D1000], R8"
; Delay( ( (15 - Minute(Date())%15)*60 + 59 - Second(Date()) ) * 1000 )
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "Sleep_(( (D15 - Minute(Date())%D15)*D60 + D59 - Second(Date()) ) * D1000)"
SIMPLE_MOVE_REGISTERS_Up_and_Down
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [StartStabilizer]"
Debug "  !NOP QWORD [StartStabilizer+8]"
Debug "  !NOP QWORD [Rip]"
Debug "  !NOP QWORD [Rip]"
Debug "  !JMP QWORD StartStabilizer"
Debug ";- EndProcedure"
Debug "EndIf"
Debug "Sleep_(0)"
Debug "AllocateMemory(0,0)"
Debug "IncludeFile "+Chr(34)+"CPUcache_MacroSentence_ML48rev2.pbi"+Chr(34)
Debug "End"
CallDebugger
End
CPUcache_MacroSentence_ML48rev2.pbi

Code: Select all

Macro CPUcache_timeGetTime_Sentence
  timeBeginPeriod_(0)
  timeEndPeriod_(0)
  timeGetTime_()
  timeGetDevCaps_(0,0)
  timeGetSystemTime_(0,0)
  QueryPerformanceCounter_(0)
  QueryPerformanceFrequency_(0)
EndMacro
CPUcache_timeGetTime_Sentence
Macro CPUcache_ML48_Sentence
  FreeLibrary_(0)
  GetProcAddress_(0, 0)
  LoadLibrary_(0)
  LoadLibraryEx_(0, 0, 0)
  FlushFileBuffers_(0)
  GetFileSize_(0,0)
  GetFileTime_(0,0,0,0)
  GetFileType_(0)
  ReadFile_(0,0,0,0,0)
  ReadFileEx_(0,0,0,0,0)
  SetFilePointer_(0,0,0,0)
  SetFileTime_(0,0,0,0)
  WriteFile_(0,0,0,0,0)
  WriteFileEx_(0,0,0,0,0)
  CreateThread_(0,0,0,0,0,0)
  ExitProcess_(0)
  ExitThread_(0)
  GetCurrentProcess_()
  GetCurrentProcessId_()
  GetCurrentThread_()
  GetCurrentThreadId_()
  GetProcessTimes_(0,0,0,0,0)
  GetThreadPriority_(0)
  GetThreadPriorityBoost_(0,0)
  GetThreadTimes_(0,0,0,0,0)
  SetPriorityClass_(0,0)
  SetProcessPriorityBoost_(0,0)
  SetThreadPriority_(0,0)
  SetThreadPriorityBoost_(0,0)
EndMacro
CPUcache_ML48_Sentence
User avatar
oryaaaaa
Addict
Addict
Posts: 825
Joined: Mon Jan 12, 2004 11:40 pm
Location: Okazaki, JAPAN

Re: Japanese ANIME quality up on streming

Post by oryaaaaa »

I test my post programs.

Code: Select all

>dir /S
2025/07/16  00:13            14,517 CopyMemoryMaya10.pbi
2025/07/16  00:13               409 CopyMemoryMaya.exp
2025/07/16  00:13             2,020 CopyMemoryMaya.lib
2025/07/16  00:13            15,360 CopyMemoryMaya.dll
2025/07/16  00:20            21,035 Build.pb
2025/07/16  00:16            34,273 MajiorityAudioR20250715_ML68.pb
2025/07/16  00:17             1,187 CPUcache_MacroSentence_ML48rev2.pbi
2025/07/16  00:20         4,651,111 MajiorityAudioR20250715_ML68_AT.pb
2025/07/16  00:21        11,558,506 MajiorityAudioML68.asm
2025/07/16  00:21         3,803,136 MajiorityAudioML68.exe

You should test Closed Network only!
Removed LAN cables, and WiFi-Disabled!

Your JOB in separated WiFi-LAN.
If you manage Wolrd Wide BANK ATM Servers,
You test this ML68 code, many ATM machines crush.
Don't re-edit this code. Are you understand, this is very hard code.

but, many video streming is better quality.
Thank you.
Rinzwind
Enthusiast
Enthusiast
Posts: 679
Joined: Wed Mar 11, 2009 4:06 pm
Location: NL

Re: Japanese ANIME quality up on streming

Post by Rinzwind »

I ran this code and now all ATM's nearby in a 6km radius stopped working. How to fix?
Little John
Addict
Addict
Posts: 4769
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: Japanese ANIME quality up on streming

Post by Little John »

Rinzwind wrote: Wed Jul 16, 2025 9:25 am I ran this code and now all ATM's nearby in a 6km radius stopped working. How to fix?
You have to hop around the cemetery on one leg when the moon is full.
User avatar
Caronte3D
Addict
Addict
Posts: 1355
Joined: Fri Jan 22, 2016 5:33 pm
Location: Some Universe

Re: Japanese ANIME quality up on streming

Post by Caronte3D »

Image
User avatar
jacdelad
Addict
Addict
Posts: 1990
Joined: Wed Feb 03, 2021 12:46 pm
Location: Riesa

Re: Japanese ANIME quality up on streming

Post by jacdelad »

Little John wrote: Wed Jul 16, 2025 10:03 am
Rinzwind wrote: Wed Jul 16, 2025 9:25 am I ran this code and now all ATM's nearby in a 6km radius stopped working. How to fix?
You have to hop around the cemetery on one leg when the moon is full.
...in a chicken costume.
Good morning, that's a nice tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
User avatar
NicTheQuick
Addict
Addict
Posts: 1501
Joined: Sun Jun 22, 2003 7:43 pm
Location: Germany, Saarbrücken
Contact:

Re: Japanese ANIME quality up on streming

Post by NicTheQuick »

Why is this thread still open and in the Tricks 'n' Tips forum?

I think we need an esoteric forum just for this.
The english grammar is freeware, you can use it freely - But it's not Open Source, i.e. you can not change it or publish it in altered way.
User avatar
minimy
Enthusiast
Enthusiast
Posts: 551
Joined: Mon Jul 08, 2013 8:43 pm
Location: off world

Re: Japanese ANIME quality up on streming

Post by minimy »

GURU MEDITATION ##### :mrgreen:
If translation=Error: reply="Sorry, Im Spanish": Endif
threedslider
Enthusiast
Enthusiast
Posts: 377
Joined: Sat Feb 12, 2022 7:15 pm

Re: Japanese ANIME quality up on streming

Post by threedslider »

oryaaaaa is a magician that use dark magic or black magic ! :mrgreen:

Agreed with @NicTheQuick we should have an advanced forum for that :shock: :twisted: :!:
Post Reply