/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 ) |