;redcode-94 ;name Return of Vanquisher PsP ;assert 1 ;author Lukasz Grabun ; bomber constants sStp equ 1022 sLen equ 7 ; clear constants cGate equ (cClr-3) ; boot constants bOff equ (3408+sLoo) ; bomber boot distance dOff equ -252 ; offset between bomber & bombs cOff equ (sStp*3+4853) ; offset between spare core clear & bomber ; bomber code bSrc mov.i {0 , #sLen sLoo mov sSb+dOff-2 , cOff sInc jmz.f sStp*3+4 , @sStp*3+1 ; clear code spl #0 , #0 cClr mov cBmb , >cGate djn.f cClr , >cGate cBmb dat >5335 , 2-cGate for 3 dat 0,0 rof ; incendiary bombs sJb jmp @sStp , sStp-1 sSb spl #1-sStp , 8 sMb mov @0 , bDst , cBmb+1 ; filler for 32 dat 0,0 rof ; q-scan taken from Olivia dat $1234, $ qA qtb1: dat $1234, $ qB qwsh: stp.ab #0 , # qF qjmp: djn.f $ -1, $ -1 ; ----- q^4 scan ----- qX equ 2414 qI equ 5477 ; (qX-1)*qI==1%8000 qA equ (((qX-1+(qtb1-1-qptr))*qI)%CORESIZE) qB equ (((qX-1+(qtb1-0-qptr))*qI)%CORESIZE) qC equ (((qX-1+(qtb2-1-qptr))*qI)%CORESIZE) qD equ (((qX-1+(qtb2-0-qptr))*qI)%CORESIZE) qE equ (((qX-1+(qtb2+1-qptr))*qI)%CORESIZE) qF equ (((qX-1+(qwsh-0-qptr))*qI)%CORESIZE) qinc equ ( -7) qclk equ ( 11) qoff equ (qinc*qclk) qscn: sne qptr+qX*qE , qptr+qX*qE+qE seq qptr mov qjmp, >qptr qptr: mov qbmb, * qX sub #qinc, @qfnd mov qbmb, @qptr djn qptr, #qclk jmp bBoo, < qC qtb2: dat 0, # qD qbmb: dat {qoff, # qE end qscn