#NO_APP
gcc_compiled.:
.data
	.even
_kludge:
	.long 0
.text
	.even
.globl _deref_shell_p
_deref_shell_p:
	link a6,#0
	movel 1270:w,_kludge
	unlk a6
	rts
	.even
.globl _gulam_magic
_gulam_magic:
	link a6,#0
	tstl _kludge
	jne L3
	pea _deref_shell_p
	pea 38:w
	jbsr _trap_14_wl
L3:
	tstl _kludge
	jne L4
	clrl d0
	jra L2
L4:
	movel _kludge,a0
	movel a0@(-10),d0
L2:
	unlk a6
	rts
	.even
.globl _cli_entry_vector
_cli_entry_vector:
	link a6,#0
	tstl _kludge
	jne L6
	pea _deref_shell_p
	pea 38:w
	jbsr _trap_14_wl
L6:
	movel _kludge,d0
	unlk a6
	rts
	.even
_call_gulam_by_hand:
	link a6,#0
#APP
	movel _gulam_command_string,sp@-
	movel _callgulam,a0
	jsr a0@
	movel d0,_gulam_result
#NO_APP
	unlk a6
	rts
LC0:
	.ascii "Saving context...\12\0"
LC1:
	.ascii "Restored context...\12\0"
	.even
.globl _exec_via_cli
_exec_via_cli:
	link a6,#0
	moveml #0x3f3c,sp@-
	jbsr _gulam_magic
	cmpl #4325685,d0
	jne L38
	jbsr _cli_entry_vector
	movel d0,_callgulam
	jeq L38
	movel a6@(8),_gulam_command_string
	pea LC0
	movel _stderr,sp@-
	jbsr _fprintf
	addqw #8,sp
#APP
	movel sp,d0
	movel d0,_current_stack_pointer
	movel __stktop,d1
	subl d0,d1
	movel d1,_stack_nbytes
#NO_APP
	lea _stack_nbytes,a2
	movel a2@,sp@-
	jbsr _malloc
	movel d0,_stack_buffer
	movel _current_stack_pointer,a1
	movel d0,a0
	movel a2@,d0
	addqw #4,sp
	jra L41
L43:
	moveb a1@+,a0@+
L41:
	subql #1,d0
	moveq #-1,d7
	cmpl d0,d7
	jlt L43
#APP
	moveml #0xFFFF,_regs
	clrl d0
	clrl d1
	clrl d2
	clrl d3
	clrl d4
	clrl d5
	clrl d6
	clrl d7
	movel d0,a0
	movel d0,a1
	movel d0,a2
	movel d0,a3
	movel d0,a4
	movel d0,a5
#NO_APP
	jbsr _call_gulam_by_hand
#APP
	moveml _regs,#0xFFFF
#NO_APP
	movel _stack_buffer,a1
	movel _current_stack_pointer,a0
	movel _stack_nbytes,d0
	jra L46
L48:
	moveb a1@+,a0@+
L46:
	subql #1,d0
	moveq #-1,d7
	cmpl d0,d7
	jlt L48
	movel _stack_buffer,sp@-
	jbsr _free
	addqw #4,sp
	pea LC1
	movel _stderr,sp@-
	jbsr _fprintf
	movel _gulam_result,d0
	jra L36
L38:
	movel #-65536,d0
L36:
	moveml a6@(-40),#0x3cfc
	unlk a6
	rts
	.even
_copy_until:
	link a6,#0
	moveml #0x38,sp@-
	movel a6@(8),a3
	movel a6@(12),a2
	movel a6@(16),a4
	tstb a2@
	jeq L52
L53:
	moveb a2@,d0
	extw d0
	extl d0
	movel d0,sp@-
	jbsr a4@
	addqw #4,sp
	tstl d0
	jne L52
	moveb a2@+,a3@+
	tstb a2@
	jne L53
L52:
	clrb a3@
	movel a2,d0
	moveml a6@(-12),#0x1c00
	unlk a6
	rts
	.even
_char_white_p:
	link a6,#0
	lea __ctype_,a0
	movel a6@(8),a1
	moveb a1@(a0:l),d0
	moveq #8,d1
	andl d1,d0
	unlk a6
	rts
	.even
_probe_file:
	link a6,#0
	clrl sp@-
	clrl sp@-
	movel a6@(8),sp@-
	pea 67:w
	jbsr _trap_1_wlww
	andw #31,d0
	seq d0
	moveq #1,d1
	andl d1,d0
	unlk a6
	rts
