1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-04 04:50:22 +00:00

Moved qb64.bas to source\qb64.bas

Split qb64.bas into $included components: notably settings, version, gloabal, ide (& wiki downloader), subs/functions (and extensions including user mods and opengl)
Moved 'user mods' to source\subs_functions\extensions
Removed legacy functionality of the QB64 update system (including compression functions)
QB64.BAS can be compiled independent of its IDE $includes (just comment them out)
QUI commeted out (needs minor revision)
Updated version to 1.000 (just ran out of numbers)
This commit is contained in:
Galleon 2014-07-20 06:11:05 -07:00
parent b9f23d7a7a
commit d6d4eb0c28
15 changed files with 14754 additions and 16191 deletions

View file

@ -1,2 +0,0 @@
'$INCLUDE:'internal/source/User Mods/Luke Stuff-ID_Includes.bi'
'$INCLUDE:'internal/source/User Mods/Steve Stuff-ID_Includes.bi'

View file

@ -0,0 +1,61 @@
'String SPacer/delimiter constants
'sp is used as the primary string spacer
'sp2 & sp3 are used when further delimiation is required
'for instance, sp2 is used for embedding spacing info for auto-layout by an IDE
DIM SHARED sp AS STRING * 1, sp2 AS STRING * 1, sp3 AS STRING * 1
sp = CHR$(13): sp2 = CHR$(10): sp3 = CHR$(26)
DIM SHARED sp_asc AS LONG, sp2_asc AS LONG, sp3_asc AS LONG
sp_asc = ASC(sp): sp2_asc = ASC(sp2): sp3_asc = ASC(sp3)
IF Debug THEN sp = CHR$(250): sp2 = CHR$(249): sp3 = "³" 'makes debug output more readable
'ASCII codes
CONST ASC_BACKSLASH = 92
CONST ASC_FORWARDSLASH = 47
CONST ASC_LEFTBRACKET = 40
CONST ASC_RIGHTBRACKET = 41
CONST ASC_FULLSTOP = 46
CONST ASC_COLON = 58
CONST ASC_SEMICOLON = 59
CONST ASC_UNDERSCORE = 95
CONST ASC_QUOTE = 34
CONST ASC_LEFTSQUAREBRACKET = 91
CONST ASC_RIGHTSQUAREBRACKET = 93
CONST ASC_QUESTIONMARK = 63
'_KEYDOWN/_KEYHIT codes
CONST KEY_LSHIFT = 100304
CONST KEY_RSHIFT = 100303
CONST KEY_LCTRL = 100306
CONST KEY_RCTRL = 100305
CONST KEY_LALT = 100308
CONST KEY_RALT = 100307
CONST KEY_LAPPLE = 100310
CONST KEY_RAPPLE = 100309
CONST KEY_F1 = 15104
CONST KEY_F2 = 15360
CONST KEY_F3 = 15616
CONST KEY_F4 = 15872
CONST KEY_F5 = 16128
CONST KEY_F6 = 16384
CONST KEY_F7 = 16640
CONST KEY_F8 = 16896
CONST KEY_F9 = 17152
CONST KEY_F10 = 17408
CONST KEY_F11 = 34048
CONST KEY_F12 = 34304
CONST KEY_INSERT = 20992
CONST KEY_DELETE = 21248
CONST KEY_HOME = 18176
CONST KEY_END = 20224
CONST KEY_PAGEUP = 18688
CONST KEY_PAGEDOWN = 20736
CONST KEY_LEFT = 19200
CONST KEY_RIGHT = 19712
CONST KEY_UP = 18432
CONST KEY_DOWN = 20480
CONST KEY_ESC = 27
CONST KEY_ENTER = 13
DIM SHARED CHR_QUOTE AS STRING: CHR_QUOTE = CHR$(34)
DIM SHARED CHR_TAB AS STRING: CHR_TAB = CHR$(9)
DIM SHARED CRLF AS STRING: CRLF = CHR$(13) + CHR$(10) 'carriage return+line feed

View file

@ -0,0 +1,2 @@
'Used for debugging the compiler's code (not the code it compiles) [for temporary/advanced usage]
CONST Debug = 0

View file

@ -0,0 +1,2 @@
DIM SHARED Version AS STRING
Version$ = "1.000"

199
source/ide/ide_global.bas Normal file
View file

