Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 8407 → Rev 8408

/programs/bcc32/examples/tinygl_1/Makefile
0,0 → 1,19
# Path to /programs
SVN_PROGR:=../../..
 
# Path to /programs/bcc32
SVN_BCC32:=$(SVN_PROGR)/bcc32
 
# Path to t2fasm
T2FASM:=$(SVN_BCC32)/t2fasm
 
# Path to include
INCLUDE:=$(SVN_BCC32)/include
 
# Path to Bin folder
KOS32_BCC:=/home/autobuild/borlandcpp/bin
 
# Filename without .cpp
FILENAME:=tinygl_1
 
include $(SVN_BCC32)/Makefile_app
/programs/bcc32/examples/tinygl_1/tinygl_1.cpp
0,0 → 1,92
#include <kolibri.h>
#include <kos_heap.h>
#include <load_lib.h>
#include <l_tinygl.h>
 
using namespace Kolibri;
 
const char header[] = "Test tinygl library, [<-] and [->] - rotate";
char library_path[2048];
 
namespace Kolibri{
char CurrentDirectoryPath[2048];
}
 
TinyGLContext ctx1;
float angle_z = 0.0, delt_size = 3.0;
 
void draw_3d()
{
glClear(GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT); //очистим буфер цвета и глубины
 
glPushMatrix();
glRotatef(angle_z,0.0,0.0,1.0);
 
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_TRIANGLES);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 0.5, 0.1);
glVertex3f(0.475, 0.823, 0.1);
glVertex3f(0.433, 0.25, 0.1);
 
glColor3f(0.0, 1.0, 0.0);
glVertex3f(0.5, 0.0, 0.1);
glVertex3f(0.823,-0.475, 0.1);
glVertex3f(0.25, -0.433, 0.1);
 
glColor3f(1.0, 0.0, 0.0);
glVertex3f(0.0, -0.5, 0.1);
glVertex3f(-0.475,-0.823,0.1);
glVertex3f(-0.433,-0.25, 0.1);
 
glVertex3f(-0.5, 0.0, 0.1);
glColor3f(1.0, 1.0, 0.0);
glVertex3f(-0.823, 0.475, 0.1);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(-0.25, 0.433, 0.1);
glEnd();
 
glPopMatrix();
}
 
bool KolibriOnStart(TStartData &kos_start, TThreadData /*th*/)
{
kos_start.Left = 10;
kos_start.Top = 40;
kos_start.Width = 330;
kos_start.Height = 275;
kos_start.WinData.WindowColor = 0xd0d0d0;
kos_start.WinData.WindowType = 0x33; // 0x34 - fixed, 0x33 - not fixed
kos_start.WinData.Title = header;
if(LoadLibrary("tinygl.obj", library_path, "/sys/lib/tinygl.obj", &import_tinygl))
{
kosglMakeCurrent(0,0,kos_start.Width,kos_start.Height,&ctx1);
glEnable(GL_DEPTH_TEST);
glClearColor(0.2,0.0,0.2,0.0);
draw_3d();
return true;
}
else return false;
}
 
void KolibriOnPaint(void)
{
kosglSwapBuffers();
}
 
void KolibriOnKeyPress(TThreadData /*th*/)
{
long key = GetKey();
switch(key){
case 176: //Left
angle_z+=delt_size;
draw_3d();
kosglSwapBuffers();
break;
case 179: //Right
angle_z-=delt_size;
draw_3d();
kosglSwapBuffers();
//break;
};
}
/programs/bcc32/examples/tinygl_1/tinygl_1_cpp.bat
0,0 → 1,15
Set NAME=tinygl_1
Set BCC_DIR=..\..\..\bcc32
kos32-bcc -S -v- -R- -6 -a4 -O2 -Og -Oi -Ov -OS -k- -D__KOLIBRI__ -I..\..\..\bcc32\include %NAME%.cpp
 
echo STACKSIZE equ 8192> kos_make.inc
echo include "%BCC_DIR%\include\kos_start.inc">> kos_make.inc
echo include "%BCC_DIR%\include\kos_func.inc">> kos_make.inc
echo include "%BCC_DIR%\include\kos_heap.inc">> kos_make.inc
 
echo include "kos_make.inc" > f_%NAME%.asm
t2fasm < %NAME%.asm >> f_%NAME%.asm
fasm f_%NAME%.asm %NAME%.kex
if exist %NAME%.kex kpack %NAME%.kex
if exist %NAME%.kex del kos_make.inc
pause
/programs/bcc32/include/l_tinygl.h
0,0 → 1,804
#ifndef __L_TINYGL_H_INCLUDED_
#define __L_TINYGL_H_INCLUDED_
//
// tinygl.obj
//
 
