A large commit.
[pdp8.git] / sw / src / pascal / CONV16.PS
diff --git a/sw/src/pascal/CONV16.PS b/sw/src/pascal/CONV16.PS
new file mode 100644 (file)
index 0000000..ac2d72e
--- /dev/null
@@ -0,0 +1,29 @@
+PROGRAM CONVERSION(INPUT,OUTPUT);
+
+   CONST B=16;
+   VAR  X: INTEGER;
+
+   PROCEDURE Q(X: INTEGER);
+      BEGIN
+        IF X<10 THEN WRITE(X:1)
+                ELSE CASE X OF
+                        10: WRITE("A");
+                        11: WRITE("B");
+                        12: WRITE("C");
+                        13: WRITE("D");
+                        14: WRITE("E");
+                        15: WRITE("F");
+                     END
+        END;
+
+   PROCEDURE P(X: INTEGER);
+      BEGIN
+        IF X>=B THEN P(X DIV B);
+        Q(X MOD B)
+      END;
+
+BEGIN
+   READ(X);
+   WRITE(X,"=");
+   P(X)
+END.