@ -0,0 +1,199 @@
'Allow the window to be resized
$RESIZE:ON
_CONTROLCHR OFF
'$INCLUDE:'wiki\wiki_global.bas'
DIM SHARED AltSpecial AS _BYTE
DIM SHARED IDEBuildModeChanged
DIM SHARED IdeInfo AS STRING
DIM SHARED IdeSystem AS LONG
'1=Entering text into the main IDE window
'2=Entering text into the quick search bar
'3=Scrolling within the help window
IdeSystem = 1
DIM SHARED IdeRecentLink(1 TO 4, 1 TO 2) AS STRING
DIM SHARED IdeOpenFile AS STRING 'makes IdeOpen directly open the file passed
TYPE IdeBmkType
y AS LONG 'the vertical line
x AS LONG 'the horizontal position to move cursor to
reserved AS LONG
reserved2 AS LONG
END TYPE
REDIM SHARED IdeBmk(1) AS IdeBmkType
DIM SHARED IdeBmkN
'GetInput global variables
DIM SHARED iCHECKLATER 'the values will be checked later
DIM SHARED iCHANGED
DIM SHARED mX, mY
DIM SHARED mB, mB2
DIM SHARED mOB, mOB2
DIM SHARED mCLICK, mCLICK2
DIM SHARED mRELEASE, mRELEASE2
DIM SHARED mWHEEL
DIM SHARED KB '_KEYHIT value (or 0)
DIM SHARED K$ 'INKEY$ equivalent of _KEYHIT's return (or "")
DIM SHARED KSTATECHANGED
DIM SHARED KSHIFT
DIM SHARED KCTRL 'the control key
DIM SHARED KCONTROL 'PC-CTRL or MAC-APPLE KEY
DIM SHARED KALT, KOALT, KALTPRESS, KALTRELEASE
DIM SHARED block_chr(255) AS INTEGER
block_chr(10) = 1
block_chr(13) = 1
'setup optional codepages
DIM SHARED idecpindex
CONST idecpnum& = 27
DIM SHARED idecpname(1 TO idecpnum) AS STRING
DIM SHARED idecp(1 TO idecpnum) AS STRING
'
idecpname$(1) = "micsft_pc_cp437"
idecp$(1) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000E4000000E0000000E5000000E7000000EA000000EB000000E8000000EF000000EE000000EC000000C4000000C5000000C9000000E6000000C6000000F4000000F6000000F2000000FB000000F9000000FF000000D6000000DC000000A2000000A3000000A5000020A700000192000000E1000000ED000000F3000000FA000000F1000000D1000000AA000000BA000000BF00002310000000AC000000BD000000BC000000A1000000AB000000BB0000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000003B1000000DF00000393000003C0000003A3000003C3000000B5000003C4000003A600000398000003A9000003B40000221E000003C6000003B50000222900002261000000B100002265000022640000232000002321000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
idecpname$(2) = "micsft_pc_cp737"
idecp$(2) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F0000039100000392000003930000039400000395000003960000039700000398000003990000039A0000039B0000039C0000039D0000039E0000039F000003A0000003A1000003A3000003A4000003A5000003A6000003A7000003A8000003A9000003B1000003B2000003B3000003B4000003B5000003B6000003B7000003B8000003B9000003BA000003BB000003BC000003BD000003BE000003BF000003C0000003C1000003C3000003C2000003C4000003C5000003C6000003C7000003C80000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000003C9000003AC000003AD000003AE000003CA000003AF000003CC000003CD000003CB000003CE0000038600000388000003890000038A0000038C0000038E0000038F000000B10000226500002264000003AA000003AB000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
idecpname$(3) = "micsft_pc_cp775"
idecp$(3) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F00000106000000FC000000E900000101000000E400000123000000E500000107000001420000011300000156000001570000012B00000179000000C4000000C5000000C9000000E6000000C60000014D000000F600000122000000A20000015A0000015B000000D6000000DC000000F8000000A3000000D8000000D7000000A4000001000000012A000000F30000017B0000017C0000017A0000201D000000A6000000A9000000AE000000AC000000BD000000BC00000141000000AB000000BB0000259100002592000025930000250200002524000001040000010C00000118000001160000256300002551000025570000255D0000012E000001600000251000002514000025340000252C0000251C000025000000253C000001720000016A0000255A00002554000025690000256600002560000025500000256C0000017D000001050000010D00000119000001170000012F00000161000001730000016B0000017E000025180000250C00002588000025840000258C0000259000002580000000D3000000DF0000014C00000143000000F5000000D5000000B50000014400000136000001370000013B0000013C00000146000001120000014500002019000000AD000000B10000201C000000BE000000B6000000A7000000F70000201E000000B000002219000000B7000000B9000000B3000000B2000025A0000000A0"
idecpname$(4) = "micsft_pc_cp850"
idecp$(4) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000E4000000E0000000E5000000E7000000EA000000EB000000E8000000EF000000EE000000EC000000C4000000C5000000C9000000E6000000C6000000F4000000F6000000F2000000FB000000F9000000FF000000D6000000DC000000F8000000A3000000D8000000D700000192000000E1000000ED000000F3000000FA000000F1000000D1000000AA000000BA000000BF000000AE000000AC000000BD000000BC000000A1000000AB000000BB0000259100002592000025930000250200002524000000C1000000C2000000C0000000A90000256300002551000025570000255D000000A2000000A50000251000002514000025340000252C0000251C000025000000253C000000E3000000C30000255A00002554000025690000256600002560000025500000256C000000A4000000F0000000D0000000CA000000CB000000C800000131000000CD000000CE000000CF000025180000250C0000258800002584000000A6000000CC00002580000000D3000000DF000000D4000000D2000000F5000000D5000000B5000000FE000000DE000000DA000000DB000000D9000000FD000000DD000000AF000000B4000000AD000000B100002017000000BE000000B6000000A7000000F7000000B8000000B0000000A8000000B7000000B9000000B3000000B2000025A0000000A0"
idecpname$(5) = "micsft_pc_cp852"
idecp$(5) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000E40000016F00000107000000E700000142000000EB0000015000000151000000EE00000179000000C400000106000000C9000001390000013A000000F4000000F60000013D0000013E0000015A0000015B000000D6000000DC000001640000016500000141000000D70000010D000000E1000000ED000000F3000000FA00000104000001050000017D0000017E0000011800000119000000AC0000017A0000010C0000015F000000AB000000BB0000259100002592000025930000250200002524000000C1000000C20000011A0000015E0000256300002551000025570000255D0000017B0000017C0000251000002514000025340000252C0000251C000025000000253C00000102000001030000255A00002554000025690000256600002560000025500000256C000000A400000111000001100000010E000000CB0000010F00000147000000CD000000CE0000011B000025180000250C0000258800002584000001620000016E00002580000000D3000000DF000000D4000001430000014400000148000001600000016100000154000000DA0000015500000170000000FD000000DD00000163000000B4000000AD000002DD000002DB000002C7000002D8000000A7000000F7000000B8000000B0000000A8000002D9000001710000015800000159000025A0000000A0"
idecpname$(6) = "micsft_pc_cp855"
idecp$(6) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F0000045200000402000004530000040300000451000004010000045400000404000004550000040500000456000004060000045700000407000004580000040800000459000004090000045A0000040A0000045B0000040B0000045C0000040C0000045E0000040E0000045F0000040F0000044E0000042E0000044A0000042A0000043000000410000004310000041100000446000004260000043400000414000004350000041500000444000004240000043300000413000000AB000000BB0000259100002592000025930000250200002524000004450000042500000438000004180000256300002551000025570000255D00000439000004190000251000002514000025340000252C0000251C000025000000253C0000043A0000041A0000255A00002554000025690000256600002560000025500000256C000000A40000043B0000041B0000043C0000041C0000043D0000041D0000043E0000041E0000043F000025180000250C00002588000025840000041F0000044F000025800000042F0000044000000420000004410000042100000442000004220000044300000423000004360000041600000432000004120000044C0000042C00002116000000AD0000044B0000042B000004370000041700000448000004280000044D0000042D00000449000004290000044700000427000000A7000025A0000000A0"
idecpname$(7) = "micsft_pc_cp857"
idecp$(7) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000E4000000E0000000E5000000E7000000EA000000EB000000E8000000EF000000EE00000131000000C4000000C5000000C9000000E6000000C6000000F4000000F6000000F2000000FB000000F900000130000000D6000000DC000000F8000000A3000000D80000015E0000015F000000E1000000ED000000F3000000FA000000F1000000D10000011E0000011F000000BF000000AE000000AC000000BD000000BC000000A1000000AB000000BB0000259100002592000025930000250200002524000000C1000000C2000000C0000000A90000256300002551000025570000255D000000A2000000A50000251000002514000025340000252C0000251C000025000000253C000000E3000000C30000255A00002554000025690000256600002560000025500000256C000000A4000000BA000000AA000000CA000000CB000000C800000000000000CD000000CE000000CF000025180000250C0000258800002584000000A6000000CC00002580000000D3000000DF000000D4000000D2000000F5000000D5000000B500000000000000D7000000DA000000DB000000D9000000EC000000FF000000AF000000B4000000AD000000B100000000000000BE000000B6000000A7000000F7000000B8000000B0000000A8000000B7000000B9000000B3000000B2000025A0000000A0"
idecpname$(8) = "micsft_pc_cp860"
idecp$(8) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000E3000000E0000000C1000000E7000000EA000000CA000000E8000000CD000000D4000000EC000000C3000000C2000000C9000000C0000000C8000000F4000000F5000000F2000000DA000000F9000000CC000000D5000000DC000000A2000000A3000000D9000020A7000000D3000000E1000000ED000000F3000000FA000000F1000000D1000000AA000000BA000000BF000000D2000000AC000000BD000000BC000000A1000000AB000000BB0000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000003B1000000DF00000393000003C0000003A3000003C3000000B5000003C4000003A600000398000003A9000003B40000221E000003C6000003B50000222900002261000000B100002265000022640000232000002321000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
idecpname$(9) = "micsft_pc_cp861"
idecp$(9) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000E4000000E0000000E5000000E7000000EA000000EB000000E8000000D0000000F0000000DE000000C4000000C5000000C9000000E6000000C6000000F4000000F6000000FE000000FB000000DD000000FD000000D6000000DC000000F8000000A3000000D8000020A700000192000000E1000000ED000000F3000000FA000000C1000000CD000000D3000000DA000000BF00002310000000AC000000BD000000BC000000A1000000AB000000BB0000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000003B1000000DF00000393000003C0000003A3000003C3000000B5000003C4000003A600000398000003A9000003B40000221E000003C6000003B50000222900002261000000B100002265000022640000232000002321000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
idecpname$(10) = "micsft_pc_cp862"
idecp$(10) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000005D0000005D1000005D2000005D3000005D4000005D5000005D6000005D7000005D8000005D9000005DA000005DB000005DC000005DD000005DE000005DF000005E0000005E1000005E2000005E3000005E4000005E5000005E6000005E7000005E8000005E9000005EA000000A2000000A3000000A5000020A700000192000000E1000000ED000000F3000000FA000000F1000000D1000000AA000000BA000000BF00002310000000AC000000BD000000BC000000A1000000AB000000BB0000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000003B1000000DF00000393000003C0000003A3000003C3000000B5000003C4000003A600000398000003A9000003B40000221E000003C6000003B50000222900002261000000B100002265000022640000232000002321000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
idecpname$(11) = "micsft_pc_cp863"
idecp$(11) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000C2000000E0000000B6000000E7000000EA000000EB000000E8000000EF000000EE00002017000000C0000000A7000000C9000000C8000000CA000000F4000000CB000000CF000000FB000000F9000000A4000000D4000000DC000000A2000000A3000000D9000000DB00000192000000A6000000B4000000F3000000FA000000A8000000B8000000B3000000AF000000CE00002310000000AC000000BD000000BC000000BE000000AB000000BB0000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000003B1000000DF00000393000003C0000003A3000003C3000000B5000003C4000003A600000398000003A9000003B40000221E000003C6000003B50000222900002261000000B100002265000022640000232000002321000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
idecpname$(12) = "micsft_pc_cp864"
idecp$(12) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F00000020000000210000002200000023000000240000066A000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000B0000000B7000022190000221A0000259200002500000025020000253C000025240000252C0000251C00002534000025100000250C0000251400002518000003B20000221E000003C6000000B1000000BD000000BC00002248000000AB000000BB0000FEF70000FEF800000000000000000000FEFB0000FEFC00000000000000A0000000AD0000FE82000000A3000000A40000FE8400000000000000000000FE8E0000FE8F0000FE950000FE990000060C0000FE9D0000FEA10000FEA5000006600000066100000662000006630000066400000665000006660000066700000668000006690000FED10000061B0000FEB10000FEB50000FEB90000061F000000A20000FE800000FE810000FE830000FE850000FECA0000FE8B0000FE8D0000FE910000FE930000FE970000FE9B0000FE9F0000FEA30000FEA70000FEA90000FEAB0000FEAD0000FEAF0000FEB30000FEB70000FEBB0000FEBF0000FEC10000FEC50000FECB0000FECF000000A6000000AC000000F7000000D70000FEC9000006400000FED30000FED70000FEDB0000FEDF0000FEE30000FEE70000FEEB0000FEED0000FEEF0000FEF30000FEBD0000FECC0000FECE0000FECD0000FEE10000FE7D000006510000FEE50000FEE90000FEEC0000FEF00000FEF20000FED00000FED50000FEF50000FEF60000FEDD0000FED90000FEF1000025A000000000"
idecpname$(13) = "micsft_pc_cp865"
idecp$(13) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000C7000000FC000000E9000000E2000000E4000000E0000000E5000000E7000000EA000000EB000000E8000000EF000000EE000000EC000000C4000000C5000000C9000000E6000000C6000000F4000000F6000000F2000000FB000000F9000000FF000000D6000000DC000000F8000000A3000000D8000020A700000192000000E1000000ED000000F3000000FA000000F1000000D1000000AA000000BA000000BF00002310000000AC000000BD000000BC000000A1000000AB000000A40000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000003B1000000DF00000393000003C0000003A3000003C3000000B5000003C4000003A600000398000003A9000003B40000221E000003C6000003B50000222900002261000000B100002265000022640000232000002321000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
idecpname$(14) = "micsft_pc_cp866"
idecp$(14) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000004100000041100000412000004130000041400000415000004160000041700000418000004190000041A0000041B0000041C0000041D0000041E0000041F000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B0000042C0000042D0000042E0000042F000004300000043100000432000004330000043400000435000004360000043700000438000004390000043A0000043B0000043C0000043D0000043E0000043F0000259100002592000025930000250200002524000025610000256200002556000025550000256300002551000025570000255D0000255C0000255B0000251000002514000025340000252C0000251C000025000000253C0000255E0000255F0000255A00002554000025690000256600002560000025500000256C00002567000025680000256400002565000025590000255800002552000025530000256B0000256A000025180000250C00002588000025840000258C0000259000002580000004400000044100000442000004430000044400000445000004460000044700000448000004490000044A0000044B0000044C0000044D0000044E0000044F0000040100000451000004040000045400000407000004570000040E0000045E000000B000002219000000B70000221A00002116000000A4000025A0000000A0"
idecpname$(15) = "micsft_pc_cp869"
idecp$(15) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F0000000000000000000000000000000000000000000000000000038600000000000000B7000000AC000000A600002018000020190000038800002015000003890000038A000003AA0000038C00000000000000000000038E000003AB000000A90000038F000000B2000000B3000003AC000000A3000003AD000003AE000003AF000003CA00000390000003CC000003CD00000391000003920000039300000394000003950000039600000397000000BD0000039800000399000000AB000000BB00002591000025920000259300002502000025240000039A0000039B0000039C0000039D0000256300002551000025570000255D0000039E0000039F0000251000002514000025340000252C0000251C000025000000253C000003A0000003A10000255A00002554000025690000256600002560000025500000256C000003A3000003A4000003A5000003A6000003A7000003A8000003A9000003B1000003B2000003B3000025180000250C0000258800002584000003B4000003B500002580000003B6000003B7000003B8000003B9000003BA000003BB000003BC000003BD000003BE000003BF000003C0000003C1000003C3000003C2000003C400000384000000AD000000B1000003C5000003C6000003C7000000A7000003C800000385000000B0000000A8000003C9000003CB000003B0000003CE000025A0000000A0"
idecpname$(16) = "micsft_pc_cp874"
idecp$(16) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC0000000000000000000000000000000000002026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002018000020190000201C0000201D0000202200002013000020140000000000000000000000000000000000000000000000000000000000000000000000A000000E0100000E0200000E0300000E0400000E0500000E0600000E0700000E0800000E0900000E0A00000E0B00000E0C00000E0D00000E0E00000E0F00000E1000000E1100000E1200000E1300000E1400000E1500000E1600000E1700000E1800000E1900000E1A00000E1B00000E1C00000E1D00000E1E00000E1F00000E2000000E2100000E2200000E2300000E2400000E2500000E2600000E2700000E2800000E2900000E2A00000E2B00000E2C00000E2D00000E2E00000E2F00000E3000000E3100000E3200000E3300000E3400000E3500000E3600000E3700000E3800000E3900000E3A0000000000000000000000000000000000000E3F00000E4000000E4100000E4200000E4300000E4400000E4500000E4600000E4700000E4800000E4900000E4A00000E4B00000E4C00000E4D00000E4E00000E4F00000E5000000E5100000E5200000E5300000E5400000E5500000E5600000E5700000E5800000E5900000E5A00000E5B00000000000000000000000000000000"
idecpname$(17) = "micsft_windows_cp1250"
idecp$(17) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC000000000000201A000000000000201E000020260000202000002021000000000000203000000160000020390000015A000001640000017D000001790000000000002018000020190000201C0000201D0000202200002013000020140000000000002122000001610000203A0000015B000001650000017E0000017A000000A0000002C7000002D800000141000000A400000104000000A6000000A7000000A8000000A90000015E000000AB000000AC000000AD000000AE0000017B000000B0000000B1000002DB00000142000000B4000000B5000000B6000000B7000000B8000001050000015F000000BB0000013D000002DD0000013E0000017C00000154000000C1000000C200000102000000C40000013900000106000000C70000010C000000C900000118000000CB0000011A000000CD000000CE0000010E000001100000014300000147000000D3000000D400000150000000D6000000D7000001580000016E000000DA00000170000000DC000000DD00000162000000DF00000155000000E1000000E200000103000000E40000013A00000107000000E70000010D000000E900000119000000EB0000011B000000ED000000EE0000010F000001110000014400000148000000F3000000F400000151000000F6000000F7000001590000016F000000FA00000171000000FC000000FD00000163000002D9"
idecpname$(18) = "micsft_windows_cp1251"
idecp$(18) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F00000402000004030000201A000004530000201E000020260000202000002021000020AC0000203000000409000020390000040A0000040C0000040B0000040F0000045200002018000020190000201C0000201D0000202200002013000020140000000000002122000004590000203A0000045A0000045C0000045B0000045F000000A00000040E0000045E00000408000000A400000490000000A6000000A700000401000000A900000404000000AB000000AC000000AD000000AE00000407000000B0000000B1000004060000045600000491000000B5000000B6000000B7000004510000211600000454000000BB00000458000004050000045500000457000004100000041100000412000004130000041400000415000004160000041700000418000004190000041A0000041B0000041C0000041D0000041E0000041F000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B0000042C0000042D0000042E0000042F000004300000043100000432000004330000043400000435000004360000043700000438000004390000043A0000043B0000043C0000043D0000043E0000043F000004400000044100000442000004430000044400000445000004460000044700000448000004490000044A0000044B0000044C0000044D0000044E0000044F"
idecpname$(19) = "micsft_windows_cp1252"
idecp$(19) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC000000000000201A000001920000201E000020260000202000002021000002C600002030000001600000203900000152000000000000017D000000000000000000002018000020190000201C0000201D000020220000201300002014000002DC00002122000001610000203A00000153000000000000017E00000178000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF000000D0000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000000DD000000DE000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF000000F0000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000000FD000000FE000000FF"
idecpname$(20) = "micsft_windows_cp1253"
idecp$(20) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC000000000000201A000001920000201E00002026000020200000202100000000000020300000000000002039000000000000000000000000000000000000000000002018000020190000201C0000201D0000202200002013000020140000000000002122000000000000203A00000000000000000000000000000000000000A00000038500000386000000A3000000A4000000A5000000A6000000A7000000A8000000A900000000000000AB000000AC000000AD000000AE00002015000000B0000000B1000000B2000000B300000384000000B5000000B6000000B700000388000003890000038A000000BB0000038C000000BD0000038E0000038F000003900000039100000392000003930000039400000395000003960000039700000398000003990000039A0000039B0000039C0000039D0000039E0000039F000003A0000003A100000000000003A3000003A4000003A5000003A6000003A7000003A8000003A9000003AA000003AB000003AC000003AD000003AE000003AF000003B0000003B1000003B2000003B3000003B4000003B5000003B6000003B7000003B8000003B9000003BA000003BB000003BC000003BD000003BE000003BF000003C0000003C1000003C2000003C3000003C4000003C5000003C6000003C7000003C8000003C9000003CA000003CB000003CC000003CD000003CE00000000"
idecpname$(21) = "micsft_windows_cp1254"
idecp$(21) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC000000000000201A000001920000201E000020260000202000002021000002C6000020300000016000002039000001520000000000000000000000000000000000002018000020190000201C0000201D000020220000201300002014000002DC00002122000001610000203A00000153000000000000000000000178000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF0000011E000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000001300000015E000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF0000011F000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000001310000015F000000FF"
idecpname$(22) = "micsft_windows_cp1255"
idecp$(22) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC000000000000201A000001920000201E000020260000202000002021000002C6000020300000000000002039000000000000000000000000000000000000000000002018000020190000201C0000201D000020220000201300002014000002DC00002122000000000000203A00000000000000000000000000000000000000A0000000A1000000A2000000A3000020AA000000A5000000A6000000A7000000A8000000A9000000D7000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000F7000000BB000000BC000000BD000000BE000000BF000005B0000005B1000005B2000005B3000005B4000005B5000005B6000005B7000005B8000005B900000000000005BB000005BC000005BD000005BE000005BF000005C0000005C1000005C2000005C3000005F0000005F1000005F2000005F3000005F400000000000000000000000000000000000000000000000000000000000005D0000005D1000005D2000005D3000005D4000005D5000005D6000005D7000005D8000005D9000005DA000005DB000005DC000005DD000005DE000005DF000005E0000005E1000005E2000005E3000005E4000005E5000005E6000005E7000005E8000005E9000005EA00000000000000000000200E0000200F00000000"
idecpname$(23) = "micsft_windows_cp1256"
idecp$(23) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC0000067E0000201A000001920000201E000020260000202000002021000002C600002030000006790000203900000152000006860000069800000688000006AF00002018000020190000201C0000201D000020220000201300002014000006A900002122000006910000203A000001530000200C0000200D000006BA000000A00000060C000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000006BE000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B90000061B000000BB000000BC000000BD000000BE0000061F000006C10000062100000622000006230000062400000625000006260000062700000628000006290000062A0000062B0000062C0000062D0000062E0000062F00000630000006310000063200000633000006340000063500000636000000D70000063700000638000006390000063A00000640000006410000064200000643000000E000000644000000E200000645000006460000064700000648000000E7000000E8000000E9000000EA000000EB000006490000064A000000EE000000EF0000064B0000064C0000064D0000064E000000F40000064F00000650000000F700000651000000F900000652000000FB000000FC0000200E0000200F000006D2"
idecpname$(24) = "micsft_windows_cp1257"
idecp$(24) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC000000000000201A000000000000201E0000202600002020000020210000000000002030000000000000203900000000000000A8000002C7000000B80000000000002018000020190000201C0000201D0000202200002013000020140000000000002122000000000000203A00000000000000AF000002DB00000000000000A000000000000000A2000000A3000000A400000000000000A6000000A7000000D8000000A900000156000000AB000000AC000000AD000000AE000000C6000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000F8000000B900000157000000BB000000BC000000BD000000BE000000E6000001040000012E0000010000000106000000C4000000C500000118000001120000010C000000C9000001790000011600000122000001360000012A0000013B000001600000014300000145000000D30000014C000000D5000000D6000000D700000172000001410000015A0000016A000000DC0000017B0000017D000000DF000001050000012F0000010100000107000000E4000000E500000119000001130000010D000000E90000017A0000011700000123000001370000012B0000013C000001610000014400000146000000F30000014D000000F5000000F6000000F700000173000001420000015B0000016B000000FC0000017C0000017E000002D9"
idecpname$(25) = "micsft_windows_cp1258"
idecp$(25) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC000000000000201A000001920000201E000020260000202000002021000002C6000020300000000000002039000001520000000000000000000000000000000000002018000020190000201C0000201D000020220000201300002014000002DC00002122000000000000203A00000153000000000000000000000178000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C200000102000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB00000300000000CD000000CE000000CF00000110000000D100000309000000D3000000D4000001A0000000D6000000D7000000D8000000D9000000DA000000DB000000DC000001AF00000303000000DF000000E0000000E1000000E200000103000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB00000301000000ED000000EE000000EF00000111000000F100000323000000F3000000F4000001A1000000F6000000F7000000F8000000F9000000FA000000FB000000FC000001B0000020AB000000FF"
idecpname$(26) = "micsft_windows_cp874"
idecp$(26) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000020AC0000000000000000000000000000000000002026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002018000020190000201C0000201D0000202200002013000020140000000000000000000000000000000000000000000000000000000000000000000000A000000E0100000E0200000E0300000E0400000E0500000E0600000E0700000E0800000E0900000E0A00000E0B00000E0C00000E0D00000E0E00000E0F00000E1000000E1100000E1200000E1300000E1400000E1500000E1600000E1700000E1800000E1900000E1A00000E1B00000E1C00000E1D00000E1E00000E1F00000E2000000E2100000E2200000E2300000E2400000E2500000E2600000E2700000E2800000E2900000E2A00000E2B00000E2C00000E2D00000E2E00000E2F00000E3000000E3100000E3200000E3300000E3400000E3500000E3600000E3700000E3800000E3900000E3A0000000000000000000000000000000000000E3F00000E4000000E4100000E4200000E4300000E4400000E4500000E4600000E4700000E4800000E4900000E4A00000E4B00000E4C00000E4D00000E4E00000E4F00000E5000000E5100000E5200000E5300000E5400000E5500000E5600000E5700000E5800000E5900000E5A00000E5B00000000000000000000000000000000"
idecpname$(27) = "MIK"
idecp$(27) = "000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000004100000041100000412000004130000041400000415000004160000041700000418000004190000041A0000041B0000041C0000041D0000041E0000041F000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B0000042C0000042D0000042E0000042F000004300000043100000432000004330000043400000435000004360000043700000438000004390000043A0000043B0000043C0000043D0000043E0000043F000004400000044100000442000004430000044400000445000004460000044700000448000004490000044A0000044B0000044C0000044D0000044E0000044F00002514000025340000252C0000251C000025000000253C00002563000025510000255A00002554000025690000256600002560000025500000256C00002510000025910000259200002593000025020000252400002116000000A7000025570000255D000025180000250C00002588000025840000258C0000259000002580000003B1000000DF00000393000003C0000003A3000003C3000000B5000003C4000003A600000398000003A9000003B40000221E000003C6000003B50000222900002261000000B100002265000022640000232000002321000000F700002248000000B000002219000000B70000221A0000207F000000B2000025A0000000A0"
DIM SHARED idecurrentlinelayout AS STRING
DIM SHARED idecurrentlinelayouti AS LONG
DIM SHARED idelayoutallow AS LONG
'IDE MODULE: shared data & definitions
DIM SHARED mousex AS INTEGER
DIM SHARED mousey AS INTEGER
DIM SHARED mousewheel AS INTEGER
DIM SHARED mousebutton1 AS INTEGER
DIM SHARED mousebutton2 AS INTEGER
DIM SHARED mousevisible AS INTEGER
DIM SHARED mousepassed AS INTEGER
'---------------------------------------------------
DIM SHARED idesubwindow, idehelp
DIM SHARED ideexit
DIM SHARED idet AS STRING, idel, ideli, iden
DIM SHARED ideundopos, ideundobase, ideundoflag
DIM SHARED idelaunched, idecompiling
DIM SHARED idecompiledline 'stores the number of the last line sent to the compiler, used only to know which line to send next
DIM SHARED idecompiledline$ 'stores the last line sent to the compiler
DIM SHARED idesx, idesy, idecx, idecy
DIM SHARED ideselect, ideselectx1, ideselecty1, idemouseselect, idembmonitor
DIM SHARED ideunsaved
DIM SHARED ideroot AS STRING
DIM SHARED idetxt(1000) AS STRING
DIM SHARED idetxtlast AS INTEGER
DIM SHARED idehl
DIM SHARED idealtcode(255) AS INTEGER
DIM SHARED ideprogname AS STRING
DIM SHARED idepath AS STRING
DIM SHARED idefindtext AS STRING
DIM SHARED idefindcasesens AS INTEGER
DIM SHARED idefindwholeword AS INTEGER
DIM SHARED idefindbackwards AS INTEGER
DIM SHARED idefindinvert AS INTEGER
DIM SHARED idechangeto AS STRING
DIM SHARED idechangemade AS INTEGER
DIM SHARED ideinsert AS INTEGER
DIM SHARED idepathsep AS STRING * 1
'--------------------------------------------------------------------------------
TYPE idedbptype
x AS LONG
y AS LONG
w AS LONG
h AS LONG
nam AS LONG
END TYPE
'--------------------------------------------------------------------------------
TYPE idedbotype
par AS idedbptype
x AS LONG
y AS LONG
w AS LONG
h AS LONG
typ AS LONG
nam AS LONG
txt AS LONG
dft AS LONG
cx AS LONG
cy AS LONG
foc AS LONG
sel AS LONG 'selected item no.
stx AS LONG 'selected item in string form
v1 AS LONG
num AS LONG
END TYPE
'--------------------------------------------------------------------------------
DIM SHARED idefocusline 'simply stores the location of the line to highlight in red
DIM SHARED ideautorun
DIM SHARED menu$(1 TO 10, 0 TO 20)
DIM SHARED menusize(1 TO 10)
DIM SHARED menus AS INTEGER
DIM SHARED menubar$
DIM SHARED ideundocombo, ideundocombochr, idenoundo, idemergeundo
DIM SHARED idealthighlight, ideentermenu
DIM SHARED ideautolayout, ideautoindent, ideautoindentsize, idebackupsize
DIM SHARED idewx, idewy, idecustomfont, idecustomfontfile$, idecustomfontheight, idecustomfonthandle
DIM SHARED iderunmode
'IDE MODULE SECTION END: shared data & definitions
DIM SHARED IdeAndroidMenu
DIM SHARED IdeAndroidStartScript AS STRING
DIM SHARED IdeAndroidMakeScript AS STRING