enum {
/* Boolean values */
GL_FALSE = 0,
GL_TRUE = 1,
 
/* Data types */
GL_BYTE = 0x1400,
GL_UNSIGNED_BYTE = 0x1401,
GL_SHORT = 0x1402,
GL_UNSIGNED_SHORT = 0x1403,
GL_INT = 0x1404,
GL_UNSIGNED_INT = 0x1405,
GL_FLOAT = 0x1406,
GL_DOUBLE = 0x140A,
GL_2_BYTES = 0x1407,
GL_3_BYTES = 0x1408,
GL_4_BYTES = 0x1409,
 
/* Primitives */
GL_LINES = 0x0001,
GL_POINTS = 0x0000,
GL_LINE_STRIP = 0x0003,
GL_LINE_LOOP = 0x0002,
GL_TRIANGLES = 0x0004,
GL_TRIANGLE_STRIP = 0x0005,
GL_TRIANGLE_FAN = 0x0006,
GL_QUADS = 0x0007,
GL_QUAD_STRIP = 0x0008,
GL_POLYGON = 0x0009,
GL_EDGE_FLAG = 0x0B43,
 
/* Vertex Arrays */
GL_VERTEX_ARRAY = 0x8074,
GL_NORMAL_ARRAY = 0x8075,
GL_COLOR_ARRAY = 0x8076,
GL_INDEX_ARRAY = 0x8077,
GL_TEXTURE_COORD_ARRAY = 0x8078,
GL_EDGE_FLAG_ARRAY = 0x8079,
GL_VERTEX_ARRAY_SIZE = 0x807A,
GL_VERTEX_ARRAY_TYPE = 0x807B,
GL_VERTEX_ARRAY_STRIDE = 0x807C,
GL_VERTEX_ARRAY_COUNT = 0x807D,
GL_NORMAL_ARRAY_TYPE = 0x807E,
GL_NORMAL_ARRAY_STRIDE = 0x807F,
GL_NORMAL_ARRAY_COUNT = 0x8080,
GL_COLOR_ARRAY_SIZE = 0x8081,
GL_COLOR_ARRAY_TYPE = 0x8082,
GL_COLOR_ARRAY_STRIDE = 0x8083,
GL_COLOR_ARRAY_COUNT = 0x8084,
GL_INDEX_ARRAY_TYPE = 0x8085,
GL_INDEX_ARRAY_STRIDE = 0x8086,
GL_INDEX_ARRAY_COUNT = 0x8087,
GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088,
GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089,
GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A,
GL_TEXTURE_COORD_ARRAY_COUNT = 0x808B,
GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C,
GL_EDGE_FLAG_ARRAY_COUNT = 0x808D,
GL_VERTEX_ARRAY_POINTER = 0x808E,
GL_NORMAL_ARRAY_POINTER = 0x808F,
GL_COLOR_ARRAY_POINTER = 0x8090,
GL_INDEX_ARRAY_POINTER = 0x8091,
GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092,
GL_EDGE_FLAG_ARRAY_POINTER = 0x8093,
GL_V2F = 0x2A20,
GL_V3F = 0x2A21,
GL_C4UB_V2F = 0x2A22,
GL_C4UB_V3F = 0x2A23,
GL_C3F_V3F = 0x2A24,
GL_N3F_V3F = 0x2A25,
GL_C4F_N3F_V3F = 0x2A26,
GL_T2F_V3F = 0x2A27,
GL_T4F_V4F = 0x2A28,
GL_T2F_C4UB_V3F = 0x2A29,
GL_T2F_C3F_V3F = 0x2A2A,
GL_T2F_N3F_V3F = 0x2A2B,
GL_T2F_C4F_N3F_V3F = 0x2A2C,
GL_T4F_C4F_N3F_V4F = 0x2A2D,
 
/* Matrix Mode */
GL_MATRIX_MODE = 0x0BA0,
GL_MODELVIEW = 0x1700,
GL_PROJECTION = 0x1701,
GL_TEXTURE = 0x1702,
 
/* Points */
GL_POINT_SMOOTH = 0x0B10,
GL_POINT_SIZE = 0x0B11,
GL_POINT_SIZE_GRANULARITY = 0x0B13,
GL_POINT_SIZE_RANGE = 0x0B12,
 
/* Lines */
GL_LINE_SMOOTH = 0x0B20,
GL_LINE_STIPPLE = 0x0B24,
GL_LINE_STIPPLE_PATTERN = 0x0B25,
GL_LINE_STIPPLE_REPEAT = 0x0B26,
GL_LINE_WIDTH = 0x0B21,
GL_LINE_WIDTH_GRANULARITY = 0x0B23,
GL_LINE_WIDTH_RANGE = 0x0B22,
 
/* Polygons */
GL_POINT = 0x1B00,
GL_LINE = 0x1B01,
GL_FILL = 0x1B02,
GL_CCW = 0x0901,
GL_CW = 0x0900,
GL_FRONT = 0x0404,
GL_BACK = 0x0405,
GL_CULL_FACE = 0x0B44,
GL_CULL_FACE_MODE = 0x0B45,
GL_POLYGON_SMOOTH = 0x0B41,
GL_POLYGON_STIPPLE = 0x0B42,
GL_FRONT_FACE = 0x0B46,
GL_POLYGON_MODE = 0x0B40,
GL_POLYGON_OFFSET_FACTOR = 0x3038,
GL_POLYGON_OFFSET_UNITS = 0x2A00,
GL_POLYGON_OFFSET_POINT = 0x2A01,
GL_POLYGON_OFFSET_LINE = 0x2A02,
GL_POLYGON_OFFSET_FILL = 0x8037,
 
/* Display Lists */
GL_COMPILE = 0x1300,
GL_COMPILE_AND_EXECUTE = 0x1301,
GL_LIST_BASE = 0x0B32,
GL_LIST_INDEX = 0x0B33,
GL_LIST_MODE = 0x0B30,
 
/* Depth buffer */
GL_NEVER = 0x0200,
GL_LESS = 0x0201,
GL_GEQUAL = 0x0206,
GL_LEQUAL = 0x0203,
GL_GREATER = 0x0204,
GL_NOTEQUAL = 0x0205,
GL_EQUAL = 0x0202,
GL_ALWAYS = 0x0207,
GL_DEPTH_TEST = 0x0B71,
GL_DEPTH_BITS = 0x0D56,
GL_DEPTH_CLEAR_VALUE = 0x0B73,
GL_DEPTH_FUNC = 0x0B74,
GL_DEPTH_RANGE = 0x0B70,
GL_DEPTH_WRITEMASK = 0x0B72,
GL_DEPTH_COMPONENT = 0x1902,
 
/* Lighting */
GL_LIGHTING = 0x0B50,
GL_LIGHT0 = 0x4000,
GL_LIGHT1 = 0x4001,
GL_LIGHT2 = 0x4002,
GL_LIGHT3 = 0x4003,
GL_LIGHT4 = 0x4004,
GL_LIGHT5 = 0x4005,
GL_LIGHT6 = 0x4006,
GL_LIGHT7 = 0x4007,
GL_SPOT_EXPONENT = 0x1205,
GL_SPOT_CUTOFF = 0x1206,
GL_CONSTANT_ATTENUATION = 0x1207,
GL_LINEAR_ATTENUATION = 0x1208,
GL_QUADRATIC_ATTENUATION = 0x1209,
GL_AMBIENT = 0x1200,
GL_DIFFUSE = 0x1201,
GL_SPECULAR = 0x1202,
GL_SHININESS = 0x1601,
GL_EMISSION = 0x1600,
GL_POSITION = 0x1203,
GL_SPOT_DIRECTION = 0x1204,
GL_AMBIENT_AND_DIFFUSE = 0x1602,
GL_COLOR_INDEXES = 0x1603,
GL_LIGHT_MODEL_TWO_SIDE = 0x0B52,
GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51,
GL_LIGHT_MODEL_AMBIENT = 0x0B53,
GL_FRONT_AND_BACK = 0x0408,
GL_SHADE_MODEL = 0x0B54,
GL_FLAT = 0x1D00,
GL_SMOOTH = 0x1D01,
GL_COLOR_MATERIAL = 0x0B57,
GL_COLOR_MATERIAL_FACE = 0x0B55,
GL_COLOR_MATERIAL_PARAMETER = 0x0B56,
GL_NORMALIZE = 0x0BA1,
 
/* User clipping planes */
GL_CLIP_PLANE0 = 0x3000,
GL_CLIP_PLANE1 = 0x3001,
GL_CLIP_PLANE2 = 0x3002,
GL_CLIP_PLANE3 = 0x3003,
GL_CLIP_PLANE4 = 0x3004,
GL_CLIP_PLANE5 = 0x3005,
 
/* Accumulation buffer */
GL_ACCUM_RED_BITS = 0x0D58,
GL_ACCUM_GREEN_BITS = 0x0D59,
GL_ACCUM_BLUE_BITS = 0x0D5A,
GL_ACCUM_ALPHA_BITS = 0x0D5B,
GL_ACCUM_CLEAR_VALUE = 0x0B80,
GL_ACCUM = 0x0100,
GL_ADD = 0x0104,
GL_LOAD = 0x0101,
GL_MULT = 0x0103,
GL_RETURN = 0x0102,
 
/* Alpha testing */
GL_ALPHA_TEST = 0x0BC0,
GL_ALPHA_TEST_REF = 0x0BC2,
GL_ALPHA_TEST_FUNC = 0x0BC1,
 
/* Blending */
GL_BLEND = 0x0BE2,
GL_BLEND_SRC = 0x0BE1,
GL_BLEND_DST = 0x0BE0,
GL_ZERO = 0,
GL_ONE = 1,
GL_SRC_COLOR = 0x0300,
GL_ONE_MINUS_SRC_COLOR = 0x0301,
GL_DST_COLOR = 0x0306,
GL_ONE_MINUS_DST_COLOR = 0x0307,
GL_SRC_ALPHA = 0x0302,
GL_ONE_MINUS_SRC_ALPHA = 0x0303,
GL_DST_ALPHA = 0x0304,
GL_ONE_MINUS_DST_ALPHA = 0x0305,
GL_SRC_ALPHA_SATURATE = 0x0308,
GL_CONSTANT_COLOR = 0x8001,
GL_ONE_MINUS_CONSTANT_COLOR = 0x8002,
GL_CONSTANT_ALPHA = 0x8003,
GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
 
/* Render Mode */
GL_FEEDBACK = 0x1C01,
GL_RENDER = 0x1C00,
GL_SELECT = 0x1C02,
 
/* Feedback */
GL_2D = 0x0600,
GL_3D = 0x0601,
GL_3D_COLOR = 0x0602,
GL_3D_COLOR_TEXTURE = 0x0603,
GL_4D_COLOR_TEXTURE = 0x0604,
GL_POINT_TOKEN = 0x0701,
GL_LINE_TOKEN = 0x0702,
GL_LINE_RESET_TOKEN = 0x0707,
GL_POLYGON_TOKEN = 0x0703,
GL_BITMAP_TOKEN = 0x0704,
GL_DRAW_PIXEL_TOKEN = 0x0705,
GL_COPY_PIXEL_TOKEN = 0x0706,
GL_PASS_THROUGH_TOKEN = 0x0700,
 
/* Fog */
GL_FOG = 0x0B60,
GL_FOG_MODE = 0x0B65,
GL_FOG_DENSITY = 0x0B62,
GL_FOG_COLOR = 0x0B66,
GL_FOG_INDEX = 0x0B61,
GL_FOG_START = 0x0B63,
GL_FOG_END = 0x0B64,
GL_LINEAR = 0x2601,
GL_EXP = 0x0800,
GL_EXP2 = 0x0801,
 
/* Logic Ops */
GL_LOGIC_OP = 0x0BF1,
GL_LOGIC_OP_MODE = 0x0BF0,
GL_CLEAR = 0x1500,
GL_SET = 0x150F,
GL_COPY = 0x1503,
GL_COPY_INVERTED = 0x150C,
GL_NOOP = 0x1505,
GL_INVERT = 0x150A,
GL_AND = 0x1501,
GL_NAND = 0x150E,
GL_OR = 0x1507,
GL_NOR = 0x1508,
GL_XOR = 0x1506,
GL_EQUIV = 0x1509,
GL_AND_REVERSE = 0x1502,
GL_AND_INVERTED = 0x1504,
GL_OR_REVERSE = 0x150B,
GL_OR_INVERTED = 0x150D,
 
/* Stencil */
GL_STENCIL_TEST = 0x0B90,
GL_STENCIL_WRITEMASK = 0x0B98,
GL_STENCIL_BITS = 0x0D57,
GL_STENCIL_FUNC = 0x0B92,
GL_STENCIL_VALUE_MASK = 0x0B93,
GL_STENCIL_REF = 0x0B97,
GL_STENCIL_FAIL = 0x0B94,
GL_STENCIL_PASS_DEPTH_PASS = 0x0B96,
GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95,
GL_STENCIL_CLEAR_VALUE = 0x0B91,
GL_STENCIL_INDEX = 0x1901,
GL_KEEP = 0x1E00,
GL_REPLACE = 0x1E01,
GL_INCR = 0x1E02,
GL_DECR = 0x1E03,
 
/* Buffers, Pixel Drawing/Reading */
GL_NONE = 0,
GL_LEFT = 0x0406,
GL_RIGHT = 0x0407,
/*GL_FRONT = 0x0404, */
/*GL_BACK = 0x0405, */
/*GL_FRONT_AND_BACK = 0x0408, */
GL_FRONT_LEFT = 0x0400,
GL_FRONT_RIGHT = 0x0401,
GL_BACK_LEFT = 0x0402,
GL_BACK_RIGHT = 0x0403,
GL_AUX0 = 0x0409,
GL_AUX1 = 0x040A,
GL_AUX2 = 0x040B,
GL_AUX3 = 0x040C,
GL_COLOR_INDEX = 0x1900,
GL_RED = 0x1903,
GL_GREEN = 0x1904,
GL_BLUE = 0x1905,
GL_ALPHA = 0x1906,
GL_LUMINANCE = 0x1909,
GL_LUMINANCE_ALPHA = 0x190A,
GL_ALPHA_BITS = 0x0D55,
GL_RED_BITS = 0x0D52,
GL_GREEN_BITS = 0x0D53,
GL_BLUE_BITS = 0x0D54,
GL_INDEX_BITS = 0x0D51,
GL_SUBPIXEL_BITS = 0x0D50,
GL_AUX_BUFFERS = 0x0C00,
GL_READ_BUFFER = 0x0C02,
GL_DRAW_BUFFER = 0x0C01,
GL_DOUBLEBUFFER = 0x0C32,
GL_STEREO = 0x0C33,
GL_BITMAP = 0x1A00,
GL_COLOR = 0x1800,
GL_DEPTH = 0x1801,
GL_STENCIL = 0x1802,
GL_DITHER = 0x0BD0,
GL_RGB = 0x1907,
GL_RGBA = 0x1908,
 
/* Implementation limits */
GL_MAX_LIST_NESTING = 0x0B31,
GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35,
GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36,
GL_MAX_NAME_STACK_DEPTH = 0x0D37,
GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38,
GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39,
GL_MAX_EVAL_ORDER = 0x0D30,
GL_MAX_LIGHTS = 0x0D31,
GL_MAX_CLIP_PLANES = 0x0D32,
GL_MAX_TEXTURE_SIZE = 0x0D33,
GL_MAX_PIXEL_MAP_TABLE = 0x0D34,
GL_MAX_VIEWPORT_DIMS = 0x0D3A,
GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B,
 
/* Gets */
GL_ATTRIB_STACK_DEPTH = 0x0BB0,
GL_COLOR_CLEAR_VALUE = 0x0C22,
GL_COLOR_WRITEMASK = 0x0C23,
GL_CURRENT_INDEX = 0x0B01,
GL_CURRENT_COLOR = 0x0B00,
GL_CURRENT_NORMAL = 0x0B02,
GL_CURRENT_RASTER_COLOR = 0x0B04,
GL_CURRENT_RASTER_DISTANCE = 0x0B09,
GL_CURRENT_RASTER_INDEX = 0x0B05,
GL_CURRENT_RASTER_POSITION = 0x0B07,
GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06,
GL_CURRENT_RASTER_POSITION_VALID = 0x0B08,
GL_CURRENT_TEXTURE_COORDS = 0x0B03,
GL_INDEX_CLEAR_VALUE = 0x0C20,
GL_INDEX_MODE = 0x0C30,
GL_INDEX_WRITEMASK = 0x0C21,
GL_MODELVIEW_MATRIX = 0x0BA6,
GL_MODELVIEW_STACK_DEPTH = 0x0BA3,
GL_NAME_STACK_DEPTH = 0x0D70,
GL_PROJECTION_MATRIX = 0x0BA7,
GL_PROJECTION_STACK_DEPTH = 0x0BA4,
GL_RENDER_MODE = 0x0C40,
GL_RGBA_MODE = 0x0C31,
GL_TEXTURE_MATRIX = 0x0BA8,
GL_TEXTURE_STACK_DEPTH = 0x0BA5,
GL_VIEWPORT = 0x0BA2,
 
 
/* Evaluators */
GL_AUTO_NORMAL = 0x0D80,
GL_MAP1_COLOR_4 = 0x0D90,
GL_MAP1_GRID_DOMAIN = 0x0DD0,
GL_MAP1_GRID_SEGMENTS = 0x0DD1,
GL_MAP1_INDEX = 0x0D91,
GL_MAP1_NORMAL = 0x0D92,
GL_MAP1_TEXTURE_COORD_1 = 0x0D93,
GL_MAP1_TEXTURE_COORD_2 = 0x0D94,
GL_MAP1_TEXTURE_COORD_3 = 0x0D95,
GL_MAP1_TEXTURE_COORD_4 = 0x0D96,
GL_MAP1_VERTEX_3 = 0x0D97,
GL_MAP1_VERTEX_4 = 0x0D98,
GL_MAP2_COLOR_4 = 0x0DB0,
GL_MAP2_GRID_DOMAIN = 0x0DD2,
GL_MAP2_GRID_SEGMENTS = 0x0DD3,
GL_MAP2_INDEX = 0x0DB1,
GL_MAP2_NORMAL = 0x0DB2,
GL_MAP2_TEXTURE_COORD_1 = 0x0DB3,
GL_MAP2_TEXTURE_COORD_2 = 0x0DB4,
GL_MAP2_TEXTURE_COORD_3 = 0x0DB5,
GL_MAP2_TEXTURE_COORD_4 = 0x0DB6,
GL_MAP2_VERTEX_3 = 0x0DB7,
GL_MAP2_VERTEX_4 = 0x0DB8,
GL_COEFF = 0x0A00,
GL_DOMAIN = 0x0A02,
GL_ORDER = 0x0A01,
 
/* Hints */
GL_FOG_HINT = 0x0C54,
GL_LINE_SMOOTH_HINT = 0x0C52,
GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50,
GL_POINT_SMOOTH_HINT = 0x0C51,
GL_POLYGON_SMOOTH_HINT = 0x0C53,
GL_DONT_CARE = 0x1100,
GL_FASTEST = 0x1101,
GL_NICEST = 0x1102,
 
/* Scissor box */
GL_SCISSOR_TEST = 0x0C11,
GL_SCISSOR_BOX = 0x0C10,
 
/* Pixel Mode / Transfer */
GL_MAP_COLOR = 0x0D10,
GL_MAP_STENCIL = 0x0D11,
GL_INDEX_SHIFT = 0x0D12,
GL_INDEX_OFFSET = 0x0D13,
GL_RED_SCALE = 0x0D14,
GL_RED_BIAS = 0x0D15,
GL_GREEN_SCALE = 0x0D18,
GL_GREEN_BIAS = 0x0D19,
GL_BLUE_SCALE = 0x0D1A,
GL_BLUE_BIAS = 0x0D1B,
GL_ALPHA_SCALE = 0x0D1C,
GL_ALPHA_BIAS = 0x0D1D,
GL_DEPTH_SCALE = 0x0D1E,
GL_DEPTH_BIAS = 0x0D1F,
GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1,
GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0,
GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2,
GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3,
GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4,
GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5,
GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6,
GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7,
GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8,
GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9,
GL_PIXEL_MAP_S_TO_S = 0x0C71,
GL_PIXEL_MAP_I_TO_I = 0x0C70,
GL_PIXEL_MAP_I_TO_R = 0x0C72,
GL_PIXEL_MAP_I_TO_G = 0x0C73,
GL_PIXEL_MAP_I_TO_B = 0x0C74,
GL_PIXEL_MAP_I_TO_A = 0x0C75,
GL_PIXEL_MAP_R_TO_R = 0x0C76,
GL_PIXEL_MAP_G_TO_G = 0x0C77,
GL_PIXEL_MAP_B_TO_B = 0x0C78,
GL_PIXEL_MAP_A_TO_A = 0x0C79,
GL_PACK_ALIGNMENT = 0x0D05,
GL_PACK_LSB_FIRST = 0x0D01,
GL_PACK_ROW_LENGTH = 0x0D02,
GL_PACK_SKIP_PIXELS = 0x0D04,
GL_PACK_SKIP_ROWS = 0x0D03,
GL_PACK_SWAP_BYTES = 0x0D00,
GL_UNPACK_ALIGNMENT = 0x0CF5,
GL_UNPACK_LSB_FIRST = 0x0CF1,
GL_UNPACK_ROW_LENGTH = 0x0CF2,
GL_UNPACK_SKIP_PIXELS = 0x0CF4,
GL_UNPACK_SKIP_ROWS = 0x0CF3,
GL_UNPACK_SWAP_BYTES = 0x0CF0,
GL_ZOOM_X = 0x0D16,
GL_ZOOM_Y = 0x0D17,
 
/* Texture mapping */
GL_TEXTURE_ENV = 0x2300,
GL_TEXTURE_ENV_MODE = 0x2200,
GL_TEXTURE_1D = 0x0DE0,
GL_TEXTURE_2D = 0x0DE1,
GL_TEXTURE_WRAP_S = 0x2802,
GL_TEXTURE_WRAP_T = 0x2803,
GL_TEXTURE_MAG_FILTER = 0x2800,
GL_TEXTURE_MIN_FILTER = 0x2801,
GL_TEXTURE_ENV_COLOR = 0x2201,
GL_TEXTURE_GEN_S = 0x0C60,
GL_TEXTURE_GEN_T = 0x0C61,
GL_TEXTURE_GEN_MODE = 0x2500,
GL_TEXTURE_BORDER_COLOR = 0x1004,
GL_TEXTURE_WIDTH = 0x1000,
GL_TEXTURE_HEIGHT = 0x1001,
GL_TEXTURE_BORDER = 0x1005,
GL_TEXTURE_COMPONENTS = 0x1003,
GL_NEAREST_MIPMAP_NEAREST = 0x2700,
GL_NEAREST_MIPMAP_LINEAR = 0x2702,
GL_LINEAR_MIPMAP_NEAREST = 0x2701,
GL_LINEAR_MIPMAP_LINEAR = 0x2703,
GL_OBJECT_LINEAR = 0x2401,
GL_OBJECT_PLANE = 0x2501,
GL_EYE_LINEAR = 0x2400,
GL_EYE_PLANE = 0x2502,
GL_SPHERE_MAP = 0x2402,
GL_DECAL = 0x2101,
GL_MODULATE = 0x2100,
GL_NEAREST = 0x2600,
GL_REPEAT = 0x2901,
GL_CLAMP = 0x2900,
GL_S = 0x2000,
GL_T = 0x2001,
GL_R = 0x2002,
GL_Q = 0x2003,
GL_TEXTURE_GEN_R = 0x0C62,
GL_TEXTURE_GEN_Q = 0x0C63,
 
GL_PROXY_TEXTURE_1D = 0x8063,
GL_PROXY_TEXTURE_2D = 0x8064,
GL_TEXTURE_PRIORITY = 0x8066,
GL_TEXTURE_RESIDENT = 0x8067,
GL_TEXTURE_1D_BINDING = 0x8068,
GL_TEXTURE_2D_BINDING = 0x8069,
 
/* Internal texture formats */
GL_ALPHA4 = 0x803B,
GL_ALPHA8 = 0x803C,
GL_ALPHA12 = 0x803D,
GL_ALPHA16 = 0x803E,
GL_LUMINANCE4 = 0x803F,
GL_LUMINANCE8 = 0x8040,
GL_LUMINANCE12 = 0x8041,
GL_LUMINANCE16 = 0x8042,
GL_LUMINANCE4_ALPHA4 = 0x8043,
GL_LUMINANCE6_ALPHA2 = 0x8044,
GL_LUMINANCE8_ALPHA8 = 0x8045,
GL_LUMINANCE12_ALPHA4 = 0x8046,
GL_LUMINANCE12_ALPHA12 = 0x8047,
GL_LUMINANCE16_ALPHA16 = 0x8048,
GL_INTENSITY = 0x8049,
GL_INTENSITY4 = 0x804A,
GL_INTENSITY8 = 0x804B,
GL_INTENSITY12 = 0x804C,
GL_INTENSITY16 = 0x804D,
GL_R3_G3_B2 = 0x2A10,
GL_RGB4 = 0x804F,
GL_RGB5 = 0x8050,
GL_RGB8 = 0x8051,
GL_RGB10 = 0x8052,
GL_RGB12 = 0x8053,
GL_RGB16 = 0x8054,
GL_RGBA2 = 0x8055,
GL_RGBA4 = 0x8056,
GL_RGB5_A1 = 0x8057,
GL_RGBA8 = 0x8058,
GL_RGB10_A2 = 0x8059,
GL_RGBA12 = 0x805A,
GL_RGBA16 = 0x805B,
 
/* Utility */
GL_VENDOR = 0x1F00,
GL_RENDERER = 0x1F01,
GL_VERSION = 0x1F02,
GL_EXTENSIONS = 0x1F03,
 
/* Errors */
GL_INVALID_VALUE = 0x0501,
GL_INVALID_ENUM = 0x0500,
GL_INVALID_OPERATION = 0x0502,
GL_STACK_OVERFLOW = 0x0503,
GL_STACK_UNDERFLOW = 0x0504,
GL_OUT_OF_MEMORY = 0x0505,
 
/*
* 1.0 Extensions
*/
/* GL_EXT_blend_minmax and GL_EXT_blend_color */
GL_CONSTANT_COLOR_EXT = 0x8001,
GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002,
GL_CONSTANT_ALPHA_EXT = 0x8003,
GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004,
GL_BLEND_EQUATION_EXT = 0x8009,
GL_MIN_EXT = 0x8007,
GL_MAX_EXT = 0x8008,
GL_FUNC_ADD_EXT = 0x8006,
GL_FUNC_SUBTRACT_EXT = 0x800A,
GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B,
GL_BLEND_COLOR_EXT = 0x8005,
 
/* GL_EXT_polygon_offset */
GL_POLYGON_OFFSET_EXT = 0x8037,
GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038,
GL_POLYGON_OFFSET_BIAS_EXT = 0x8039,
 
/* GL_EXT_vertex_array */
GL_VERTEX_ARRAY_EXT = 0x8074,
GL_NORMAL_ARRAY_EXT = 0x8075,
GL_COLOR_ARRAY_EXT = 0x8076,
GL_INDEX_ARRAY_EXT = 0x8077,
GL_TEXTURE_COORD_ARRAY_EXT = 0x8078,
GL_EDGE_FLAG_ARRAY_EXT = 0x8079,
GL_VERTEX_ARRAY_SIZE_EXT = 0x807A,
GL_VERTEX_ARRAY_TYPE_EXT = 0x807B,
GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C,
GL_VERTEX_ARRAY_COUNT_EXT = 0x807D,
GL_NORMAL_ARRAY_TYPE_EXT = 0x807E,
GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F,
GL_NORMAL_ARRAY_COUNT_EXT = 0x8080,
GL_COLOR_ARRAY_SIZE_EXT = 0x8081,
GL_COLOR_ARRAY_TYPE_EXT = 0x8082,
GL_COLOR_ARRAY_STRIDE_EXT = 0x8083,
GL_COLOR_ARRAY_COUNT_EXT = 0x8084,
GL_INDEX_ARRAY_TYPE_EXT = 0x8085,
GL_INDEX_ARRAY_STRIDE_EXT = 0x8086,
GL_INDEX_ARRAY_COUNT_EXT = 0x8087,
GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088,
GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089,
GL_TEXTURE_COORD_ARRAY_STRIDE_EXT= 0x808A,
GL_TEXTURE_COORD_ARRAY_COUNT_EXT= 0x808B,
GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C,
GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D,
GL_VERTEX_ARRAY_POINTER_EXT = 0x808E,
GL_NORMAL_ARRAY_POINTER_EXT = 0x808F,
GL_COLOR_ARRAY_POINTER_EXT = 0x8090,
GL_INDEX_ARRAY_POINTER_EXT = 0x8091,
GL_TEXTURE_COORD_ARRAY_POINTER_EXT= 0x8092,
GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093
 
};
 
