// File: /workspace/github_c_makefile_star2_O0/aap[P]rx-0/pdp1/mach.c
// Function: spec
static void
spec(PDP1 *pdp)
{
	// PB
	pdp->run = 0;
	if(pdp->start_sw || pdp->deposit_sw || pdp->examine_sw)
		pdp->rim = 0;

	// SP1
	pdp->run_enable = 1;
	pdp->ma = 0;
	if(pdp->start_sw)
		pdp->cyc = 0;
	if(pdp->deposit_sw)
		pdp->ac = 0;
	if(pdp->start_sw || pdp->deposit_sw || pdp->examine_sw)
		sc(pdp);

	// SP2
	if(pdp->start_sw || pdp->deposit_sw || pdp->examine_sw)
		pdp->pc |= pdp->ta;
	if(pdp->deposit_sw || pdp->examine_sw || pdp->rim)
		pdp->cyc = 1;
	if(pdp->examine_sw)
		pdp->ir |= 020>>1;
	if(pdp->deposit_sw) {
		pdp->ir |= 024>>1;
		pdp->ac |= pdp->tw;
	}

	// SP3
	if(pdp->deposit_sw || pdp->examine_sw) {
		pdp->ma |= pdp->pc;
		pdp->cychack = 1;
	}

	// SP4
	if(pdp->start_sw || pdp->continue_sw)
		pdp->run = 1;

	pdp->start_sw = 0;
	pdp->stop_sw = 0;
	pdp->continue_sw = 0;
	pdp->examine_sw = 0;
	pdp->deposit_sw = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl $0x0, 0x4034(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4020(%rax)
jne 0x5491
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4030(%rax)
jne 0x5491
movq -0x8(%rbp), %rax
cmpl $0x0, 0x402c(%rax)
je 0x549f
movq -0x8(%rbp), %rax
movl $0x0, 0x4058(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x4038(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4020(%rax)
je 0x54d3
movq -0x8(%rbp), %rax
movl $0x0, 0x403c(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4030(%rax)
je 0x54ea
movq -0x8(%rbp), %rax
movl $0x0, (%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4020(%rax)
jne 0x5511
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4030(%rax)
jne 0x5511
movq -0x8(%rbp), %rax
cmpl $0x0, 0x402c(%rax)
je 0x551a
movq -0x8(%rbp), %rdi
callq 0x6b80
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4020(%rax)
jne 0x5541
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4030(%rax)
jne 0x5541
movq -0x8(%rbp), %rax
cmpl $0x0, 0x402c(%rax)
je 0x5555
movq -0x8(%rbp), %rax
movl 0x4018(%rax), %ecx
movq -0x8(%rbp), %rax
orl 0x10(%rax), %ecx
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4030(%rax)
jne 0x557c
movq -0x8(%rbp), %rax
cmpl $0x0, 0x402c(%rax)
jne 0x557c
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4058(%rax)
je 0x558a
movq -0x8(%rbp), %rax
movl $0x1, 0x403c(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x402c(%rax)
je 0x55a4
movq -0x8(%rbp), %rax
movl 0x14(%rax), %ecx
orl $0x8, %ecx
movl %ecx, 0x14(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4030(%rax)
je 0x55d0
movq -0x8(%rbp), %rax
movl 0x14(%rax), %ecx
orl $0xa, %ecx
movl %ecx, 0x14(%rax)
movq -0x8(%rbp), %rax
movl 0x401c(%rax), %ecx
movq -0x8(%rbp), %rax
orl (%rax), %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4030(%rax)
jne 0x55ea
movq -0x8(%rbp), %rax
cmpl $0x0, 0x402c(%rax)
je 0x5609
movq -0x8(%rbp), %rax
movl 0x10(%rax), %ecx
movq -0x8(%rbp), %rax
orl 0xc(%rax), %ecx
movl %ecx, 0xc(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x4080(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4020(%rax)
jne 0x5623
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4028(%rax)
je 0x5631
movq -0x8(%rbp), %rax
movl $0x1, 0x4034(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x4020(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x4024(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x4028(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x402c(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x4030(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)