9898
source/ide/ide_methods.bas Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,48 @@
DIM SHARED Cache_Folder AS STRING
Cache_Folder$ = "internal\help"
IF _DIREXISTS(Cache_Folder$) = 0 THEN MKDIR Cache_Folder$
DIM SHARED Help_sx, Help_sy, Help_cx, Help_cy
DIM SHARED Help_Select, Help_cx1, Help_cy1, Help_SelX1, Help_SelX2, Help_SelY1, Help_SelY2
DIM SHARED Help_MSelect
Help_sx = 1: Help_sy = 1: Help_cx = 1: Help_cy = 1
DIM SHARED Help_wx1, Help_wy1, Help_wx2, Help_wy2 'defines the text section of the help window on-screen
DIM SHARED Help_ww, Help_wh 'width & height of text region
DIM SHARED help_h, help_w 'width & height
DIM SHARED Help_Txt$ '[chr][col][link-byte1][link-byte2]
DIM SHARED Help_Txt_Len
DIM SHARED Help_Line$ 'index of first txt element of a line
DIM SHARED Help_Link$ 'the link info [sep][type:]...[sep]
DIM SHARED Help_Link_Sep$: Help_Link_Sep$ = CHR$(13)
DIM SHARED Help_LinkN
DIM SHARED Help_NewLineIndent
DIM SHARED Help_Underline
'Link Types:
' PAGE:wikipagename
DIM SHARED Help_Pos, Help_Wrap_Pos
DIM SHARED Help_BG_Col
DIM SHARED Help_Col_Normal: Help_Col_Normal = 7
DIM SHARED Help_Col_Link: Help_Col_Link = 9
DIM SHARED Help_Col_Bold: Help_Col_Bold = 15
DIM SHARED Help_Col_Italic: Help_Col_Italic = 15
DIM SHARED Help_Col_Section: Help_Col_Section = 8
DIM SHARED Help_Bold, Help_Italic
DIM SHARED Help_LockWrap
REDIM SHARED Help_LineLen(1)
REDIM SHARED Back$(1)
REDIM SHARED Back_Name$(1)
TYPE Help_Back_Type
sx AS LONG
sy AS LONG
cx AS LONG
cy AS LONG
END TYPE
REDIM SHARED Help_Back(1) AS Help_Back_Type
Back$(1) = "QB64 Help Menu"
Back_Name$(1) = Back2BackName$(Back$(1))
Help_Back(1).sx = 1: Help_Back(1).sy = 1: Help_Back(1).cx = 1: Help_Back(1).cy = 1
DIM SHARED Help_Back_Pos
Help_Back_Pos = 1
DIM SHARED Help_Search_Time AS DOUBLE
DIM SHARED Help_Search_Str AS STRING
DIM SHARED Help_PageLoaded AS STRING
DIM SHARED Help_Recaching, Help_IgnoreCache

