NSSE9  HEXCALC  RENAME   DIRRED 'W DIRWRTE ,g REMARKS 1 CRUNCHER6 MAVGREM Q MOVAVG U  DASMREM _ DASM d DASMF1 i x ~   9 " HEX/DECIMAL/BINARY/SPLIT OCTAL STACK CALCULATOR" + REQUIRES 24K MEM BY ROGER GLASSEY 6 H.P HAD DE THE PROGRAMMERS CALCULAR INSTEAD 6( OF T.I , IT MIGHT HAVE BEEN SOMETHING LIKE THIS 62 A$16) , S4),C$20),C1$20),B116),D15),H14) < X$16),C3$4) F M1$32),L15),R15) %P START INITIALIZATI FZ M1$"DECIMALHEXBINARYOCTALSPLIT OCTAL"\ C1$"THNOIXRLSGPZ*+-/#?" d COMMS IN C1$ n C3$"AOXN"\ ICAL OPERARS x M1 5\ L1M),R1M)\ M = 1,7,8,10,11,16,17,21,22,32\INE WD BOUNDARIES IN M1$ ; J1 5\ LJ)\ J\ LARGEST II CODE LEGAL NUMBER  57,70,49,55,55 / M1 5\ L2M)\ M\ PUT) IN MODE M  5,4,16,6,6  J0 16 \ B1J)2J\ J ! J0 4 \ H1J)16J \ J ! J0 5 \ D1J)10J \ J " J 0 6 \ O1J)8J \ J  J0 5 \ S8J) \ J  1,8,64,256,2048,16384 4 M1 \ SET DECIMAL MODE INITIALIZATI "INSTRUCTIONS",\ A$  A$1,1) "Y"  5 12) \ M FEED CLEAR EEN IN STARD VIDEO F" THIS CALCULATOR HAS A 4 REGISTER STACK,S(1),..S(4), AND ONE" B""MEMORY REGISTER. IT RECOGNIZES THE 4 ARITHMETIC OPERATORS:" B," + , - , * , AND /. ALL ENTRIES OF NUMBERS, OPERATORS, OR " 06"COMMANDS ARE TERMINATED BY . " \ F@" FOR EXAMPLE, TO SUBTRACT 5 FROM 13, YOU FIRST TYPE IN 13" AJ"THEN 5. AT THIS POINT, S(1)=5 AND S(2)=13 SINCE " FT"AFTER A NUMBER PUSHES THE STACK. THEN TYPE - AND 8 T WILL" A^"APPEAR. S(1) IS 8 AND THE STACK HAS BEEN POPPED, SO S(J) " Fh"CONTAINS THE OLD VALUE OF S(J+1) FOR J=2 & 3. S(4) IS UNCHANGED" Br" TRY A FEW CALCULATIONS, USING THE P COMMAND TO PRINT THE" #| "STACK, AND SEE HOW IT WORKS" - \" *** HIT FOR MORE *** "\ S$ 12) 7"A MODE SHIFT COMMAND WILL CAUSE DISPLAY OF S(1)." D" MODES : DECIMAL=T HEX=H BINARY=N OCTAL=O SPLIT OCTAL=I" F"EXCEPT IN DEC MODE, NEGATIVE NUMBERS ARE DISPLAYED AS THE TWO'S" @"COMPLEMENT, FLAGGED BY -."\"THE INITIAL MODE IS DECIMAL." B" FOUR LOGICAL OPERATORS ARE ALSO RECOGNIZED; THEY ARE THE " @"ONLY 2 CHARACTER COMMANDS. SEE COMMAND TABLE FOR DETAILS" C"THE COMMAND ? WILL PRINT THE COMMAND TABLE. THERE, X STANDS" "FOR S(1), AND Y FOR S(2)" :\"AS USUAL IN BASIC PROGRAMS, THE INPUT PROMPT IS ?"  ' PROCESG BEGINS HERE  A$ \ N A$) , N 0 *  \ ACTS LIKE ENTER  XA$) \ B$A$1,1) 5& 47X X58) 64X X 71) \ NUMERAL 0 I1 18 \ COMM DECODE : B$C1$I,I) b D I N B$"Q" X %X"ILLEGAL INPUT CHARACTER"\  b I6 4 II5 >l I >,H,R,\,f,p,,,,,,, *v MODE CVERSI OF NUMBERS + A0 \ NL2M)  \ O MANY CHARS 2 J1 N \ HA$J,J))\ H IS CURT NUMERAL - HLM)  \ O BIG THIS MODE 2 H57 HH55 HH48 \ GET NUM. OF H  M ,,,, . AAHD1NJ)\  \ DECIMAL CVERS , AAHH1NJ)\  \ HEX CVERSI / AAHB1NJ)\  \ BINARY CVERSI ) AAHO1NJ)\  \ OCTAL CV / AAHS8NJ)\  \ SPLIT OCTAL CV  J .  \ S1)A \ ROLL UP REPLACE S1)   \ BACK RINE  "INPUT TOO BIG IN ",\    "ILLEGAL INPUT IN ", % M1$L1M),R1M))," MODE" \    PROCESS COMMS -*  \  \ ROLL UP STACK PUT X 4 MI \  \ CHANGE MODE 5> XS2) \ S2) S1) \ S1)X \ \ EXCHANGE 4H XS1)\ S1)S2)\ \ S4)X\ \ ROLL &R S1)S1) \ \ SIGN CHANGE \ M1S1)\  \ SRE X /f  \ S1)M1 \  \ RE X FROM M1 0p L 1 4 \ XSL) \  \ L \ STK z   S1)0 \  - S1)S1)S2) \  \  \ TIMES , S1)S1)S2) \  \  \ PLUS - S1)S2)S1) \  \  \ MINUS  S1)0   "ZERO DIVISOR"\  1 S1)S2)S1)) \  \  \ DIVIDE  ICAL OPERATIS  N1  - J11 4\ A$2,2)C3$J1,J1) \ '" ILLEGAL LOGICAL OPERATOR "\   XS1)\YS2)\S1)0  I1 16  ZB116I)  XZ  X10\ $ $ XXZ\X11 \ BIT FROM S1) $ YZ . Y10\ 8 &. YYZ \ Y11 \ BIT FROM S2) 8 J1 B,L,V,` B X1X1 Y1\ j L X1X1 Y1\ j )V X1X1 Y1) X1 Y1)\ j ` X1 X1 6j S1)S1)X1Z \ BUILD UP S1) A BIT AT A TIME t I ~ J14   \  \ ICAL OPNS  PUT STARTS HERE  XS1) \  \  - M1 %6I,X," T"  \ \ DEC - J1 20 \ C$J,J)" " \ J \ C2$" " 0 C$L2M),L2M))"0" \ INITIALIZE PUT STR  X 0   ( XX65536 \ C2$"-" \ COMPLEMENT % X)65535  \ OVERFLOW  YX \ J1 L2M) ! M ,,, , 3 ZH1L2M)J) \  \ POWERS OF BASE  ZB1L2M)J) \  !  ZO1L2M)J) \  ! ZS8L2M)J) \   XZ P ( Y1 YZ) \ YYY1Z 2 Y19 F ,< C$J,J)Y148)\ P \ 09 %F C$J,J)Y155) \ AF P J 8Z C$L2M)2,L2M)3)C1$M,M)C2$ \ ADD MODE, SIGN d M3 x n n C$ \ 2xC$1,4)," ",C$5,8)," ",C$9,12)," ",C$13)\  "OVERFLOW" \  PUT RINE  ROLL UP STACK & J 1 3 \S5J)S4J)\ \ ! ROLL DOWN STACK COPY TT ! J2 3 \ SJ)SJ1)\\  COMM LE  12) < "L - CHANGE SIGN OF X; OUTPUT 2'S COMPL EXCEPT IN DEC" 0"S - STORE X",30),"G - GET X FROM MEMORY" 3 "P - PRINT STACK",30),"R - ROLL STACK DOWN"  "Z - SET X TO ZERO",30), % "X - EXCHANGE X AND Y IN STACK" 5),"MODE SET COMMANDS:" 5"T - DECIMAL",15),"H - HEX",30),"N - BINARY" ."O - OCTAL",15),"I - INTEL SPLIT OCTAL" !"5),"ARITHMETIC OPERATORS:" E,"+ : ADD",15),"- : MINUS",30),"* : TIMES",45),"/ : DIVIDE" 65),"LOGICAL OPERATORS:" A@"#A - AND",15),"#O - OR",30),"#X - XOR",45),"#N - NOT" 8J\"? - PRINT THIS COMMAND TABLE",30),\"Q - QUIT" T  Q /pn A916) , "DIRECTORY NAME,DISC DRIVE NUMBER:",D$  D$)0  "FILE NAME:",C$ ( (# 2 L1 P A< "FILE NOT FOUND..TRY AGAIN OR TYPE JUST A CARRIAGE RETURN" F  &P "FILE FOUND ON RECORD NUMBER ",L 5Z "WOULD YOU LIKE TO CHANGE ITS NAME?..YES OR NO" d B$ n B$"YES" x * "WHAT WOULD YOU LIKE TO CALL IT?",C$ 5 "OK .. WE WILL CHANGE IT TO ",C$," ON FILE ",D$ # 7 "PROGRAM STOP.. NOW DO A CAT TO THE PROPER DISC"  (# @*# @,# DIRRED @.# 0# 2# >4# PARAMETERS 96# D$ DIRECRY NAME,DISC DRIVE ..IE.. HRZREL4,1 38# C$ UP 8 CHARACTER NAME LEFT JUSTIED :# L VARIABLE *<# 0 POS RECD THAT MATCHES C$ "># 1 NO RECD MATCHED C$ ,@# 2 DIRECRY NAME,DISC DRIVE ERR @B# /D# VARIABLES USED IN SUBRINE BF# "H# X9,Y9,L9,I9,J8,J9,A916),B8$ AJ# L# v#,X9,Y9 N# #0 %0,D$ P# L9C$) R# I90 63 T# J8I916 V# J91 16 X# #0 %J91J8,&A9J9) Z# J9 \# B8$"" ^# J91 L9 `# B8$B8$A9J9)) b# J9 d# B8$C$1,L9) n# f# I9 h# DISK j# L1 l# p# n# LI9 p# #0 r# t# v# L2 x# z# C# # DIRWRTE C# # # B# PARAMETERS 7# D$ DIRECRYNAME, DISC DRIVE ..IE.. HRZREL4,1 1# C$ NEW NAME BE INSERTED IN DIRECRY ,$ L POSITI IN DIRECRY INSERT C$ $ 0$ COMMENT THIS RINE HAS NO ERR CHECKING :$ IT ASSUMES THAT L HAS A ID DIRECRY LOI B$ ) $ VARIABLE USED IN SUBRINE B $ $ I9 B$ $ I9C$)1 8 $ C$C$" " $ I9 $ #0 %0,D$ $ I91 8 $$ #0 %L16I91,&C$I9,I9)), $ I9 $ #0 "$ (# @*# @,# DIRRED @.# 0# 2# >4# PARAMETERS 96# D$ DIRECRY NAME,DISC DRIVE ..IE.. HRZREL4,1 38# C$ UP 8 CHARACTER NAME LEFT JUSTIED :# L VARIABLE *<# 0 POS RECD THAT MATCHES C$ "># 1 NO RECD MATCHED C$ ,@# 2 DIRECRY NAME,DISC DRIVE ERR @B# /D# VARIABLES USED IN SUBRINE BF# "H# X9,Y9,L9,I9,J8,J9,A916),B8$ AJ# L# v#,X9,Y9 N# #0 %0,D$ P# L9C$) R# I90 63 T# J8I916 V# J91 16 X# #0 %J91J8,&A9J9) Z# J9 \# B8$"" ^# J91 L9 `# B8$B8$A9J9)) b# J9 d# B8$C$1,L9) n# f# I9 h# DISK j# L1 l# p# n# LI9 p# #0 r# t# v# L2 x# z#  5^$ PARAMETERS >`$ D$ DIRECRY NAME,DISCC# # DIRWRTE C# # # B# PARAMETERS 7# D$ DIRECRYNAME, DISC DRIVE ..IE.. HRZREL4,1 1# C$ NEW NAME BE INSERTED IN DIRECRY ,$ L POSITI IN DIRECRY INSERT C$ $ 0$ COMMENT THIS RINE HAS NO ERR CHECKING :$ IT ASSUMES THAT L HAS A ID DIRECRY LOI B$ ) $ VARIABLE USED IN SUBRINE B $ $ I9 B$ $ I9C$)1 8 $ C$C$" " $ I9 $ #0 %0,D$ $ I91 8 $$ #0 %L16I91,&C$I9,I9)), $ I9 $ #0 "$ ͕FCWJCJ DdB1b'v@@)h1cIAg5`iBABK XJ2TCC%X$JC@?JCV>CCͮF{ʑW:T2TCTCTCTV>TJT*XJTTJTJC/XJCJ DCCJCT!CX>͌@CTA "INCASE YOU JUST EXECUTED A RUN COMMAND..TYPE LIST INSTEAD"   D DIRRED    DEIPTI @ THIS SUBRINE SEARCHES THE DIRECRY NAME,DISC DRIVE =& PLE "HRZ-REL4,2") LOED IN THE STRING D$ SEE THE E0 NAME LOED IN C$ EXISTS. IT EXISTS, THE POER L IS SET ITS =: ENTRY LOI IN D$. D$ IS INCRECT, L IS SET 2. 8D C$ DOES EXIST WITHIN THE DIRECRY, L IS SET 1 N X Hb Cl DIRWRTE   DEIPTI 9 THIS SUBRINE PLACES THE FIRST 8 CHARACTERS LOED 8 IN C$ O THE DIRECRY SPECIED BY D$ AT LOI L. @ THERE IS NO ERR CHECKING IN THIS RINE YOU CAN CLOBBER / THE DIRECTRY. L SHOULD BE BETWEEN 0 63   > AME   DEIPTI 7 AME IS A MAIN PROGRAM CHANGE THE NAME OF A 0  IT LY USES DIRRED DIRWRTE. IT REQUESTS = THE DIRECRY NAME, DISC DRIVE NAME CE IT FINDS $  THAT , REQUESTS THE NEW NAME. \ If H "CRUNCHER: REMOVES UNQUOTED SPACES AND REM TEXT FROM NSB PROGRAMS" F "VER 4.1 (07/25/78) BY JIM MERRITT, NORTH STAR COMPUTERS, INC."  B PROCESSES A NS BASIC SOURCE PROGRAM #1, NAMED IN S0$), =( SS A COMPACTED VERSI OF IT A DESTINATI #2, =2 NAME IN D0$). COMPACTI MEANS OVING ALL TEXT A< UNQUOTED SPACES. S FOUND AT THE OF MULTISTATEMENT @F S ARE OVED ENTIRELY, ALG WITH PRECEDING BACKSLASH.  P5P5256)1\ P5 NOW SIZE OF SOURCE PGM IN DISK BLOCKS  6 SCAN L$, ELIMINATE S TEXT EXTRA SPACES " COMPACTED VERSI AS L$ " Q0\ AULT IS QUOTE FLAG OFF  S0\ START OF  L13 D WE'LL UPDATE L$ BY WRITING OVER IT. L1 IS OUR "NEW" POSITI.  I4 L$)1 < L$I,I)Q$ QQ)\ FLIP QUOTE FLAG WHEN WE FIND E 2 Q \ IGNE QUOTED SPACES BACKSLASHES ( L$I,I)S$ 2\ ETE THE SPACE  L$I,I)B$ SL11 > L1L11\ L1I \L$L1)L$I,I)\ XFER PROCESSED CHAR *  L$I,I)R$ 2\ S L1S1\ < < START OF & WE FIND , KEEP KEYWD BUT ETE REST. 2 < L13 P >A BY THIS PT, IS ALL SPACES. IGNE THEM, SUBSTITUTE . F L$4)R$\L1L11 ?P L$L$1,L1)L$L$))\ PGM CODE IN IS NOW ALL COMPACTED &Z L$1)L$))\ CRECT GTH BYTE w x L$ DESTINATI  I1 L$)  #2,&L$I)),    GET SOURCE ! F1\ \ A0 3\S0$N$  #F%2,S0$ 3 4 GET DEST !> F2\ \ A0 \D0$N$ H #F%2,D0$  # GET NAME TEST ITS IDITY  A0\ NO ABT  (#\ J1 F\ P9$\ 1 P9$," (HIT RETURN ONLY TO QUIT): ",\ "",N$  N$"" \AF\   @,L9,E9 $ F2 L\ GET SOURCE SIZE T9N$)  T90   F2  4 N$," DOES NOT EXIST. TRY AGAIN PLEASE."\ * @,L9,E9\A71\ N$,P5,2\A70\ :  T92 & 3 "NOT A TYPE 2 FILE...PLEASE TRY AGAIN!"\ & F2 : $0 #2%2,N$,X5\ #2\ X5P5 : 05 N$," IS TOO SMALL FOR A DESTINATION FILE." ?6 "YOU NEED AT LEAST",P5," DISK SECTORS. TRY AGAIN."\ : PO SPAGHETTI ABOVE  @ ERR HLING RINE J DETERMINE WHICH ERR O T & ,U Y2\ E11 Y2\ E2\ E2E9 ^\ Y E1Y21\ ERR FOUND ;^ A8 E12 E1Y21\ A8, ANY ERR FATAL BUT CNT C _ A71 E13 E14 =` ABOVE ADJUSTS FACT THAT BAD NAME SYNTAX NOROOM 9a DISK SAME BASIC ERR CODE A INITE PROBLEM c E1 h,r,|,, h HARDDISK ERR Gi "I HAVE A PROBLEM READING YOUR DISKETTE. PLEASE TRY MAKING SURE" Ej "THAT THE DISKETTE CONTAINING ",N$," IS WELL-SEATED INSIDE THE" Gk "DRIVE YOU SPECIFIED, THEN, WHEN I ASK, TYPE ITS NAME ONCE MORE." #m \ BACK NAME RINE Cr USER HIT CNTL C TILL I DEVISE A BETTER WAY, JUST QUIT PGM w "QUIT"\ &| NO ROOM THE DISK NEW DEST D} "I'M SORRY. THERE IS NOT ENOUGH ROOM ON YOUR DISKETTE FOR ME" F~ "TO CREATE A COMPACTED VERSION OF ",S0$," ON IT. I'LL GIVE YOU" A "A CHANCE TO INSERT A ROOMIER DISKETTE ONTO WHICH I'LL PUT" G "THE COMPACTED VERSION. YOU WILL HAVE TO RETYPE THE NAME OF THE" ! "DESTINATION FILE, THOUGH."    NAME WAS BAD G N$," ISN'T A LEGAL FILENAME. PLEASE REFER TO NORTH STAR DOS AND" E "BASIC MANUALS IF YOU DON'T KNOW HOW TO FORM ONE PROPERLY, AND"  "PLEASE TRY AGAIN."   < FATAL ERR BEST JUST GIVE APOIES DUMP PROGRAM 6 "SERIOUS SYSTEM ERROR",E9," AT PROGRAM LINE",L9, $ "FORCES ME TO QUIT. SORRY."\ # RESET ERR TRAP NAME  \ @,L9,E9\  OF THE ERRHLER %(# "PROGRAM FILE TO BE COMPACTED" '2# "FILE TO HOLD COMPACTED PROGRAM" & 4\ NUMBER OF ERRS HLED & 8,15,7,7 $& HARDDISK,CNTRLC,NOOM,BADNAME ' OF PROGRAM ING  HARDDISK,CNTRLC,NOOM,BADNAME ' OF PROGRAM ING  ' OF PROGRAM ING  zvAy 1 'MOVAVG' COMPUTES A LE OF MOVING AVERAGES / USE THIS PROGRAM STATEMENTS STARTING  600 ARE USED. PLE, ( 600 10 2 601 20,52,31,47,59 < 602 75,64,45,37,50 *F WOULD BE USED 10 PERIOD SALES . *P '20' IS THE ACTUAL SALES PERIOD 1 *Z '52' IS THE ACTUAL SALES PERIOD 2 *d '50' IS THE ACTUAL SALES PERIOD 10 0n A PERIOD N) IS SELECTED, THE MOVING "x AVERAGE PERIOD 4 WOULD BE  205231)3 . 1 PERIOD 11 THE MOVING AVERAGE WOULD BE  453750)3 3 THIS PROGRAM ALLOWS THE USER TRY DFET . UES OF 'N'. THE PROGRAM CALCULATES THE 0 DFECES BETWEEN THE ECASTS THE ACTUAL 3 OBSERVATIS. THUS, USERS CAN SELECT THE UES . OF N MOST APPROPRIATE THEIR ECASTING NEEDS.  , SM) 6 SM)999999  @ 6),%6I,M,%10F2,SM) J S1SM)S1 T M 2^ CALCULATE MOVING AVERAGES DFECES h MN1 K r SM! PROGRAM\ MOVING AVERAGE % PROGRAMMER\ R. J. KREINDLER  S100) ( S10 2 T < T999999 F DEIBE HOW ENTER P "ENTER DATA AS FOLLOWS "\ Z " 600 DATA K" !d " 601 DATA S1,S2,S3,...,SN"  " NONE",\ %H I0 J31\X B3I)\ \\ R K3 0 f \ " NONE",\ %f I0 K31\X C3I)\ \\ p J4 0  z " NONE",\ % I0 J41\X B4I)\ \\  K4 0   " NONE",\ % I0 K41\X C4I)\ \\  L1 0   " NONE",\ % I0 L11\X D1I)\ \\  M1 0   " NONE",\ % I0 M11\X E1I)\ \\  L2 0   " NONE",\ % I0 L21\X D2I)\ \\  M2 0   " NONE",\ % I0 M21\X E2I)\ \\ $ L3 0 8 . " NONE",\ %8 I0 L31\X D3I)\ \\ B M3 0 V L " NONE",\ %V I0 M31\X E3I)\ \\ ` L4 0 t j " NONE",\ %t I0 L41\X D4I)\ \\ ~ M4 0   " NONE",\ % I0 M41\X E4I)\ \\  A$X,X)," ",\  Z1 Z11000) " Z2 Z21.0E3Z11.0E6Z1137  Z1 Z2999863   \\\  "ANOTHER HAND? ",X$  X$ "YES" d  \" Z2 = ",Z2 ) N131),N231),N331),N431),B$40) ) J131),J231),J331),J431),B031) - 32,32,32,32,32,0,1,2,4,5,6,7,32,8,9,10 6( 12,13,14,15,32,16,17,18,20,21,22,23,32,24,25,26 -2 32,32,32,32,0,1,2,3,5,6,7,32,8,9,10,11 6< 13,14,15,32,16,17,18,19,21,22,23,32,24,25,26,27 0F 4,5,6,7,32,8,9,10,12,13,14,15,32,16,17,18 6P 20,21,22,23,32,24,25,26,28,29,30,31,32,32,32,32 1Z 5,6,7,32,8,9,10,11,13,14,15,32,16,17,18,19 6d 21,22,23,32,24,25,26,27,29,30,31,32,32,32,32,32 0n 32,32,32,32,32,32,32,32,32,0,1,2,32,4,5,6 4x 32,8,9,10,32,12,13,14,32,16,17,18,32,20,21,22 0 32,32,32,32,32,32,32,32,1,2,3,32,5,6,7,32 5 9,10,11,32,13,14,15,32,17,18,19,32,21,22,23,32 4 32,8,9,10,32,12,13,14,32,16,17,18,32,20,21,22 6 32,24,25,26,32,28,29,30,32,32,32,32,32,32,32,32 5 9,10,11,32,13,14,15,32,17,18,19,32,21,22,23,32 6 25,26,27,32,29,30,31,32,32,32,32,32,32,32,32,32   A$"PK0*." & I031\N1I)\\I031\N2I)\ & I031\N3I)\\I031\N4I)\ & I031\J1I)\\I031\J2I)\ & I031\J3I)\\I031\J4I)\ $ "*** THE GAME OF CHECKERS ***" ( "WOULD YOU LIKE INSTRUCTIONS? ",C$  C$"NO""  J\ ," b\"WHO GOES FIRST? (0=ME,1=YOU) ",N , N0V1 6 N1V1 @ v\\@ -J "THE RULES OF CHECKERS ARE AS FOLLOWS:" /T " 1. I ALWAYS PLAY RED, YOU PLAY BLACK." (^ " 2. YOU CHOOSE WHO PLAYS FIRST." 2h " 3. IF YOU HAVE A JUMP, YOU MUST TAKE IT." 4r " 4. IF YOU DON'T TAKE THE JUMP, YOU FORFIET" .| " YOUR MAN, AND YOU LOSE YOUR TURN." , " 5. I ONLY KNOW ABOUT SINGLE JUMPS." 3 \"LET ME KNOW WHEN YOU ARE READY (1=RDY) ",I  I1   2 "THE BLACK SQUARES ARE NUMBERED AS FOLLOWS:"  \N125\" ",\\"RED"  "SYMBOL:",\N115\" ",\ & "0 1 2 3"\"0 = RED PAWN", $ N18\" ",\\"4 5 6 7" % "* = RED KING",\N110\" ",\ & "8 9 10 11"\"P = BLK PAWN", % N17\" ",\\"12 13 14 15" $ "K = BLK KING",\N19\" ",\ $ "16 17 18 19"\". = EMPTY", & N110\" ",\\"20 21 22 23" & N121\" ",\\"24 25 26 27" && N119\" ",\\"28 29 30 31" 0 N124\" ",\\"BLACK" ): \\"I'LL WAIT WHILE YOU COPY THIS" &D "ENTER 1 WHEN YOU ARE READY. ",I N I1 X D )b N011\B0N)2\\N1219\B0N)4\ l N2031\B0N)0\\V1\ (v "THE BOARD NOW LOOKS LIKE THIS:"\ + B$""\N124\B$B$" "\\N0\\B$ + B$""\N122\B$B$" "\\N4\\B$ + B$""\N124\B$B$" "\\N8\\B$ , B$""\N122\B$B$" "\\N12\\B$ , B$""\N124\B$B$" "\\N16\\B$ , B$""\N122\B$B$" "\\N20\\B$ , B$""\N124\B$B$" "\\N24\\B$ , B$""\N122\B$B$" "\\N28\\B$  \\  KNN3)\XB0K).5)1  B$B$A$X,X)" "\  X40B$)\X0  K1X\B$B$" "\\  V0   *  \   x\ &* "YOUR MOVE. ENTER FROM,TO: ",I,J 4 A0\X11\X21 > B0A)1j H N1A)31 R B0N1A))2 \ B0N1A))4 f J1A)31 p B0J1A))4 z IAJJ1A)  X1A\X2J1A)  N2A)31  B0N2A))2  B0N2A))4  J2A)31  B0J2A))4  IAJJ2A)  X1A\X2J2A)  B0A)1j  N3A)31$  B0N3A))2$  B0N3A))4$  J3A)31$  B0J3A))4$  IAJJ3A)  X1A\X2J3A) $ N4A)31j . B0N4A))2j 8 B0N4A))4j B J4A)31j L B0J4A))4j V IAJJ4A) ` X1A\X2J4A) j AA1\A32> t X10 ~ IX1\JX2\X1 ( "PENALTY! MUST JUMP ",I," TO ",J\  X0\X11\  X0\X12\  X0\X13\  X0\X14\  B0I)2 ) "INVALID; YOU LOSE YOUR TURN"\X2\  B0J)4  X0\X11\  X0d  X10  B0J)B0I)\B0I)4\F  X11 )  B0J)B0I)\B0N1J))4\B0I)4\F  X12( ) B0J)B0I)\B0N2I))4\B0I)4\F ( X13< )2 B0J)B0I)\B0N3I))4\B0I)4\F $< B0J)B0I)\B0N4I))4\B0I)4 F A03\B0A)0B0A)1 P \A2831\B0A)2B0A)3 Z \VV\ d X1F n B0I)4\F "x "MY MOVE. ",\A0\X11\X21  B0A)2  B0A)4  B0A)2@  N1A)31  B0N1A))4  B0N1A))1  J1A)31  B0J1A))4  X0\IA\JJ1A)\X11\  X10  X1A\X2N1A)  N2A)31@  B0N2A))4,  B0N2A))1@  J2A)31@  B0J2A))4@ " X0\IA\JJ2A)\ , X10@ 6 X1A\X2N2A) @ N3A)31 J B0N3A))4| T B0N3A))1 ^ J3A)31 h B0J3A))4 r X0\IA\JJ3A)\ | X10  X1A\X2N3A)  N4A)31  B0N4A))4  B0N4A))1  J4A)31  B0J4A))4  X0\IA\JJ4A)\  X10  X1A\X2N4A)  AA1\A32  X10  IX1\JX2\X0\X11  N11000\K0\ ! "I MOVE FROM ",I," TO ",J\  "I CAN'T MOVE - I CONCEDE" !l 2B2B2B2B2BA A@APA`