enum {
GL_CURRENT_BIT = 0x00000001,
GL_POINT_BIT = 0x00000002,
GL_LINE_BIT = 0x00000004,
GL_POLYGON_BIT = 0x00000008,
GL_POLYGON_STIPPLE_BIT = 0x00000010,
GL_PIXEL_MODE_BIT = 0x00000020,
GL_LIGHTING_BIT = 0x00000040,
GL_FOG_BIT = 0x00000080,
GL_DEPTH_BUFFER_BIT = 0x00000100,
GL_ACCUM_BUFFER_BIT = 0x00000200,
GL_STENCIL_BUFFER_BIT = 0x00000400,
GL_VIEWPORT_BIT = 0x00000800,
GL_TRANSFORM_BIT = 0x00001000,
GL_ENABLE_BIT = 0x00002000,
GL_COLOR_BUFFER_BIT = 0x00004000,
GL_HINT_BIT = 0x00008000,
GL_EVAL_BIT = 0x00010000,
GL_LIST_BIT = 0x00020000,
GL_TEXTURE_BIT = 0x00040000,
GL_SCISSOR_BIT = 0x00080000,
GL_ALL_ATTRIB_BITS = 0x000fffff
};
 
struct ZBuffer
{
long int xsize, ysize;
int linesize; //line size, in bytes
int mode;
 
unsigned short int* zbuf;
unsigned char* pbuf; //PIXEL
int frame_buffer_allocated;
 
int nb_colors;
unsigned char* dctable;
int* ctable;
unsigned char* current_texture; //PIXEL
unsigned int s_log2;
unsigned int s_bound;
unsigned int t_bound;
};
 
struct TinyGLContext
{
ZBuffer* gl_context;
long int xsize, ysize;
long int dx, dy, x, y;
};
 
