Files
kolibrios/programs/develop/libraries/libunicode/examples/console.asm
Swarnadeep Paul 92a0deabad Convert Unicode procedures to stdcall convention.
1. Use cinvoke macro instead of invoke for con_printf
2. Convert `end:` to `P_END:`, As the previous one was a FASM keyword
3. Upgrade all functions in libunicode.asm to use stdcall convention
2026-03-20 20:42:37 +05:30

81 lines
2.4 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
format binary as ""
use32
org 0x0
db 'MENUET01'
dd 0x01, START, I_END
dd P_END ; Memory
dd P_END ; Stack pointer
dd 0x0
dd 0x0
include '../../../../proc32.inc'
include '../../../../macros.inc'
include '../../../../dll.inc'
START:
stdcall dll.Load, import_table
test eax, eax
jnz EXIT ; If not 0, jump to exit
invoke con_init, -1, -1, -1, -1, window_title
invoke con_write_asciiz, greet_text
;------------ testing the [test_combo] --------------
invoke count_utf8_codepoints, test_combo
cinvoke con_printf, fmt_codepoints, eax
invoke count_utf8_graphemes, test_combo
cinvoke con_printf, fmt_graphemes, eax
;------------ testing ends for [test_combo] --------------
;------------ testing the [unitxt] --------------
invoke count_utf8_codepoints, unitxt
cinvoke con_printf, fmt_codepoints, eax
invoke count_utf8_graphemes, unitxt
cinvoke con_printf, fmt_graphemes, eax
;------------ testing ends for [unitxt] --------------
;------------ testing the [test_tech] --------------
invoke count_utf8_codepoints, test_tech
cinvoke con_printf, fmt_codepoints, eax
invoke count_utf8_graphemes, test_tech
cinvoke con_printf, fmt_graphemes, eax
;------------ testing ends for [test_tech] --------------
invoke con_exit, 0
EXIT:
mcall -1 ; Exit cleanly
; DATA SECTION
window_title db 'Debug Console', 0
greet_text db 'Console loaded successfully!', 10, 0
fmt_codepoints db "Total Codepoints: %d", 10, 0
fmt_graphemes db "Total Graphemes: %d", 10, 0
unitxt db 'AП👨👩👦qwerty', 0
test_tech db 'c', 'a', 'f', 'e', 0xCC, 0x81, 0
test_combo db 'A', 0xD0, 0x9F, 0xF0, 0x9F, 0x91, 0xA9, 0xE2, 0x80, 0x8D, 0xF0, 0x9F, 0x92, 0xBB, 'e', 0xCC, 0x81, 0
align 4
import_table:
library \
console, 'console.obj', \
unicode, '/cd1/1/libunicode.obj' ; TODO: Change the destination to its default.
import console,\
con_init, 'con_init', con_write_asciiz, 'con_write_asciiz', \
con_exit, 'con_exit', con_printf, 'con_printf'
import unicode, \
count_utf8_codepoints, 'utf8.count_codepoints', \
count_utf8_graphemes, 'utf8.count_graphemes'
I_END:
mem rb 0x1000 ; 4096 bytes
P_END: