Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
101
Task/Balanced-brackets/360-Assembly/balanced-brackets.360
Normal file
101
Task/Balanced-brackets/360-Assembly/balanced-brackets.360
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
* Balanced brackets 28/04/2016
|
||||
BALANCE CSECT
|
||||
USING BALANCE,R13 base register and savearea pointer
|
||||
SAVEAREA B STM-SAVEAREA(R15)
|
||||
DC 17F'0'
|
||||
STM STM R14,R12,12(R13)
|
||||
ST R13,4(R15)
|
||||
ST R15,8(R13)
|
||||
LR R13,R15 establish addressability
|
||||
LA R8,1 i=1
|
||||
LOOPI C R8,=F'20' do i=1 to 20
|
||||
BH ELOOPI
|
||||
MVC C(20),=CL20' ' c=' '
|
||||
LA R1,1
|
||||
LA R2,10
|
||||
BAL R14,RANDOMX
|
||||
LR R11,R0 l=randomx(1,10)
|
||||
SLA R11,1 l=l*2
|
||||
LA R10,1 j=1
|
||||
LOOPJ CR R10,R11 do j=1 to 2*l
|
||||
BH ELOOPJ
|
||||
LA R1,0
|
||||
LA R2,1
|
||||
BAL R14,RANDOMX
|
||||
LR R12,R0 m=randomx(0,1)
|
||||
LTR R12,R12 if m=0
|
||||
BNZ ELSEM
|
||||
MVI Q,C'[' q='['
|
||||
B EIFM
|
||||
ELSEM MVI Q,C']' q=']'
|
||||
EIFM LA R14,C-1(R10) @c(j)
|
||||
MVC 0(1,R14),Q c(j)=q
|
||||
LA R10,1(R10) j=j+1
|
||||
B LOOPJ
|
||||
ELOOPJ BAL R14,CHECKBAL
|
||||
LR R2,R0
|
||||
C R2,=F'1' if checkbal=1
|
||||
BNE ELSEC
|
||||
MVC PG+24(2),=C'ok' rep='ok'
|
||||
B EIFC
|
||||
ELSEC MVC PG+24(2),=C'? ' rep='? '
|
||||
EIFC XDECO R8,XDEC i
|
||||
MVC PG+0(2),XDEC+10
|
||||
MVC PG+3(20),C
|
||||
XPRNT PG,26
|
||||
LA R8,1(R8) i=i+1
|
||||
B LOOPI
|
||||
ELOOPI L R13,4(0,R13)
|
||||
LM R14,R12,12(R13)
|
||||
XR R15,R15 set return code to 0
|
||||
BR R14 -------------- end
|
||||
CHECKBAL CNOP 0,4 -------------- checkbal
|
||||
SR R6,R6 n=0
|
||||
LA R7,1 k=1
|
||||
LOOPK C R7,=F'20' do k=1 to 20
|
||||
BH ELOOPK
|
||||
LR R1,R7 k
|
||||
LA R4,C-1(R1) @c(k)
|
||||
MVC CI(1),0(R4) ci=c(k)
|
||||
CLI CI,C'[' if ci='['
|
||||
BNE NOT1
|
||||
LA R6,1(R6) n=n+1
|
||||
NOT1 CLI CI,C']' if ci=']'
|
||||
BNE NOT2
|
||||
BCTR R6,0 n=n-1
|
||||
NOT2 LTR R6,R6 if n<0
|
||||
BNM NSUP0
|
||||
SR R0,R0 return(0)
|
||||
B RETCHECK
|
||||
NSUP0 LA R7,1(R7) k=k+1
|
||||
B LOOPK
|
||||
ELOOPK LTR R6,R6 if n=0
|
||||
BNZ ELSEN
|
||||
LA R0,1 return(1)
|
||||
B RETCHECK
|
||||
ELSEN SR R0,R0 return(0)
|
||||
RETCHECK BR R14 -------------- end checkbal
|
||||
RANDOMX CNOP 0,4 -------------- randomx
|
||||
LR R3,R2 i2
|
||||
SR R3,R1 ii=i2-i1
|
||||
L R5,SEED
|
||||
M R4,=F'1103515245'
|
||||
A R5,=F'12345'
|
||||
SRDL R4,1 shift to improve the algorithm
|
||||
ST R5,SEED seed=(seed*1103515245+12345)>>1
|
||||
LR R6,R3 ii
|
||||
LA R6,1(R6) ii+1
|
||||
L R5,SEED seed
|
||||
LA R4,0 clear
|
||||
DR R4,R6 seed//(ii+1)
|
||||
AR R4,R1 +i1
|
||||
LR R0,R4 return(seed//(ii+1)+i1)
|
||||
BR R14 -------------- end randomx
|
||||
SEED DC F'903313037'
|
||||
C DS 20CL1
|
||||
Q DS CL1
|
||||
CI DS CL1
|
||||
PG DC CL80' '
|
||||
XDEC DS CL12
|
||||
REGS
|
||||
END BALANCE
|
||||
Loading…
Add table
Add a link
Reference in a new issue