File A

Directory of image this file is from
This file as a plain text file

[PROG. 2 FLASH
[=============
[  THIS IS 2 FLASH9.  IT DIFFERS
[  FROM 2 FLASH1 IN THAT IT HAS THREE CALLS TO Q+A.
[SUBROUTINES EMPLOYED
[---------------------
[  QARSUBLI  THIS IS Q+A FOR LAP6.  IT IS RELATIVIZED.
[  DECBIN1  MODIFIED  FOR THREE CHARACTERS
[  RANDOM
[CALLS TO Q+A
[-------------
[ 1.NO. OF TRLS
[   NO. OF VALUES OF VARIABLE TO BE RANDOMMIZED
[   NO. OF TRLS PER VAL OF VARIABLE
[ 2.# OF ATR PER CYCLE
[ 3. ATR  SEC  MSEC 
[BINARY.  ATR, SEC
[------
[DECIMAL. NO. TRLS,  NO. VALS OF VAR., NO OF 
[-------  TRLS PER COND., NO. OF ATR PER CYCLE
[
[
[
[READ "RANDOM" INTO MEM BANK 1
[------------------------------
UMB 3
RDC
4212 [RANQ+AYZ, RAND +Q+A
RDC
5213
[RETURN UMB TO 3
UMB 2
[ON RETURNING FROM LOADING RANDOM INTO CORE CHANGE
[LOCATIONS 20-22 TO NOP SO THAT SUBSEQUENT PRESSES
[OF START 20 DO  NOT JUMP BACK TO REQUIRE LOAD F
[RANDOM AGAIN.
LDAi
NOP
STA
20
STA
21
STA
22
STA
23
STC 24
[RESTORE LOCATION 1032 TO STHi 3. THUS IF PRESS
[START 20 WILL LOSE OLD DATA.
#A29T   LMB 3
JMP 760 [RANQ+AXX
[CALL TO Q+A
[===========
[   FIRST CALL
[   ----------
[     FOR USE IN RANDOM NOS
[       # TRLS
[       # VALUES OF VAR TO BE RANDOMIZED
[       # TRLS PER CONDITION
#A29R   LMB 3
JMP 245 [Q+A 1
A29X [QUEST BUFF
A29Y [ANSW BUFF
SETi 1
4000+A29Y-1
CLR
LDHi 1
JMP A29A [TO DECBIN1
0 [RETURN ER
COM [NROM RET PT FOR DECBIN
STA
A22M [# TRLS CNTR
STC A29J [# TRLS
LDHi 1
JMP A29A
0
COM
STA
A23K
STC A29K [# VALUES OF VAR
LDHi 1
JMP A29A [TO DECBIN1
0 [RETURN FROM DECBIN1 ON ERROR
COM [NORMAL RETURN
STC A29I
SETi 17
#A29I   [# TRLS PER CONDITION
[SET VALUE FOR BCL IN RAND #
LDA
A29K
ADAi
10
APO
JMP A23F
LDAi
7770
STC A23I
JMP A29Z
#A23F   LDAi
7700
STC A23I
JMP A29Z
[GENERATE RANDOM NOS
[===================
#A29Z   SETi 2
#A29J   [-# TRLS
SETi 4
A23D-1 [BEGIN -1 OF TABLE OF RANDOM #S
#A23H   CLR
STC A27A
STC A27B
STC A27C
STC A27D
STC A27E
STC A27F
STC A27G
STC A27H
STC A27I
STC A27J
STC A27K
STC A27L
STC A27M
STC A27N
STC A27O
STC A27P
STC A27Q
SETi 3
#A29K   [- # VALUES OF VARIABLE
[ISSUE CALL TO RANDOM
#A23E   LDAi
1
LMB 3
JMP 20
[RETURN FROM RANDOM HERE ITH RANDOM # IN ACCUM
BCLi
#A23I   [7700 IF MORE THAN 7 VALS OF VAR. 7770 IF LESS THAN
[ 7 VALS OF VAR
[IS IT LEGAL
[-----------
STAi
#A23G   [RANDOM  #
ADA
A29K
ADAi
1
APOi
JMP A23E [IF ILLEGAL
[HAS IT BEEN USED IN THIS BLOCK
[------------------------------
CLR
STC A28Z
#A26A   LDA
A23G
SAEi
#A28Z   [
JMP A26C [NO
LDAi [YES
A27A
ADA
A28Z
STA
A28Y
STC A28X
LDA
#A28Y  
JMP A27Z
STA
#A28X  
LDA
A28Z
JMP A27Y
#A26C   LDAi
1
ADM
A28Z
SAEi
20
JMP A26A [BACK
JMP A26R [OUT, ERROR
[JMP TO STORE  # IN TABLE AND RESET FOR NXT #
#A27Y   STAi 4 [STORE IN TABLE OF #S RANDOMIZD IN BLOCKS
XSKi 2 [CNTR # TRLS
JMP p+2
JMP A29L [TO SECOND CALL
XSKi 3
JMP A23E
JMP A23H
[HAS IT BEEN USED IN THIS BLOCK
[--------------------------------
#A27Z   SAEi
0
JMP A23E
LDAi
1
JMP 0
#A27A  
#A27B  
#A27C  
#A27D  
#A27E  
#A27F  
#A27G  
#A27H  
#A27I  
#A27J  
#A27K  
#A27L  
#A27M  
#A27N  
#A27O  
#A27P  
#A27Q  
#A26R   [HLT,ERRROR
[     SECOND CALL TO Q+A
[     ------------------
[     # ATR PER CYCLE
[     WHICH LINE IS TO BE RANDOMIZED
#A29L   LMB 3
JMP 252 [Q+A 2
A29V [LOC OF FIRST QUEST BUFFER
A29W [LOC OF FIRST ANSWER BUFFR
SETi 1
4000+A29W-1
CLR
LDHi 1
JMP A29A [TODECBIN1 MOD FOR 3 CHARACTERS
0 [RETURN ERROR
COM [NORMAL RETURN POINT FOR DECBIN1
STA
A22F [# ATR PER CYCLE FOR CONVERSION TO 12 BIT
STC A22E [STORE #ATR PER CYCLE FOR EXECUTION
[CALC LINE TO RANDOMIZE
LDHi 1
JMP A29A [TO DECBIN
0 [RETYRN ERROR
STA [NORMAL RETURN PT FOR DECBIN
A21B
LDAi
A23C-1
ADAi
#A21B  
STA
A22S+1
[     THIRD CALL TO Q+A
[     -----------------
[     ATR   SEC   MSEC
[     ---   ---   ----
LMB 3
JMP 257 [Q+A 3
A29S [LOCATION OF QUESTION BUFFER AS TEXT STRING BEGINS AT 9S
A29U [LOCATIONS OF ANSWER BUFFER AS 6 BIT CODE BEGINS AT 9U
[FOURTH CALL TO Q+A
[------------------
[   TYPE RANDOM VALU IN MSEC
LMB 3
JMP 264
A29P [QUEST BUF
A29Q[ANS BUF
[FIFTH CALL TO Q+A
[-----------------
LMB 3
JMP 271
A28B [QUEST BUF
A28C [ANS BUF
[CHANGE LOCCATION 1032 TO LDHi 3 FROM STHi 3 WHEN
[EXITING  FROM Q+A SO THAT WHENN RETURN TO Q+A OLD DATA
[IN DDIISPLAY WILL HAVE BEEN SAVED AND IS RESTORED
LMB 3
JMP 765 [IN RANQ+AXX
#A29N   SNSi 0
JMP A29R [JMP TO FIRST Q+A
SNSi 1
JMP A29M [JMP TO MAIN PROGRAM
JMP A29N
[BEGIN MAIN PROGRAM AT 9M
[========================
[========================
[CONVERSION OF Q+A ANSWERS TO 12 BIT OCTAL
[-----------------------------------------
#A29M   SETi 1
4000+A29U-1
SETi 10 [ATR TABLE
A23A-1
SETi 5 [SEC TABLE
A23B-1
SETi 6 [MSEC TABLE
A23C-1
SETi 7
#A22F   [COM OF  #ATR PER CYCLE
#A28A   CLR
LDHi 1
LDHi 1
ROL 3
STAi 10
LDHi 1
ADM 10
LDHi 1
LDHi 1
ADAi
1
COM
STAi 5
LDHi 1
JMP A29A [TO DECBIN1 [MOD FOR 3 CHAR
0[RETURN ERROR
COM [NORMAL RETURN PT  FOR DECBIN1
STAi 6
XSKi 7
JMP A28A
[FRAME 4  Q+A
[------------
SETi 1
4000+A29Q-1 [FOURTH ANS BUF RAND VAR IN MSEC
SETi 10
A23J-1 [STORE OF MSEC VAL FOR ALL ATRS
SETi 7
#A23K   [COM OF NO VALS OF VAR
#A23L   CLR
LDHi 1
JMP A29A [INTO DECBIN
0 [ERROR RETURN
COM [NORMAL RETURN
STAi 10
XSKi 7
JMP A23L
[CLR FREQ TABLE
[--------------
SETi 17
A23J+17 [FREQ CNT
SETi 16
-160
CLR
STAi 17
XSKi 16
JMP p-2
[CLR RAW DATA TABLE
SETi 17
3177
SETi 16
-200
CLR
STAi 17
XSKi 16
JMP p-2
HLT [TEMP
[RAISE RESUME TO GO ON
SETi 1
4000+A28C-1
SETi 5
A28D-1
CLR
LDHi 1
LDHi 1
ROL 3
STAi 5
LDHi 1
ADM 5
ATR
HLT
[PROGRAM EXECUTION
[==================
SETi 11
A23D-1 [RAND # TABLE
SETi 15
#A22M   [-# TRLS
#A22P   SETi 4 [ATR TABLE
A23A-1
SETi 5 [SEC TABLE
A23B-1
SETi 6 [MSEC TABLE
A23C-1
SETi 7
#A22E   [#ATR PER CYCLE SET FROM FRAME 1 ON SCOPE
[BEGIN
[-----
SNS 2 [BEGIN EXP. IF LOWER SNS 2, GET REST.
JMP p-1
SXLi 0 [S PRESSES TO START TRL.
JMP p-3
[CALC VALUE OF RAND MMEC
#A22N   LDAi 11
ADAi
A23J [BEGIN OF RAND MSEC VAL TABLE
STA
A22K
STC A22G
LDA
#A22G   [COMPUTED ADDR OF MSEC VAL TABLE STORED HERE
STAi
#A22J  
[IS EXT TIMER TIMED OUT
SXLi 12
JMP p-1 [NO
[IS IT RAND CHAN OR DUR
[======================
#A22A   SNSi 5
JMP A28H [RAND CHANN
JMP A22D [RAND DUR
[IS IT IZERO OR 1
#A22D   SAEi [RAND DUR
-0
JMP p+2
JMP A22Q [TO GIVE BLANK
SAEi
-1
JMP A22S [IF MORE THAN 1
#A22R   LDAi [IF 1 STIM
2
ADM
4
LDAi
2
ADM
5
LDAi
2
ADM
6
LDAi
2
ADM
7
JMP A22S [IF RAND DUR
[RAND CHAN
[=========
#A28H   SAEi
-0
JMP p+2
JMP A25D
#A28U   SAEi
-1
JMP p+2
JMP A28E
SAEi
-2
JMP p+2
JMP A25F
SAEi
-3
JMP p+2
JMP A25G
SAEi
-4
JMP p+2
JMP A25H
SAEi
-5
JMP p+2
JMP A25I
SAEi
-6
JMP p+2
JMP A25J
[IF 0, THEN CHAN X,X
#A25D   JMP A25C
JMP A25C
JMP A25C
JMP A28E+3
[IF 1, THEN CHAN X, 43
#A28E   JMP A25C
JMP A25B
JMP A25B
JMP A25C
JMP A25C
JMP A25C
JMP A25C
JMP A25E
[IF 2, THEN CHAN X, 42
#A25F   JMP A25C
JMP A25A
JMP A25A
JMP A28E+3
[IF 3, THEN CHAN 42, 42
#A25G   JMP A25C
JMP A25A
JMP A25C
JMP A25C
JMP A25C
JMP A25A
JMP A28E+6
[IF 4, THEN CHAN 43, 43
#A25H   JMP A25C
JMP A25B
JMP A25C
JMP A25C
JMP A25C
JMP A25B
JMP A28E+6
[IF 5, THEN CHAN 43, 42
#A25I   JMP A25B
JMP A25A
JMP A25C
JMP A25B
JMP A25A
JMP A28E+5
[IF 6, THEN CHAN42, 43
#A25J   JMP A25B
JMP A25A
JMP A25C
JMP A25C
JMP A25C
JMP A25B
JMP A25A
JMP A25E
#A25A   LDAi
44
STAi 4
JMP 0
#A25B   LDAi
43
STAi 4
JMP 0
#A25C   LDAi
64
STAi 4
JMP 0
[IT IS B
#A28W   LDAi
7
ADM
4
LDAi
7
ADM
5
LDAi
7
ADM
6
LDAi
7
ADM
7
JMP A22C
#A25E   SETi 4
A23A-1
SNSi 3
JMP A28W
SNSi 4
JMP A28R
JMP A22C
[IF GREATER THAN 1
#A22S   STA
A23C+1
#A22C   LDAi 5
STC 10
LDAi 4
ATR
JMP A22B [JMP INTO TIMING LOOP
XSKi 7 [RETURN FROM TIMING LOOP
JMP A22C
SNSi 3
JMP A28T [ITS B
JMP A22Q [ITS 1, GO TO RESPONSE
[ITS B
#A28T   SETi 4
A23A-1
SETi 5
A23B-1
SETi 6
A23C-1
SETi 7
-7
#A28S   LDAi 5
STC 10
LDAi 4
ATR
JMP A22B [INTO TIMING
XSKi 7
JMP A28S
JMP A22Q [RESPONSE
[SET EXT TIME
[-------------
#A22Q   SXLi 13
JMP A22U [DONT SET TIMER
LDAi
76
ATR
JMP A22U
[RESPONSE 
[=========
[IST PUSH ON SWITCH FOR RESPONSE
#A22U   SXL 1
JMP A24A [1
SXL 2
JMP A24L
SXL 7
JMP A24M
JMP A22U
[2ND PUSH OF SWITCH
#A24L   SXL 2
JMP p-1
JMP A24Z [300 MSEC
SXL 1
JMP A24B [2 THEN 1
SXL 2
JMP A24H [2 THEN 2
SXL 7
JMP A24N [2 THEN 3
JMP A24L +3
#A24M   SXL 7
JMP p-1
JMP A24Z [300 MSEC
SXL 1
JMP A24G [3 THEN 1
SXL 2
JMP A24J [3 THEN 2
SXL 7
JMP A24I [3 THHEN 3
JMP A24M+3
[WASTE TIME
#A24Z   LDA
0
STC A24Y
LDAi
A21H-1 [1H CONTAINS -454 FOR 300 MSEC
STC 6
LDAi
7776 [0 SEC
STC 10
JMP A22B [INTO TIMING
#A24Y   [JMP OUT
[RESP 1. CHAN X, X --BLANK
#A24A   LDAi
0
STC A24O
LDAi
20
JMP A22K-1
[RESP 2 THEN 1, CHAN X, 43
#A24B   LDAi
1
STC A24O
LDAi
40
JMP A22K-1
[RESP 3 THEN 1, CHAM X, 42
#A24G   LDAi
2
STC A24O
LDAi
60
JMP A22K-1
[RESP 3 THEN 3, CHAN 42, 42
#A24I   LDAi
3
STC A24O
LDAi
100
JMP A22K-1
[RESP 2 THEN 2, CHAN 43, 43
#A24H   LDAi
4
STC A24O
LDAi
120
JMP A22K-1
[RESP 2 THEN 3, CHAN 43, 42
#A24N   LDAi
5
STC A24O
LDAi
140
JMP A22K-1
[RESP 3 THEN 2, CHAN 42, 43
#A24J   LDAi
6
STC A24O
LDAi
160
ADAi
#A22K   [AD OF RAND MSEC VAL
STC A22L
LDAi
1
ADM
#A22L   [AD OF MEM OF FR DST THAT GETS INCREMENT
LDA
11
ADAi
200
STA
A22H
LDAi
#A24O   [# OF RESP
STA
#A22H   [RAW DATA RESP
XSKi 15
JMP A22P [NXT TRL
LDAi
77
ATR
HLT [TEMP
JMP A24C [TO TYPEOUT
[TIMING LOOP
[-----------
#A22B   LDA
0
STC A21M
LDAi 6
AZE
JMP p+2
JMP A21K
STC A21F
JMP A21A
NOP
#A21K   LDAi
-1747
STC A21F
XSKi 10
JMP p+2
JMP A21M
SETi 3
-70
XSKi 3
JMP p-1
JMP A21A
#A21M   [JMP OUT OF LOOP FROM HERE
JMP A21K
#A21A   LDA
0
ADAi
1
STC A21E
SETi 3
-171
XSKi 3
JMP p-1
SETi 2
#A21F   [#MSEC
XSKi 2
JMP A21C
#A21E   [JMP  TO 1K OR 1M+1
#A21C   LDA
0
ADAi
-2
STC A21D
NOP
SETi 3
-202
XSKi 3
JMP p-1
#A21D  
[CONVERT FREQ DIST TO DECIMAL,
[STORE IN PRINT BUFFER, AND
[TYPE FREQ DIST
[============================
[============================
#A24C   JMP A24T [TYPE CRLF
JMP A24T
#A24K   SETi 6
A23J-1 [-1 FROM BEGIN OF RAND MSEC STORE
SETi 7
A23J+17 [IST FR DST
SETi 10
A23J+37 [2ND FR DST
SETi 11
A23J+57 [3RD FR DST
SETi 12
A23J+77 [4TH FR DST
SETi 13
A23J+117 [5TH FR DST
SETi 14
A23J+137 [6TH FR DST
SETi 15
A23J+157 [7TH FR DST
LDA
A23K
ADAi
-1
STC A21G
#A24D   SETi 4
#A21G   -21 [# ROWS IN FR DST
#A24E   SETi 1
3700 [BEGIN STORE PRINT BUFFER
XSKi 4
JMP A24F [TO LOAD BUFFER
HLT [TEMP
[TO WRITE OVER RANDOM [FIRST RAISE RESUME  ON CONSOLE
[----------------------------------------------------
[             ----------------------------------------
UMB 3
WRC
4212
WRC
5213
UMB 2
HLT [FINAL HLT
[LOAD PRINT BUFFER
[-----------------
#A24F   SETi 5
-10
LDAi
LDAi 6
STC A24P
LDAi 6
COM
#A24S   JMP A28J
LDAi
14
STHi 1
STHi 1
XSKi 5
JMP p+2
JMP A24U
LDAi
1
ADM
A24P
#A24P   [LDAi...
JMP A24S
[TYPE FR DST
[-----------
#A24U   SETi 1
3700
SETi 5
-66
LDHi 1
JMP A27T [TECSUB
XSKi 5
JMP p-3
JMP A24T
JMP A24E [NXT LINE OF FRR DST
[FOR WASTE TIME BET RESPONSE SW
#A21H   -454 [300 MSEC
$2700
[STORE OF ANSWERS FROM Q+A CONVERTED TO 12 BIT CODE
[--------------------------------------------------
#A23A   [STORE OF ATR VALUES
0
0
0
0
0
0
0
0
0
0
0
0
0
#A23B   [STORE OF SECOND VALUS
0
0
0
0
0
0
0
0
0
0
0
0
0
#A23C   [STORE OF MSEC VALUES
0
0
0
0
0
0
0
0
0
0
0
0
0
$3500
#A23J   [STORE OF MSEC VAL TO BE RAND
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
[RANDOM # TABLE
[==============
$3000
#A23D  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
[SECOND QUESTION BUFFER
[---------------
$2010
#A29V   "# OF CALLS
TO ATR
PER CYCLE
"
""3"
"
 
LINE # IN NXT 
FRAME FOR WHICH
MSEC IS RANDOM"
"
""
"3
 
 
TYPE ANS. IN DEC.
----------------: "
[SECOND ANSWER BUFFER
[--------------------
#A29W   0
0
0
0
0
[THIRD QUESTION BUFFER
[----------------------
#A29S   "ATR SEC MSEC  SEC LESS
 "
"1""
"2""
"1""
"3  THAN 10.
 2"
""2"
""1"
""3"
"  MSEC
 "
"3""
"2""
"1""
"3  IN DEC.
 "
"4""
"2""
"1""
"3
 5"
""2"
""1"
""3"
"
 "
"6""
"2""
"1""
"3
 7"
""2"
""1"
""3"
"
 "
"8""
"2""
"1""
"3
 9"
""2"
""1"
""3"
"
1"
"""
"2""
"1""
"3
11"
""2"
""1"
""3"
"
1"
"2""
"2""
"1""
"3
13"
""2"
""1"
""3"
"
1"
"4""
"2""
"1""
"3:"
[THIRD ANSWER BUFFER
[---------------------
#A29U  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
[FOURTH QUEST BUF
[----------------
#A29P   " 1"
""3"
"  "
"2""
"3
  "
"3""
"3  4"
""3"
"
  5"
""3"
"  "
"6""
"3
  "
"7""
"3  8"
""3"
"
  9"
""3"
" 1"
"""
"3
 1"
"1""
"3 12"
""3"
"
 13"
""3"
" 1"
"4""
"3
 1"
"5""
"3 16"
""3"
": "
[FOURTH ANS BUF
[--------------
#A29Q   0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
[FIFTH QUEST BUFF
[---------------
#A28B   "LIGHT ON"
""2"
": "
[FIFTH ANS BUF
[------------
#A28C   0
0
0
#A28D   [SAVE FOR FIFTH FROME USE IN CONV
0
[FIRST QUESTION BUFFER
[-------------------
#A29X   "NO TRL"
"S""
"3
NO. VALS OF VAR."
""3"
"
N0. TRLS PER COND"
".""
"3
 
 
TYPE ANS. IN DEC.
----------------
 
MAX # TRLS IS 128 DEC
 
MAX # OF VALS PER VAR
=16 OCTAL
=14 DECIMAL: "
[FIRST ANSWER BUFFER
[---------------------
#A29Y   0
0
0
0
0
0
0
$1500
[PROG TYPDEC WITH BINDEC LABELS CHANGED FROM 
[9 TO 8.  ALSO ENTRY ELIMINATED
[MOD BY L. MATIN
[ ****** BINDEC 1 ******
[BINDEC 1
[   DJN   7| 5|68
[SIGNED 12-BIT BINARY TO DECIMAL CONVERSION
[  RIGHT JUSTIFIED
[  ENTER WITH BINARY NUMBER IN ACCUMULATOR VIA A JMP 9J
[  DECIMAL KBD CODES STORED VIA IR 1
[  LEADING ZEROES SUPPRESSED
[  NON-INTERRUPTABLE
[  ALSO USES IR 2,3
[  USES TAGS 9J-9Q
[CHANGED BY L. MATIN
[TO TAGS 8J-8Q
[
[TIMING- CLASSIC LINC
[   1.4 TO 3.5 MSEC
[
#A28J   SCRi1 [SIGN TO LINK BIT
ROLi1
APOi [MAKE NEGATIVE
COM
STC A28N [SAVE IT
ADD 0 [SAVE RETURN
STC A28P
LDAi [LOAD POSSIBLE SIGNS
#A28K   "- "
LZE [GET CORRECT SIGNS
ROR 6
STHi1 [AND STORE IT
SETi2 [SET ADDEND POINTER
A28Q-1
JMP A28M [CONVERT A DIGIT
AZE [IS IT A LEADING ZERO
JMP A28L [NO
ADD A28K [YES: MOVE THE SIGN RIGHT ONE PLACE
STH 1 [STORE A SPACE OVER THE SIGN
LZE [GET THE CORRECT SIGN
ROR 6
STHi1 [AND STORE IT
JMP p-10 [  THEN CONTINUE CONVERTING
#A28L   STHi1 [STORE A DIGIT
JMP A28M [CONVERT NEXT DIGITI
JMP A28L [AND STORE IT
[LITTLE SUBROUTINE TO DO THE CONVERSION
#A28M   LDA [SAVE RETURN
0
STC A28P-2
SETi3 [SET DIGIT COUNTER
1777
XSKi2 [MOVE ADDEND POINTER
ADD A28N [LOAD THE VALUE
XSKi3 [BUMP COUNTER
STAi [SAVE REMAINING PART
#A28N   **
ADA 2 [TRIAL ADD
APO [STILL NEGATIVE
JMP p-5 [YES: COUNT AND ADD AGAIN
LDA [NO:  GET THE COUNTER
3
SROi [LAST DIGIT
3567
JMP ** [NO:  BACK TO THE SUBROUTINE
STHi1 [YES: STORE IT
#A28P   JMP ** [    AND RETURN TO CALLING PGM
[ADDEND TABLE
#A28Q   1750
 144
  12
   1
[END BINDEC 1
[ 7| 5|68
[TECSUB
[TELETYPE SUB
[FOR DEC INT-
[ERFACE----
[TAGS 4T 5T
[6T 7T AND
[INDEX REG.
[16 AND 17
#A27T   SET 17
0
[FORM RETURN
ROL 4
[CODE TEST
APO
JMP A26T-1
[TELETYPE CODE
ROR 4
[LINC CODE
SAE i
12
[EOL TEST
JMP p+4
[NOT EOL
LDA i
5215
[MAKE CR LF
JMP A26T
[OUTPUT
ADA i
-11
[NUMBER TEST
APO i
JMP p+4
[NOT A NUMBER
ADA i
[CONVERT NUMBER
271
JMP A26T
[OUTPUT
ADA i
-12
[1ST SPECIAL
[CHARACTER TEST
APO i
JMP p+6
[NOT SPECIAL
[CHAR. TYPE 1
ADA i
A25T+10
STC 16
[CONVRT SPECIAL
[CHARACTERS
ADA 16
JMP A26T
[OUTPUT
ADA i
-32
[LETTER TEST
APO i
JMP A27T+27
[CONVRT SPECIAL
[CHAR. TYPE II
ADA i
[CONVRT LETTER
332
JMP A26T
[OUTPUT
ROR 4
#A26T   APO i
[CR LF--HUH
JMPp+4
514
LDA i
212
514
[ PRNT CHAR.
JMP 17
[RETURN
#A24T   SET 17
0
LDA i
5215
JMP A26T+2
#A25T   207
[BELL FOR DEL
240
[SPACE
246
[AMPERSAND FOR 
[ i
247
[APOSTROPHE
[FOR p
255
[-
253
[+
257
[SLASH
243
[ TAG SYMBOL
0
[NO OUTPUT FOR
[CASE
275
[=
300
[AT SIGN FOR u
254
[COMMA
256
[PERIOD
244
[DOLLAR SIGN
[FOR ORIGN SIGN
333
[COMMENT SYMBOL
[DECBIN 1
[  DJN  9|20|68
[
[DECIMAL-TO-SINGLE PRECISION BINARY
[  CONVERTS FROM -4095 TO +4095
[
[CALLING SEQUENCE
[  JMP 9A
[  ERROR RETURN
[  NORMAL RETURN
[
[IR1 MUST BE SET JUST BEFORE THE FIRST CH
[  DECBIN 1 LOOKS AT 5 CHARACTERS
[  USES IR1-4
[       TAGS 9A-9G
[  INTERRUPTABLE
[
[TIMING- CLASSIC LINC
[        0.7 - 2.1 MSEC
[
#A29A   SET 3 [SAVE RETURN
0
SETi4 [CH COUNTER
#A29H   -4 [MOD L. MATIN
SETi2 [MINUS FLAG
1777
CLR
#A29B   STC A29C [SAVE RESULT
XSKi4 [ENOUGH CHS DONE
JMP A29D [NO
LDAi3 [YES: INDEX RETURN
LDAi [LOAD RESULT
#A29C    **
XSK 2 [MINUS
COM [YES
JMP 3 [RETURN
#A29D   LDHi1 [LOAD NEXT CH
SHDi [SPACE
"  "
JMP A29B+1 [     IGNORE
SHDi [PLUS
"+ "
JMP A29B+1 [     IGNORE
SHDi [MINUS
"- "
JMP A29G [     SET FLAG
COM [NONE OF THOSE
ADD A29F
APO [IS IT A LEGAL DIGIT
JMP 3 [NO:  ERROR RETURN
LDH 1 [YES: SAVE IT
STC A29E
ADD A29C
MUL [ X # BASE
4|A29F
SCR 1
AZE [OVERFLOW
JMP 3 [YES: ERROR RETURN
ZTA [NO:  RETRIEVE IT
ROL 1
ZZZ
ADD A29F+1 [+1
LAMi
#A29E    **
LZE [OVERFLOW
JMP 3 [YES: ERROR RETURN
JMP A29B [NO:  CONTINUE
#A29F    12  [NUMBER BASE
 1
#A29G   XSKi2 [SET MINUS FLAG
JMP A29B+1
[END DECBIN 1



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search