//
// tinygl - import table
//
#define import_tinygl glEnable
void (__stdcall* glEnable)(int code) = (void (__stdcall*)(int))&"glEnable";
void (__stdcall* glDisable)(int code) = (void (__stdcall*)(int))&"glDisable";
void (__stdcall* glShadeModel)(int mode) = (void (__stdcall*)(int))&"glShadeModel";
void (__stdcall* glCullFace)(int mode) = (void (__stdcall*)(int))&"glCullFace";
void (__stdcall* glPolygonMode)(int face, int mode) = (void (__stdcall*)(int, int))&"glPolygonMode";
void (__stdcall* glBegin)(int type) = (void (__stdcall*)(int))&"glBegin";
void (__stdcall* glEnd)() = (void (__stdcall*)())&"glEnd";
void (__stdcall* glVertex2f)(float x, float y) = (void (__stdcall*)(float, float))&"glVertex2f";
void (__stdcall* glVertex2d)(double x, double y) = (void (__stdcall*)(double, double))&"glVertex2d";
void (__stdcall* glVertex2fv)(float* v) = (void (__stdcall*)(float*))&"glVertex2fv";
void (__stdcall* glVertex2dv)(double* v) = (void (__stdcall*)(double*))&"glVertex2dv";
void (__stdcall* glVertex3f)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glVertex3f";
void (__stdcall* glVertex3d)(double x, double y, double z) = (void (__stdcall*)(double, double, double))&"glVertex3d";
void (__stdcall* glVertex3fv)(float* v) = (void (__stdcall*)(float*))&"glVertex3fv";
void (__stdcall* glVertex3dv)(double* v) = (void (__stdcall*)(double*))&"glVertex3dv";
void (__stdcall* glVertex4f)(float x, float y, float z, float w) = (void (__stdcall*)(float, float, float, float))&"glVertex4f";
void (__stdcall* glVertex4d)(double x, double y, double z, double w) = (void (__stdcall*)(double, double, double, double))&"glVertex4d";
void (__stdcall* glVertex4fv)(float* v) = (void (__stdcall*)(float*))&"glVertex4fv";
void (__stdcall* glVertex4dv)(double* v) = (void (__stdcall*)(double*))&"glVertex4dv";
void (__stdcall* glColor3f)(float r, float g, float b) = (void (__stdcall*)(float, float, float))&"glColor3f";
//void (__stdcall* glColor3d)(...) = (void (__stdcall*)(...))&"glColor3d";
//void (__stdcall* glColor3fv)(...) = (void (__stdcall*)(...))&"glColor3fv";
//void (__stdcall* glColor3dv)(...) = (void (__stdcall*)(...))&"glColor3dv";
void (__stdcall* glColor3ub)(unsigned char r, unsigned char g, unsigned char b) = (void (__stdcall*)(unsigned char, unsigned char, unsigned char))&"glColor3ub";
//void (__stdcall* glColor4f)(...) = (void (__stdcall*)(...))&"glColor4f";
//void (__stdcall* glColor4d)(...) = (void (__stdcall*)(...))&"glColor4d";
//void (__stdcall* glColor4fv)(...) = (void (__stdcall*)(...))&"glColor4fv";
//void (__stdcall* glColor4dv)(...) = (void (__stdcall*)(...))&"glColor4dv";
void (__stdcall* glNormal3f)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glNormal3f";
//void (__stdcall* glNormal3d)(...) = (void (__stdcall*)(...))&"glNormal3d";
//void (__stdcall* glNormal3fv)(...) = (void (__stdcall*)(...))&"glNormal3fv";
//void (__stdcall* glNormal3dv)(...) = (void (__stdcall*)(...))&"glNormal3dv";
//void (__stdcall* glTexCoord1f)(...) = (void (__stdcall*)(...))&"glTexCoord1f";
//void (__stdcall* glTexCoord1d)(...) = (void (__stdcall*)(...))&"glTexCoord1d";
//void (__stdcall* glTexCoord1fv)(...) = (void (__stdcall*)(...))&"glTexCoord1fv";
//void (__stdcall* glTexCoord1dv)(...) = (void (__stdcall*)(...))&"glTexCoord1dv";
void (__stdcall* glTexCoord2f)(float s, float t) = (void (__stdcall*)(float, float))&"glTexCoord2f";
//void (__stdcall* glTexCoord2d)(...) = (void (__stdcall*)(...))&"glTexCoord2d";
void (__stdcall* glTexCoord2fv)(float* v) = (void (__stdcall*)(float*))&"glTexCoord2fv";
//void (__stdcall* glTexCoord2dv)(...) = (void (__stdcall*)(...))&"glTexCoord2dv";
//void (__stdcall* glTexCoord3f)(...) = (void (__stdcall*)(...))&"glTexCoord3f";
//void (__stdcall* glTexCoord3d)(...) = (void (__stdcall*)(...))&"glTexCoord3d";
//void (__stdcall* glTexCoord3fv)(...) = (void (__stdcall*)(...))&"glTexCoord3fv";
//void (__stdcall* glTexCoord3dv)(...) = (void (__stdcall*)(...))&"glTexCoord3dv";
void (__stdcall* glTexCoord4f)(float s, float t, float r, float q) = (void (__stdcall*)(float, float, float, float))&"glTexCoord4f";
//void (__stdcall* glTexCoord4d)(...) = (void (__stdcall*)(...))&"glTexCoord4d";
//void (__stdcall* glTexCoord4fv)(...) = (void (__stdcall*)(...))&"glTexCoord4fv";
//void (__stdcall* glTexCoord4dv)(...) = (void (__stdcall*)(...))&"glTexCoord4dv";
void (__stdcall* glEdgeFlag)(int flag) = (void (__stdcall*)(int))&"glEdgeFlag";
void (__stdcall* glMatrixMode)(int mode) = (void (__stdcall*)(int))&"glMatrixMode";
void (__stdcall* glLoadMatrixf)(const float* m) = (void (__stdcall*)(const float*))&"glLoadMatrixf";
void (__stdcall* glLoadIdentity)() = (void (__stdcall*)())&"glLoadIdentity";
//void (__stdcall* glMultMatrixf)(...) = (void (__stdcall*)(...))&"glMultMatrixf";
void (__stdcall* glPushMatrix)() = (void (__stdcall*)())&"glPushMatrix";
void (__stdcall* glPopMatrix)() = (void (__stdcall*)())&"glPopMatrix";
void (__stdcall* glRotatef)(float angle, float x, float y, float z) = (void (__stdcall*)(float, float, float, float))&"glRotatef";
void (__stdcall* glTranslatef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glTranslatef";
void (__stdcall* glScalef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glScalef";
void (__stdcall* glViewport)(int x, int y, int width, int height) = (void (__stdcall*)(int, int, int, int))&"glViewport";
void (__stdcall* glFrustum)(double l, double r, double b, double t, double n, double f) = (void (__stdcall*)(double, double, double, double, double, double))&"glFrustum";
void (__stdcall* glGenLists)(int range) = (void (__stdcall*)(int))&"glGenLists";
//void (__stdcall* glIsList)(...) = (void (__stdcall*)(...))&"glIsList";
void (__stdcall* glNewList)(unsigned int list, int mode) = (void (__stdcall*)(unsigned int, int))&"glNewList";
void (__stdcall* glEndList)() = (void (__stdcall*)())&"glEndList";
void (__stdcall* glCallList)(unsigned int list) = (void (__stdcall*)(unsigned int))&"glCallList";
void (__stdcall* glClear)(int mask) = (void (__stdcall*)(int))&"glClear";
void (__stdcall* glClearColor)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glClearColor";
//void (__stdcall* glClearDepth)(...) = (void (__stdcall*)(...))&"glClearDepth";
void (__stdcall* glRenderMode)(int mode) = (void (__stdcall*)(int))&"glRenderMode";
//void (__stdcall* glSelectBuffer)(...) = (void (__stdcall*)(...))&"glSelectBuffer";
//void (__stdcall* glInitNames)(...) = (void (__stdcall*)(...))&"glInitNames";
//void (__stdcall* glPushName)(...) = (void (__stdcall*)(...))&"glPushName";
//void (__stdcall* glPopName)(...) = (void (__stdcall*)(...))&"glPopName";
//void (__stdcall* glLoadName)(...) = (void (__stdcall*)(...))&"glLoadName";
void (__stdcall* glGenTextures)(int n, unsigned int* textures) = (void (__stdcall*)(int, unsigned int *))&"glGenTextures";
//void (__stdcall* glDeleteTextures)(...) = (void (__stdcall*)(...))&"glDeleteTextures";
void (__stdcall* glBindTexture)(int target, int texture) = (void (__stdcall*)(int, int))&"glBindTexture";
void (__stdcall* glTexImage2D)(int target, int level, int components, int width, int height, int border, int format, int type, void *pixels) = (void (__stdcall*)(int, int, int, int, int, int, int, int, void*))&"glTexImage2D";
void (__stdcall* glTexEnvi)(int target, int pname, int param) = (void (__stdcall*)(int, int, int))&"glTexEnvi";
void (__stdcall* glTexParameteri)(int target, int pname, int param) = (void (__stdcall*)(int, int, int))&"glTexParameteri";
//void (__stdcall* glPixelStorei)(...) = (void (__stdcall*)(...))&"glPixelStorei";
void (__stdcall* glMaterialfv)(int mode, int type, float* v) = (void (__stdcall*)(int, int, float*))&"glMaterialfv";
void (__stdcall* glMaterialf)(int mode, int type, float v) = (void (__stdcall*)(int, int, float))&"glMaterialf";
void (__stdcall* glColorMaterial)(int mode, int type) = (void (__stdcall*)(int, int))&"glColorMaterial";
void (__stdcall* glLightfv)(int light, int type, float* v) = (void (__stdcall*)(int, int, float*))&"glLightfv";
//void (__stdcall* glLightf)(...) = (void (__stdcall*)(...))&"glLightf";
//void (__stdcall* glLightModeli)(...) = (void (__stdcall*)(...))&"glLightModeli";
void (__stdcall* glLightModelfv)(int pname, float* param) = (void (__stdcall*)(int, float*))&"glLightModelfv";
//void (__stdcall* glFlush)(...) = (void (__stdcall*)(...))&"glFlush";
//void (__stdcall* glHint)(...) = (void (__stdcall*)(...))&"glHint";
//void (__stdcall* glGetIntegerv)(...) = (void (__stdcall*)(...))&"glGetIntegerv";
//void (__stdcall* glGetFloatv)(...) = (void (__stdcall*)(...))&"glGetFloatv";
//void (__stdcall* glFrontFace)(...) = (void (__stdcall*)(...))&"glFrontFace";
//void (__stdcall* glEnableClientState)(...) = (void (__stdcall*)(...))&"glEnableClientState";
//void (__stdcall* glDisableClientState)(...) = (void (__stdcall*)(...))&"glDisableClientState";
//void (__stdcall* glArrayElement)(...) = (void (__stdcall*)(...))&"glArrayElement";
//void (__stdcall* glDrawArrays)(...) = (void (__stdcall*)(...))&"glDrawArrays";
//void (__stdcall* glDrawElements)(...) = (void (__stdcall*)(...))&"glDrawElements";
//void (__stdcall* glVertexPointer)(...) = (void (__stdcall*)(...))&"glVertexPointer";
//void (__stdcall* glColorPointer)(...) = (void (__stdcall*)(...))&"glColorPointer";
//void (__stdcall* glNormalPointer)(...) = (void (__stdcall*)(...))&"glNormalPointer";
//void (__stdcall* glTexCoordPointer)(...) = (void (__stdcall*)(...))&"glTexCoordPointer";
//void (__stdcall* glPolygonOffset)(...) = (void (__stdcall*)(...))&"glPolygonOffset";
//void (__stdcall* glOrtho)(...) = (void (__stdcall*)(...))&"glOrtho";
//void (__stdcall* glDebug)(...) = (void (__stdcall*)(...))&"glDebug";
//void (__stdcall* glInit)(...) = (void (__stdcall*)(...))&"glInit";
//void (__stdcall* glClose)(...) = (void (__stdcall*)(...))&"glClose";
//void (__stdcall* gluPerspective)(...) = (void (__stdcall*)(...))&"gluPerspective";
//void (__stdcall* gluNewQuadric)(...) = (void (__stdcall*)(...))&"gluNewQuadric";
//void (__stdcall* gluDeleteQuadric)(...) = (void (__stdcall*)(...))&"gluDeleteQuadric";
//void (__stdcall* gluQuadricDrawStyle)(...) = (void (__stdcall*)(...))&"gluQuadricDrawStyle";
//void (__stdcall* gluQuadricOrientation)(...) = (void (__stdcall*)(...))&"gluQuadricOrientation";
//void (__stdcall* gluQuadricTexture)(...) = (void (__stdcall*)(...))&"gluQuadricTexture";
//void (__stdcall* gluCylinder)(...) = (void (__stdcall*)(...))&"gluCylinder";
//void (__stdcall* gluSphere)(...) = (void (__stdcall*)(...))&"gluSphere";
void (__stdcall* kosglMakeCurrent)(long l, long t, long w, long h, TinyGLContext*) = (void (__stdcall*)(long, long, long, long, TinyGLContext*))&"kosglMakeCurrent";
void (__stdcall* kosglSwapBuffers)() = (void (__stdcall*)())&"kosglSwapBuffers";
asm{
dd 0, 0
}
#endif
/programs/develop/libraries/TinyGL/asm_fork/api.asm
11,6 → 11,21
ret 20 ;=sizeof(dd)*5
 
align 4
proc glVertex4d, x:qword, y:qword, z:qword, w:qword
add esp,-16
fld qword[w]
fstp dword[esp+12]
fld qword[z]
fstp dword[esp+8]
fld qword[y]
fstp dword[esp+4]
fld qword[x]
fstp dword[esp]
call glVertex4f
ret
endp
 
align 4
proc glVertex2f, x:dword, y:dword
stdcall glVertex4f,[x],[y],0.0,1.0
ret
17,6 → 32,19
endp
 
align 4
proc glVertex2d, x:qword, y:qword
push 1.0
push 0.0
add esp,-8
fld qword[y]
fstp dword[esp+4]
fld qword[x]
fstp dword[esp]
call glVertex4f
ret
endp
 
align 4
proc glVertex2fv uses eax, v:dword
mov eax,[v]
stdcall glVertex4f,[eax],[eax+4],0.0,1.0
24,6 → 52,20
endp
 
align 4
proc glVertex2dv uses eax, v:dword
mov eax,[v]
push 1.0
push 0.0
add esp,-8
fld qword[eax+8]
fstp dword[esp+4]
fld qword[eax]
fstp dword[esp]
call glVertex4f
ret
endp
 
align 4
proc glVertex3f, x:dword, y:dword, z:dword
stdcall glVertex4f,[x],[y],[z],1.0
ret
30,6 → 72,20
endp
 
align 4
proc glVertex3d, x:qword, y:qword, z:qword
push 1.0
add esp,-12
fld qword[z]
fstp dword[esp+8]
fld qword[y]
fstp dword[esp+4]
fld qword[x]
fstp dword[esp]
call glVertex4f
ret
endp
 
align 4
proc glVertex3fv uses eax, v:dword
mov eax,[v]
stdcall glVertex4f,[eax],[eax+4],[eax+8],1.0
37,6 → 93,21
endp
 
align 4
proc glVertex3dv uses eax, v:dword
mov eax,[v]
push 1.0
add esp,-12
fld qword[eax+16]
fstp dword[esp+8]
fld qword[eax+8]
fstp dword[esp+4]
fld qword[eax]
fstp dword[esp]
call glVertex4f
ret
endp
 
align 4
proc glVertex4fv uses eax, v:dword
mov eax,[v]
stdcall glVertex4f,[eax],[eax+4],[eax+8],[eax+12]
43,6 → 114,22
ret
endp
 
align 4
proc glVertex4dv uses eax, v:dword
mov eax,[v]
add esp,-16
fld qword[eax+24]
fstp dword[esp+12]
fld qword[eax+16]
fstp dword[esp+8]
fld qword[eax+8]
fstp dword[esp+4]
fld qword[eax]
fstp dword[esp]
call glVertex4f
ret
endp
 
; glNormal
 
align 4
/programs/develop/libraries/TinyGL/asm_fork/examples/gears.asm
6,7 → 6,7
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
include 'fps.inc'
18,8 → 18,7
dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))]
}
 
