\ACQUISITION OPERANT BEHAVIOR \First version, February 18, 2002 \Filip van den Bergh \Z-Pulses \1 Start session \2 End session \3 Lever press \4 Reward ^Houselight=7 ^Left=7 ^Right=6 ^ExtLeft=15 ^ExtRight=14 ^Feeder=8 \Training parameters DIM A=5 VAR_ALIAS Fixed ratio = A(0) VAR_ALIAS Maximum total duration = A(1) VAR_ALIAS Maximum number of trials = A(2) VAR_ALIAS Maximum number of reinforcers = A(3) \Dependents DIM X=10 VAR_ALIAS Reinforcers = X(0) VAR_ALIAS Left lever responses = X(1) VAR_ALIAS Right lever responses = X(2) DIM T=300 VAR_ALIAS Reinforcers per 1-minute block = T(0) DIM R=300 VAR_ALIAS Responses on right lever per 1-minute block = R(0) DIM L=300 VAR_ALIAS Responses on left lever per 1-minute block = L(0) \System variables DIM S=5 VAR_ALIAS Time in seconds = S(0) VAR_ALIAS Minute counter = S(2) VAR_ALIAS Fixed ratio countdown = S(3) VAR_ALIAS Reinforced lever = K \======================================================== S.S.1, \Time definitions, session start, session end S1, 0.1": SET A(0)=1; \FR1 SET A(1)=30; \Maximum duration: 60' SET A(3)=50; \Maximum number of rewards: 50 SET K=^Right ---> S2 S2, #START: ON ^Houselight; ON ^ExtLeft, ^ExtRight; Z1 ---> S4 S4, #Z2: SHOW 1, Session closed, S(0)/60; SHOW 3, Reinforcers, X(0); SHOW 4, Left resp, X(2); SHOW 5, Right resp, X(1); OFF ^ExtLeft, ^ExtRight, ^Houselight ---> STOPABORTFLUSH \======================================================== S.S.2, \Timer and session end S1, #Z1 ---> S2 S2, .01": SET S(0)=S(0)+.01; IF (S(0))>= (A(1)*60) [@TrueEnd, @FalseContinue] @TrueEnd: Z2; SHOW 2, Max time, A(1) ---> SX @FalseContinue: ---> S2 \======================================================== S.S.3, \Timer part two: add to minute counter S1, #Z1: ---> S2 S2, 1': ADD S(2) ---> S2 \======================================================== S.S.4, \Response counter S1, #R^Right: ADD R(S(2)); ADD X(1) ---> S1 #R^Left: ADD L(S(2)); ADD X(2) ---> S1 \======================================================== S.S.5, \Trial S1, #Z1: SET S(3)=A(0); SHOW 2, First resp, S(3) ---> S2 S2, #RK: SET S(3)=S(3)-1; SHOW 2, Resps needed, S(3); IF S(3)=0 [@TrueReward, @FalseContinue] @TrueReward: Z4; SET S(3)=A(0); ADD T(S(2)); ADD X(0); SHOW 2, Collect, 0; IF X(0)>=A(3) [@True, @False] @True: Z2; SHOW 2, Max reinf, A(3) ---> SX @False: SHOW 2, Resps needed, S(3)---> S2 @FalseContinue: ---> S2 \======================================================== S.S.6, \Rewards S1, #Z4: ON^Feeder ---> S2 S2, .5": OFF^Feeder ---> S1 \======================================================== S.S.10, \Screen write code S1, #Z1 ---> S2 S2, .1": SHOW 1, Minutes, S(0)/60; SHOW 3, Reinforcers, X(0); SHOW 4, Left resp, X(2); SHOW 5, Right resp, X(1); SHOW 6, Fixed ratio, A(0); SHOW 7, Max time, A(1); SHOW 8, Max trials, A(2); SHOW 9, Reinf lever, K; SHOW 14, Right lever, ^Right; SHOW 15, Left lever, ^Left ---> S2