100 PROGRAM "SpiralMa.bas" 110 TEXT 80 120 INPUT PROMPT "Enter size of matrix (max. 10): ":N 130 NUMERIC A(1 TO N,1 TO N) 140 CALL INIT(A) 150 CALL WRITE(A) 160 DEF INIT(REF T) 170 LET BCOL,BROW,COL,ROW=1:LET TCOL,TROW=N:LET DIR=0 180 FOR I=0 TO N^2-1 190 LET T(COL,ROW)=I 200 SELECT CASE DIR 210 CASE 0 220 IF ROWBROW THEN 350 LET ROW=ROW-1 360 ELSE 370 LET DIR=3:LET COL=COL-1:LET TCOL=TCOL-1 380 END IF 390 CASE 3 400 IF COL>BCOL THEN 410 LET COL=COL-1 420 ELSE 430 LET DIR=0:LET ROW=ROW+1:LET BROW=BROW+1 440 END IF 450 END SELECT 460 NEXT 470 END DEF 480 DEF WRITE(REF T) 490 FOR I=LBOUND(T,1) TO UBOUND(T,1) 500 FOR J=LBOUND(T,2) TO UBOUND(T,2) 510 PRINT USING " ##":T(I,J); 520 NEXT 530 PRINT 540 NEXT 550 END DEF