On my control, Camsoft, I wrote this custom machine code to run G84. I assume either you or Acorn had to write something equivalent to control the machine for rigid tapping
[[G84]]
' G84
'format is G84 X_ Y_ Z_ R_ Q_ C_ L_
LOADING \55:IF\55=0THENEXIT
'check that spindle is off
IF #34=1 THEN MESSAGE Spindle running:EXIT
IF #35=1 THEN MESSAGE Spindle running:EXIT
IF\775=84THENGOTO :SKIP84 'second or later point on modal command
READOUT3 \850 'current Z position
ISTHERE X;\50;\851 'X axis coordinate
IF\50=0THEN MESSAGE Need X value:\851=x 'get X from last commanded move
ISTHERE Y;\50;\852 'Y axis coordinate
IF\50=0THEN MESSAGE Need Y value:\852=y 'get Y from last commanded move
ISTHERE Z;\50;\853 'Z axis coordinate
IF\50=0THEN MESSAGE Need Z value:EXIT
z=\850 'this stops crashes if operator forgets G80
ISTHERE R;\50;\854 'R axis coordinate
IF\50=0THEN \854={\850}: MESSAGE No R value, start at current Z from READOUT3
r=0 'this stops crashes if operator forgets G80
ISTHERE C;\50;\855 'C feed is 1/thread
IF\50=0THEN IF s=0 THEN MESSAGE No C, no current S;ABORT:EXIT
IF\50=0THEN \855={f/s} 'calculate C from current feed and speed
IF\50=0THEN QUESTION No C (lead) value, use current speed and feed \855 ? ;\55;N:IF\55<>Y THEN EXIT
c=0 'this stops crashes if operator forgets G80
ISTHERE Q;\50;\857 'Q is peck value
IF\50=0THEN \857=0 'no peck, just all the way down and out
q=0 'this stops crashes if operator forgets G80
ISTHERE L;\50;\858:IF\858>1THEN\858=1 'L is left hand thread, any value results in \858=1
IF\50=0THEN \858=-1 'if no L value, right hand thread
l=0 'this stops crashes if operator forgets G80
:SKIP84 'don't collect Z,R,C,Q,L on second or later point in modal command
\864=0 'flag for second pass if peck cycle
'Calculate electronic gearing
'assume machine is in backgear, gear ratio is 92/15
'Z encoder is 20,000 spindle encoder is 4000 from CNCsetup
'a negative value makes Z go down on CW rotation \858 variable
'Feed per rev is in \855
\860={\858*\855*(20000/((92/15)*4000))} '\860 is electronic gear ratio
\860={(INT(100000*\860))/100000} 'round to five decimal places
'Calculate number of spindle turns in encoder counts for this 4000 count spindle encoder, back gear ratio is 92/15
' R plane - Z depth is distance; divide by Feed to get toal revolutions
\861={INT(((\854-\853)/\855)*4000*(92/15))} '(R plane - Z value) / thread pitch * encoder counts per rev.
\862={INT((\857/\855)*4000*(92/15))} '(Q peck distance) / thread pitch * encoder counts per rev.
'Calculate depth of tap pass
IF \862=0 THEN \863=\861 'no peck
IF \862>0 THEN IF \862<\861 THEN \863=\862 'if there's a peck value, and peck is less than total depth; move peck amount
IF \862>0 THEN IF \862>=\861 THEN \863=\861 'if toal depth less than peck, no peck
DECELSTOP
RAPID x;y 'rapid to x y position
DECELSTOP
RAPID ;;\854 'rapid to R plane, or current Z if no R
ECKLOOP
IF\864=1 THEN IF \863>\861 THEN \863=\861 'check not too deep on 2nd+ pass
IF \858=-1 THEN [SPINCW] 'right hand tap going down
IF \858=1 THEN [SPINCCW] 'left hand tap going down
IF \864=0 THEN COMMAND FIE:COMMAND GA ,,E :COMMAND GR ,,\860
'if first time through;FindIndex mark,set spindle to slave Z,electronic gear ratio
:TAPLOOPDOWN 'run spindle till total encoder counts
SLEEP 0.0025 'sleep 25 msec.
COMMAND MG_TPE 'get spindle encoder count
RESPONSE \866:IF \858=1 THEN \866={-1*\866} 'current counts; *-1 if left hand
IF \866>\863 THEN [STOPSPINDLE]:GOTO :TAPBOTTOM 'run spindle till total encoder counts
GOTO :TAPLOOPDOWN
:TAPBOTTOM 'back tap out
IF \858=1 THEN [SPINCW] 'right hand tap going up
IF \858=-1 THEN [SPINCCW] 'left hand tap going up
:UPTAPLOOP 'run spindle till total encoder counts
SLEEP 0.0025
COMMAND MG_TPE
RESPONSE \866:IF \858=1 THEN \866={-1*\866} 'current counts; *-1 if left hand
IF \866<O THEN [STOPSPINDLE]:GOTO
ONETAP 'tap is back to the top
GOTO :UPTAPLOOP
ONETAP
IF \863<{\861-250} THEN \863={\863+\862}:\864=1:GOTO
ECKLOOP
'\864 flag for second pass
'made {861- 250} to not do another pass if very close to depth
'if not at full depth, add peck value to depth, set flag for second+pass, start again
COMMAND GR ,,0 'turn off electronic gearing
MACHDISP
MACHHOME3 \868 'current home readout
MACHZERO ;;\868 'rezero to current home readout
ABSDISP
'NOTE: Above 4 lines needed because registers get confused with electronic gearing
DECELSTOP
RAPID ;;\850 'rapid to Z start plane