Subversion Repositories pentevo

Rev

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

  1. ;;;
  2. ;;;     Test CP-1600
  3. ;;;
  4.  
  5.         CPU     CP-1600
  6.  
  7.         ORG     X'0000'
  8.  
  9. LABEL0:
  10.         MVOI    R0,123
  11.         MVII    -32768,R1
  12.         ADDI    32767,R2
  13.         SUBI    65535,R3
  14.         CMPI    0,R4
  15.         ANDI    X'AA55',R5
  16.         XORI    'AS',R6
  17.  
  18.         SDBD
  19.  
  20.         GSWD    R0
  21.         NOP
  22.         NOP     1
  23.         SIN
  24.         SIN     2
  25.         RSWD    R1
  26.         HLT
  27.         EIS
  28.         DIS
  29.         TCI
  30.         CLRC
  31.         SETC
  32.  
  33.         J       LABEL0
  34. LABEL1: JE      LABEL1
  35.         JD      LABEL2
  36.         JSR     R4,LABEL3
  37.         JSRE    R5,LABEL0
  38.         JSRD    R6,LABEL1
  39.         JSRE    R6,X'AA55'
  40.  
  41. LABEL2: MVO     R0,DATA0
  42.         MVI     DATA1,R1
  43.         ADD     DATA2,R2
  44.         SUB     DATA0,R3
  45.         CMP     DATA1,R4
  46.         AND     DATA2,R5
  47.         XOR     DATA3,R6
  48.  
  49.         MVO@    R0,R4
  50.         PSHR    R1
  51.         MVI@    R5,R2
  52.         PULR    R3
  53.         ADD@    R6,R3
  54.         SUB@    R6,R0
  55.         CMP@    R4,R1
  56.         AND@    R5,R2
  57.         XOR@    R6,R3
  58.  
  59. L0:     B       LABEL0
  60.         NOPP
  61.         BC      L0
  62. L1:     BLGT    L1
  63.         BNC     L2
  64. L2:     BLLT    L3
  65.         BOV     L4
  66.         BNOV    L5
  67. L3:     BPL     L0
  68.         BMI     L1
  69.         BZE     L2
  70.         BEQ     L3
  71. L4:     BNZE    L4
  72.         BNEQ    L5
  73.         BLT     L0
  74.         BGE     L1
  75. L5:     BLE     L2
  76.         BGT     L3
  77.         BUSC    L4
  78.         BESC    L5
  79.         BEXT    L0,7
  80.  
  81.         MOVR    R0,R1
  82.         TSTR    R2
  83.         JR      R3
  84.         ADDR    R4,R5
  85.         SUBR    R0,R1
  86.         CMPR    R2,R3
  87.         ANDR    R4,R5
  88.         XORR    R6,R0
  89.         CLRR    R1
  90.         INCR    R2
  91.         DECR    R3
  92.         COMR    R4
  93.         NEGR    R5
  94.         ADCR    R6
  95.  
  96.         SWAP    R0
  97.         SLL     R1,1
  98.         RLC     R2,2
  99.         SLLC    R3
  100.         SLR     R0,1
  101.         SAR     R1,2
  102.         RRC     R2
  103.         SARC    R3,1
  104.  
  105. DATA0:  RES     2
  106.         ZERO    3
  107. DATA1:  WORD    -1,32767
  108. DATA2:  BYTE    -32768,65535
  109. DATA3:  TEXT    "Test",13,X'0A',0
  110. LABEL3:
  111.  
  112.         ;; Sample from Manual
  113.         CLRR    R3
  114. GET:    MVI@    R4,R2
  115.         MOVR    R3,R3
  116.         BNZE    CHK
  117.         CMPI    ' ',R2
  118.         BEQ     GET
  119.         INCR    R3
  120. CHK:    SUBI    48,R2
  121.  
  122.         SDBD
  123.         MVII    100,R3
  124.  
  125.         SDBD
  126.         NOP
  127.         XORI    123,R0
  128.  
  129.         BITS    10
  130.         MVII    1023,R0
  131.         MVII    1024,R1
  132.         MVII    65535,R2
  133.  
  134.         BITS    11
  135.         ADDI    2047,R0
  136.         ADDI    2048,R1
  137.         ADDI    4096,R2
  138.  
  139.         ; Map PACKING to PAK/UPAK
  140.  
  141. PAK     macro
  142.         packing on
  143.         endm
  144.  
  145. UPAK    macro
  146.         packing off
  147.         endm
  148.  
  149. CR:     EQU     X'0D'
  150. LF:     EQU     X'0A'
  151.  
  152.         BYTE    127
  153.         WORD    127
  154.  
  155.         ; packing is on by default for CP1600
  156.  
  157.         TEXT    "Hello", CR, LF, 0
  158.  
  159.         ; turn packing off -> one word per character
  160.  
  161.         UPAK
  162.         TEXT    "Hello", CR, LF, 0
  163.  
  164.         ; turn packing on again
  165.  
  166.         PAK
  167.         TEXT    "Hello", CR, LF, 0
  168.  
  169.         END
  170.