View file

@ -0,0 +1,764 @@
FUNCTION Back2BackName$ (a$)
IF a$ = "Keyword Reference - Alphabetical" THEN Back2BackName$ = "Alphabetical": EXIT FUNCTION
IF a$ = "Keyword Reference - By usage" THEN Back2BackName$ = "By Usage": EXIT FUNCTION
IF a$ = "QB64 Help Menu" THEN Back2BackName$ = "Help": EXIT FUNCTION
IF a$ = "QB64 FAQ" THEN Back2BackName$ = "FAQ": EXIT FUNCTION
Back2BackName$ = a$
END FUNCTION
FUNCTION Wiki$ (PageName$)
Help_PageLoaded$ = PageName$
PageName2$ = PageName$
DO WHILE INSTR(PageName2$, " ")
ASC(PageName2$, INSTR(PageName2$, " ")) = 95
LOOP
DO WHILE INSTR(PageName2$, "&")
i = INSTR(PageName2$, "&")
PageName2$ = LEFT$(PageName2$, i - 1) + "%26" + RIGHT$(PageName2$, LEN(PageName2$) - i)
LOOP
DO WHILE INSTR(PageName2$, "/")
i = INSTR(PageName2$, "/")
PageName2$ = LEFT$(PageName2$, i - 1) + "%2F" + RIGHT$(PageName2$, LEN(PageName2$) - i)
LOOP
'Is this page in the cache?
IF Help_IgnoreCache = 0 THEN
IF _FILEEXISTS(Cache_Folder$ + "/" + PageName2$ + ".txt") THEN
fh = FREEFILE
OPEN Cache_Folder$ + "/" + PageName2$ + ".txt" FOR BINARY AS #fh
a$ = SPACE$(LOF(fh))
GET #fh, , a$
CLOSE #fh
Wiki$ = a$
EXIT FUNCTION
END IF
END IF
IF Help_Recaching = 0 THEN
a$ = "Downloading '" + PageName$ + "' page..."
IF LEN(a$) > 60 THEN a$ = LEFT$(a$, 57) + "úúú"
IF LEN(a$) < 60 THEN a$ = a$ + SPACE$(60 - LEN(a$))
COLOR 0, 3: LOCATE idewy + idesubwindow, 2
PRINT a$;
PCOPY 3, 0
END IF
url$ = "www.qb64.net/wiki/index.php?title=" + PageName2$ + "&action=edit"
url2$ = url$
x = INSTR(url2$, "/")
IF x THEN url2$ = LEFT$(url$, x - 1)
c = _OPENCLIENT("TCP/IP:80:" + url2$)
IF c = 0 THEN EXIT FUNCTION
e$ = CHR$(13) + CHR$(10)
url3$ = RIGHT$(url$, LEN(url$) - x + 1)
x$ = "GET " + url3$ + " HTTP/1.1" + e$
x$ = x$ + "Host: " + url2$ + e$ + e$
PUT #c, , x$
t! = TIMER
DO
_DELAY 0.1
GET #c, , a2$
IF LEN(a2$) THEN
a$ = a$ + a2$
IF INSTR(a$, "</body>") THEN
CLOSE #c
s1$ = "readonly=" + CHR$(34) + "readonly" + CHR$(34) + ">"
s2$ = "</textarea>"
s1 = INSTR(a$, s1$): IF s1 = 0 THEN EXIT FUNCTION
s1 = s1 + LEN(s1$)
s2 = INSTR(a$, s2$): IF s2 = 0 THEN EXIT FUNCTION
s2 = s2 - 1
IF s1 > s2 THEN EXIT FUNCTION
a$ = MID$(a$, s1, s2 - s1 + 1)
fh = FREEFILE
E = 0
ON ERROR GOTO qberror_test
OPEN Cache_Folder$ + "/" + PageName2$ + ".txt" FOR OUTPUT AS #fh 'clear old content
ON ERROR GOTO qberror
IF E = 0 THEN
CLOSE #fh
ON ERROR GOTO qberror_test
OPEN Cache_Folder$ + "/" + PageName2$ + ".txt" FOR BINARY AS #fh
ON ERROR GOTO qberror
IF E = 0 THEN
PUT #fh, , a$
CLOSE #fh
END IF
END IF
Wiki$ = a$
EXIT FUNCTION
END IF
END IF
LOOP UNTIL ABS(TIMER - t!) > 20
CLOSE #c
END FUNCTION
SUB Help_AddTxt (t$, col, link)
IF t$ = CHR$(13) THEN Help_NewLine: EXIT SUB
FOR i = 1 TO LEN(t$)
c = ASC(t$, i)
IF Help_BG_Col = 0 AND Help_LockWrap = 0 THEN
'addtxt handles all wrapping issues
IF c = 32 THEN
IF Help_Pos = Help_ww THEN Help_NewLine: GOTO special
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = 32
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = col + Help_BG_Col * 16
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = link AND 255
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = link \ 256
Help_Wrap_Pos = Help_Txt_Len 'pos to backtrack to when wrapping content
Help_Pos = Help_Pos + 1
GOTO special
END IF
IF Help_Pos > Help_ww THEN
IF Help_Wrap_Pos THEN 'attempt to wrap
'backtrack, insert new line, continue
b$ = MID$(Help_Txt$, Help_Wrap_Pos + 1, Help_Txt_Len - Help_Wrap_Pos)
Help_Txt_Len = Help_Wrap_Pos
Help_NewLine
MID$(Help_Txt$, Help_Txt_Len + 1, LEN(b$)) = b$: Help_Txt_Len = Help_Txt_Len + LEN(b$)
Help_Pos = Help_Pos + LEN(b$) \ 4
END IF
END IF
END IF 'bg_col=0
c = ASC(t$, i)
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = c
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = col + Help_BG_Col * 16
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = link AND 255
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = link \ 256
Help_Pos = Help_Pos + 1
special:
NEXT
END SUB
SUB Help_NewLine
IF Help_Pos > help_w THEN help_w = Help_Pos
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = 13
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = col + Help_BG_Col * 16
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = 0
Help_Txt_Len = Help_Txt_Len + 1: ASC(Help_Txt$, Help_Txt_Len) = 0
help_h = help_h + 1
Help_Line$ = Help_Line$ + MKL$(Help_Txt_Len + 1)
Help_Wrap_Pos = 0
IF Help_Underline THEN
Help_Underline = 0
w = Help_Pos
Help_Pos = 1
Help_AddTxt STRING$(w - 1, 196), Help_Col, 0
Help_NewLine
END IF
Help_Pos = 1
IF Help_NewLineIndent THEN
Help_AddTxt SPACE$(Help_NewLineIndent), Help_Col, 0
END IF
END SUB
SUB Help_PreView
OPEN "help_preview.txt" FOR OUTPUT AS #1
FOR i = 1 TO LEN(Help_Txt$) STEP 4
c = ASC(Help_Txt$, i)
c$ = CHR$(c)
IF c = 13 THEN c$ = CHR$(13) + CHR$(10)
PRINT #1, c$;
NEXT
CLOSE #1
CLS
FOR i = 1 TO LEN(Help_Txt$) STEP 4
c = ASC(Help_Txt$, i)
col = ASC(Help_Txt$, i + 1)
IF c = 13 THEN
COLOR col AND 15, col \ 16
PRINT SPACE$(help_w - POS(0));
COLOR 7, 0
PRINT SPACE$(_WIDTH - POS(0) + 1);
COLOR col AND 15, col \ 16
SLEEP
ELSE
COLOR col AND 15, col \ 16
PRINT CHR$(c);
END IF
NEXT
END SUB
FUNCTION Help_Col 'helps to calculate the default color
col = Help_Col_Normal
IF Help_Italic THEN col = Help_Col_Italic
IF Help_Bold THEN col = Help_Col_Bold 'Note: Bold overrides italic
Help_Col = col
END FUNCTION
SUB WikiParse (a$)
'PRINT "Parsing...": _DISPLAY
'wiki page interpret
'clear info
help_h = 0: help_w = 0: Help_Line$ = "": Help_Link$ = "": Help_LinkN = 0
Help_Txt$ = SPACE$(1000000)
Help_Txt_Len = 0
Help_Pos = 1: Help_Wrap_Pos = 0
Help_Line$ = MKL$(1)
Help_LockWrap = 0
Help_Bold = 0: Help_Italic = 0
Help_Underline = 0
Help_BG_Col = 0
link = 0: elink = 0: cb = 0
col = Help_Col
'Syntax Notes:
' '''=bold
' ''=italic
' {{macroname|macroparam}} or simply {{macroname}}
' eg. {{KW|PRINT}}=a key word, a link to a page
' {{Cl|PRINT}}=a key word in a code example, will be printed in bold and aqua
' {{Parameter|expression}}=a parameter, in italics
' {{PageSyntax}} {{PageDescription}} {{PageExamples}}
' {{CodeStart}} {{CodeEnd}} {{OutputStart}} {{OutputEnd}}
' {{PageSeeAlso}} {{PageNavigation}}
' [[SPACE$]]=a link to wikipage called "SPACE$"
' [[INTEGER|integer]]=a link, link's name is on left and text to appear is on right
' *=a dot point
' **=a sub(ie. further indented) dot point
' &quot;=a quotation mark
' :=indent (if beginning a new line)
' CHR$(10)=new line character
DIM c$(16)
FOR ii = 1 TO 16
c$(ii) = SPACE$(ii)
NEXT
n = LEN(a$)
i = 1
DO WHILE i <= n
c = ASC(a$, i): c$ = CHR$(c)
FOR i1 = 1 TO 16
ii = i
FOR i2 = 1 TO i1
IF ii < n THEN
ASC(c$(i1), i2) = ASC(a$, ii)
ELSE
ASC(c$(i1), i2) = 32
END IF
ii = ii + 1
NEXT
NEXT
IF c = 38 THEN '"&"
s$ = "&lt;code&gt;": IF c$(LEN(s$)) = s$ THEN i = i + LEN(s$) - 1: GOTO Special
s$ = "&lt;/code&gt;": IF c$(LEN(s$)) = s$ THEN i = i + LEN(s$) - 1: GOTO Special
s$ = "&quot;"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
c$ = CHR$(34): c = ASC(c$)
GOTO SpecialChr
END IF
s$ = "&amp;"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
c$ = "&": c = ASC(c$)
GOTO SpecialChr
END IF
s$ = "&lt;center&gt;"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
GOTO Special
END IF
s$ = "&lt;/center&gt;"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
GOTO Special
END IF
s$ = "&lt;p style="
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
FOR ii = i TO LEN(a$) - 3
IF MID$(a$, ii, 4) = "&gt;" THEN i = ii + 3: EXIT FOR
NEXT
GOTO Special
END IF
s$ = "&lt;/p"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
FOR ii = i TO LEN(a$) - 3
IF MID$(a$, ii, 4) = "&gt;" THEN i = ii + 3: EXIT FOR
NEXT
GOTO Special
END IF
s$ = "&gt;"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
c$ = ">": c = ASC(c$)
GOTO SpecialChr
END IF
s$ = "&lt;"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
c$ = "<": c = ASC(c$)
GOTO SpecialChr
END IF
IF c$(2) = CHR$(194) + CHR$(160) THEN 'some kind of white-space formatting unicode combo
i = i + 1
GOTO Special
END IF
SpecialChr:
END IF 'c=38 '"&"
'Links
IF c = 91 THEN '"["
IF c$(2) = "[[" AND link = 0 THEN
i = i + 1
link = 1
link$ = ""
GOTO Special
END IF
END IF
IF link = 1 THEN
IF c$(2) = "]]" OR c$(2) = "}}" THEN
i = i + 1
link = 0
text$ = link$
i2 = INSTR(link$, "|")
IF i2 THEN
text$ = RIGHT$(link$, LEN(link$) - i2)
link$ = LEFT$(link$, i2 - 1)
END IF
IF INSTR(link$, "#") THEN 'local page links not supported yet
Help_AddTxt text$, 8, 0
GOTO Special
END IF
Help_LinkN = Help_LinkN + 1
Help_Link$ = Help_Link$ + "PAGE:" + link$ + Help_Link_Sep$
IF Help_BG_Col = 0 THEN
Help_AddTxt text$, Help_Col_Link, Help_LinkN
ELSE
Help_AddTxt text$, Help_Col_Bold, Help_LinkN
END IF
GOTO Special
END IF
link$ = link$ + c$
GOTO Special
END IF
'External links
IF c = 91 THEN '"["
IF c$(6) = "[http:" AND elink = 0 THEN
elink = 2
elink$ = ""
GOTO Special
END IF
END IF
IF elink = 2 THEN
IF c$ = " " THEN
elink = 1
GOTO Special
END IF
elink$ = elink$ + c$
GOTO Special
END IF
IF elink >= 1 THEN
IF c$ = "]" THEN
elink = 0
elink$ = " " + elink$
Help_LockWrap = 1: Help_Wrap_Pos = 0
Help_AddTxt elink$, 8, 0
Help_LockWrap = 0
elink$ = ""
GOTO Special
END IF
END IF
IF c = 123 THEN '"{"
IF c$(5) = "{{KW|" THEN 'this is really a link!
i = i + 4
link = 1
link$ = ""
GOTO Special
END IF
IF c$(5) = "{{Cl|" THEN 'this is really a link too (in code example)
i = i + 4
link = 1
link$ = ""
GOTO Special
END IF
IF c$(2) = "{{" THEN
i = i + 1
cb = 1
cb$ = ""
GOTO Special
END IF
END IF
IF cb = 1 THEN
IF c$ = "|" OR c$(2) = "}}" THEN
IF c$(2) = "}}" THEN i = i + 1
cb = 0
IF cb$ = "PageSyntax" THEN Help_AddTxt "Syntax:" + CHR$(13), Help_Col_Section, 0
IF cb$ = "PageDescription" THEN Help_AddTxt "Descripton:" + CHR$(13), Help_Col_Section, 0
IF cb$ = "PageExamples" THEN Help_AddTxt "Code Examples:" + CHR$(13), Help_Col_Section, 0
IF cb$ = "PageSeeAlso" THEN Help_AddTxt "See also:" + CHR$(13), Help_Col_Section, 0
IF cb$ = "CodeStart" THEN
Help_NewLine
Help_BG_Col = 1
'Skip non-meaningful content before section begins
ws = 1
FOR ii = i + 1 TO LEN(a$)
IF ASC(a$, ii) = 10 THEN EXIT FOR
IF ASC(a$, ii) <> 32 AND ASC(a$, ii) <> 39 THEN ws = 0
NEXT
IF ws THEN i = ii
END IF
IF cb$ = "CodeEnd" THEN Help_BG_Col = 0
IF cb$ = "OutputStart" THEN
Help_NewLine
Help_BG_Col = 2
'Skip non-meaningful content before section begins
ws = 1
FOR ii = i + 1 TO LEN(a$)
IF ASC(a$, ii) = 10 THEN EXIT FOR
IF ASC(a$, ii) <> 32 AND ASC(a$, ii) <> 39 THEN ws = 0
NEXT
IF ws THEN i = ii
END IF
IF cb$ = "OutputEnd" THEN Help_BG_Col = 0
GOTO Special
END IF
cb$ = cb$ + c$ 'reading maro name
GOTO Special
END IF 'cb=1
IF c$(2) = "}}" THEN 'probably the end of a text section of macro'd text
i = i + 1
GOTO Special
END IF
IF c$(4) = " == " THEN
i = i + 3
Help_Underline = 1
GOTO Special
END IF
IF c$(3) = "== " THEN
i = i + 2
Help_Underline = 1
GOTO Special
END IF
IF c$(3) = " ==" THEN
i = i + 2
GOTO Special
END IF
IF c$(2) = "==" THEN
i = i + 1
Help_Underline = 1
GOTO Special
END IF
IF c$(3) = "'''" THEN
i = i + 2
IF Help_Bold = 0 THEN Help_Bold = 1 ELSE Help_Bold = 0
col = Help_Col
GOTO Special
END IF
IF c$(2) = "''" THEN
i = i + 1
IF Help_Italic = 0 THEN Help_Italic = 1 ELSE Help_Italic = 0
col = Help_Col
GOTO Special
END IF
IF nl = 1 THEN
IF c$(3) = "** " THEN
i = i + 2
Help_AddTxt " þ ", col, 0
Help_NewLineIndent = Help_NewLineIndent + 6
GOTO Special
END IF
IF c$(2) = "* " THEN
i = i + 1
Help_AddTxt "þ ", col, 0
Help_NewLineIndent = Help_NewLineIndent + 2
GOTO Special
END IF
IF c$(2) = "**" THEN
i = i + 1
Help_AddTxt " þ ", col, 0
Help_NewLineIndent = Help_NewLineIndent + 6
GOTO Special
END IF
IF c$ = "*" THEN
Help_AddTxt "þ ", col, 0
Help_NewLineIndent = Help_NewLineIndent + 2
GOTO Special
END IF
END IF
s$ = "{|"
IF c$(LEN(s$)) = s$ THEN
i = i + 1
FOR ii = i TO LEN(a$) - 1
IF MID$(a$, ii, 2) = "|}" THEN i = ii + 1: EXIT FOR
NEXT
GOTO Special
END IF
IF c$(3) = CHR$(226) + CHR$(128) + CHR$(166) THEN '...
i = i + 2
Help_AddTxt "...", col, 0
GOTO Special
END IF
IF c$ = CHR$(226) THEN 'UNICODE UTF8 extender "â", it's a very good bet the following 2 characters will be 2 bytes of UNICODE
i = i + 2
GOTO Special
END IF
IF c$ = ":" AND nl = 1 THEN
Help_AddTxt " ", col, 0
Help_NewLineIndent = Help_NewLineIndent + 4
i = i + 1: GOTO special2
END IF
s$ = "__NOTOC__" + CHR$(10)
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
GOTO Special
END IF
s$ = "__NOTOC__"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
GOTO Special
END IF
s$ = "&lt;div"
IF c$(LEN(s$)) = s$ THEN
i = i + LEN(s$) - 1
FOR ii = i TO LEN(a$) - 1
IF MID$(a$, ii, 12) = "&lt;/div&gt;" THEN i = ii + 11: EXIT FOR
NEXT
GOTO Special
END IF
IF c$(4) = "----" THEN
i = i + 3
Help_AddTxt "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ", 8, 0
GOTO Special
END IF
IF c$ = CHR$(10) THEN
Help_NewLineIndent = 0
IF Help_Txt_Len >= 8 THEN
IF ASC(Help_Txt$, Help_Txt_Len - 3) = 13 AND ASC(Help_Txt$, Help_Txt_Len - 7) = 13 THEN GOTO skipdoubleblanks
END IF
Help_AddTxt CHR$(13), col, 0
skipdoubleblanks:
nl = 1
i = i + 1: GOTO special2
END IF
Help_AddTxt CHR$(c), col, 0
Special:
i = i + 1
nl = 0
special2:
LOOP
'Trim Help_Txt$
Help_Txt$ = LEFT$(Help_Txt$, Help_Txt_Len) + CHR$(13) 'chr13 stops reads past end of content
'generate preview file
'OPEN "help_preview.txt" FOR OUTPUT AS #1
'FOR i = 1 TO LEN(Help_Txt$) STEP 4
' c = ASC(Help_Txt$, i)
' c$ = CHR$(c)
' IF c = 13 THEN c$ = CHR$(13) + CHR$(10)
' PRINT #1, c$;
'NEXT
'CLOSE #1
'PRINT "Finished parsing!": _DISPLAY
IF Help_PageLoaded$ = "Keyword Reference - Alphabetical" THEN
fh = FREEFILE
OPEN "internal\help\links.bin" FOR OUTPUT AS #fh
a$ = SPACE$(1000)
FOR cy = 1 TO help_h
'isolate and REVERSE select link
l = CVL(MID$(Help_Line$, (cy - 1) * 4 + 1, 4))
x = l
x2 = 1
c = ASC(Help_Txt$, x)
oldlnk = 0
lnkx1 = 0: lnkx2 = 0
DO UNTIL c = 13
ASC(a$, x2) = c
lnk = CVI(MID$(Help_Txt$, x + 2, 2))
IF oldlnk = 0 AND lnk <> 0 THEN lnkx1 = x2
IF (lnk = 0 OR ASC(Help_Txt$, x + 4) = 13) AND lnkx1 <> 0 THEN
lnkx2 = x2: IF lnk = 0 THEN lnkx2 = lnkx2 - 1
IF lnkx1 <> 3 THEN GOTO ignorelink
IF ASC(a$, 1) <> 254 THEN GOTO ignorelink
'retrieve lnk info
lnk2 = lnk: IF lnk2 = 0 THEN lnk2 = oldlnk
l1 = 1
FOR lx = 1 TO lnk2 - 1
l1 = INSTR(l1, Help_Link$, Help_Link_Sep$) + 1
NEXT
l2 = INSTR(l1, Help_Link$, Help_Link_Sep$) - 1
l$ = MID$(Help_Link$, l1, l2 - l1 + 1)
'assume PAGE
l$ = RIGHT$(l$, LEN(l$) - 5)
a2$ = MID$(a$, lnkx1, lnkx2 - lnkx1 + 1)
IF INSTR(a2$, "(") THEN a2$ = LEFT$(a2$, INSTR(a2$, "(") - 1)
IF INSTR(a2$, " ") THEN a2$ = LEFT$(a2$, INSTR(a2$, " ") - 1)
IF INSTR(a2$, "...") THEN
a3$ = RIGHT$(a2$, LEN(a2$) - INSTR(a2$, "...") - 2)
skip = 0
IF UCASE$(LEFT$(a3$, 3)) <> "_GL" THEN
FOR ci = 1 TO LEN(a3$)
ca = ASC(a3$, ci)
IF ca >= 97 AND ca <= 122 THEN skip = 1
IF ca = 44 THEN skip = 1
NEXT
END IF
IF skip = 0 THEN PRINT #fh, a3$ + "," + l$
a2$ = LEFT$(a2$, INSTR(a2$, "...") - 1)
END IF
skip = 0
IF UCASE$(LEFT$(a2$, 3)) <> "_GL" THEN
FOR ci = 1 TO LEN(a2$)
ca = ASC(a2$, ci)
IF ca >= 97 AND ca <= 122 THEN skip = 1
IF ca = 44 THEN skip = 1
NEXT
END IF
IF skip = 0 THEN PRINT #fh, a2$ + "," + l$
oa2$ = a2$
a2$ = l$
IF INSTR(a2$, "(") THEN a2$ = LEFT$(a2$, INSTR(a2$, "(") - 1)
IF INSTR(a2$, " ") THEN a2$ = LEFT$(a2$, INSTR(a2$, " ") - 1)
IF INSTR(a2$, "...") THEN
a3$ = RIGHT$(a2$, LEN(a2$) - INSTR(a2$, "...") - 2)
skip = 0
IF UCASE$(LEFT$(a3$, 3)) <> "_GL" THEN
FOR ci = 1 TO LEN(a3$)
ca = ASC(a3$, ci)
IF ca >= 97 AND ca <= 122 THEN skip = 1
IF ca = 44 THEN skip = 1
NEXT
END IF
IF skip = 0 THEN PRINT #fh, a3$ + "," + l$
a2$ = LEFT$(a2$, INSTR(a2$, "...") - 1)
END IF
skip = 0
IF UCASE$(LEFT$(a2$, 3)) <> "_GL" THEN
FOR ci = 1 TO LEN(a2$)
ca = ASC(a2$, ci)
IF ca >= 97 AND ca <= 122 THEN skip = 1
IF ca = 44 THEN skip = 1
NEXT
END IF
IF skip = 0 AND a2$ <> oa2$ THEN PRINT #fh, a2$ + "," + l$
ignorelink:
lnkx1 = 0: lnkx2 = 0
END IF
x = x + 4: c = ASC(Help_Txt$, x)
x2 = x2 + 1
oldlnk = lnk
LOOP
NEXT
CLOSE #fh
END IF
END SUB

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,2 @@
'$INCLUDE:'Luke Stuff-ID_Includes.bas'
'$INCLUDE:'Steve Stuff-ID_Includes.bas'