;Так как некоторые извращенческие функции OpenGL воспринимают только параметры
;типа double (8 байт) то придется пихать их в стек макросом glpush
;Макрос для параметров типа double (8 байт)
macro glpush GLDoubleVar {
push dword[GLDoubleVar+4]
push dword[GLDoubleVar]
27,8 → 26,7
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
 
903,7 → 901,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
920,11 → 918,6
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
 
head_f_i:
head_f_l db '"System error',0
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
;--------------------------------------------------
 
align 16
932,10 → 925,8
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
procinfo process_information
cur_dir_path rb 4096
library_path rb 4096
rb 4096
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test0.asm
6,7 → 6,7
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
 
14,8 → 14,7
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_lib_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
 
154,21 → 153,14
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
 
head_f_i:
head_f_l db '"System error',0
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
;--------------------------------------------------
 
align 16
i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test1.asm
6,7 → 6,7
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
 
14,8 → 14,7
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_lib_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
 
154,21 → 153,14
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
 
head_f_i:
head_f_l db '"System error',0
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
;--------------------------------------------------
 
align 16
i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test2.asm
6,7 → 6,7
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
 
14,8 → 14,7
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_lib_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
 
163,21 → 162,14
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
 
head_f_i:
head_f_l db '"System error',0
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
;--------------------------------------------------
 
align 16
i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test3.asm
6,7 → 6,7
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
 
14,8 → 14,7
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_lib_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
 
155,21 → 154,14
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
 
head_f_i:
head_f_l db '"System error',0
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
;--------------------------------------------------
 
align 16
i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test_array0.asm
1,16 → 1,13
use32
org 0x0
org 0
db 'MENUET01'
dd 0x1
dd start
dd i_end
dd mem,stacktop
dd 0,cur_dir_path
dd 1,start,i_end,mem,stacktop,0,cur_dir_path
 
include '../../../../../../programs/proc32.inc'
include '../../../../../../programs/macros.inc'
include '../../../../../../programs/develop/libraries/box_lib/load_lib.mac'
include '../../../../../../programs/dll.inc'
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
 
@use_library
17,12 → 14,11
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_tinygl
cmp eax,-1
jz button.exit
 
mcall 40,0x27
mcall SF_SET_EVENTS_MASK,0x27
 
stdcall [kosglMakeCurrent], 10,10,400,350,ctx1
stdcall [glEnable], GL_DEPTH_TEST
37,7 → 33,7
 
align 4
still:
mcall 10
mcall SF_WAIT_EVENT
cmp al,1
jz red_win
cmp al,2
49,19 → 45,18
align 4
draw_window:
pushad
mcall 12,1
mcall SF_REDRAW,SSF_BEGIN_DRAW
 
mov edx,0x33ffffff ;0x73ffffff
mcall 0,(50 shl 16)+430,(30 shl 16)+400,,,caption
stdcall [kosglSwapBuffers]
mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption
call [kosglSwapBuffers]
 
mcall 12,2
mcall SF_REDRAW,SSF_END_DRAW
popad
ret
 
align 4
key:
mcall 2
mcall SF_GET_KEY
 
cmp ah,27 ;Esc
je button.exit
72,7 → 67,7
fadd dword[delt_sc]
fstp dword[scale]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,45 ;-
jne @f
80,7 → 75,7
fsub dword[delt_sc]
fstp dword[scale]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,178 ;Up
jne @f
88,7 → 83,7
fadd dword[delt_size]
fstp dword[angle_y]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,177 ;Down
jne @f
96,7 → 91,7
fsub dword[delt_size]
fstp dword[angle_y]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,176 ;Left
jne @f
104,7 → 99,7
fadd dword[delt_size]
fstp dword[angle_z]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,179 ;Right
jne @f
112,7 → 107,7
fsub dword[delt_size]
fstp dword[angle_z]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
 
jmp still
119,23 → 114,20
 
align 4
button:
mcall 17
mcall SF_GET_BUTTON
cmp ah,1
jne still
.exit:
mcall -1
mcall SF_TERMINATE_PROCESS
 
 
align 4
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
align 4
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
 
align 4
draw_3d:
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
stdcall [glPushMatrix]
call [glPushMatrix]
 
;масштаб и повороты
stdcall [glTranslatef], 0.0,0.0,0.5
152,7 → 144,7
stdcall [glDisableClientState], GL_COLOR_ARRAY ;отключаем режим рисования цветов
stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин
 
stdcall [glPopMatrix]
call [glPopMatrix]
ret
 
align 4
168,7 → 160,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
185,17 → 177,13
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
err_message_found_lib db 'Sorry I cannot load library tinygl.obj',0
head_f_i:
head_f_l db 'System error',0
err_message_import db 'Error on load import library tinygl.obj',0
;--------------------------------------------------
 
align 4
i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 4096
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test_array1.asm
1,5 → 1,5
use32
org 0x0
org 0
db 'MENUET01'
dd 1,start,i_end,mem,stacktop,0,cur_dir_path
 
6,7 → 6,7
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
 
14,8 → 14,7
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
 
62,9 → 61,8
pushad
mcall SF_REDRAW,SSF_BEGIN_DRAW
 
mov edx,0x33ffffff
mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,,,caption
stdcall [kosglSwapBuffers]
mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption
call [kosglSwapBuffers]
 
mcall SF_REDRAW,SSF_END_DRAW
popad
83,7 → 81,7
fadd dword[delt_sc]
fstp dword[scale]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,45 ;-
jne @f
91,7 → 89,7
fsub dword[delt_sc]
fstp dword[scale]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,178 ;Up
jne @f
99,7 → 97,7
fadd dword[delt_size]
fstp dword[angle_y]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,177 ;Down
jne @f
107,7 → 105,7
fsub dword[delt_size]
fstp dword[angle_y]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,176 ;Left
jne @f
115,7 → 113,7
fadd dword[delt_size]
fstp dword[angle_x]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
cmp ah,179 ;Right
jne @f
123,7 → 121,7
fsub dword[delt_size]
fstp dword[angle_x]
call draw_3d
stdcall [kosglSwapBuffers]
call [kosglSwapBuffers]
@@:
 
jmp still
139,14 → 137,11
 
align 4
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
align 4
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
 
align 4
draw_3d:
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
stdcall [glPushMatrix]
call [glPushMatrix]
 
;масштаб и повороты
stdcall [glTranslatef], 0.0,0.0,0.5
155,7 → 150,7
stdcall [glRotatef], [angle_y],0.0,1.0,0.0
stdcall [glRotatef], [angle_x],1.0,0.0,0.0
 
;рисование через тндексный массив
;рисование через индексный массив
mov eax,house_3ds ;начало внедренного файла 3ds
add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds)
stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины
163,7 → 158,7
stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices
stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин
 
stdcall [glPopMatrix]
call [glPopMatrix]
ret
 
align 4
199,17 → 194,13
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,0
head_f_i:
head_f_l db 'System error',0
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,0
;--------------------------------------------------
 
align 4
i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 4096
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test_glu0.asm
6,7 → 6,7
include '../../../../../proc32.inc'
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac'
include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc'
 
14,8 → 14,7
 
align 4
start:
load_library name_tgl, cur_dir_path, library_path, system_path, \
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
load_library name_tgl, library_path, system_path, import_tinygl
cmp eax,SF_TERMINATE_PROCESS
jz button.exit
 
23,7 → 22,7
 
stdcall [kosglMakeCurrent], 10,10,300,225,ctx1
stdcall [glEnable], GL_DEPTH_TEST
stdcall [gluNewQuadric]
call [gluNewQuadric]
mov [qObj],eax
 
