Initall commit

This commit is contained in:
2018-03-10 23:33:07 +03:00
commit 9843085a34
166 changed files with 83186 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
; UTF-8
macro du [arg]
{ local current,..input,char
if arg eqtype ''
virtual at 0
..input::
db arg
count = $
end virtual
current = 0
while current < count
load char byte from ..input:current
wide = char
current = current + 1
if char > 0C0h
if char < 0E0h
wide = char and 11111b
load char byte from ..input:current
wide = wide shl 6 + (char and 111111b)
current = current + 1
else if char < 0F0h
wide = char and 1111b
load char byte from ..input:current
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+1
wide = wide shl 6 + (char and 111111b)
current = current + 2
else if char < 0F8h
wide = char and 111b
load char byte from ..input:current
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+1
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+2
wide = wide shl 6 + (char and 111111b)
current = current + 3
else if char < 0FCh
wide = char and 11b
load char byte from ..input:current
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+1
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+2
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+3
wide = wide shl 6 + (char and 111111b)
current = current + 4
else
wide = char and 1
load char byte from ..input:current
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+1
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+2
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+3
wide = wide shl 6 + (char and 111111b)
load char byte from ..input:current+4
wide = wide shl 6 + (char and 111111b)
current = current + 5
end if
end if
if wide < 10000h
dw wide
else
dw 0D7C0h + wide shr 10,0DC00h or (wide and 3FFh)
end if
end while
else
dw arg
end if }
struc du [args]
{ common label . word
du args }