View file

@ -0,0 +1,15 @@
TYPE GL_idstruct
cn AS STRING * 64 'case sensitive version of n
subfunc AS INTEGER 'if function=1, sub=2
callname AS STRING * 64
args AS INTEGER
arg AS STRING * 80 'similar to t
ret AS LONG 'the value it returns if it is a function (again like t)
END TYPE
REDIM SHARED GL_COMMANDS(2000) AS GL_idstruct
DIM SHARED GL_HELPER_CODE AS STRING
DIM SHARED GL_COMMANDS_LAST
REDIM SHARED GL_DEFINES(2000) AS STRING 'average ~600 entries
REDIM SHARED GL_DEFINES_VALUE(2000) AS _INTEGER64
DIM SHARED GL_DEFINES_LAST
DIM SHARED GL_KIT: GL_KIT = 0

View file

@ -0,0 +1,405 @@
FUNCTION gl2qb_type_convert$ (a$, symbol$, typ, ctyp$)
symbol$ = ""
'unsigned int
IF a$ = "GLenum" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
IF a$ = "GLbitfield" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
IF a$ = "GLuint" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
'int
IF a$ = "GLint" THEN b$ = "LONG": symbol$ = "&": typ = LONGTYPE - ISPOINTER: ctyp$ = "int32"
IF a$ = "GLsizei" THEN b$ = "LONG": symbol$ = "&": typ = LONGTYPE - ISPOINTER: ctyp$ = "int32"
'unsigned char
IF a$ = "GLboolean" THEN b$ = "_UNSIGNED _BYTE": symbol$ = "~%%": typ = UBYTETYPE - ISPOINTER: ctyp$ = "uint8"
IF a$ = "GLubyte" THEN b$ = "_UNSIGNED _BYTE": symbol$ = "~%%": typ = UBYTETYPE - ISPOINTER: ctyp$ = "uint8"
'char
IF a$ = "GLbyte" THEN b$ = "_BYTE": symbol$ = "%%": typ = BYTETYPE - ISPOINTER: ctyp$ = "int8"
'unsigned short
IF a$ = "GLushort" THEN b$ = "_UNSIGNED INTEGER": symbol$ = "~%": typ = UINTEGERTYPE - ISPOINTER: ctyp$ = "uint16"
'short
IF a$ = "GLshort" THEN b$ = "INTEGER": symbol$ = "%": typ = INTEGERTYPE - ISPOINTER: ctyp$ = "int16"
'float
IF a$ = "GLfloat" THEN b$ = "SINGLE": symbol$ = "!": typ = SINGLETYPE - ISPOINTER: ctyp$ = "float"
IF a$ = "GLclampf" THEN b$ = "SINGLE": symbol$ = "!": typ = SINGLETYPE - ISPOINTER: ctyp$ = "float"
'double
IF a$ = "GLdouble" THEN b$ = "DOUBLE": symbol$ = "#": typ = DOUBLETYPE - ISPOINTER: ctyp$ = "double"
IF a$ = "GLclampd" THEN b$ = "DOUBLE": symbol$ = "#": typ = DOUBLETYPE - ISPOINTER: ctyp$ = "double"
'void
IF a$ = "GLvoid" THEN b$ = "_OFFSET": symbol$ = "&&": typ = OFFSETTYPE - ISPOINTER: ctyp$ = "ptrszint"
'typedef unsigned int GLenum;
'typedef unsigned char GLboolean;
'typedef unsigned int GLbitfield;
'typedef signed char GLbyte;
'typedef short GLshort;
'typedef int GLint;
'typedef int GLsizei;
'typedef unsigned char GLubyte;
'typedef unsigned short GLushort;
'typedef unsigned int GLuint;
'typedef float GLfloat;
'typedef float GLclampf;
'typedef double GLdouble;
'typedef double GLclampd;
'typedef void GLvoid;
IF b$ = "" THEN PRINT "Unknown type:" + a$: END
gl2qb_type_convert$ = b$
END FUNCTION
FUNCTION readchunk$ (a$, last_character$)
a$ = LTRIM$(RTRIM$(a$))
FOR x = 1 TO LEN(a$)
c = ASC(a$, x)
IF c = 32 OR c = 44 OR c = 40 OR c = 41 THEN last_character$ = CHR$(c): readchunk$ = LEFT$(a$, x - 1): a$ = LTRIM$(RIGHT$(a$, LEN(a$) - x)): EXIT FUNCTION
NEXT
readchunk$ = a$: last_character$ = "": a$ = ""
END FUNCTION
SUB gl_scan_header
IF GL_KIT THEN hk = FREEFILE: OPEN "internal\c\parts\core\gl_header_for_parsing\temp\gl_kit.bas" FOR OUTPUT AS #hk
IF GL_KIT THEN PRINT #hk, "DECLARE LIBRARY"
d = 0: a2$ = ""
h = FREEFILE
OPEN "internal\c\parts\core\gl_header_for_parsing\gl.h" FOR INPUT AS #h
DO UNTIL EOF(h)
LINE INPUT #h, a$
IF LEN(a$) THEN
a$ = LTRIM$(RTRIM$(a$))
IF LEFT$(a$, 8) = "#define " THEN
a2$ = ""
a$ = a$ + " "
FOR x = 1 TO LEN(a$)
c = ASC(a$, x)
IF c = 32 THEN
FOR x2 = 1 TO LEN(a2$)
c2 = ASC(a2$, x2)
IF c2 >= 65 AND c2 <= 90 THEN GOTO define_ok
IF c2 >= 48 AND c2 <= 57 AND x2 <> 1 THEN GOTO define_ok
IF c2 = 95 THEN GOTO define_ok
GOTO define_not_ok
define_ok:
NEXT
value$ = LTRIM$(RTRIM$(RIGHT$(a$, LEN(a$) - x)))
IF LEN(value$) = 0 THEN GOTO define_not_ok
IF LEFT$(value$, 2) = "0x" THEN
value&& = VAL("&H" + RIGHT$(value$, LEN(value$) - 2) + "&&")
'PRINT a2$, value&&
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = value&&
ELSEIF ASC(value$) >= 48 AND ASC(value$) <= 57 THEN
value&& = VAL(value$)
'PRINT a2$, value&&
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = value&&
ELSE
'PRINT a2$, value$, "?"
FOR i = 1 TO d
IF GL_DEFINES(i) = value$ THEN
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = GL_DEFINES_VALUE(i)
'PRINT a2$, GL_DEFINES_VALUE(i)
EXIT FOR
END IF
NEXT
END IF
GOTO got_define
define_not_ok:
a2$ = ""
ELSE
a2$ = a2$ + CHR$(c)
END IF
NEXT
got_define:
END IF '#define
IF RIGHT$(a$, 1) = ";" THEN
a2$ = readchunk(a$, l$): IF a2$ <> "WINGDIAPI" GOTO discard
ret_type$ = readchunk(a$, l$)
IF ret_type$ = "const" THEN ret_type$ = readchunk(a$, l$)
is_func = 0: IF ret_type$ <> "void" THEN is_func = 1
a2$ = readchunk(a$, l$)
IF a2$ = "*APIENTRY" THEN ret_type$ = ret_type$ + "*": a2$ = "APIENTRY"
IF a2$ <> "APIENTRY" THEN GOTO discard
GL_COMMANDS_LAST = GL_COMMANDS_LAST + 1
c = GL_COMMANDS_LAST
hc$ = ""
hd$ = ""
need_helper_function = 0
IF is_func THEN
GL_COMMANDS(c).subfunc = 1
IF GL_KIT THEN PRINT #hk, "FUNCTION ";
ELSE
GL_COMMANDS(c).subfunc = 2
IF GL_KIT THEN PRINT #hk, "SUB ";
END IF
proc_name$ = readchunk(a$, l$)
GL_COMMANDS(c).cn = "_" + proc_name$: IF GL_KIT THEN PRINT #hk, proc_name$;
GL_COMMANDS(c).callname = proc_name$
GL_COMMANDS(c).ret = 0
IF is_func THEN
pointer = 0: IF RIGHT$(ret_type$, 1) = "*" THEN pointer = 1
IF pointer THEN
t$ = "_OFFSET": s$ = "&&"
GL_COMMANDS(c).ret = OFFSETTYPE - ISPOINTER
hd$ = hd$ + "ptrszint "
need_helper_function = 1
ELSE
t$ = gl2qb_type_convert(ret_type$, s$, typ, ctyp$)
GL_COMMANDS(c).ret = typ
hd$ = hd$ + ctyp$ + " "
END IF
IF GL_KIT THEN PRINT #hk, s$;
hc$ = hc$ + "return (" + ctyp$ + ")(" + ret_type$ + ")"
ELSE
hd$ = hd$ + "void "
END IF
IF GL_KIT THEN PRINT #hk, "(";
hc$ = hc$ + proc_name$ + "("
hd$ = hd$ + "call_" + proc_name$ + "("
GL_COMMANDS(c).args = 0
GL_COMMANDS(c).arg = ""
DO
var_type$ = readchunk(a$, l$)
IF var_type$ = "" AND l$ = "(" THEN var_type$ = readchunk(a$, l$) 'space between fun name and "("?
IF var_type$ = "const" THEN var_type$ = readchunk(a$, l$)
IF var_type$ = "void" OR var_type$ = "" THEN GOTO no_arguments
IF l$ <> "," AND l$ <> ")" THEN
var_name$ = readchunk(a$, l$)
IF LEFT$(var_name$, 1) = "*" THEN var_type$ = var_type$ + "*": var_name$ = RIGHT$(var_name$, LEN(var_name$) - 1)
IF LEFT$(var_name$, 1) = "*" THEN var_type$ = var_type$ + "*": var_name$ = RIGHT$(var_name$, LEN(var_name$) - 1)
'Note: could be a poiner to a pointer
ELSE
var_name$ = "no_name"
END IF
var_type_backup$ = var_type$
pointer = 0
IF RIGHT$(var_type$, 1) = "*" THEN
var_type$ = LEFT$(var_type$, LEN(var_type$) - 1)
pointer = 1
END IF
IF RIGHT$(var_type$, 1) = "*" THEN
var_type$ = LEFT$(var_type$, LEN(var_type$) - 1)
pointer = 2
END IF
IF pointer = 2 THEN
qb_type$ = "_OFFSET" 'it's the offset of an offset
ELSE
qb_type$ = gl2qb_type_convert$(var_type$, s$, typ, ctyp$)
END IF
'IF pointer THEN need_helper_function = 1
need_helper_function = 1
IF GL_KIT THEN
IF pointer = 0 THEN PRINT #hk, "BYVAL ";
PRINT #hk, var_name$ + " AS " + qb_type$;
IF l$ <> ")" THEN PRINT #hk, ",";
END IF
IF pointer = 0 THEN
arg$ = MKL$(typ)
END IF
IF pointer = 1 THEN 'all pointers convert to BYVAL _OFFSET
arg$ = MKL$(OFFSETTYPE - ISPOINTER)
ctyp$ = "ptrszint"
END IF
IF pointer = 2 THEN 'all pointers-to-pointers convert to xxx"BYREF"xxx BYVAL _OFFSET
arg$ = MKL$(OFFSETTYPE - ISPOINTER)
ctyp$ = "ptrszint"
'***this is important or you lose the ability to specify any offset, only the offset of a variable of type
' _OFFSET
' arg$ = MKL$(OFFSETTYPE)
' ctyp$ = "ptrszint*"
END IF
GL_COMMANDS(c).args = GL_COMMANDS(c).args + 1
MID$(GL_COMMANDS(c).arg, (GL_COMMANDS(c).args - 1) * 4 + 1, 4) = arg$
'z$ = GL_COMMANDS(c).arg
'MID$(z$, (GL_COMMANDS(c).args - 1) * 4 + 1, 4) = arg$
'GL_COMMANDS(c).arg = z$
letter$ = CHR$(96 + GL_COMMANDS(c).args)
hc$ = hc$ + "(" + var_type_backup$ + ")" + letter$
hd$ = hd$ + ctyp$ + " " + letter$
IF l$ <> ")" THEN hc$ = hc$ + ",": hd$ = hd$ + ","
LOOP UNTIL l$ = ")"
no_arguments:
hd$ = hd$ + "){"
hc$ = hc$ + ");"
IF GL_KIT THEN PRINT #hk, ")"
h$ = hd$ + CRLF + "if (!sub_gl_called) error(270);" + CRLF + hc$ + CRLF + "}" + CRLF
IF need_helper_function THEN 'do we need the helper function for this command?
GL_HELPER_CODE = GL_HELPER_CODE + h$
GL_COMMANDS(c).callname = "call_" + proc_name$
END IF
IF proc_name$ = "glGetString" THEN
GL_COMMANDS(c).ret = STRINGTYPE
GL_COMMANDS(c).callname = "( char* )" + RTRIM$(GL_COMMANDS(c).callname)
END IF
END IF
END IF
discard:
LOOP
CLOSE #h
IF GL_KIT THEN PRINT #hk, "END DECLARE"
GL_DEFINES_LAST = d
REDIM _PRESERVE GL_DEFINES(d) AS STRING
'PRINT "Defines:"; GL_DEFINES_LAST
REDIM _PRESERVE GL_COMMANDS(GL_COMMANDS_LAST) AS GL_idstruct
'PRINT "Commands:"; GL_COMMANDS_LAST
IF GL_KIT THEN
FOR i = 1 TO GL_DEFINES_LAST
PRINT #hk, "CONST " + GL_DEFINES(i) + "="; GL_DEFINES_VALUE(i)
NEXT
END IF
'FOR i = 1 TO GL_COMMANDS_LAST
' PRINT ".cn="; GL_COMMANDS(i).cn
' PRINT ".callname="; GL_COMMANDS(i).callname
' PRINT ".subfunc="; GL_COMMANDS(i).subfunc
' PRINT ".args="; GL_COMMANDS(i).args
' _CONTROLCHR OFF
' PRINT ".arg=[" + RTRIM$(GL_COMMANDS(i).arg) + "]"
' _CONTROLCHR ON
' PRINT ".ret="; GL_COMMANDS(i).ret
'NEXT
IF GL_KIT THEN CLOSE #hk
fh = FREEFILE
OPEN "internal\c\parts\core\gl_header_for_parsing\temp\gl_helper_code.h" FOR OUTPUT AS #fh
PRINT #fh, GL_HELPER_CODE
CLOSE #fh
END SUB
SUB gl_include_content
'add constants
FOR d = 1 TO GL_DEFINES_LAST
IF ASC(GL_DEFINES(d)) <> 95 THEN
GL_DEFINES(d) = "_" + GL_DEFINES(d)
END IF
constlast = constlast + 1
IF constlast > constmax THEN
constmax = constmax * 2
REDIM _PRESERVE constname(constmax) AS STRING
REDIM _PRESERVE constcname(constmax) AS STRING
REDIM _PRESERVE constnamesymbol(constmax) AS STRING 'optional name symbol
REDIM _PRESERVE consttype(constmax) AS LONG 'variable type number
REDIM _PRESERVE constinteger(constmax) AS _INTEGER64
REDIM _PRESERVE constuinteger(constmax) AS _UNSIGNED _INTEGER64
REDIM _PRESERVE constfloat(constmax) AS _FLOAT
REDIM _PRESERVE conststring(constmax) AS STRING
REDIM _PRESERVE constsubfunc(constmax) AS LONG
REDIM _PRESERVE constdefined(constmax) AS LONG
END IF
i = constlast
constname(i) = GL_DEFINES(d)
constcname(i) = GL_DEFINES(d)
constnamesymbol(i) = "&&"
consttype(i) = INTEGER64TYPE - ISPOINTER
constinteger(i) = GL_DEFINES_VALUE(d)
constsubfunc(i) = 0 'global
constdefined(i) = 1
'add to hash table
HashAdd constcname(i), HASHFLAG_CONSTANT, i
NEXT
'add subs/functions
FOR c = 1 TO GL_COMMANDS_LAST
DIM g AS GL_idstruct
' TYPE GL_idstruct
' cn AS STRING * 64 'case sensitive version of n
' subfunc AS INTEGER 'if function=1, sub=2
' callname AS STRING * 64
' args AS INTEGER
' arg AS STRING * 80 'similar to t
' ret AS LONG 'the value it returns if it is a function (again like t)
' END TYPE
g = GL_COMMANDS(c)
reginternalsubfunc = 1
clearid
id.ccall = 1 '*** important for handling string returns correctly ***
id.n = RTRIM$(g.cn)
s = g.subfunc
id.subfunc = s
id.callname = RTRIM$(g.callname)
id.args = g.args
id.arg = g.arg
id.ret = g.ret
regid
reginternalsubfunc = 0
NEXT
'add inline function definitions
'SUB gluPerspective (BYVAL fovy#, BYVAL aspect#, BYVAL zNear#, BYVAL zFar#)
reginternalsubfunc = 1
clearid
id.n = "_gluPerspective"
id.subfunc = 2 'sub
id.callname = "gluPerspective"
id.args = 4
id.arg = MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER)
regid
reginternalsubfunc = 0
END SUB

File diff suppressed because it is too large Load diff