stdcall [glClearColor], 0.5,0.5,0.5,0.0
170,7 → 169,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
187,21 → 186,13
;--------------------------------------------------
system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0
 
head_f_i:
head_f_l db '"System error',0
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
;--------------------------------------------------
 
align 16
i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28
ctx1 rb 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 2048
stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test_glu1.asm
7,14 → 7,13
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc'
include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
 
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
 
;Макрос для параметров типа double (8 байт)
366,7 → 365,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
490,14 → 489,6
lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
head_f_i:
head_f_l db '"System error',0
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
;--------------------------------------------------
 
txt_scale:
535,23 → 526,21
 
align 4
l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
l_libs_end:
 
align 4
i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
qObj dd 0
run_file_70 FileInfoBlock
sc system_colors
align 16
cur_dir_path rb 4096
file_name rb 4096
rb 4096
stacktop:
cur_dir_path rb 4096
file_name rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/test_glu2.asm
7,14 → 7,13
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc'
include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
 
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
 
;Макрос для параметров типа double (8 байт)
357,7 → 356,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
481,14 → 480,6
lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
head_f_i:
head_f_l db '"System error',0
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
;--------------------------------------------------
 
txt_scale:
526,23 → 517,21
 
align 4
l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
l_libs_end:
 
align 4
i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
qObj dd 0
run_file_70 FileInfoBlock
sc system_colors
align 16
cur_dir_path rb 4096
file_name rb 4096
rb 4096
stacktop:
cur_dir_path rb 4096
file_name rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/textures0.asm
7,11 → 7,12
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc'
include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
 
;Макрос для параметров типа double (8 байт)
macro glpush GLDoubleVar {
19,8 → 20,6
push dword[GLDoubleVar]
}
 
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
 
align 4
407,7 → 406,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
531,14 → 530,6
lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
head_f_i:
head_f_l db '"System error',0
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
;--------------------------------------------------
 
txt_scale:
576,17 → 567,15
 
align 4
l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
l_libs_end:
 
align 4
i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
dr_figure dd 0
qObj dd 0
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
596,8 → 585,8
run_file_70 FileInfoBlock
sc system_colors
align 16
cur_dir_path rb 4096
file_name rb 4096
rb 4096
stacktop:
cur_dir_path rb 4096
file_name rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/textures1.asm
7,11 → 7,12
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc'
include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
 
;Макрос для параметров типа double (8 байт)
macro glpush GLDoubleVar {
19,8 → 20,6
push dword[GLDoubleVar]
}
 
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
 
align 4
337,7 → 336,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
461,14 → 460,6
lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
head_f_i:
head_f_l db '"System error',0
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
;--------------------------------------------------
 
txt_scale:
512,17 → 503,15
 
align 4
l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
l_libs_end:
 
align 4
i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
dr_figure dd 0
qObj dd 0
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
532,8 → 521,8
run_file_70 FileInfoBlock
sc system_colors
align 16
cur_dir_path rb 4096
file_name rb 4096
rb 4096
stacktop:
cur_dir_path rb 4096
file_name rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/examples/textures2.asm
7,11 → 7,12
include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc'
include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
 
;Макрос для параметров типа double (8 байт)
macro glpush GLDoubleVar {
19,8 → 20,6
push dword[GLDoubleVar]
}
 
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
 
align 4
294,7 → 293,7
 
;--------------------------------------------------
align 4
import_lib_tinygl:
import_tinygl:
 
