First program I ever wrote, sometime in 1968 at Hamilton High School. Computer was a Monroe Monrobot XI. Input was paper tape, output was typewriter type console, and a paper tape punch. I've read that this computer had 1K of 32 bit memory (only 10 bits for addressing). Memory was on a drum based machine. If I remember correctly, a music box like drum was used to load the initial boot code from the paper tape reader. The "high level language" was called QUIKOMP This program solved quadratic equations (it doesn't check for C==0) address instruction comment 1 2 49 output A 2 13 - output tab 3 2 50 output B 4 13 - output tab 5 2 115 output C 6 11 - output return 7 11 - output return 8 24 3 set loop max to 3 (reset loop count = 0) 9 1 - input number into acc (accumulator) 10 25 - add loop count to next operand 11 10 100 [100+loop count] = acc 12 26 9 increment loop count, branch to 9 if loop count < loop max 13 8 100 acc = A 14 16 50 if(acc == 0)goto 50 15 28 100 acc += A (= 2A) 16 10 103 [103] = 2A 17 28 103 acc += [103] (4A) 18 32 102 acc *= [102] (4AC) 19 10 104 [104] = 4AC 20 23 - acc = 0 21 30 101 acc -= B (= -B) 22 10 105 [105] = -B 23 8 103 acc = [103] (2A) 24 34 105 acc = [105]/acc (-B/2A) 25 10 107 [107] = -B/2A 26 8 101 acc = [101] (=B) 27 32 101 acc *= [101] (B^2) 28 30 104 acc -= [104] (B^2 - 4AC) 29 10 106 [106] = B^2 - 4AC 30 14 62 if(acc < 0)goto 62 31 2 41 output R 32 2 64 output space 33 2 41 output R 34 2 19 output T 35 11 - output return 36 2 87 output X 37 2 1 output 1 38 2 64 output space 39 18 88 call [88] 40 28 107 acc += [107] (-B/2A + sqrt(B^2 - 4AC)/2A) 41 5 - output acc 42 11 - output return 43 2 87 output X 44 2 2 output 2 45 2 64 output space 46 8 107 acc = [107] (-B/2A) 47 30 109 acc -= [109] (-B/2A - sqrt(B^2 - 4AC)/2A) 48 5 - output acc 49 12 6 goto 6 branched to 50 if A == 0 50 30 102 acc -= [102] = -C 51 10 110 [110] = acc (-C) 52 8 101 acc = [101] (B) 53 34 110 acc = [110]/acc (-B/C) 54 2 35 output L 55 2 121 output I 56 2 37 output N 57 11 - output return 58 2 87 output X 59 2 64 output space 60 5 - output acc (-B/C) 61 12 6 goto 6 branched to 62 if (B^2-4AC) < 0 62 23 - acc = 0 63 30 106 acc -= [106] -(B^2-4AC) 64 18 88 call [88] 65 23 - acc = 0 66 30 109 acc -= [109] -(sqrt((B^2 - 4AC)/2A) 67 10 111 [111] = acc 68 2 115 output C 69 2 87 output X 70 11 - output return 71 2 41 output R 72 2 64 output space 73 8 107 acc = [107] (-B/2A) 74 5 - output acc 75 11 - output return 76 2 121 output I 77 2 1 output 1 78 2 64 output space 79 8 109 acc = [109] (sqrt(-(B^2 - 4AC)/2A) 80 5 - output acc 81 11 - output return 82 2 121 output I 83 2 2 output 2 84 2 64 output space 85 8 111 acc = [111] -(sqrt(-(B^2 - 4AC)/2A) 86 5 - output acc 87 12 6 goto 6 function ([109] = sqrt(+/- (B^2 - 4AC)) / 2A) 88 27 - acc = sqrt(acc) (sqrt(+/- (B^2 - 4AC)) 89 10 108 [108] = acc 90 8 103 acc = [103] (2A) 91 34 108 acc = [108]/acc (sqrt(+/- (B^2 - 4AC)/2A) 92 10 109 [109] = acc 93 19 - return 94 end