LC2:
	.ascii "\\\0"
	.even
_search_internal:
	link a6,#0
	moveml #0x2038,sp@-
	movel a6@(8),a4
	movel a6@(16),d2
	movel a4,sp@-
	lea _strlen,a2
	jbsr a2@
	addqw #4,sp
	tstl d0
	jle L58
	movel a4,sp@-
	jbsr a2@
	addqw #4,sp
	cmpb #92,a4@(-1,d0:l)
	jeq L58
	pea LC2
	movel a4,sp@-
	jbsr _strcat
	addqw #8,sp
L58:
	movel a4,sp@-
	jbsr _strlen
	lea a4@(0,d0:l),a3
	movel a6@(12),sp@-
	movel a4,sp@-
	jbsr _strcat
	addw #12,sp
L59:
	cmpb #46,a3@
	jeq L61
	cmpb #92,a3@
	jne L60
L61:
	addqw #1,a3
	jra L59
L60:
	tstl d2
	jeq L80
	pea 46:w
	movel a3,sp@-
	jbsr _index
	addqw #8,sp
	tstl d0
	jeq L81
L80:
	movel a4,sp@-
	jbsr _probe_file
	jra L57
L66:
	addqw #1,a3
L81:
	tstb a3@
	jne L66
	movel d2,a2
L82:
	cmpw #0,a2
	jeq L68
	tstb a2@
	jeq L68
	movel a3,a0
	jeq L71
L73:
	cmpb #44,a2@
	jeq L71
	moveb a2@+,a0@+
	tstb a2@
	jne L73
L71:
	clrb a0@
	cmpb #44,a2@
	jne L74
	addqw #1,a2
L74:
	movel a4,sp@-
	jbsr _probe_file
	addqw #4,sp
	tstl d0
	jeq L82
	moveq #1,d0
	jra L57
L68:
	clrl d0
L57:
	moveml a6@(-16),#0x1c04
	unlk a6
	rts
	.even
_search_directories:
	link a6,#0
	moveml #0x2030,sp@-
	movel a6@(12),a3
	movel a6@(16),d2
	movel a6@(8),a2
	cmpb #46,a3@
	jeq L84
	cmpb #92,a3@
	jeq L84
	cmpb #58,a3@(1)
	jeq L84
L98:
	cmpw #0,a2
	jeq L84
	tstb a2@
	jeq L84
	lea _complete_name,a0
	jeq L89
L91:
	cmpb #44,a2@
	jeq L89
	moveb a2@+,a0@+
	tstb a2@
	jne L91
L89:
	clrb a0@
	cmpb #44,a2@
	jne L92
	addqw #1,a2
L92:
	movel d2,sp@-
	movel a3,sp@-
	pea _complete_name
	jbsr _search_internal
	addw #12,sp
	tstl d0
	jeq L98
	movel #_complete_name,d0
	jra L83
L84:
	lea _complete_name,a2
	clrb a2@
	movel d2,sp@-
	movel a3,sp@-
	movel a2,sp@-
	jbsr _search_internal
	tstl d0
	jeq L95
	movel a2,d0
	jra L83
L95:
	clrl d0
L83:
	moveml a6@(-12),#0xc04
	unlk a6
	rts
LC3:
	.ascii ".ttp,.tos,.prg,.app\0"
LC4:
	.ascii "PATH\0"
	.even
_find_executable:
	link a6,#0
	movel a2,sp@-
	movel a6@(8),a2
	cmpb #58,a2@(1)
	jeq L100
	cmpb #46,a2@
	jeq L100
	cmpb #92,a2@
	jeq L100
	movel a2,sp@-
	jbsr _getenv
	addqw #4,sp
	tstl d0
	jne L99
L100:
	pea LC3
	movel a2,sp@-
	pea LC4
	jbsr _getenv
	addqw #4,sp
	movel d0,sp@-
	jbsr _search_directories
L99:
	movel a6@(-4),a2
	unlk a6
	rts
	.even
_my_env_nbytes:
	link a6,#0
	moveml #0x30,sp@-
	movel a6@(8),a2
	subl a3,a3
	cmpw #0,a2
	jeq L103
L105:
	tstl a2@
	jeq L103
	movel a2@+,sp@-
	jbsr _strlen
	movel d0,a0
	lea a0@(1,a3:l),a3
	addqw #4,sp
	cmpw #0,a2
	jne L105