macro E_LIB n
{
418,14 → 417,6
lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
head_f_i:
head_f_l db '"System error',0
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
;--------------------------------------------------
 
txt_scale:
469,17 → 460,15
 
align 4
l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
l_libs_end:
 
align 4
i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
qObj dd 0
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
texture dd 0 ;указатель на память с текстурой
488,8 → 477,8
run_file_70 FileInfoBlock
sc system_colors
align 16
cur_dir_path rb 4096
file_name rb 4096
rb 4096
stacktop:
cur_dir_path rb 4096
file_name rb 4096
mem:
/programs/develop/libraries/TinyGL/asm_fork/info_fun_float.inc
5,7 → 5,7
; Š®«¨ç¥á⢮ §­ ª®¢ ç¨á«  ¯®á«¥ § ¯ï⮩ (1-17)
NumberSymbolsAD DW 5
; Š®­áâ ­âë (10 ¢ á⥯¥­¨ N)
MConst DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5
MConst: DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5
DQ 1.0E6,1.0E7,1.0E8,1.0E9,1.0E10
DQ 1.0E11,1.0E12,1.0E13,1.0E14,1.0E15
DQ 1.0E16,1.0E17,1.0E18,1.0E19,1.0E20
31,6 → 31,7
DQ 1.0E116,1.0E117,1.0E118,1.0E119,1.0E120
DQ 1.0E121,1.0E122,1.0E123,1.0E124,1.0E125
DQ 1.0E126,1.0E127,1.0E128
.end:
; —¨á«® á ¯« ¢ î饩 § ¯ï⮩ ¤¢®©­®© â®ç­®áâ¨
Data_Double DQ ?
; —¨á«® ¢ BCD-ä®à¬ â¥
39,9 → 40,10
Data_Flag DB ?
; ‡­ ª १ã«ìâ â  (¥á«¨ ­¥ 0 - ®âà¨æ â¥«ì­®¥ ç¨á«®)
Data_Sign DB ?
; ‡­ ª १ã«ìâ â  - 0 ¤«ï ..e+.. ¨ 1 ¤«ï ..e-..
Data_Sign_Exp DB ?
 
 
db 0 ;㪠§ â¥«ì ­  ᤢ¨£ ¢ ¯ ¬ïâ¨
align 4
; ‘âப  ¤«ï åà ­¥­¨ï ç¨á«  ¢ ª®¤¥ ASCII
Data_String DB 32 DUP (?)
 
59,10 → 61,11
;* ‚ë室­ë¥ ¯ à ¬¥âàë: *
;* Data_String - áâப -१ã«ìâ â. *
;*******************************************************
align 4
DoubleFloat_to_String:
pushad
; ¥§ã«ìâ â § ¯¨á뢠âì ¢ áâபã Data_String
lea EDI, [Data_String]
mov EDI, Data_String
 
; ‘¤¢¨£ ¥¬ ç¨á«® ¢«¥¢® ­  NumberSymbolsAD
; ¤¥áïâ¨ç­ëå à §à冷¢
74,9 → 77,7
je .NoShifts ;­¥â æ¨äà ¯®á«¥ § ¯ï⮩
jl .Error ;®è¨¡ª 
dec BX
shl BX, 3 ;㬭®¦ ¥¬ ­  8
lea eax,[MConst]
add EBX, eax
lea ebx,[MConst+8*ebx]
fmul qword [EBX] ;㬭®¦¨âì ­  ª®­áâ ­âã
.NoShifts:
; ˆ§¢«¥çì ç¨á«® ¢ ª®¤¥ BCD
130,8 → 131,8
stosb
 
; “¡à âì ­¥§­ ç é¨¥ ­ã«¨ á«¥¢ 
lea EDI, [Data_String]
lea ESI, [Data_String]
mov EDI, Data_String
mov ESI, Data_String
; à®¯ãáâ¨âì §­ ª ç¨á« , ¥á«¨ ®­ ¥áâì
cmp byte [ESI],'-'
jne .N2
151,10 → 152,11
; Žè¨¡ª  - ­¥â §­ ç é¨å æ¨äà
jmp .Error
; ‘ª®¯¨à®¢ âì §­ ç éãî ç áâì ç¨á«  ¢ ­ ç «® áâப¨
align 4
.N4: rep movsb
jmp .End
 
; Žè¨¡ª 
align 4
.Error:
mov AL,'E'
stosb
166,6 → 168,7
stosb
jmp .End
; ¥à¥¯®«­¥­¨¥ à §à來®© á¥âª¨
align 4
.Overflow:
mov AL,'#'
stosb
172,6 → 175,7
xor AL,AL
stosb
; Š®­¥æ ¯à®æ¥¤ãàë
align 4
.End:
popad
ret
184,6 → 188,7
;* ‚ë室­ë¥ ¯ à ¬¥âàë: *
;* Data_Double - ç¨á«® ¢ ¤¢®¨ç­®¬ ª®¤¥. *
;****************************************************
align 4
String_to_DoubleFloat:
pushad
cld
193,110 → 198,200
mov word [Data_BCD+8],0
; Žç¨é ¥¬ ¡ ©â §­ ª 
mov [Data_Sign],0
; ‡ ­®á¨¬ ¢ SI 㪠§ â¥«ì ­  áâபã
lea ESI, [Data_String]
; ‡ ­®á¨¬ ¢ esi 㪠§ â¥«ì ­  áâபã
mov esi, Data_String
; à®¯ã᪠¥¬ ¯à®¡¥«ë ¯¥à¥¤ ç¨á«®¬
mov ecx,64 ;§ é¨â  ®â § æ¨ª«¨¢ ­¨ï
.ShiftIgnore:
lodsb
cmp AL,' '
cmp al,' '
jne .ShiftIgnoreEnd
loop .ShiftIgnore
jmp .Error
align 4
.ShiftIgnoreEnd:
; à®¢¥à塞 §­ ª ç¨á« 
cmp AL,'-'
cmp al,'-'
jne .Positive
mov [Data_Sign],80h
lodsb
.Positive:
mov [Data_Flag],0 ;¯à¨§­ ª ­ «¨ç¨ï â®çª¨
mov DX,0 ;¯®§¨æ¨ï â®çª¨
xor edx,edx ;¯®§¨æ¨ï â®çª¨
mov ecx,18 ;¬ ªá. ç¨á«® à §à冷¢
align 4
.ASCIItoBCDConversion:
cmp AL,'.' ;â®çª ?
cmp al,'.' ;â®çª ?
jne .NotDot
cmp [Data_Flag],0 ;â®çª  ­¥ ¢áâà¥ç « áì?
jne .Error
jne .Error ;¥á«¨ â®çª  㦥 ¡ë« 
mov [Data_Flag],1
lodsb
cmp AL,0 ;ª®­¥æ áâப¨?
jne .NotDot
or al,al ;ª®­¥æ áâப¨?
jnz .NotDot
jmp .ASCIItoBCDConversionEnd
align 4
.NotDot:
; “¢¥«¨ç¨âì ­  1 §­ ç¥­¨¥ ¯®§¨æ¨¨ â®çª¨,
; ¥á«¨ ®­  ¥é¥ ­¥ ¢áâà¥ç « áì
cmp [Data_Flag],0
jnz .Figures
inc DX
inc edx
.Figures:
cmp al,'e'
je .exp_form
cmp al,'E'
jne @f
.exp_form:
call string_ExpForm ;¥á«¨ ç¨á«® ¢ ä®à¬ â¥ ..e..
or al,al
jnz .Error
jmp .ASCIItoBCDConversionEnd
@@:
; ‘¨¬¢®«ë ç¨á«  ¤®«¦­ë ¡ëâì æ¨äà ¬¨
cmp AL,'0'
cmp al,'0'
jb .Error
cmp AL,'9'
cmp al,'9'
ja .Error
; ¨è¥¬ ®ç¥à¥¤­ãî æ¨äàã ¢ ¬« ¤èãî â¥âà ¤ã BCD
and AL,0Fh
or byte [Data_BCD],AL
and al,15 ;ᨬ¢®«ë 0-9 ¯¥à¥¢®¤¨¬ ¢ ç¨á«®
or byte [Data_BCD],al
; à®¢¥àª  ­  ª®­¥æ áâப¨
cmp byte [ESI],0
cmp byte [esi],0
je .ASCIItoBCDConversionEnd
; ‘¤¢¨£ ¥¬ BCD ­  4 à §à鸞 ¢«¥¢®
; (ᤢ¨£ ¥¬ áâ à訥 2 ¡ ©â )
mov AX,word [Data_BCD+6]
shld word [Data_BCD+8],AX,4
mov ax,word [Data_BCD+6]
shld word [Data_BCD+8],ax,4
; (ᤢ¨£ ¥¬ á।­¨¥ 4 ¡ ©â )
mov EAX, dword [Data_BCD]
shld dword [Data_BCD+4],EAX,4
mov eax,dword [Data_BCD]
shld dword [Data_BCD+4],eax,4
; (ᤢ¨£ ¥¬ ¬« ¤è¨¥ 4 ¡ ©â )
shl dword [Data_BCD],4
; ‡ £à㦠¥¬ á«¥¤ãî騩 ᨬ¢®« ¢ AL
lodsb
loop .ASCIItoBCDConversion
loop .ASCIItoBCDConversion ;¥á«¨ ­¥ ª®¬¯¨«. â® ¯®áâ ¢¨âì dec ecx, jnz ...
; …᫨ 19-© ᨬ¢®« ­¥ 0 ¨ ­¥ â®çª ,
; â® ®è¨¡ª  ¯¥à¥¯®«­¥­¨ï
cmp AL,'.'
cmp al,'.'
jne .NotDot2
inc ecx
inc ecx ;¯à®¯ã᪠â®çª¨ ¢ ª®­æ¥ ®ç¥­ì ¡®«ì讣® ç¨á« 
lodsb
.NotDot2:
cmp AL,0
jne .Error ;¯¥à¥¯®«­¥­¨¥ à §à來®© á¥âª¨
or al,al ;¯¥à¥¯®«­¥­¨¥ à §à來®© á¥âª¨?
jz .ASCIItoBCDConversionEnd
align 4
.Error: ; à¨ «î¡®© ®è¨¡ª¥ ®¡­ã«¨âì १ã«ìâ â
fldz ;§ ­¥á⨠­®«ì á á⥪ ᮯà®æ¥áá®à 
fstp [Data_Double]
jmp .End
 
; …Ž€‡Ž‚€’œ —ˆ‘‹Ž ˆ‡ ŠŽ„€ BCD ‚ ‚…™…‘’‚…Ž… —ˆ‘‹Ž
.ASCIItoBCDConversionEnd:
; ‚¯¨á âì §­ ª ¢ áâ à訩 ¡ ©â
mov AL,[Data_Sign]
mov byte [Data_BCD+9],AL
mov al,[Data_Sign]
mov byte [Data_BCD+9],al
; ‘¡à®á¨âì ॣ¨áâàë ᮯà®æ¥áá®à 
fninit
; ‡ £à㧨âì ¢ ᮯà®æ¥áá®à ç¨á«® ¢ BCD-ä®à¬ â¥
fbld [Data_BCD]
; ‚ëç¨á«¨âì ­®¬¥à ¤¥«¨â¥«ï
mov EBX,18+1
sub BX,CX
sub BX,DX
cmp EBX,0
je .NoDiv
dec EBX
shl EBX,3 ;㬭®¦ ¥¬ ­  8
lea eax,[MConst]
add EBX,eax
fdiv qword [EBX] ;à §¤¥«¨âì ­  ª®­áâ ­âã
; ‚ëç¨á«¨âì ­®¬¥à ¤¥«¨â¥«ï ¨«¨ ¬­®¦¨â¥«ï
lea ebx,[ecx+edx-18]
cmp ebx,0
jle .NoMul ;¥á«¨ ç¨á«® e-..
dec ebx
jz .NoDiv ;¥á«¨ ç¨á«® e+0
dec ebx
lea ebx,[MConst+8*ebx]
cmp ebx,MConst.end
jl @f
ffree st0
fincstp
jmp .Error ;¥á«¨ ®ç¥­ì ¡®«ì讥 ç¨á«® e+**
@@:
fmul qword [ebx] ;㬭®¦¨âì ­  ª®­áâ ­âã (¤«ï ç¨á¥« á ¯à¨áâ ¢ª®© e+..)
jmp .NoDiv
.NoMul:
neg ebx
lea ebx,[MConst+8*ebx]
cmp ebx,MConst.end
jl @f
ffree st0
fincstp
jmp .Error ;¥á«¨ ®ç¥­ì ¬ «¥­ìª®¥ ç¨á«® e-**
@@:
fdiv qword [ebx] ;à §¤¥«¨âì ­  ª®­áâ ­âã
.NoDiv:; ‚ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç­®¬ ä®à¬ â¥
fstp [Data_Double]
jmp .End
 
.Error:; à¨ «î¡®© ®è¨¡ª¥ ®¡­ã«¨âì १ã«ìâ â
fldz ;§ ­¥á⨠­®«ì á á⥪ ᮯà®æ¥áá®à 
fstp [Data_Double]
.End:
popad
ret
 
;output:
; eax - 1 if error
; edx += size
align 4
proc str_cat, str1:dword, str2:dword
push eax ecx edi esi
proc string_ExpForm uses ebx
mov [Data_Sign_Exp],0
xor eax,eax
lodsb
cmp al,'+'
jne @f
lodsb
@@:
cmp al,'-'
jne @f
inc [Data_Sign_Exp]
lodsb
@@:
xor ebx,ebx
.cycle0:
cmp al,0
je .cycle0end
cmp al,9
je .cycle0end
cmp al,10
je .cycle0end
cmp al,13
je .cycle0end
cmp al,' '
je .cycle0end
cmp al,'0'
jb .Error
cmp al,'9'
ja .Error
imul ebx,10
and eax,15 ;ᨬ¢®«ë 0-9 ¯¥à¥¢®¤¨¬ ¢ ç¨á«®
add ebx,eax
lodsb
jmp .cycle0
.cycle0end:
cmp ebx,328 ;308 - ¬ ªá. à §¬¥à á⥯¥­¨ ¤«ï double + 20 - ç¨á«® à §à冷¢ ¢ BCD
ja .Error
cmp [Data_Sign_Exp],0
je @f
neg ebx
@@:
cmp [Data_Flag],0 ;â®çª  ­¥ ¢áâà¥ç « áì?
jne @f
dec edx
@@:
add edx,ebx
 
xor eax,eax
jmp @f
.Error:
xor eax,eax
inc eax
@@:
ret
endp
 
align 4
proc str_cat uses eax ecx edi esi, str1:dword, str2:dword
mov esi,dword[str2]
stdcall str_len,esi
mov ecx,eax
306,7 → 401,6
add edi,eax
cld
repne movsb
pop esi edi ecx eax
ret
endp
 
323,4 → 417,34
@@:
sub eax,[str1]
ret
endp
 
align 4
proc String_crop_0 uses eax ebx ecx edi
mov edi,Data_String
mov al,'.'
mov ecx,32
repne scasb
mov ebx,edi
mov edi,Data_String
xor al,al
mov ecx,32
repne scasb
cmp ebx,edi
jg .end_f
dec edi
.cycle0:
dec edi
cmp edi,Data_String
jle .end_f
cmp byte[edi],'0'
jne .cycle0end
mov byte[edi],0
jmp .cycle0
.cycle0end:
cmp byte[edi],'.'
jne .end_f
mov byte[edi],0
.end_f:
ret
endp
/programs/develop/libraries/TinyGL/asm_fork/tinygl.asm
105,12 → 105,6
end if
 
; ***
glVertex2d: ;(double ,double)
glVertex2dv: ;(double *)
glVertex3d: ;(double ,double ,double)
glVertex3dv: ;(double *)
glVertex4d: ;(double ,double ,double, double )
glVertex4dv: ;(double *)
glColor3d: ;(double ,double ,double)
glColor3dv: ;(double *)
glColor4d: ;(double ,double ,double, double )
/programs/develop/libraries/libs-dev/libimg/png/libpng/png.asm
48,8 → 48,8
png_debug 1, 'in png_set_sig_bytes'
 
mov edi,[png_ptr]
cmp edi,0
je .end_f ;if (..==0) return
or edi,edi
jz .end_f ;if (..==0) return
 
mov eax,[num_bytes]
cmp eax,0
101,13 → 101,10
align 4
proc png_zalloc uses edx ecx, png_ptr:dword, items:dword, size:dword
 
cmp dword[png_ptr],0
jne @f
xor eax,eax
jmp .end_f ;if (..==0) return 0
@@:
cmp dword[png_ptr],eax
je .end_f ;if (..==0) return 0
 
xor eax,eax
not eax
xor edx,edx
mov ecx,[size]
161,8 → 158,8
endl
mov edi,[png_ptr]
PNG_CHUNK_ANCILLARY [edi+png_struct.chunk_name]
cmp eax,0 ;if (..!=0)
je @f
or eax,eax ;if (..!=0)
jz @f
mov eax,[edi+png_struct.flags]
and eax,PNG_FLAG_CRC_ANCILLARY_MASK
cmp eax,PNG_FLAG_CRC_ANCILLARY_USE or PNG_FLAG_CRC_ANCILLARY_NOWARN
340,12 → 337,12
; Call the general version checker (shared with read and write code):
 
stdcall png_user_version_check, ebx, [user_png_ver]
cmp eax,0
je .end0 ;if (..!=0)
or eax,eax
jz .end0 ;if (..!=0)
stdcall png_malloc_warn, ebx, sizeof.png_struct
;eax = png_ptr
cmp eax,0
je .end0 ;if (..!=0)
or eax,eax
jz .end0 ;if (..!=0)
; png_ptr->zstream holds a back-pointer to the png_struct, so
; this can only be done now:
 
379,16 → 376,12
; Allocate the memory for an info_struct for the application.
;png_infop (png_structrp png_ptr)
align 4
proc png_create_info_struct uses ebx ecx edi, png_ptr:dword
proc png_create_info_struct uses ecx edi, png_ptr:dword
png_debug 1, 'in png_create_info_struct'
;ebx - info_ptr dd ? ;png_inforp
 
mov edi,[png_ptr]
cmp edi,0
jne @f ;if (..==0) return 0
xor eax,eax
jmp .end_f
@@:
mov eax,[png_ptr]
or eax,eax
jz .end_f ;if (..==0) return 0
 
; Use the internal API that does not (or at least should not) error out, so
; that this call always returns ok. The application typically sets up the
395,18 → 388,15
; error handling *after* creating the info_struct because this is the way it
; has always been done in 'example.asm'.
 
stdcall png_malloc_base, edi, sizeof.png_info_def
mov ebx,eax
 
cmp eax,0
je @f
stdcall png_malloc_base, eax, sizeof.png_info_def
or eax,eax
jz .end_f
push eax
mov edi,eax
xor eax,eax
mov ecx,sizeof.png_info_def
rep stosb ;memset(...
@@:
 
mov eax,ebx
pop eax
.end_f:
ret
endp
428,8 → 418,8
je .end_f ;if (..==0) return
 
mov edi,[info_ptr_ptr]
cmp edi,0 ;if (..!=0)
je .end_f
or edi,edi ;if (..!=0)
jz .end_f
; Do this first in case of an error below; if the app implements its own
; memory management this can lead to png_free calling png_error, which
; will abort this routine and return control to the app error handler.
490,11 → 480,11
png_debug 1, 'in png_data_freer'
 
mov edi,[png_ptr]
cmp edi,0
je .end_f
or edi,edi
jz .end_f
mov esi,[info_ptr]
cmp esi,0
je .end_f ;if (..==0 || ..==0) return
or esi,esi
jz .end_f ;if (..==0 || ..==0) return
 
; if (freer == PNG_DESTROY_WILL_FREE_DATA)
; info_ptr->free_me |= mask;
514,11 → 504,11
png_debug 1, 'in png_free_data'
 
mov edi,[png_ptr]
cmp edi,0
je .end_f
or edi,edi
jz .end_f
mov esi,[info_ptr]
cmp esi,0
je .end_f ;if (..==0 || ..==0) return
or esi,esi
jz .end_f ;if (..==0 || ..==0) return
 
if PNG_TEXT_SUPPORTED eq 1
; Free text item num or (if num == -1) all text items
722,8 → 712,8
align 4
proc png_get_io_ptr, png_ptr:dword
mov eax,[png_ptr]
cmp eax,0
je @f ;if (..==0) return 0
or eax,eax
jz @f ;if (..==0) return 0
mov eax,[eax+png_struct.io_ptr]
@@:
ret
742,8 → 732,8
png_debug 1, 'in png_init_io'
 
mov edi,[png_ptr]
cmp edi,0
je @f ;if (..==0) return
or edi,edi
jz @f ;if (..==0) return
mov eax,[fp]
mov [edi+png_struct.io_ptr],eax
@@:
967,8 → 957,8
; bytep p, p_end;
 
mov edi,[png_ptr]
cmp edi,0
je .end0
or edi,edi
jz .end0
cmp dword[chunk_name],0
je .end0
cmp dword[edi+png_struct.num_chunk_list],0
1020,8 → 1010,8
align 4
proc png_reset_zstream, png_ptr:dword
mov eax,[png_ptr]
cmp eax,0
jne @f ;if (..==0)
or eax,eax
jnz @f ;if (..==0)
mov eax,Z_STREAM_ERROR
jmp .end_f
@@:
1289,8 → 1279,8
align 4
proc png_colorspace_sync uses ecx edi esi, png_ptr:dword, info_ptr:dword
mov edi,[info_ptr]
cmp edi,0
je @f ;if (..==0) ;reduce code size; check here not in the caller
or edi,edi
jz @f ;if (..==0) ;reduce code size; check here not in the caller
mov ecx,sizeof.png_colorspace
mov esi,[png_ptr]
add esi,png_struct.colorspace
1935,8 → 1925,8
message rb 196 ;char[] ;see below for calculation
endl
mov eax,[colorspace]
cmp eax,0
je @f ;if (..!=0)
or eax,eax
jz @f ;if (..!=0)
or word[eax+png_colorspace.flags], PNG_COLORSPACE_INVALID
@@:
 
2857,8 → 2847,8
@@:
end if
 
cmp ebx,0
je @f
or ebx,ebx
jz @f
png_error edi, 'Invalid IHDR data'
@@:
ret
4432,8 → 4422,8
align 4
proc png_set_option uses ecx, png_ptr:dword, option:dword, onoff:dword
mov eax,[png_ptr]
cmp eax,0
je @f
or eax,eax
jz @f
mov ecx,[option]
cmp ecx,0
jl @f
4695,8 → 4685,8
; png_safe_execute will call this API after the return.
 
mov ebx,[image]
cmp ebx,0
je @f
or ebx,ebx
jz @f
cmp dword[ebx+png_image.opaque],0
je @f
mov eax,[ebx+png_image.opaque]
/programs/media/log_el/trunk/le_libs.inc
/programs/media/log_el/trunk/log_el.asm
1,5 → 1,5
use32
org 0x0
org 0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 1,start,i_end,mem,stacktop,0,sys_path
 
42,11 → 42,12
include '../../../proc32.inc'
include '../../../KOSfuncs.inc'
include '../../../load_img.inc'
include '../../../load_lib.mac'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include 'le_pole.inc'
include 'le_signal.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 13.02.16',0 ;¯®¤¯¨áì ®ª­ 
 
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
171,13 → 172,7
0,-1, 1, 0
 
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
image_data_toolbar dd 0
 
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
icon_toolbar dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
 
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
 
cursors_count equ 4
 
ini_name db 'log_el.ini',0 ;¨¬ï ä ©« 
196,7 → 191,7
start:
load_libraries l_libs_start,l_libs_end
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
mov ebp,lib_7
mov ebp,lib4
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall SF_TERMINATE_PROCESS
205,7 → 200,7
mcall SF_SET_EVENTS_MASK,0x27
 
;*** áç¨â뢠­¨¥ ­ áâ஥ª ¨§ *.ini ä ©« 
copy_path ini_name,sys_path,file_name,0x0
copy_path ini_name,sys_path,file_name,0
 
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_bkgnd,ini_def_c_bkgnd
mov dword[buf_0.color],eax
642,7 → 637,7
mcall SF_CREATE_WINDOW, (20 shl 16)+580,(20 shl 16)+415
 
; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_0_coord_top shl 16)+20, 3,, [sc.work_button]
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_0_coord_top shl 16)+20, 3, [sc.work_button]
 
