TempleOSCD_150216.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:46:15 +02:00
1 parent 64f679eeb9
commit 401601816c
531 files changed
+23341 -22071

No files matched your search

+1 -1
View File
@@ -17,7 +17,7 @@ _BEEPS::
//You can always clobber RAX,RBX,RCX,RDX,R8,R9. The compiler expects that.
PUSH RBP
MOV RBP,RSP
MOV RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/Adam1a.HPP,SF_ARG1"$
MOV RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/KernelA.HPP,SF_ARG1"$
@@05: PUSH RCX
//U0 $LK,"Beep",A="MN:Beep"$(I64 freq=500,Bool busy=FALSE)
+2 -2
View File
@@ -17,13 +17,13 @@ USE64 //Defaults to 64, but this is a good habit.
JIFFIES_MSG: DU8 "Jiffies:",0;
//See $LK,"::/Kernel/Str1a.CPP",A="FL:::/Kernel/Str1a.CPP,1"$ and $LK,"::/Kernel/Utils1a.CPP"$.
//See $LK,"::/Kernel/StrA.CPP",A="FL:::/Kernel/StrA.CPP,1"$ and $LK,"::/Kernel/KUtils.CPP"$.
_BEEPS2::
//You can clobber RAX,RBX,RCX,RDX,R8,R9. The compiler expects that.
PUSH RBP
MOV RBP,RSP
MOV RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/Adam1a.HPP,SF_ARG1"$
MOV RCX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/KernelA.HPP,SF_ARG1"$
PUSH U64 [&cnts.jiffies]
+1 -1
View File
@@ -5,7 +5,7 @@ error, like when repeatedly #including
it from the cmd line.
These are many useful kernel
routines $LK,"::/Kernel/Str1a.CPP",A="FF:::/Kernel/Str1a.CPP,PUT_CHARS"$
routines $LK,"::/Kernel/StrA.CPP",A="FF:::/Kernel/StrA.CPP,PUT_CHARS"$
intended to be called from
asm. Generally, they preserve
regs.
+16 -18
View File
@@ -51,29 +51,27 @@ Call(_BUZZ_FIZZ);
_BUZZ_FIZZ+0x0001 488BEC MOV U64 RBP,U64 RSP
_BUZZ_FIZZ+0x0004 56 PUSH U64 RSI
_BUZZ_FIZZ+0x0005 57 PUSH U64 RDI
_BUZZ_FIZZ+0x0006 BE06000000 MOV U64 RSI,U32 00000006
_BUZZ_FIZZ+0x000B BF07000000 MOV U64 RDI,U32 00000007
_BUZZ_FIZZ+0x0010 B801000000 MOV U64 RAX,U32 00000001
_BUZZ_FIZZ+0x0015 E88F7D2480 CALL I32 PUT_HEX_U64+0x0000
_BUZZ_FIZZ+0x0006 BE06000000 MOV U32 ESI,U32 00000006
_BUZZ_FIZZ+0x000B BF07000000 MOV U32 EDI,U32 00000007
_BUZZ_FIZZ+0x0010 B801000000 MOV U32 EAX,U32 00000001
_BUZZ_FIZZ+0x0015 E8C51F2BC0 CALL I32 PUT_HEX_U64+0x0000
_BUZZ_FIZZ+0x001A 50 PUSH U64 RAX
_BUZZ_FIZZ+0x001B B820000000 MOV U64 RAX,U32 00000020
_BUZZ_FIZZ+0x0020 E8E87D2480 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x001B B820000000 MOV U32 EAX,U32 00000020
_BUZZ_FIZZ+0x0020 E81E202BC0 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x0025 48FFCE DEC U64 RSI
_BUZZ_FIZZ+0x0028 7514 JNZ I8 _BUZZ_FIZZ+0x003E
_BUZZ_FIZZ+0x002A 48B846495A5A MOV U64 RAX,U32 5A5A4946
_BUZZ_FIZZ+0x0030 2000 AND U8 [RAX],U8 AL
_BUZZ_FIZZ+0x0032 0000 ADD U8 [RAX],U8 AL
_BUZZ_FIZZ+0x0034 E8D47D2480 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x0039 BE06000000 MOV U64 RSI,U32 00000006
_BUZZ_FIZZ+0x002A 48B846495A5A MOV U64 RAX,I64 000000205A5A4946
_BUZZ_FIZZ+0x0030 20000000
_BUZZ_FIZZ+0x0034 E80A202BC0 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x0039 BE06000000 MOV U32 ESI,U32 00000006
_BUZZ_FIZZ+0x003E 48FFCF DEC U64 RDI
_BUZZ_FIZZ+0x0041 7514 JNZ I8 _BUZZ_FIZZ+0x0057
_BUZZ_FIZZ+0x0043 48B842555A5A MOV U64 RAX,U32 5A5A5542
_BUZZ_FIZZ+0x0049 2000 AND U8 [RAX],U8 AL
_BUZZ_FIZZ+0x004B 0000 ADD U8 [RAX],U8 AL
_BUZZ_FIZZ+0x004D E8BB7D2480 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x0052 BF07000000 MOV U64 RDI,U32 00000007
_BUZZ_FIZZ+0x0057 B80A000000 MOV U64 RAX,U32 0000000A
_BUZZ_FIZZ+0x005C E8AC7D2480 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x0043 48B842555A5A MOV U64 RAX,I64 000000205A5A5542
_BUZZ_FIZZ+0x0049 20000000
_BUZZ_FIZZ+0x004D E8F11F2BC0 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x0052 BF07000000 MOV U32 EDI,U32 00000007
_BUZZ_FIZZ+0x0057 B80A000000 MOV U32 EAX,U32 0000000A
_BUZZ_FIZZ+0x005C E8E21F2BC0 CALL I32 PUT_CHARS+0x0000
_BUZZ_FIZZ+0x0061 58 POP U64 RAX
_BUZZ_FIZZ+0x0062 48FFC0 INC U64 RAX
_BUZZ_FIZZ+0x0065 4883F864 CMP U64 RAX,I8 64
+2 -2
View File
@@ -26,7 +26,7 @@ MUL_BY_HAND_U8_U8_TO_U16: //This is only for fun.
_MUL_BY_HAND_U8_U8_TO_U16:: //C callable
PUSH RBP
MOV RBP,RSP
MOV AL,U8 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/Adam1a.HPP,SF_ARG1"$
MOV AL,U8 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/KernelA.HPP,SF_ARG1"$
MOV BL,U8 SF_ARG2[RBP]
CALL MUL_BY_HAND_U8_U8_TO_U16
MOVZX RAX,AX
@@ -38,7 +38,7 @@ _MUL_U64_U64_TO_U128::
PUSH RBP
MOV RBP,RSP
MOV RBX,U64 SF_ARG3[RBP]
MOV RAX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/Adam1a.HPP,SF_ARG1"$
MOV RAX,U64 SF_ARG1[RBP] //$LK,"SF_ARG1",A="FF:::/Kernel/KernelA.HPP,SF_ARG1"$
MUL U64 SF_ARG2[RBP] //Result RDX:RAX 128bit
MOV U64 [RBX],RAX
MOV U64 8[RBX],RDX
+1 -1
View File
@@ -6,7 +6,7 @@ PUT_DEC_U64::
MOV RBP,RSP
SUB RSP,24 //24 char buffer on stack
//$LK,"Save regs",A="FF:::/Kernel/Adam1a.HPP,PUSH_C_REGS"$ which C code is free to clobber. We don't have to for C callers,
//$LK,"Save regs",A="FF:::/Kernel/KernelA.HPP,PUSH_C_REGS"$ which C code is free to clobber. We don't have to for C callers,
//but this function will be nice for ASM callers if it saves all regs.
PUSH_C_REGS