Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1126 | savelij | 1 | cpu f3850 |
2 | page 0 |
||
3 | |||
4 | adc |
||
5 | ai 55h |
||
6 | am |
||
7 | amd |
||
8 | as 5 |
||
9 | asd 10 |
||
10 | |||
11 | bc $ |
||
12 | bf 10,$+1 |
||
13 | bm $-2 |
||
14 | bnc $+3 |
||
15 | bno $-4 |
||
16 | bnz $+5 |
||
17 | bp $-6 |
||
18 | br $+7 |
||
19 | br7 $-8 |
||
20 | bt 3,$+9 |
||
21 | bz $-10 |
||
22 | |||
23 | ci 55h |
||
24 | clr |
||
25 | cm |
||
26 | com |
||
27 | |||
28 | dci 55aah |
||
29 | di |
||
30 | ds s |
||
31 | |||
32 | ei |
||
33 | |||
34 | in 07h |
||
35 | inc |
||
36 | ins 4 |
||
37 | |||
38 | jmp 55aah |
||
39 | |||
40 | li 88h |
||
41 | lis 5 |
||
42 | lisl 4 |
||
43 | lisu 6 |
||
44 | lm |
||
45 | lnk |
||
46 | lr a,ku |
||
47 | lr a,kl |
||
48 | lr a,qu |
||
49 | lr a,ql |
||
50 | lr ku,a |
||
51 | lr kl,a |
||
52 | lr qu,a |
||
53 | lr ql,a |
||
54 | lr k,p |
||
55 | lr p,k |
||
56 | lr a,is |
||
57 | lr is,a |
||
58 | lr p0,q |
||
59 | lr q,dc |
||
60 | lr dc,q |
||
61 | lr h,dc |
||
62 | lr dc,h |
||
63 | lr w,j |
||
64 | lr j,w |
||
65 | lr a,10 |
||
66 | lr i,a |
||
67 | |||
68 | ni 0feh |
||
69 | nm |
||
70 | nop |
||
71 | ns i |
||
72 | |||
73 | oi 01h |
||
74 | om |
||
75 | out 55h |
||
76 | outs 7 |
||
77 | |||
78 | ; I/O addresses within the CPU module (0..3) may only |
||
79 | ; be accessed via INS and OUTS: |
||
80 | |||
81 | expect 450,450 |
||
82 | out 1 |
||
83 | in 0 |
||
84 | endexpect |
||
85 | |||
86 | pi 55aah |
||
87 | pk |
||
88 | pop |
||
89 | |||
90 | sl |
||
91 | sl 1 |
||
92 | sl 4 |
||
93 | sr |
||
94 | sr 1 |
||
95 | sr 4 |
||
96 | st |
||
97 | |||
98 | xdc |
||
99 | xi 0ffh |
||
100 | xm |
||
101 | xs d |
||
102 | |||
103 | ; ---- sample memcpy() from F8 Programmer's Manual |
||
104 | |||
105 | BUFA equ 800h ; SET THE VALUE OF SYMBOL BUFA |
||
106 | BUFB equ 8a0h ; SET THE VALUE OF SYMBOL BUFB |
||
107 | org 100h |
||
108 | one: dci BUFA ; SET DCO TO BUFA STARTING ADDRESS |
||
109 | two: xdc ; STORE IN DC1 |
||
110 | three: dci BUFB ; SET DCO TO BUFB STARTING ADDRESS |
||
111 | four: li 80h ; LOAD BUFFER LENGTH INTO ACCUMULATOR |
||
112 | five: lr 1,a ; SAVE BUFFER LENGTH IN SCRATCHPAD BYTE 1 |
||
113 | loop: lm ; LOAD CONTENTS OF MEMORY BYTE ADDRESSED BY DCO |
||
114 | six: xdc ; EXCHANGE DCO AND DC1 |
||
115 | seven: st ; STORE ACCUMULATOR IN MEMORY BYTE ADDRESSED BY DCO |
||
116 | eight: xdc ; EXCHANGE DCO AND DC 1 |
||
117 | nine: ds 1 ; DECREMENT SCRATCHPAD BYTE 1 |
||
118 | ten: bnz loop ; SCRATCHPAD BYTE 1 IS NOT ZERO. RETURN TO LOOP |
||
119 | |||
120 | ; ---- taken from https://www.chessprogramming.org/Fairchild_F8, with some |
||
121 | ; ---- OCR mistakes fixed ('OD' -> '0D', 'LR AS' -> 'LR A,S') |
||
122 | ; ANSWER-BACK PROGRAM FOR MOSTEK F8 EVALUATION KIT |
||
123 | ; D. EDWARDS, ELECTRONICS AUSTRALIA 19/10/76 |
||
124 | |||
125 | ORG 400h |
||
126 | INIT: |
||
127 | LI 0FFh ; LOAD AC WITH FF |
||
128 | LR IS,A ; INITIALIZE ISAR TO 3F |
||
129 | LR 4,A ; COPY AC INTO REG 4 |
||
130 | DS 4 ; DECREMENT REG 4 TO FE |
||
131 | LR 6,A ; COPY AC INTO REG 6 |
||
132 | LIS 01h ; LOAD AC WITH 01 |
||
133 | OUTS 6 ; TRANSFER AC TO TIMER PORT TO ENABLE EXT INT |
||
134 | EI ; ENABLE I/O ROUTINES |
||
135 | START: PI 03F3h ; CALL TTYIN SUBROUTINE |
||
136 | LR A,S ; COPY CHAR INTO AC FROM RS |
||
137 | CI 0Dh ; COMPARE WITH CR |
||
138 | BZ MESSAGE ; JUMP TO MESSAGE IF CR |
||
139 | PI 035Dh ; SEND CHAR TO TTYOUT SUBROUTINE |
||
140 | BR START ; LOOP BACK TO START |
||
141 | MESSAGE:DCI MSG ; LOAD DC WITH MESSAGE ADDRESS |
||
142 | ANSWER: CLR ; CLEAR AC |
||
143 | AM ; ADD CHAR TO AC AND INC DC |
||
144 | BZ START ; LOOP BACK TO START |
||
145 | LR S,A ; COPY CHAR INTO RS |
||
146 | PI 035Dh ; SEND CHAR TO TTYOUT SUBROUTINE |
||
147 | BR ANSWER ; LOOP BACK TO ANSWER |
||
148 | MSG: db 0Dh, 47h, 4Fh ; START OF ANSWER BUFFER |
||
149 | db 20h, 41h, 57h |
||
150 | db 41h, 59h, 2Ch |
||
151 | db 20h, 49h, 27h |
||
152 | db 4Dh, 20h, 42h |
||
153 | db 55h, 53h, 59h |
||
154 | db 21h, 0Dh, 00h ; ANSWER MUST END WITH A ZERO BYTE |