+ WORD p_process_args_var,'PROCESS-ARGS-VAR',dovariable
+ ;; ( -- a )
+ ;; Two cells for iterating and load the main args
+p_process_args_ptr: dq 0
+p_process_args_end: dq 0
+
+ WORD p_process_args,'PROCESS-ARGS',fasm
+ pushr rsi
+ mov rax,qword [p_args_DFA] ; args*
+ mov rbx,qword [rax] ; count
+ shl rbx,3
+ add rax,8
+ add rbx,rax ; end
+ mov qword [p_process_args_end],rbx
+ add rax,8
+ mov qword [p_process_args_ptr],rax
+p_process_args_loop:
+ mov rax,qword [p_process_args_ptr]
+ cmp rax,qword [p_process_args_end]
+ jge p_process_args_done
+ add qword [p_process_args_ptr],8
+ mov rax,qword [rax]
+ mov bl,[rax]
+ cmp bl,'-'
+ je p_process_args_loop
+ push rax
+ push rax
+ DOFORTH p_strlen, p_load_file, p_drop
+ jmp p_process_args_loop
+p_process_args_done:
+ popr rsi
+ next
+