Subversion Repositories pentevo

Rev

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