complex-docs/docs/original/comandor-13.txt

296 lines
13 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Application 1: The table of reserved mnemonics.
═════════════════════════════════════════════════
1)the directives
──────────────
ORG EQU LINK DW ACCEPT INCLUDE MACRO
2)the commands
────────────
BC1 and BP2
ADD SUB OR AND XOR NAND NXOR
ED4
JZ CJS JMAP CJP PUSH JSRP CJV JRP
RFCT RPCT CRTN CJPP LDCT LOOP CONT TWB
BH1
READ CLR SET RESET DI EI
external devices
R W IN OUT EWH EWL EWA EWB
prohibition-permittion
OEY CEM CEN CEM_C CEM_Z CEM_N CEM_V RLD CCE CI EV
the else
LOAD FIELD
3)operands
────────
operation in the ALU
RQ Z R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 RA RB
BUS_D NIL
inputting the type of the shift
SR SL SRA SLA SRL SLL SRWA SLWA SRWL SLWL
inputting of the carry sign
Z RM_C RN_C
inputting of the exit of the code of the conditions
Z NZ ZO CO NO VO
RN_Z RN_C RN_N RN_V
RM_Z RM_C RM_N RM_V NXORV ZORC
command FIELD
ABSOLUTE BUS_D BC1 BP2 REGS ALU BY4 BH1 CU MEM
operations in the device of the processing of the interruptions
MR SR IR VR
operations of the boot of registers of marks
RM RN FLAGS Z NZ
inputting of switchings of the conditions
CT INT RDM RDD IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 Z NZ
4)the else
────────
CP NOT @ . , ; :
Application 2: The Reports about errors.
══════════════════════════════════════════
1) "," Is Expected;
2) ";" Is Expected;
3) "." Is Expected;
4) ":" Is Expected;
5) "," or ";" are Expected;
6) The Mnemonics is not recognized;
7) The Directive is not recognized;
8) The Command is not recognized;
9) The Mark is not determined;
10) Double determination of marks;
11) Inadmissible using of reserved mnemonics;
12) Tne Number too big;
13) Incidental end of file;
14) Incorrect receiver of the result in ALU;
15) Incorrect inputting of operand in ALU;
16) Incorrect of operand of shift;
17) Incorrect operand of carrying;
18) For the operand of the condition the switching is not given;
19) Incorrect operand of condition;
20) Incorrect operand of the block of the interruptions;
21) Incorrect operand of the booting of the register of marks;
22) Incorrect operand of field;
23) Invalid using of the operand of the modification;
24) Repeated using of the data field;
25) Overflow of the upper addresses of operative memory;
26) "{" Is Expected;
27) Incorrect operand of the directive LINK;
28) Number of fakt. and formal operands of macro does not coincide;
29) Incorrect operand of directive ACCEPT;
30) The Cross determination of macros;
31) Wrong parameter of the command line;
32) is reserved for errors of file operations;
33) Operand of the condition is Expected;
34) Repeated accomodation of microinstructions;
35) Address of accomodation of the microinstructions is more then limiting.
Application 3: Inputting of fields of the microinstruction by default.
══════════════════════════════════════════════════════════════════
1 )field of constants:
- D = 0; (data bus-transmittion of the data in ALU: 0)
- OED=1; (permittion of the presenting of the data from field D
on data bus:is not allowed)
2)field of DPU (daya processing unit):
BC1: - MI = 64; ( the microinstruction: NOP; R+S+CI; A,Q)
- A = 0; ( address of RGU for writing in Rg A: R0)
- B = 0; ( address of RGU for writing/reading Rg B: R0)
- OE = 1; ( the permittion of the issue of the result on data
niche:is not allowed)
BP2: - MI = 0; ( microinstruction)
- E.Z = 0; ( permittion of writing the marks in RM: resolved)
- E.N = 0;
- E.C = 0;
- E.V = 0;
- OECT= 1; (permittion of issue of code of condition:not resolved)
- CEM = 1; (permittion of writing the marks in Rg M and N:
not resolved)
- CEN = 1;
- SE = 1; (the permittion of performing the shift:not resolved)
External registers of inputting of the operand of ALU:
- MSA = 0; (selection of the sourse of operands in ALU (MIR or RA,
RB): MIR)
- MSB = 0;
- EWA = 1; (recordimg in registers of selection of operands
of ALU: no)
- EWB = 1;
3)field BMM and BPI:
ED4: - MI = 14; (Microinstruction: CONT)
- CCE = 1; (permittion of analysis of the condittion: prohibited)
- COM = 1; (iverting of the entering of the condition: invert)
- CI = 1; (forming the following address of the microinstruction)
- RLD = 1; (the permittion of the recording in register of the
address/counter:prohibited)
Multiplexor of the selection of the signal of the condition:
- MS = 0;
BH1: - MI = 0; (Microinstruction: RESET)
- EINS = 1; (The Permittion of acceptance of instruction:
not resolved)
- EV = 1; (The Permittion of issue of address of interruption of
vector on DB from ROM: not resolved).
4)field OM, ED, RA:
ED: - I = 1; (the signal of the reading from external device:
not resolved)
- O = 1; (the signal of recording on external device:
not resolved)
MM: - R = 1; (the signal of the reading from memory: not resolved)
- W = 1; (the signal of the recording in memory: not resolved)
RgA - EWH = 1; (the signals of recording on register of the address of
senior and younger digits: not resolved)
- EWL = 1;
Applications 4: Example of the program.
══════════════════════════════════════
\ EXAMPLE.ESM
\ Program executes the following actions:
\ ---------------------------------------
\ 1) Selection the command of the microprocessor from memory
\ 2) Unpacking the command and making decision about execution
\ 3) Executing the command when command corresponds to pattern
\ 4) Forming the address of the following microinstruction
\ View of the command of the microprocessor
\ -----------------------------------------------
\ ┌────┬────┬────────┬────────────────┐
\ │xxxx│xxxx│xxxxxxxx│xxxxxxxxxxxxxxxx│ - Length is 4 bytes
\ └────┴────┴────────┴────────────────┘
\    
\ │ │ │ │
\ │ │ │ └─── 1..15 - a direct operand
\ │ │ └──────────────── 16..23- is not in use
\ │ └─────────────────────── 24..27- RGU,that keeps address of receiver
\ └──────────────────────────── 28..31- code of operation
\ Exemples of the patterns of the command
\ --------------------------------------
\ ┌────┬────┬────────┬────────────────┐
\ │0101│1xxx│........│xxxxxxxxxxxxxxxx│ - Length is 4 bytes
\ └────┴────┴────────┴────────────────┘
\    
\ │ │ │ │
\ │ │ │ └─── any value
\ │ │ └──────────────── is not in use
\ │ └─────────────────────── any one of registers R8..R15 of the block ALU
\ └──────────────────────────── operation of the adding
\ Initial adjustments
\ --------------------
EQU counter : R0 \ let R0 serves as command counter
ACCEPT counter : 0FEh \ let the current command is located in memory by
\ address 0FEh
DW 0FEh : 5800h,0100h \ command of the processor
ACCEPT R8 : 0123h \ by example of RGU, that keeps address of the
\ receiver let this address will be 123h
DW 0123h : 1111h \ let the cell-receiver contains number 1111h
EQU com_reg1 : R1 \ let R1 serves as register of commands 1
EQU com_reg2 : R2 \ let R2 serves as register of commands 2
EQU result : R3 \ let R3 serves as buffer of result of operation
LINK L[1] : RDM \ switching the signal of readiness of memory on
\ the first entering of the Multiplexor of the Conditions
LINK L[2] : CT \ switching the signal of the sign of the execution
\ of operations in ALU
EQU selection : 10 \ the address of the subprogram of the selection of
\ the command of microprocessor from memory
EQU unpacking : 20 \ similarly for s/p of unpackings
EQU execution : 30 \ similarly for s/p of execution
EQU fafc : 40 \ similarly for s/p of forming of the address of
\ the following command
EQU error : 50 \ s/p of processing the opcode that differs from
\ exemple
LINK RB : 8,9,10,11 \ adjust RB on lines 8..11 of DB, where
\ the number of RGU, keeping the address of the receiver goes
\ Macros, used for usually repeated commands
\ ---------------------------------------------
MACRO MOV MOV receiver, the source:
{ADD receiver, Z, source;}
MACRO READ_MEM receiver :
{R; MOV receiver, BUS_D; CJP RDM, CP;}
MACRO WRITE_MEM source :
{W; MOV NIL, source; OEY; CJP RDM, CP;}
\ subprogram of the selection of the command of microprocessor from memory
\ -------------------------------------------------------------------
ORG selection
{MOV NIL, counter; OEY; EWL;} \reading the first byte of the command
{AND NIL, counter, Z; OEY; EWH;}
{READ_MEM com_reg1;}
{ADD counter, 1;}
{MOV NIL, counter; OEY; EWL;} \read the second and the third byte of the command
{AND NIL, counter, Z; OEY; EWH;}
{READ_MEM com_reg2;}
{SUB counter, Z;}
{CJP NZ, unpackings;} \move to s/p of unpacking of the command
\ subprogram of the unpacking of the command of the microprocessor
\ --------------------------------------------------------------
ORG unpacking
{AND result, com_reg1, 1111000000000000%;}
{XOR result, 0101000000000000%; LOAD RM, FLAGS;}
{CJP not RM_Z, error;}
{MOV NIL, com_reg1; OEY; WB;} \ write the number of RGU, keeping address of
\the receiver of the result in register RB
{MOV NIL, RB; OEY; EWL;} \read the receiver of a result in RGU into a buffer
{AND NIL, counter, Z; OEY; EWH;}
{READ_MEM result;}
{CJP NZ, executions;} \move on s/p of the executing of the command
\ subprogram of the executing the command of the microprocessor
\ ----------------------------------------------------------
ORG execution
{ADD result, com_reg2;}\execute operation of the adding
{MOV NIL, RB; OEY; EWL;} \write the formed result into the
{AND NIL, counter, Z; OEY; EWH;} \cell of memory, by adress of RB
{WRITE_MEM result;}
{CJP NZ, ncaf;} \move to s/p of next command
\address former
\ subprogram of next command address former of microprocessor
\ ---------------------------------------------------------------------
ORG ncaf
{ADD counter, 4;} \ the next command of the microprocessor is situated by
\ address, on 4 bytes senior then previous
{CJP NZ, select;}\ return to the stage of the selection of the command
\ The subprogram of processing the opcode different from exemple
\ ------------------------------------------------------------
ORG error
{CJP NZ, ncaf;}\ as processing of the error does not fall into the functions of given
\ program, so then simply moves to s/p of
\ next command address former
\ end of the program EXAMPLE.ESM