| ... | ... |
@@ -371,10 +371,13 @@ include projects/library/file-read-chunks.tal |
| 371 | 371 |
#57 SUB |
| 372 | 372 |
JMP2r |
| 373 | 373 |
|
| 374 |
-@asma-parse-hex-string ( -- value* 06 if valid hex and length > 2 |
|
| 374 |
+@asma-parse-hex-string ( -- value* 06 if valid hex and 2 < length <= 4 |
|
| 375 | 375 |
OR value* 03 if valid hex and length <= 2 |
| 376 | 376 |
OR 00 otherwise ) |
| 377 |
- ;asma/token LDA2 DUP2 ,strlen JSR #0002 GTH2 ROT ROT |
|
| 377 |
+ ;asma/token LDA2 DUP2 ,strlen JSR ( token* length^ ) |
|
| 378 |
+ DUP2 #0004 GTH2 ,&fail2 JCN |
|
| 379 |
+ &resume |
|
| 380 |
+ #0002 GTH2 ROT ROT |
|
| 378 | 381 |
LIT2r 0000 |
| 379 | 382 |
|
| 380 | 383 |
&loop |
| ... | ... |
@@ -393,21 +396,24 @@ include projects/library/file-read-chunks.tal |
| 393 | 396 |
,&loop JMP |
| 394 | 397 |
|
| 395 | 398 |
&fail |
| 396 |
- POP POP2 POP2r |
|
| 397 |
- DUP EOR |
|
| 399 |
+ POP2r |
|
| 400 |
+ &fail2 |
|
| 401 |
+ POP2 POP2 |
|
| 402 |
+ #00 |
|
| 398 | 403 |
JMP2r |
| 399 | 404 |
|
| 400 | 405 |
%asma-SHORT-FLAG { #20 }
|
| 401 | 406 |
%asma-RETURN-FLAG { #40 }
|
| 402 | 407 |
%asma-KEEP-FLAG { #80 }
|
| 403 | 408 |
|
| 409 |
+include projects/library/string.tal |
|
| 410 |
+ |
|
| 404 | 411 |
@asma-traverse-tree ( incoming-ptr* -- binary-ptr* 00 if key found |
| 405 | 412 |
OR node-incoming-ptr* 01 if key not found ) |
| 406 | 413 |
;asma/token LDA2 |
| 407 | 414 |
( fall through to traverse-tree ) |
| 408 | 415 |
|
| 409 | 416 |
include projects/library/binary-tree.tal |
| 410 |
-include projects/library/string.tal |
|
| 411 | 417 |
|
| 412 | 418 |
@asma-parse-opcode ( -- byte 00 if valid opcode |
| 413 | 419 |
OR 01 otherwise ) |