flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
l4m2 07 Jan 2017, 05:08
Code: Dim v&() Const LAST_CHAR& = &H80000000 Const NEED_GOON& = &H00000000 Const ERROR& = &H7FFFFFFF Sub main() Dim i&, s() As Byte, c$, j&, p&, k& 'Init ReDim v(255) For i = 0 To 255 v(i) = ERROR Next 'Main For i = 0 To 65535 c = ChrB(i And 255) & ChrB(i \ 256) s = StrConv(c, vbFromUnicode) If StrConv(s, vbUnicode) = c Then ' Create p = 0 For j = 0 To UBound(s) - 1 ' Page If v(p Or s(j)) = ERROR Then v(p Or s(j)) = NEED_GOON Or (UBound(v) + 1) ReDim Preserve v(UBound(v) + 256) For k = UBound(v) - 255 To UBound(v) v(k) = ERROR Next End If p = v(p Or s(j)) Xor NEED_GOON Next v(p Or s(UBound(s))) = LAST_CHAR Or i End If Next Open App.Path & "\data.dat" For Binary As #1 Put #1, , v Close #1 End Sub |
|||
![]() |
|
l4m2 07 Jan 2017, 08:27
Code: virtual at 0 charcode::file 'data.dat' end virtual macro du [str] { local s, w, n, p, a if str eqtype '' virtual at 1 w::db str n = $ end virtual p = 0 repeat n-1 load a byte from w:% displayint a load p dword from charcode:4*(p+a) displayint p if (p and $8000'0000)<>0 dw p and $ffff p = 0 end if end repeat if p <> 0 'Error' end if else du str end if } |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.