{ IFFF LANGUAGE.TRE 0008

; :
. TEST "first test line\x20
. TST2 "second test line\x20
. TNUM x301002
. TNU2 x4088
$ xAA x55
@ TST1 x301002 x4088  x302002 x4088
@ TST2 .TNUM  x4088  x302002 x4088
@ TST3 .TNUM .TNU2    x302002 x4088
. TST4 "primary string
; / continuation 1
; / continuation 2
; / final

[ .TEST ;   

;  - ..   ,   :
.TEST ;   error

;  -     JUMP':
{ JUMP 0 .TST2
} JUMP

;  -   :
{ ADDR .TEST .TST2
} ADDR

? .TST4
; #ABRT ddddddddd

@ TEST .TEST .TST2 "third test line!

;  "  "
@ RUST " abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*(),`'-=_+.?/<>|\g\\\\u
; { IFFF core_exe 0002
;   [ 4 "RUST
;   = x000002
;   _ " abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*(),`'-=_+.?/<>|\g\\\\u
;   ! 4
; } IFFF core_exe 0002

;    -:
;{ TABL KEYT
;  = x301002 x4088  x302002 x4088
;} TABL

;    :
@ KEYT x301002 x4088  x302002 x4088
;  
; { IFFF core_exe 0002
;   [ 4 "KEYT
;   = x020003
;   = x301002 x4088  x302002 x4088
;   ! 4
; } IFFF core_exe 0002

; 
. STRI "test

;  (   xlat*.iff;   "v<NN>" ):
; cmp 61, jl
. TUPR xDD
; cmp 41, jl
. TLWR xDD

? .TUPR .TLWR

; 
; . STRI .TLWR .TLWR "test"
. NUMB .TUPR
; . NUM2 .NUMB .TUPR
; . MIX1 .TLWR .TUPR
; . MIX2 .TUPR .TLWR

~ STRI NUMB
; ~ TUPR TLWR

;  
; ? x12345678 .TUPR .TLWR
; ? .STRI
; ~ STRI
; ? .STRI

;  4  <arg1> (@, .)  <arg2> (@, .,   xlat_addr_tabl (xlat.c))
{ ADDR @KEYT @RUST
  = x301000 x521E5  x301000 x5ADFE  x302000 x521E5  x302000 x5ADFE
} ADDR
;  
; { IFFF core_exe 0003
;   = 0000 'KEYT' 'RUST'
;   [ 4 "KEYT
;   [ 4 "RUST
;   = x301000 x521E5  x301000 x5ADFE  x302000 x521E5  x302000 x5ADFE
;   ! 4
; } IFFF core_exe 0002


;  4  <arg1>    ,   <arg1>,  <arg2>
{ JUMP .TUPR @RUPR
  = x301000 xA18A6  x302000 xA1936
} JUMP

{ JUMP .TLWR @RLWR
  = x301000 xA1646  x302000 xA16D6
} JUMP

{ JUMP @RUST "test of direct replace to string
  = x301000 x521E5  x301000 x5ADFE  x302000 x521E5  x302000 x5ADFE
} JUMP

} IFFF LANGUAGE.TRE 0008