add ebx,25 shl 16
mov edx,4
758,27 → 753,26
stdcall pole_draw_pok, pole
 
; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ set_0 ¨ set_1 ***
mov esi,[sc.work_button]
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20, [sc.work_button]
 
add ebx,25 shl 16
mov edx,21
inc edx
int 0x40
 
add ebx,30 shl 16
mov edx,22
inc edx
int 0x40
 
add ebx,25 shl 16
mov edx,23
inc edx
int 0x40
 
add ebx,25 shl 16
mov edx,24
inc edx
int 0x40
 
add ebx,25 shl 16
mov edx,25
inc edx
int 0x40
 
mov ecx,[sc.work_text]
808,8 → 802,7
int 0x40
 
; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  ***
mov esi,[sc.work_button]
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30, [sc.work_button]
 
add ebx,30 shl 16
mov edx,31
1043,11 → 1036,6
color_captions dd 0x808080
 
align 4
open_file_lif:
rb 2*4096 ;®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢
.end:
 
align 4
but_open_file:
pushad
copy_path open_dialog_name,communication_area_default_path,file_name,0
1080,8 → 1068,8
 
mov esi,txt_size
call str_analiz_r
cmp edi,0
je @f
or edi,edi
jz @f
stdcall str_len,esi
add edi,eax
stdcall conv_str_to_int,edi
1104,8 → 1092,8
 
mov esi,txt_elements
call str_analiz_r
cmp edi,0
je .end_elems
or edi,edi
jz .end_elems
stdcall str_len,esi
add edi,eax
stdcall conv_str_to_int,edi
1416,8 → 1404,8
inc edx
push edx
stdcall pole_cell_find, edi
cmp eax,0
je @f
or eax,eax
jz @f
or dword[napr],1
@@:
 
1427,8 → 1415,8
mov edx,[ebx+offs_cell_x]
push edx
stdcall pole_cell_find, edi
cmp eax,0
je @f
or eax,eax
jz @f
or dword[napr],2
@@:
 
1438,8 → 1426,8
dec edx
push edx
stdcall pole_cell_find, edi
cmp eax,0
je @f
or eax,eax
jz @f
or dword[napr],4
@@:
 
1449,8 → 1437,8
mov edx,[ebx+offs_cell_x]
push edx
stdcall pole_cell_find, edi
cmp eax,0
je @f
or eax,eax
jz @f
or dword[napr],8
@@:
 
1970,14 → 1958,12
endp
 
align 4
proc mem_copy, destination:dword, source:dword, len:dword
push ecx esi edi
proc mem_copy uses ecx esi edi, destination:dword, source:dword, len:dword
cld
mov esi, dword[source]
mov edi, dword[destination]
mov ecx, dword[len]
mov edi,[destination]
mov esi,[source]
mov ecx,[len]
rep movsb
pop edi esi ecx
ret
endp
 
2290,8 → 2276,8
add ecx,[buf_curs.data]
mcall SF_MOUSE_GET,SSF_LOAD_CURSOR
 
cmp eax,0
je @f
or eax,eax
jz @f
mov [cursor_pointer],eax
mcall SF_MOUSE_GET,SSF_SET_CURSOR,[cursor_pointer]
@@:
2339,15 → 2325,6
 
include 'le_libs.inc'
 
mouse_dd dd 0x0
sc system_colors
last_time dd 0
 
 
 
align 16
procinfo process_information
 
align 4
buf_0: dd 0 ;
.l: dw 170 ;+4 left
2360,8 → 2337,7
align 4
buf_font: ;¡ãä¥à á® èà¨ä⮬
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 25 ;+4 left
dw 25 ;+6 top
dw 25,25 ;+4 left,top
dd 96 ;+8 w
dd 144 ;+12 h
dd 0 ;+16 color
2370,8 → 2346,7
align 4
buf_curs: ;¡ãä¥à á ªãàá®à ¬¨
.data: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left
dw 0 ;+6 top
dw 0,0 ;+4 left,top
dd 32 ;+8 w
dd 32*cursors_count ;+12 h
dd 0 ;+16 color
2380,8 → 2355,7
align 4
buf_curs_8: ;¡ãä¥à á ªãàá®à ¬¨
.data: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left
dw 0 ;+6 top
dw 0,0 ;+4 left,top
dd 32 ;+8 w
dd 32*cursors_count ;+12 h
dd 0 ;+16 color
2618,13 → 2592,22
 
align 16
i_end:
image_data_toolbar dd 0
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
icon_toolbar dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
mouse_dd dd 0
last_time dd 0
sc system_colors
procinfo process_information
run_file_70 FileInfoBlock
open_file_lif:
rb 2*4096 ;®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢
.end:
rb 1024
stacktop:
sys_path rb 1024
file_name:
rb 1024 ;4096
library_path rb 1024
file_name rb 2048 ;4096
plugin_path rb 4096
openfile_path rb 4096
filename_area rb 256
/programs/other/ha/HACONFIG.ASM
44,8 → 44,9
include '../../macros.inc'
include '../../proc32.inc'
include '../../dll.inc'
include '../../KOSfuncs.inc'
include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;êîìïîíåíòû checkBox è editBox
include '../../develop/libraries/box_lib/load_lib.mac' ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê
include '../../load_lib.mac' ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê
@use_library
 
KMENUITEM_NORMAL equ 0
1431,13 → 1432,6
valueModeMenu2 db '०¨¬ £®àï祩 ª« ¢¨è¨ ',0
valueModeMenu3 db '०¨¬ ¦¥áâ  ¯® ª« ¢¨è¥  ªâ¨¢ æ¨¨',0
 
head_f_i:
head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
 
hkCaption: db 'Š« ¢¨è :',0
;hkHint: db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0
radiusCaption: db ' ¤¨ãá:',0
1468,13 → 1462,6
valueModeMenu2 db 'hot key mode ',0
valueModeMenu3 db 'activation key gesture mode ',0
 
head_f_i:
head_f_l db 'System error',0
err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0
err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0
err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0
err_message_import1 db 'Error importing library ',39,'kmenu',39,0
 
hkCaption: db 'Key:',0
;hkHint: db 'press any key',0
radiusCaption: db 'Radius:',0
1717,16 → 1704,9
.y dw 200
 
 
align 4
proclib_import: ;îïèñàíèå ýêñïîðòèðóåìûõ ôóíêöèé
OpenDialog_Init dd aOpenDialog_Init
OpenDialog_Start dd aOpenDialog_Start
dd 0,0
aOpenDialog_Init db 'OpenDialog_init',0
aOpenDialog_Start db 'OpenDialog_start',0
system_dir0 db '/sys/lib/'
lib0_name db 'proc_lib.obj',0
system_dir1 db '/sys/lib/'
lib1_name db 'kmenu.obj',0
 
symbolDownArrow db 25,0
1733,8 → 1713,8
 
;library structures
l_libs_start:
lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i
lib1 l_libs lib1_name, sys_path, file_name, system_dir0, err_message_found_lib1, head_f_l, import_libkmenu,err_message_import1,head_f_i
lib0 l_libs lib0_name, file_name, system_dir0, import_proclib
lib1 l_libs lib1_name, file_name, system_dir1, import_libkmenu
load_lib_end:
 
 
1749,6 → 1729,14
editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax
 
align 4
import_proclib:
OpenDialog_Init dd aOpenDialog_Init
OpenDialog_Start dd aOpenDialog_Start
dd 0,0
aOpenDialog_Init db 'OpenDialog_init',0
aOpenDialog_Start db 'OpenDialog_start',0
 
align 4
import_libkmenu:
kmenu_init dd akmenu_init
kmainmenu_draw dd akmainmenu_draw