ZealOS/src/Doc/HelloWorld.DD
TomAwezome db32fdb367 Reformatted entire codebase.
Reformatted DolDoc files, adjusted sprites in documentation to reflect naming changes, corrected keybinding labels in AutoComplete window, fixed formatting error in Tips.DD.

Added DVD Boot AHCI prototyping into Kernel, displays detected AHCI configuration and halts mid-boot.

Small modifications to standard font, slight increase to mouse X and Y speed.
2020-12-23 18:27:18 -05:00

99 lines
1.7 KiB
Text
Executable file

$HL,1$//Press F5 in the editor to compile and run.
--------Hello.CC---------
"Hello World\n";
--------Hello.CC---------
U0 Main()
{
"Hello World\n";
}
Main;
--------Hello.CC---------
U0 MyPrint(U8 *st)
{
"%s", st;
}
MyPrint("Hello World\n");
--------Hello.CC---------
U0 MyPrint2(U8 *st1, U8 *st2) //Any number of args.
{
"%s %s\n", st1, st2; //Any number of args.
}
MyPrint2("Hello", "World");
--------Hello.CC---------
U0 MyPrint(U8 *st)
{
"" st; //Empty with no comma means first is format str.
}
MyPrint("Hello World\n");
--------Hello.CC---------
asm {
MESSAGE: DU8 "Hello World\n", 0;
//The convention is underscore on C callable.
//Two colons means exported symbol.
_HELLO_WORLD::
//You can only clobber RAX,RBX,RCX,RDX
PUSH RSI
MOV RSI, MESSAGE
CALL PUT_STR
POP RSI
RET
}
Call(_HELLO_WORLD);
--------Hello.CC---------
asm {
_HELLO_WORLD::
//You can only clobber RAX,RBX,RCX,RDX
MOV RAX, 'Hello '
CALL PUT_CHARS //Up to 8 chars packed into one 64-bit int.
MOV RAX, 'World\n'
CALL PUT_CHARS
RET
}
Call(_HELLO_WORLD);
--------Hello.CC---------
asm {
_MY_PRINT::
//You can only clobber RAX,RBX,RCX,RDX
PUSH RBP
MOV RBP, RSP
PUSH RSI
MOV RSI, U64 SF_ARG1[RBP]
CALL PUT_STR
POP RSI
POP RBP
RET1 8 //Callee pops the stack to clear args.
}
_extern _MY_PRINT U0 MyPrint(U8 *st);
MyPrint("Hello World\n");
--------Hello.CC---------
asm {
_MY_PRINT::
//You can only clobber RAX,RBX,RCX,RDX
PUSH RBP
MOV RBP, RSP
PUSH U64 SF_ARG1[RBP]
CALL &PutS //Callee pops the stack to clear args.
POP RBP
RET1 8
}
_extern _MY_PRINT U0 MyPrint(U8 *st);
MyPrint("Hello World\n");
$HL,0$