Skip to content

Instantly share code, notes, and snippets.

View djg's full-sized avatar
💭
I may be slow to respond.

Dan Glastonbury djg

💭
I may be slow to respond.
View GitHub Profile
template <class CODE>
class A
{
protected:
CODE code;
// This is wrong, it needs to me template <class EVENT, class CODE> friend EVENT& createEvent(...)
template <class EVENT>
friend EVENT& createEvent(CODE code, bool down, bool repeat);
};
@djg
djg / gist:1541938
Created December 30, 2011 23:05
Please Kill Me
>graphics.lib(material.obj) : error LNK2019: unresolved external symbol "public: __thiscall boost::archive::basic_binary_oprimitive<class boost::archive::binary_oarchive,class std::basic_ostream<char,struct std::char_traits<char> > >::~basic_binary_oprimitive<class boost::archive::binary_oarchive,class std::basic_ostream<char,struct std::char_traits<char> > >(void)" (??1?$basic_binary_oprimitive@Vbinary_oarchive@archive@boost@@V?$basic_ostream@DU?$char_traits@D@std@@@std@@@archive@boost@@QAE@XZ) referenced in function "public: virtual __thiscall boost::archive::binary_oarchive_impl<class boost::archive::binary_oarchive>::~binary_oarchive_impl<class boost::archive::binary_oarchive>(void)" (??1?$binary_oarchive_impl@Vbinary_oarchive@archive@boost@@@archive@boost@@UAE@XZ)
1>graphics.lib(globallighting.obj) : error LNK2001: unresolved external symbol "public: __thiscall boost::archive::basic_binary_oprimitive<class boost::archive::binary_oarchive,class std::basic_ostream<char,struct std::char_traits<char> > >::~b
@djg
djg / qq-backup-cl.bat
Created October 1, 2012 23:09
Perforce Backup
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET CL=%1
IF "_%CL%_"=="__" SET CL=default
SET "r=%__CD__%"
FOR /F "tokens=1,5,6 delims=# " %%a IN ('p4 opened -c %CL%') DO (
FOR /F "tokens=3" %%j IN ('p4 where %%a') DO (
SET p=%%j
7z u -tzip %%b%%c !p:%r%=! > nul
@ECHO OFF
rem Recompile PS3 shaders from ps3.cg into shader.ps3 for all techniques.
SET CGC=c:\dev\cyclone\Main\Target\win32\runtime\sce-cgc.exe
SET CGNVTOCGB=c:\dev\cyclone\Main\Target\win32\runtime\cgnv2cgbLevelC.exe
SET CONCAT=c:\dev\cyclone\Main\Target\win32\runtime\CompilePS3Shaders_release
attrib -r shader.ps3
DEL /Q *.fp *.fpo *.vp *.vpo shader.ps3
IF EXIST ps3.techniques (
procedure putpixel(x,y:word;color:byte); assembler;
asm
mov es,sega000
db 66h; xor ax,ax
db 66h; xor bx,bx
mov ax,x
mov bx,y
mov cl,color
db 67h,66h,8dh,1ch,9bh ;{lea ebx,[ebx+ebx*4]}
db 66h; shl bx,6
@djg
djg / getchar.asm
Last active December 28, 2015 19:59
I was going for less bytes, hence the push/pop/push shenanigans. There must be an easier way to do this. Why does BSD require the syscall on the top of the stack *and* in EAX?
getchar: ; read a byte from stdin
push 0
mov eax, esp
push 1
push eax
push STDIN_FILENO
push SYS_READ
pop eax
push eax
int 80h
; ryg's version
getchar: ;read a byte from stdin
xor eax, eax
push eax
mov ecx, esp
push eax
push ecx
push eax
push eax
mov al, SYS_READ
@djg
djg / gist:7556865
Created November 20, 2013 02:51
Current byte count == 24
# getchar: # read a byte from stdin
6a 00 # push 0
89 e0 # mov eax, esp
6a 01 # push 1
50 # push eax
6a 00 # push STDIN_FILENO
6a 03 # push SYS_READ
58 # pop eax
50 # push eax
cd 80 # int 80h
@djg
djg / gist:7556935
Created November 20, 2013 02:58
ryg's version: byte count == 22
# ryg's version
# getchar:
31 C0 # xor eax, eax
50 # push eax
89 E1 # mov ecx, esp
50 # push eax
51 # push ecx
50 # push eax
50 # push eax
B0 03 # mov al, 3
@djg
djg / gist:7611808
Created November 23, 2013 07:13
Forthy stack operations.
drop:
pop %ebx
pop %eax
jmp *%ebx
swap:
pop %ebx
pop %eax
pop %ecx
push %eax