L103:
	movel a3,d0
	moveml a6@(-8),#0xc00
	unlk a6
	rts
	.even
_clone_my_env:
	link a6,#0
	moveml #0x30,sp@-
	movel a6@(8),a2
	movel a6@(12),a3
	cmpw #0,a2
	jeq L109
L111:
	tstl a2@
	jeq L109
	movel a2@+,sp@-
	movel a3,sp@-
	jbsr _strcpy
	movel a3,sp@-
	jbsr _strlen
	lea a3@(1,d0:l),a3
	addw #12,sp
	cmpw #0,a2
	jne L111
L109:
	movel a3,d0
	moveml a6@(-8),#0xc00
	unlk a6
	rts
LC5:
	.ascii "ARGV=here\0"
	.even
_make_child_env:
	link a6,#-256
	moveml #0x3c3c,sp@-
	movel a6@(8),a5
	clrl d4
	clrl d3
	clrl d2
	lea __ctype_,a1
L134:
	tstb a5@(d2:l)
	jeq L115
	jeq L118
L119:
	moveb a5@(d2:l),d0
	extw d0
	btst #3,a1@(d0:w)
	jeq L118
	addql #1,d2
	tstb a5@(d2:l)
	jne L119
L118:
	tstb a5@(d2:l)
	jeq L115
	moveb a5@(d2:l),d1
	moveb d1,d0
	extw d0
	movew d0,a0
	moveq #-34,d0
	addl a0,d0
	moveq #28,d5
	cmpl d5,d0
	jhi L129
	asll #1,d0
LI133:
	movew pc@(L133-LI133-2:b,d0:l),d5
	jmp pc@(2,d5:w)
L133:
	.word L123-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L123-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L129-L133
	.word L128-L133
	.word L129-L133
	.word L128-L133
L123:
	addql #1,d2
	movel d4,d0
	asll #1,d0
	movew d2,a6@(-128,d0:l)
	cmpb a5@(d2:l),d1
	jeq L148
L126:
	addql #1,d2
	cmpb a5@(d2:l),d1
	jne L126
L148:
	movel d4,d0
	asll #1,d0
	lea a6@(0,d0:l),a0
	movew d2,d5
	addw #65535,d5
	movew d5,a0@(-256)
	addql #1,d2
	jra L150
L128:
	moveq #1,d3
	jra L114
L129:
	movel d4,d0
	asll #1,d0
	movew d2,a6@(-128,d0:l)
	tstb a5@(d2:l)
	jeq L131
L132:
	moveb a5@(d2:l),d0
	extw d0
	btst #3,a1@(d0:w)
	jne L131
	addql #1,d2
	tstb a5@(d2:l)
	jne L132
L131:
	movel d4,d0
	asll #1,d0
	lea a6@(0,d0:l),a0
	movew d2,a0@(-256)
L150:
	addql #1,d4
L114:
	tstl d3
	jeq L134
L115:
	movel _environ,sp@-
	jbsr _my_env_nbytes
	movel d0,_child_env_nbytes
	pea LC5
	jbsr _strlen
	movel _child_env_nbytes,d1
	addql #1,d1
	addl d0,d1
	movel d1,_child_env_nbytes
	clrl d3
	addqw #8,sp
	cmpl d3,d4
	jle L146
L138:
	movel _child_env_nbytes,d0
	addql #1,d0
	movel d3,d1
	asll #1,d1
	lea a6@(0,d1:l),a0
	movew a0@(-256),a1
	subw a0@(-128),a1
	addl a1,d0
	movel d0,_child_env_nbytes
	addql #1,d3
	cmpl d3,d4
	jgt L138
L146:
	movel _child_env_nbytes,d0
	addql #1,d0
	movel d0,_child_env_nbytes
	movel d0,sp@-
	jbsr _malloc
	movel d0,_child_env
	movel d0,sp@-
	movel _environ,sp@-
	jbsr _clone_my_env
	movel d0,a4
	pea LC5
	movel a4,sp@-
	jbsr _strcpy
	pea LC5
	jbsr _strlen
	lea a4@(1,d0:l),a4
	clrl d3
	addw #24,sp
	cmpl d3,d4
	jle L145
