' Masakari.bas (DragDropWheelScroller.bas)
' written in QB64 v1.4 by Kaze, 2021-Jan-25
' Thanks go to the www.qb64.org/forum members for sharing useful excerpts/etudes
' Wow, this is nice indeed: http://www.qb64.org/wiki/Windows_Libraries
' Currently are implemented only:
' Mouse:
' Button 1 - sets the cursor and the inverse line to the chosen position
' Button 3 - PgDn
' Wheel Up - Up
' Wheel Dn - Dn
' Keyboard:
' Up
' Down
' Left - still no sideways scroll
' Right - still no sideways scroll
' LCtrl+Home - going to the top left position
' LCtrl+End - going to the bottom left position
' Alt+x or Alt+q - quit to the system, without demanding keypress.
_TITLE "MASAKARI 128x60, The 'Holy Axe' English Text Sidekick" CONST RSHIFTkey&
= 100303 CONST LSHIFTkey&
= 100304
PRINT "Masakari, revision 3+, written in QB64 by Kaze" PRINT "Usage: Masakari filename|/help" PRINT "Usage: Masakari filename|-h" '_CONSOLE OFF
'_SCREENSHOW
'DEFLNG A-Z
'_DEFINE A-Z AS _UNSIGNED _INTEGER64
XdimCOL = 128
YdimROW = 40 ' ensure old laptops with 768pixels vertical will hold the whole window
IF high&
> 1000 THEN YdimROW
= 60
' _DEST 0 refers to the present program SCREEN. You can use 0 to refer to the present program
' SCREEN.
'_FONT 16 'wish we could use the old 8x16 bitmap/raster fonts from DOS times...
' Either one must be uncommented:
'_AUTODISPLAY 'no need of refreshing
PurpleFlag = 0
'PurpleFlag = 1
NormalFRGr = 3
IF PurpleFlag
THEN NormalFRGr
= 9 NormalBCKGr = 0
IF PurpleFlag
THEN NormalBCKGr
= 0
InverseFRGr = 0
IF PurpleFlag
THEN InverseFRGr
= 8 InverseBCKGr = 3
IF PurpleFlag
THEN InverseBCKGr
= 0
COLOR NormalFRGr
, NormalBCKGr
'Ugh, they are reversed?!
'PRINT "Current working directory path: "; CHR$(34); _CWD$; CHR$(34)
'PRINT "User's program calling path: "; CHR$(34); _STARTDIR$; CHR$(34)
'Y = CSRLIN 'save the row
'X = POS(0) 'save the column
REDIM FileArray$
(1) 'create dynamic array: 3880000 alocates 532MB - bigger values need 570+MB and give "Out Of Memory" DIM FileArrayWINDOW$
(YdimROW
)
'pressakey$ = INPUT$(1)
a$ = ""
' MEMUSAGE by Steve [
' GetCPULoad = 0 is idle, 1 is fully used.
' Multiply by 100 for a percentage
PRINT "Total Physical Memory: ";
PRINT AddCommas$
(TotalPhysicalMem
);
" bytes";
SPACE$(18) PRINT "Free Physical Memory: ";
PRINT AddCommas$
(FreePhysicalMem
);
" bytes";
SPACE$(18) PRINT "Total Paging File: ";
PRINT AddCommas$
(TotalPagingFile
);
" bytes";
SPACE$(18) PRINT "Free Paging File: ";
PRINT "Total Virtual Memory: ";
PRINT AddCommas$
(TotalVirtualMem
);
" bytes";
SPACE$(18) PRINT "Free Virtual Memory: ";
'PRINT "Free Extended Virtual Memory:"
'PRINT " "; FreeExtendedMeml; " bytes"
' MEMUSAGE by Steve ]
ReturnCOMBO
'FOR i = 1 TO _TOTALDROPPEDFILES
'a$ = _DROPPEDFILE(i)
'NEXT'
_FINISHDROP 'If _FINISHDROP isn't called here then _TOTALDROPPEDFILES never gets reset. 'ELSE
'a$ = "Scroller.$$$"
'SHELL _HIDE "DIR /B *.* > Scroller.$$$"
'WrapFlag = 0
'Wwidth% = XdimCOL
'ul& = 0
'LongestLine = 0
'DO WHILE NOT EOF(1)
' LINE INPUT #1, l$: ul& = ul& + 1
' ExpandTabs l$
' IF LEN(l$) > LongestLine THEN LongestLine = LEN(l$)
' IF WrapFlag THEN
' lX$ = l$
' DO WHILE LEN(lX$) > Wwidth%
' Glupak% = Wwidth%
' DO UNTIL MID$(lX$, Glupak% + 1, 1) = " " AND MID$(lX$, Glupak%, 1) <> " "
' Glupak% = Glupak% - 1
' IF Glupak% = 0 THEN
' PRINT "Rejecting line(#"; LTRIM$(STR$(ul&)); ", "; LTRIM$(STR$(LEN(l$))); "chars) that cannot be wrapped!"
' _DISPLAY: SYSTEM
' GOTO B4Txpanar
' END IF
' LOOP
' PRINT #3, LEFT$(lX$, Glupak%)
' lX$ = STRING$(1, " ") + LTRIM$(MID$(lX$, Glupak% + 1, LEN(lX$) - (Glupak%)))
' LOOP
' PRINT #3, lX$
' B4Txpanar:
' END IF
'LOOP
LongestLine = 0
filecount = 0
' OPEN a$ FOR INPUT AS #1
OPEN a$
FOR BINARY AS #1 ' As suggested by SMcNeill and Pete in https://www.qb64.org/forum/index.php?topic=3518.msg128631#msg128631 filecount = filecount + 1
filecount = 0
' OPEN a$ FOR INPUT AS #1
OPEN a$
FOR BINARY AS #1 ' As suggested by SMcNeill and Pete in https://www.qb64.org/forum/index.php?topic=3518.msg128631#msg128631 ExpandTabs l$
filecount = filecount + 1
FileArray$(filecount) = l$
'IF INKEY$ = CHR$(27) THEN SYSTEM
'IF keycode& = 27 THEN SYSTEM
' QB64 _KEYHIT and _KEYDOWN Values
'
'Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Sys ScL Pause
' 27 15104 15360 15616 15872 16128 16384 16640 16896 17152 17408 34048 34304 +316 +302 +019
'`~ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ BkSp Ins Hme PUp NumL / * -
'126 33 64 35 36 37 94 38 42 40 41 95 43 8 20992 18176 18688 +300 47 42 45
' 96 49 50 51 52 53 54 55 56 57 48 45 61
'Tab Q W E R T Y U I O P [{ ]} \| Del End PDn 7Hme 8/? 9PU +
' 9 81 87 69 82 84 89 85 73 79 80 123 125 124 21248 20224 20736 18176 18432 18688 43
' 113 119 101 114 116 121 117 105 111 112 91 93 92 55 56 57
'CapL A S D F G H J K L ;: '" Enter 4/?- 5 6/-?
'+301 65 83 68 70 71 72 74 75 76 58 34 13 19200 19456 19712 E
' 97 115 100 102 103 104 106 107 108 59 39 52 53 54 n
'Shift Z X C V B N M ,< .> /? Shift ? 1End 2/? 3PD t
'+304 90 88 67 86 66 78 77 60 62 63 +303 18432 20224 20480 20736 e
' 122 120 99 118 98 110 109 44 46 47 49 50 51 r
'Ctrl Win Alt Spacebar Alt Win Menu Ctrl ?- ? -? 0Ins .Del
'+306 +311 +308 32 +307 +312 +319 +305 19200 20480 19712 20992 21248 13
' 48 46
' Lower value = LCase/NumLock On __________________ + = add 100000
'PLAY "L8V2a-c-" 'removed in order to get rid of audio dependency
CurrentLine = 1
FOR i
= 1 TO MIN&
(YdimROW
, filecount
) FileArrayWINDOW$
(i
) = MID$(FileArray$
(i
), 1, XdimCOL
) FileArrayWINDOW$
(i
) = FileArray$
(i
) + SPACE$(XdimCOL
- LEN(FileArray$
(i
)))
' Here is the layout:
' The window-frame is 1..crx or 1..128 | The file-frame is 1..LongestLine
' . . | .
' . . | .
' cry 60 | filecount
' FileArrayWINDOW$(60) | FileArray(filecount)
' if File_Frame_x < 128 then PADDING to 128 else File_Frame_x = 1..LongestLine-(128-1)
' if File_Frame_y < 60 then PADDING to 60 else File_Frame_y = 1..filecount-(60-1)
UpdateCLine 1, 1, InverseFRGr, InverseBCKGr, 1
MID$(StatuLine$
, 1, 1) = "[" MID$(StatuLine$
, XdimCOL
, 1) = "]"
Dumbo$ = "File Size: " + AddCommas$(FileSize) + "; Longest Line: " + AddCommas$(LongestLine) + "; Total Lines: " + AddCommas$(filecount)
MID$(StatuLine$
, 2, LEN(Dumbo$
)) = Dumbo$
UpdateCLL CurrentLine
, LEN(Dumbo$
) + 1 + 1CLL_Field
= LEN(AddCommas$
(LongestLine
))MostRightField
= LEN(Dumbo$
) + 1 + 1 + (LEN("; Current Line Length: ") + CLL_Field
)UpdateNextToCCL_DONE MostRightField
crxOLD = crx
cryOLD = cry
File_Frame_x = 1
File_Frame_y = 1
ReturnCOMBO
'PLAY "L4V2f" 'removed in order to get rid of audio dependency
ReportTimeToLoad MostRightField
'DO: a$ = INKEY$: LOOP UNTIL a$ <> "" ' prevent ASC empty string read error
IF code%
THEN ' ASC returns any value greater than 0 'CASE 27: COLOR 7, 0: SYSTEM 'END
IF CurrentLine
> 1 THEN CurrentLine
= CurrentLine
- 1 cry = cry - 1 'up
ELSE 'scrolling is needed IF File_Frame_y
> 1 THEN File_Frame_y
= File_Frame_y
- 1 UpdateWindowFrame NormalFRGr, NormalBCKGr
IF CurrentLine
< filecount
THEN CurrentLine
= CurrentLine
+ 1 IF cry
< filecount
THEN cry
= cry
+ 1 'down ELSE 'scrolling is needed IF File_Frame_y
< filecount
- (YdimROW
- 1) THEN File_Frame_y
= File_Frame_y
+ 1 UpdateWindowFrame NormalFRGr, NormalBCKGr
CASE 77:
IF crx
< XdimCOL
THEN crx
= crx
+ 1 'right UpdateCLine cryOLD, 1, NormalFRGr, NormalBCKGr, cryOLD
cryOLD = cry
ELSE 'it 'cry' could be changed by Mouse Wheel too, check it IF CurrentLine
< filecount
THEN CurrentLine
= CurrentLine
+ 1 IF cry
< filecount
THEN cry
= cry
+ 1 'down ELSE 'scrolling is needed IF File_Frame_y
< filecount
- (YdimROW
- 1) THEN File_Frame_y
= File_Frame_y
+ 1 UpdateWindowFrame NormalFRGr, NormalBCKGr
IF CurrentLine
> 1 THEN CurrentLine
= CurrentLine
- 1 cry = cry - 1 'up
ELSE 'scrolling is needed IF File_Frame_y
> 1 THEN File_Frame_y
= File_Frame_y
- 1 UpdateWindowFrame NormalFRGr, NormalBCKGr
crxOLD = crx
cryOLD = cry
UpdateCLine cryOLD, 1, NormalFRGr, NormalBCKGr, cryOLD
cryOLD = cryOLD - 1
IF CurrentLine
> 1 THEN CurrentLine
= CurrentLine
- 1 cryOLD = cryOLD + 1
IF CurrentLine
< filecount
THEN CurrentLine
= CurrentLine
+ 1 ' Don't execute PgDn (advancing the 'CurrentLine') if 'File_Frame_y' is not "eligible":
'IF File_Frame_y < filecount - (YdimROW - 1) THEN File_Frame_y = File_Frame_y + 1
'IF File_Frame_y + 1 <= filecount - (YdimROW - 1) THEN File_Frame_y = File_Frame_y + 1
'CAUTION [
' Next three line beep NOT
'DEFLNG A-Z
'aaa = 61
'bbb = -48
'IF aaa <= bbb THEN BEEP: END
'Next three line beep
'aaa~& = 61
'bbb~& = -48
'IF aaa~& <= bbb~& THEN BEEP: END
'Next three line beep NOT
'aaa& = 61
'bbb& = -48
'IF aaa& <= bbb& THEN BEEP: END
'Next line works even when unsigned!
'IF File_Frame_y + YdimROW - (filecount - (YdimROW - 1)) <= 0 THEN
'CAUTION ]
'Next line doesn't work when unsigned!
IF File_Frame_y
+ YdimROW
<= filecount
- (YdimROW
- 1) THEN File_Frame_y = File_Frame_y + YdimROW
'IF CurrentLine < filecount THEN CurrentLine = CurrentLine + 1
'IF CurrentLine + 1 <= filecount THEN CurrentLine = CurrentLine + 1
IF CurrentLine
+ YdimROW
<= filecount
THEN CurrentLine
= CurrentLine
+ YdimROW
UpdateWindowFrame NormalFRGr, NormalBCKGr
UpdateCLine cryOLD, 1, NormalFRGr, NormalBCKGr, cryOLD
cryOLD = cry
crxOLD = crx
cryOLD = cry
File_Frame_x = 1
File_Frame_y = 1
CurrentLine = 1
UpdateWindowFrame NormalFRGr, NormalBCKGr
IF filecount
- (YdimROW
- 1) THEN crxOLD = crx
cryOLD = cry
File_Frame_x = 1
File_Frame_y = filecount - (YdimROW - 1)
CurrentLine = filecount
UpdateWindowFrame NormalFRGr, NormalBCKGr
LOCATE filecount
, 1, 1, 30, 31 crxOLD = crx
cryOLD = cry
File_Frame_x = 1
File_Frame_y = 1
CurrentLine = filecount
UpdateWindowFrame NormalFRGr, NormalBCKGr
UpdateCLine cry, 1, InverseFRGr, InverseBCKGr, cry
UpdateCLL CurrentLine
, LEN(Dumbo$
) + 1 + 1 'DO WHILE INKEY$ <> "": LOOP ' have to clear the keyboard buffer
_LIMIT 500 '_LIMIT 30 'commented because the wheel up/down was not working?!
'_TITLE "Mouse Feedback"
'DO
' DO WHILE _MOUSEINPUT ' Check the mouse status
' PRINT _MOUSEX, _MOUSEY, _MOUSEBUTTON(1); _MOUSEBUTTON(2); _MOUSEBUTTON(3), _MOUSEWHEEL
' LOOP
'LOOP UNTIL INKEY$ <> ""
'Syntax:
'infoExists%% = _MOUSEINPUT
'Description:
'- Returns -1 if new mouse information is available, otherwise it returns 0.
'- Must be called before reading any of the other mouse functions. The function will not miss any
' mouse input even during an INPUT entry.
'- Use in a loop to monitor the mouse buttons, scroll wheel and coordinate positions.
'- To clear all previous mouse data, use _MOUSEINPUT in a loop until it returns 0.
' _FONT (function) creates a new alphablended font handle from a designated image handle
' _FONT (statement) sets the current _LOADFONT function font handle to be used by PRINT or
' _PRINTSTRING.
' _FONTHEIGHT (function) returns the font height of a font handle created by _LOADFONT.
' _FONTWIDTH (function) returns the font width of a MONOSPACE font handle created by _LOADFONT.
' _FREEFONT (statement) frees a font handle value from memory
' _LOADFONT (function) loads a TrueType font (.TTF) file of a specific size and style and returns
' a font handle value.
' _DISPLAY (statement) turns off automatic display while only displaying the screen changes when
' called.
' SHELL (QB64 function) executes a DOS command or calls another program. Returns codes sent by END
' or SYSTEM.
' _SHELLHIDE (function) hides a DOS command or call to another program. Returns codes sent by END
' or SYSTEM.
' _CWD$ (function) returns the current working directory path as a STRING.
' _DONTWAIT (SHELL action) allows the program to continue without waiting for the other program to
' close.
' _FILEEXISTS (function) returns -1 if the file name string parameter exists. Zero if it does not.
' _HIDE (SHELL action) hides the DOS screen output during a shell.
' _SHELLHIDE (function) executes a DOS command or calls another program. Returns codes sent by END
' or SYSTEM.
' _STARTDIR$ (function) returns the user's program calling path as a STRING.
'The _MEMNEW function allocates new memory and returns a _MEM memory block referring to it.
'Syntax:
' memoryBlock = _MEMNEW(byteSize)
'- The byteSize parameter is the desired byte size of the memory block based on the variable type
' it will hold.
'Description:
'- The memoryBlock value created holds the elements .OFFSET, .SIZE, .TYPE and .ELEMENTSIZE.
'- _MEMNEW does not clear the data previously in the memory block it allocates, for speed purposes.
'- To clear previous data from a new memory block, use _MEMFILL with a byte value of 0.
'- When a new memory block is created the memory .TYPE value will be 0.
'- If the read only memory block .SIZE is 0, the memory block was not created.
'- All values created by memory functions must be freed using _MEMFREE with a valid _MEM variable.
'Code Examples:
'Example: Shows how SINGLE numerical values can be passed, but non-fixed STRING lengths cannot get
'the value.
'DIM m AS _MEM
'DIM f AS STRING * 5
'm = _MEMNEW(5) 'create new memory block of 5 bytes
'a = 12345.6
'_MEMPUT m, m.OFFSET, a 'put single value
'_MEMGET m, m.OFFSET, b 'get single value
'PRINT "b = "; b
'c$ = "Doggy"
'_MEMPUT m, m.OFFSET, c$ 'put 5 byte string value
'_MEMGET m, m.OFFSET, d$ 'get unfixed length string value
'_MEMGET m, m.OFFSET, f 'get 5 byte string value
'e$ = _MEMGET(m, m.OFFSET, STRING * 5) 'get 5 byte string value
'PRINT "d$ = "; d$; LEN(d$) 'prints empty string
'PRINT "e$ = "; e$; LEN(e$)
'PRINT "f = "; f; LEN(f)
''OPENICON.BAS
''============
''Maximizes a minimized program using WinAPI.
''By Dav, DEC/2020
'DECLARE DYNAMIC LIBRARY "user32"
' FUNCTION OpenIcon& (BYVAL hwnd AS LONG)
'END DECLARE
'PRINT
'PRINT "Minimize this program at it will pop back up in 2 secs."
'DO
' IF _SCREENICON THEN
' SLEEP 2: x& = OpenIcon&(_WINDOWHANDLE)
' END IF
'LOOP
' http://www.qb64.org/wiki/CONSOLETITLE
'Example: Hiding the main program window while displaying the console window with a title.
'LALT:
'RALT:
'LSHIFT:
'RSHIFT:
'LCTRL:
'RCTRL:
'LSHIFT+LCTRL: NOTICE: LSHIFT+LCTRL+Left triggers 3 variables on - 1] LSHIFT_LCTRL_Left 2] LSHIFT_Left 3] LCTRL_Left
'LSHIFT:
'RSHIFT:
'LCTRL:
'RCTRL:
'_KEYCLEAR
TabV% = 8
b$ = "": f& = 0
b$
= b$
+ STRING$((f& \ TabV%
) * TabV%
+ TabV%
- f&
, " ") ' |
' |
' \|/
'TabV% - (f% - (f% \ TabV%) * TabV%) =
'TabV% - (f% MOD TabV%)
f& = (f& \ TabV%) * TabV% + TabV%
b$
= b$
+ MID$(l$
, i&
, 1) f& = f& + 1
l$ = b$
IF YdimROW
< filecount
THEN MIN&
= YdimROW
ELSE MIN&
= filecount
s$ = ""
s$
= s$
+ MID$(x$
, i
, 3) + ","
q$
= AddCommas$
(LEN(FileArray$
(l
)))
SUB UpdateNextToCCL_BUSY
(posit
)
SUB UpdateNextToCCL_DONE
(posit
)
SUB UpdateCLine
(lineToWrite
, columnToWrite
, FRGR
, BACKGR
, ln
) LOCATE lineToWrite
, columnToWrite
, 1, 30, 31 PRINT FileArrayWINDOW$
(ln
);
SUB UpdateWindowFrame
(FRGR
, BACKGR
) SHARED YdimROW
, filecount
, FileArray$
(), File_Frame_y
, XdimCOL
, FileArrayWINDOW$
() FOR i
= 1 TO MIN&
(YdimROW
, filecount
) IF LEN(FileArray$
(i
+ (File_Frame_y
- 1))) >= XdimCOL
THEN FileArrayWINDOW$
(i
) = MID$(FileArray$
(i
+ (File_Frame_y
- 1)), 1, XdimCOL
) FileArrayWINDOW$
(i
) = FileArray$
(i
+ (File_Frame_y
- 1)) + SPACE$(XdimCOL
- LEN(FileArray$
(i
+ (File_Frame_y
- 1))))
SUB ReportTimeToLoad
(posit
) LOCATE YdimROW
+ 1, posit:
COLOR 4, 0:
PRINT "; Loaded in"; TimeB
- TimeA;
"seconds.";
'@rem This is 'MyCompile.bat', should be placed and run from qb64\:
'@rem 'recompile_win.bat' found at E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64\internal\temp:
'@rem @echo off
'@rem cd %0\..\
'@rem echo Recompiling...
'@rem cd ../c
'@rem c_compiler\bin\g++ -mconsole -s -Wfatal-errors -w -Wall qbx.cpp libqb\os\win\libqb_1_4_0000000001000.o ..\..\.\internal\temp\icon.o -D DEPENDENCY_NO_SOCKETS -D DEPENDENCY_NO_PRINTER -D DEPENDENCY_ICON -D DEPENDENCY_NO_SCREENIMAGE parts\core\os\win\src.a -lopengl32 -lglu32 -mwindows -static-libgcc -static-libstdc++ -D GLEW_STATIC -D FREEGLUT_STATIC -lwinmm -lgdi32 -o "..\..\MASAKARI.exe"
'@rem pause
'rem We need to copy 3 files to qb64\internal\c
'rem dynamic name-and-content (name changes should get the one generated after QB64 -c MASAKARI.BAS from qb64\internal\c\libqb\os\win): libqb_1_4_0000000001000.o
'rem static name-and-content (take it from qb64\internal\temp): icon.o
'rem static name-and-content (take it from qb64\internal\c\parts\core\os\win): src.a
'rem Should go to E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64\internal\c
'rem Assuming we are in the "home folder" i.e. qb64:
'cd internal\c
'g++ -mconsole -s -Wfatal-errors -w -Wall qbx.cpp libqb_1_4_0000000001000.o icon.o -D DEPENDENCY_NO_SOCKETS -D DEPENDENCY_NO_PRINTER -D DEPENDENCY_ICON -D DEPENDENCY_NO_SCREENIMAGE src.a -lopengl32 -lglu32 -mwindows -static-libgcc -static-libstdc++ -D GLEW_STATIC -D FREEGLUT_STATIC -lwinmm -lgdi32 -o "MASAKARI_mycompile.exe"
'@rem The output of above:
'@rem
'@rem E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64>MyCompile.bat
'@rem
'@rem E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64>cd internal\c
'@rem
'@rem E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64\internal\c>g++ -mconsole -s -Wfatal-errors -w -Wall qbx.cpp libqb_1_4_0000000001000.o icon.o -D DEPENDENCY_NO_SOCKETS -D DEPENDENCY_NO_PRINTER -D DEPENDENCY_ICON -D DEPENDENCY_NO_SCREENIMAGE src.a -lopengl32 -lglu32 -mwindows -static-libgcc -static-libstdc++ -D GLEW_STATIC -D FREEGLUT_STATIC -lwinmm -lgdi32 -o "MASAKARI_mycompile.exe"
'@rem
'@rem E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64\internal\c>dir masa*
'@rem Volume in drive E is Sanmayce_111GB
'@rem Volume Serial Number is 1410-10F9
'@rem
'@rem Directory of E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64\internal\c
'@rem
'@rem 01/26/2021 06:11 AM 3,248,640 MASAKARI_mycompile.exe
'@rem 1 File(s) 3,248,640 bytes
'@rem 0 Dir(s) 36,627,079,168 bytes free
'@rem
'@rem
'@rem E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64\internal\c>c:\WINDOWS\system32\fc MASAKARI_mycompile.exe ..\..\MASAKARI_original.exe /b
'@rem Comparing files MASAKARI_mycompile.exe and ..\..\MASAKARI_ORIGINAL.EXE
'@rem 00000088: 53 18
'@rem 00000089: 96 93
'@rem 000000D8: F9 BE
'@rem 000000D9: A3 A0
'@rem
'@rem E:\_KAZE_Smxrt_Benchmarks\QB64_kit_v1.4_2.48 GB\qb64\internal\c>