d20ea87f03d9c0d106db149bbb1c02fd5bbb2062
[h316.git] / programs / tools / src / copy.asm
1 * COPY - COPY PTR TO PTP
2 *
3 *
4 *
5 *
6 SUBR COPY,STRT
7 REL ASSEMBLE IN RELOCATABLE MODE
8 ORG 0
9 *
10 ***********************
11 * MAIN LOOP
12 STRT
13
14 OCP '102 START PTR ???
15 OCP '104 START PTP ???
16 LDA ABUF FIRST BUFFER ADDRESS
17 STA WBUF TO WRITE POINTER
18 STA RBUF TO READ POINTER
19
20 JST READ
21 JST WRIT
22 JMP STRT
23 *
24 *
25 ***********************
26 * READ ROUTINE
27 READ DAC **
28 SS1 SKIP IF SW1 SET
29 JMP* READ RETURN
30 LDA RPTR READ POINTER
31 CMP WPTR COMPARE WRITE POINTER
32 SKP SKIP
33
34
35 ***********************
36 * WRITE ROUTINE
37 WRIT DAC **
38 SS2 SKIP IF SW1 SET
39 JMP* WRIT RETURN
40
41
42 RPTR DAC ** READ POINTER
43 WPTR DAC ** WRITE POINTER
44 ABUF OCT '1000 FIRST BUFFER LOCATION
45 EBUF OCT '2000 LAST BUFFER LOCATION
46
47
48
49 STRT JMP ST2 JUMP OVER CONSTANTS
50 ANFA OCT 20
51 ENDE DAC STRT-1
52 ST2 LDA ANFA LOAD START ADDRESS
53 STA PTR
54 LOOP CRA
55 STA* PTR STORE THE ZERO
56 LDA PTR
57 SUB ENDE TEST FOR
58 SNZ LAST LOCATION?
59 JMP RDY IF LAST LOCATION, END
60 IRS PTR
61 JMP LOOP NO OVERFLOW
62 HLT OVERFLOW OCCURED
63 RDY OCP '104 ASR START
64 *
65 LDA KO
66 JST PRNT
67 LDA LFCR
68 JST PRNT
69 HLT
70 JMP STRT RESTART :-)
71 *******
72 KO BCI 1,KO
73 LFCR OCT '6412
74 *******
75 PRNT DAC **
76 OTA 4 OUTPUT CHAR
77 JMP *-1 REPEAT UNTIL POSSIBLE
78 ICA NEXT CHAR
79 OTA 4
80 JMP *-1
81 JMP* PRNT RETURN
82 *****
83 PTR DEC 0 LOCATION POINTER
84 *****
85 END