L142:
	movel d3,d0
	asll #1,d0
	lea a6@(0,d0:l),a2
	lea a2@(-256),a3
	movew a3@,a1
	addw #-128,a2
	movew a2@,a0
	subl a0,a1
	movel a1,sp@-
	pea a0@(a5:l)
	movel a4,sp@-
	jbsr _strncpy
	movew a3@,a0
	subw a2@,a0
	lea a4@(1,a0:l),a4
	addw #12,sp
	addql #1,d3
	cmpl d3,d4
	jgt L142
L145:
	clrb a4@
	tstb a5@(d2:l)
	jeq L143
	movel a5,d0
	addl d2,d0
	jra L113
L143:
	clrl d0
L113:
	moveml a6@(-288),#0x3c3c
	unlk a6
	rts
.data
	.even
_handle_0_redirected:
	.long 0
	.even
_handle_1_redirected:
	.long 0
.text
	.even
_redirect_0:
	link a6,#0
	clrl sp@-
	pea 69:w
	jbsr _trap_1_ww
	extl d0
	movel d0,_original_handle_0
	clrl sp@-
	movel a6@(8),sp@-
	pea 61:w
	jbsr _trap_1_wlw
	movel d0,a0
	movew a0,a0
	movel a0,_new_handle_0
	movel a0,sp@-
	clrl sp@-
	pea 70:w
	jbsr _trap_1_www
	moveq #1,d1
	movel d1,_handle_0_redirected
	unlk a6
	rts
	.even
_redirect_1:
	link a6,#0
	moveml #0x3020,sp@-
	movel a6@(8),d3
	movel a6@(12),d2
	pea 1:w
	pea 69:w
	jbsr _trap_1_ww
	extl d0
	movel d0,_original_handle_1
	pea 1:w
	movel d3,sp@-
	pea 61:w
	lea _trap_1_wlw,a2
	jbsr a2@
	extl d0
	movel d0,_new_handle_1
	addw #20,sp
	moveq #-32,d1
	cmpl _new_handle_1:l,d1
	jle L153
	clrl sp@-
	movel d3,sp@-
	pea 60:w
	jbsr a2@
	extl d0
	movel d0,_new_handle_1
	clrl d2
	addw #12,sp
L153:
	tstl d2
	jeq L154
	pea 2:w
	movel _new_handle_1,sp@-
	clrl sp@-
	pea 66:w
	jbsr _trap_1_wlww
	addw #16,sp
L154:
	movel _new_handle_1,sp@-
	pea 1:w
	pea 70:w
	jbsr _trap_1_www
	moveq #1,d1
	movel d1,_handle_1_redirected
	moveml a6@(-12),#0x40c
	unlk a6
	rts
	.even
_restore_redirects:
	link a6,#0
	movel a2,sp@-
	tstl _handle_0_redirected
	jeq L156
	clrl sp@-
	pea 62:w
	lea _trap_1_ww,a2
	jbsr a2@
	movel _new_handle_0,sp@-
	pea 62:w
	jbsr a2@
	movel _original_handle_0,sp@-
	clrl sp@-
	pea 70:w
	jbsr _trap_1_www
	movel _original_handle_0,sp@-
	pea 62:w
	jbsr a2@
	clrl _handle_0_redirected
	addw #36,sp
L156:
	tstl _handle_1_redirected
	jeq L157
	pea 1:w
	pea 62:w
	lea _trap_1_ww,a2
	jbsr a2@
	movel _new_handle_1,sp@-
	pea 62:w
	jbsr a2@
	movel _original_handle_1,sp@-
	pea 1:w
	pea 70:w
	jbsr _trap_1_www
	movel _original_handle_1,sp@-
	pea 62:w
	jbsr a2@
	clrl _handle_1_redirected
L157:
	movel a6@(-4),a2
	unlk a6
	rts
	.even
_process_redirects:
	link a6,#-64
	moveml #0x3030,sp@-
	movel a6@(8),a2
	clrl d3
	tstb a2@
	jeq L178
	lea __ctype_,a3
	moveq #-64,d2
	addl a6,d2
L177:
	moveb a2@,d0
	cmpb #60,d0
	jeq L162
	cmpb #62,d0
	jeq L168
	jra L175
L162:
L165:
	addqw #1,a2
	moveb a2@,d0
	extw d0
	btst #3,a3@(d0:w)
	jne L165
	tstb a2@
	jeq L166
	pea _char_white_p
	movel a2,sp@-
	movel d2,sp@-
	jbsr _copy_until
	movel d0,a2
	addw #12,sp
L166:
	movel d2,sp@-
	jbsr _strlen
	addqw #4,sp
	tstl d0
	jle L159
	movel d2,sp@-
	jbsr _redirect_0
	addqw #4,sp
	jra L159
