string
This commit is contained in:
parent
8c6b19fdd3
commit
db552a4dca
2 changed files with 34 additions and 14 deletions
31
04b/in03
31
04b/in03
|
@ -140,6 +140,13 @@ call :string=
|
|||
D=A
|
||||
?D!0:handle_byte
|
||||
|
||||
I=:line
|
||||
J=:"string"
|
||||
C=x20
|
||||
call :string=
|
||||
D=A
|
||||
?D!0:handle_string
|
||||
|
||||
; set delimiter to newline
|
||||
C=xa
|
||||
|
||||
|
@ -227,6 +234,27 @@ align
|
|||
:byte
|
||||
reserve d1
|
||||
|
||||
:handle_string
|
||||
I=:line
|
||||
; 7 = length of "string "
|
||||
I+=d7
|
||||
J=I
|
||||
; find end of string
|
||||
:string_loop
|
||||
C=1J
|
||||
D=xa
|
||||
?C=D:string_loop_end
|
||||
J+=d1
|
||||
!:string_loop
|
||||
:string_loop_end
|
||||
; get length of string
|
||||
D=J
|
||||
D-=I
|
||||
; output fd
|
||||
J=d4
|
||||
syscall x1
|
||||
!:read_line
|
||||
|
||||
:handle_call
|
||||
J=I
|
||||
; just use the rvalue function call code
|
||||
|
@ -1586,6 +1614,9 @@ align
|
|||
:"byte"
|
||||
str byte
|
||||
x20
|
||||
:"string"
|
||||
str string
|
||||
x20
|
||||
:"function"
|
||||
str function
|
||||
xa
|
||||
|
|
17
04b/in04b
17
04b/in04b
|
@ -43,26 +43,15 @@
|
|||
; <term> < <term> (left shift)
|
||||
; <term> > <term> (unsigned right shift)
|
||||
|
||||
|
||||
syscall(1, 1, .str_hw, 14)
|
||||
syscall(0x3c, 42)
|
||||
|
||||
:str_hw
|
||||
byte 'H
|
||||
byte 'e
|
||||
byte 'l
|
||||
byte 'l
|
||||
byte 'o
|
||||
byte ',
|
||||
byte 32
|
||||
byte 'w
|
||||
byte 'o
|
||||
byte 'r
|
||||
byte 'l
|
||||
byte 'd
|
||||
byte '!
|
||||
string Hello, world!
|
||||
byte 10
|
||||
|
||||
|
||||
|
||||
:syscall
|
||||
function
|
||||
; I've done some testing, and this should be okay even if
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue