diff --git a/fs/dos.com b/fs/dos.com
deleted file mode 100644
index f5e5f7e..0000000
Binary files a/fs/dos.com and /dev/null differ
diff --git a/ka/crt/fmt/doprnt.k b/ka/crt/fmt/doprnt.k
index 64e7b93..9a15d2c 100644
--- a/ka/crt/fmt/doprnt.k
+++ b/ka/crt/fmt/doprnt.k
@@ -141,7 +141,7 @@ doprnt:
.bad_modifier:
; print "%?" to clearly indicate that something is wrong
- mov ax0, '$'
+ mov ax0, '%'
call .doput
mov ax0, '?'
@@ -195,7 +195,7 @@ doprnt:
; been printed/written if 'n' were big enough
test nx0, nx0
ret.z
-
+
; if n>0, decrement n and print
dec nx0
call nx3
diff --git a/ka/dos.k b/ka/dos.k
index 0d9f860..da0b667 100644
--- a/ka/dos.k
+++ b/ka/dos.k
@@ -12,7 +12,7 @@ start:
call dir_test
- hlt
+ ;hlt
; Wait for and print input indefinitely
.1:
diff --git a/vm/la/karch.lang b/vm/la/karch.lang
index b674fe4..0525227 100644
--- a/vm/la/karch.lang
+++ b/vm/la/karch.lang
@@ -19,11 +19,11 @@
- ^[A-Za-z_][A-Za-z_0-9.]*\:
+ ^([ ]*[A-Za-z_])[A-Za-z_0-9.]*\:
- .[A-Za-z_0-9.]*\:
+ [ ]*.[A-Za-z_0-9.]*\:
@@ -53,12 +53,22 @@
case-sensitive="FALSE"
match-empty-string-at-beginning = "TRUE"
match-empty-string-at-end = "TRUE">
- %%?[a-z][a-z0-9.]+
- (inv|flg)
- r[isdb]p
- r[a-fs][xi]
+
+
+ (inv|flg|[re]?pc)
[a-z]x[0-9]+
- (sa|cr)[0-9]+
+ [re][a-z]x
+
+
+ [c-gs]s
+ [re]?flags
+ ([gil]d)?tr
+ [re]?[ds]il?
+ [re]?[sbi]pl?
+ [x-z]mm[0-9]+
+ [re]?[a-d][xhl]
+ r[0-9]+[bwdlq]?
+ (s[at]|[dc]r)[0-9]+