'CALL MYSTERY SUBPROGRAM WITH 2 PARAMETERS, EXPECT RESULT ON STACKPUSH 126:PUSH 45:GOSUB MYSTERY:PULL RESULTPRINT RESULTEND@MYSTERYPULL RA:PULL V:PULL U 'GETPARAMETERSFROMSTACKINREVERSEDORDERIFU=VORV=0THENPUSHU:PUSHRA:RETURN'RETURNING RESULT UIF U = 0 THEN PUSH V:PUSH RA:RETURN 'RETURNINGRESULTVPUSHRA'RETURNADDRESSISNOTSAFEINAGLOBALVARIABLE:SAVETOSTACKBEFORERECURSIVECALLIFUAND1T.G.ODDUIFVAND1THENPUSHU/2:PUSHV:GOSUBMYSTERY:PULLRV:PULLRA:PUSHRV:PUSHRA:RETURNPUSHU/2:PUSHV/2:GOSUBMYSTERY:PULLRV:PULLRA:PUSHRV*2:PUSHRA:RETURN@ODDUIFNOT(V)AND1THENPUSHU:PUSHV/2:GOSUBMYSTERY:PULLRV:PULLRA:PUSHRV:PUSHRA:RETURNIFU>VTHENPUSH(U-V)/2:PUSHV:GOSUBMYSTERY:PULLRV:PULLRA:PUSHRV:PUSHRA:RETURNPUSH(V-U)/2:PUSHU:GOSUBMYSTERY:PULLRV:PULLRA:PUSHRV:PUSHRA:RETURN
Last edit: Csaba Skrabák 2020-08-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Last edit: Csaba Skrabák 2020-08-22