L168:
	addqw #1,a2
	cmpb #62,a2@
	jne L170
	addqw #1,a2
	moveq #1,d3
	jra L170
L172:
	addqw #1,a2
L170:
	moveb a2@,d0
	extw d0
	btst #3,a3@(d0:w)
	jne L172
	tstb a2@
	jeq L173
	pea _char_white_p
	movel a2,sp@-
	movel d2,sp@-
	jbsr _copy_until
	movel d0,a2
	addw #12,sp
L173:
	movel d2,sp@-
	jbsr _strlen
	addqw #4,sp
	tstl d0
	jle L159
	movel d3,sp@-
	movel d2,sp@-
	jbsr _redirect_1
	addqw #8,sp
	jra L159
L175:
	addqw #1,a2
L159:
	tstb a2@
	jne L177
L178:
	moveml a6@(-80),#0xc0c
	unlk a6
	rts
LC6:
	.ascii "I don't grok '%s'\0"
	.even
.globl _execute_command
_execute_command:
	link a6,#-164
	moveml #0x3820,sp@-
	movel a6@(8),a2
	clrl d3
	tstb a2@(d3:l)
	jeq L181
	lea __ctype_,a0
L182:
	moveb a2@(d3:l),d0
	extw d0
	btst #3,a0@(d0:w)
	jeq L181
	addql #1,d3
	tstb a2@(d3:l)
	jne L182
L181:
	movel d3,d1
	tstb a2@(d3:l)
	jeq L184
	lea __ctype_,a0
L185:
	moveb a2@(d3:l),d0
	extw d0
	btst #3,a0@(d0:w)
	jne L184
	addql #1,d3
	tstb a2@(d3:l)
	jne L185
L184:
	movel d3,a1
	subl d1,a1
	movel a1,sp@-
	pea a2@(d1:l)
	movel a6,d2
	addl #-162,d2
	movel d2,sp@-
	jbsr _strncpy
	movel d2,sp@-
	jbsr _find_executable
	movel d0,d4
	addw #16,sp
	jne L186
	movel a2,sp@-
	jbsr _exec_via_cli
	addqw #4,sp
	cmpl #-65536,d0
	jne L179
	pea a6@(-162)
	pea LC6
	jbsr _barf
	movel #-999,d0
	jra L179
L186:
	tstb a2@(d3:l)
	jeq L190
	lea __ctype_,a0
L191:
	moveb a2@(d3:l),d0
	extw d0
	btst #3,a0@(d0:w)
	jeq L190
	addql #1,d3
	tstb a2@(d3:l)
	jne L191
L190:
	pea 126:w
	pea a2@(d3:l)
	pea a6@(-130)
	jbsr _strncpy
	movel a2,sp@-
	jbsr _make_child_env
	movel d0,d2
	addw #16,sp
	jeq L192
	movel d2,sp@-
	jbsr _process_redirects
	addqw #4,sp
L192:
	movel _child_env,sp@-
	pea a6@(-130)
	movel d4,sp@-
	clrl sp@-
	pea 75:w
	jbsr _trap_1_wwlll
	movel d0,d3
	addw #20,sp
	tstl d2
	jeq L193
	jbsr _restore_redirects
L193:
	movel _child_env,sp@-
	jbsr _free
	clrl _child_env
	movel d3,d0
L179:
	moveml a6@(-180),#0x41c
	unlk a6
	rts
	.even
.globl _system
_system:
	link a6,#0
	movel a6@(8),sp@-
	jbsr _execute_command
	unlk a6
	rts
	.even
.globl _barf
_barf:
	link a6,#0
	movel a6@(20),sp@-
	movel a6@(16),sp@-
	movel a6@(12),sp@-
	movel a6@(8),sp@-
	movel _stderr,sp@-
	jbsr _fprintf
	unlk a6
	rts
.lcomm _new_handle_1,4
.lcomm _original_handle_1,4
.lcomm _new_handle_0,4
.lcomm _original_handle_0,4
.lcomm _child_env_nbytes,4
.lcomm _child_env,4
.lcomm _complete_name,256
.lcomm _gulam_result,4
.lcomm _callgulam,4
.lcomm _gulam_command_string,4
.lcomm _stack_nbytes,4
.lcomm _current_stack_pointer,4
.lcomm _stack_buffer,4
.lcomm _regs,64
