Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  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
  155.