IPB

Здравствуйте, гость ( Вход | Регистрация )

> Пультовой режим для БК
SuperMax
сообщение 3.4.2009, 14:09
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 6 285
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1




Description: Elektronika-BK001x microODT rom

Код

BASE=100000      ;100000 for BK0010, 140000 for BK0011m, 160000 for MS1201 & MS1201.01
HRAM=177640      ;system RAM
RSLR=176560      ;KUVT86 port
KBRS=177560      ;console port
BWR=177642      ;locked RAM
TMR=177666
VBE=177670
CTM=177672
HSP=HRAM-24      ;stack 177600-177612
HDM=HRAM-24
VR0=HRAM-22
VSP=HRAM-6
VPC=HRAM-4
VRS=HRAM-2
BFU=HRAM
CPC=177674
SEL1=177716
KBD=KBRS+2
PRRS=KBRS+4
PRD=KBRS+6
RDLR=RSLR+2
RSLT=RSLR+4
RDLT=RSLR+6
CRS=CPC+2
STEP=16
START=12
ADL=200
CHAR=1
INDATA=2
HALT=10
OPM=4
BYTE=20
IDE=40
LB=100
IDEP=200
HALTM=330
USERM=320
FSMM=123456
FSBTD=112233


        .ASECT
.=base

ST:        BR        INI
        .WORD        HIEN
        .WORD        2340
        .WORD        DBEN
        .WORD        2340
        .WORD        IEEN
        .WORD        2340
HLT:        HALT
INI:        MOV        #HALTM,@#SEL1
        MOV        #100,R2
10$:        MOV        #230,@#SEL1
        MOV        #60,R4
20$:        SOB        R4,20$
        MOV        #330,@#SEL1
        MOV        #60,R4
30$:        SOB        R4,30$
        SOB        R2,10$
        CLR        @#VBE
        SWAB        @#TMR
        MOV        @#SEL1,R0
        BIC        #177774,R0
        BIT        #2,R0
        BNE        1$
        MOV        #1000,SP
        MOV        #340,R2
        BIT        #1,R0
        BNE        2$
        MOV        #BASE,R1      ; start BK0010/BK0011 monitor
        BR        4$
2$:        MOV        #160000,R1      ; autoboot BK
        BR        4$
1$:        MOV        #INIMES,R1
100$:        BIT        #200,@#PRRS
        BEQ        100$
        MOVB        (R1)+,@#PRD
        BNE        100$
        BIT        #1,R0
        BEQ        HLT
        MOV        @#24,R1              ; restart DVK from powerfail vector
        MOV        @#26,R2
4$:        MOV        R1,@#CPC
        MOV        R2,@#CRS
        START
IEEN:        MOV        #11,@#HDM
        BR        EN
DBEN:        MOV        #13,@#HDM
        BR        EN
HIEN:        CMP        @#VBE,#FSMM
        BNE        2$
        JSR        PC,BUSER
        BR        WORK
2$:        CMP        @#VBE,#FSBTD
        BNE        3$
        JSR        PC,NODEV
        BR        WORK
3$:        BIT        #2,@#SEL1
        BNE        10$
        CMP        SP,#74
        BLO        10$
        CMP        SP,#100000
        BHI        10$
        MOV        @#CRS,-(SP)
        MOV        @#CPC,-(SP)
        MOV        @#4,@#CPC
        MOV        @#6,@#CRS
        CLR        @#VBE
        START
10$:        MOV        #10,@#HDM
EN:        MOV        SP,@#VSP
        MOV        @#CPC,@#VPC
        MOV        @#CRS,@#VRS
        MOV        #VSP,SP
        MOV        R5,-(SP)
        MOV        R4,-(SP)
        MOV        R3,-(SP)
        MOV        R2,-(SP)
        MOV        R1,-(SP)
        MOV        R0,-(SP)
        MOV        #HSP,SP
        BIT        #ADL,@#TMR
        BNE        1$
        MOV        @#TMR,@#CTM
        SWAB        @#TMR
1$:        CLR        R4
        JSR        PC,PROMPT
        BIS        #IDEP,R4
        MOV        @#VPC,R1
        MOV        R1,R5
        JSR        PC,NPRINT
WORK:        MOV        #HSP,SP
        CLR        @#VBE
        BIC        #IDEP!LB!IDE!BYTE!OPM!INDATA!CHAR,R4
        JSR        PC,TRINI
        JSR        PC,PROMPT
RP:        JSR        PC,NINPUT
        MOV        #COMCHR,R2
        MOV        #SRT,R3
1$:        CMPB        R0,(R2)
        BEQ        JUMP
        INC        R2
        TSTB        (R2)
        BEQ        RP
        TST        (R3)+
        BR        1$
JUMP:        MOV        (R3),R3
        JMP        (R3)
NINPUT:        MOV        R2,-(SP)
        BIT        #IDE,R4
        BEQ        10$
        MOV        #40,R0
101$:        JSR        PC,TTOUT
10$:        CLR        R1
        BIC        #IDE!INDATA!CHAR,R4
1$:        JSR        PC,NINP
        BIT        #CHAR,R4
        BNE        2$
        BIS        #INDATA,R4
        ASL        R1
        ASL        R1
        ASL        R1
        ADD        R0,R1
        BR        1$
2$:        CMPB        R0,#73
        BEQ        101$
        CMPB        R0,#177
        BNE        3$
        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,TTOUT
        BIC        #7,R1
        CLC
        ROR        R1
        ROR        R1
        ROR        R1
        BR        1$
3$:        MOV        #COMCHR,R2
4$:        CMPB        R0,(R2)
        BEQ        5$
        INC        R2
        TSTB        (R2)
        BEQ        1$
        BR        4$
5$:        MOV        (SP)+,R2
        RTS        PC
NINP:        JSR        PC,TTINP
        MOVB        R0,R3
        BIC        #177607,R3
        CMP        #60,R3
        BNE        1$
        JSR        PC,TTOUT
        BIC        #177770,R0
        BIC        #CHAR,R4
        BR        2$
1$:        BIS        #CHAR,R4
2$:        RTS        PC
TTOUT:        BIC        #200,R0
        CMPB        #177,R0
        BNE        TTYOUT
        MOV        #10,R0
        JSR        PC,TTOUT
        MOV        #40,R0
        JSR        PC,TTOUT
        MOV        #10,R0
TTYOUT:        BIT        #200,@#PRRS
        BEQ        TTYOUT
        MOVB        R0,@#PRD
        RTS        PC
TTINP:        BIT        #200,@#KBRS
        BEQ        TTINP
        MOVB        @#KBD,R0
        BIC        #200,R0
        RTS        PC
NPRINT:        MOV        R1,-(SP)
        BIT        #IDEP,R4
        BEQ        10$
        MOV        #40,R0
        JSR        PC,TTOUT
10$:        BIT        #OPM,R4
        BEQ        3$
        MOV        #57,R0
        JSR        PC,TTOUT
3$:        BIT        #LB,R4
        BEQ        4$
        MOV        #134,R0
20$:        JSR        PC,TTOUT
4$:        BIC        #IDEP!LB!OPM,R4
        MOV        #6,R3
        CLR        R0
1$:        ROL        R1
        ROL        R0
        ADD        #60,R0
        JSR        PC,TTOUT
        DEC        R3
        BEQ        2$
        CLR        R0
        ROL        R1
        ROL        R0
        ROL        R1
        ROL        R0
        BR        1$
2$:        MOV        (SP)+,R1
        RTS        PC
INIMES:        .ASCIZ        <33>/H/<33>/J/
        .EVEN
M1$:        JSR        R0,PRINT
        .ASCIZ        <44><100>
        .EVEN
CRLF:        JSR        R0,PRINT
        .ASCIZ        <15><12>
        .EVEN
PROMPT:        JSR        R0,PRINT
        .ASCIZ        <15><12>/@/
        .EVEN
HALTI:        JSR        R0,PRINT
        .ASCIZ        <15><12>/Halt instruction/
        .EVEN
DBUSER:        JSR        R0,PRINT
        .ASCIZ        <15><12>/Double bus error/
        .EVEN
INTERR:        JSR        R0,PRINT
        .ASCIZ        <15><12>/Interrupt error/
        .EVEN
BUSER:        JSR        R0,PRINT
        .ASCIZ        <15><12>/Bus error/
        .EVEN
NODEV:        JSR        R0,PRINT
        .ASCIZ        <15><12>/Device's not available/
        .EVEN
PRINT:        TSTB        (R0)
        BNE        1$
        MOV        (SP)+,R0
        RTS        PC
1$:        BIT        #200,@#PRRS
        BEQ        1$
        MOVB        (R0)+,@#PRD
        BR        PRINT
COMCHR:        .BYTE        53      ; SHIFT+;
        .BYTE        115      ; M
        .BYTE        57      ; /
        .BYTE        15      ; cr
        .BYTE        12      ; lf
        .BYTE        136      ; ^
        .BYTE        100      ; @
        .BYTE        137      ; _
        .BYTE        122      ; R
        .BYTE        107      ; G
        .BYTE        120      ; P
        .BYTE        123      ; S
        .BYTE        77      ; SHIFT+/
        .BYTE        76      ; >
        .BYTE        134      ; \
        .BYTE        174      ; SHIFT+\
        .BYTE        102      ; B
        .BYTE        140      ; SHIFT+@
        .BYTE        0
RCMCH:        .BYTE        53      ; SHIFT+;
        .BYTE        12      ; lf
        .BYTE        136      ; ^
        .BYTE        100      ; @
        .BYTE        140      ; SHIFT+@
        .BYTE        15      ; cr
        .BYTE        0
        .EVEN
SRT:        .WORD        INIR,WHY,OPENU,ENTER,OPENI,OPEND,OPENA
        .WORD        OPENID,OPENR,GOTO,CSTEP,SYSGO,OPENS,GOB
        .WORD        OPENBU,OPENBS,LOAD,OPENAS
SRTR:        .WORD        INIRFR,OPENRI,OPENRD,OPENRA,OPENRS,CLOSER
SG1:        MOV        R3,@#SEL1
        HALT
        MOV        #HALTM,@#SEL1
        RTS        PC
SG2:        MOV        #HALTM,@#SEL1
        .WORD        137
SG3:        HALT
TDEV:        .ASCII        /DY/
        .WORD        177170,DYSRC,10000,DYEND
        .ASCII        /DX/
        .WORD        177170,DXSRC,10000,DXEND
        .ASCII        /DK/
        .WORD        177404,RKSRC,10000,RKEND
        .ASCII        /MT/
        .WORD        172522,MTSRC,10000,MTEND
        .ASCII        /DW/
        .WORD        174020,DWSRC,10000,DWEND
        .ASCII        /MY/
        .WORD        172140,MYSRC,10000,MYEND
        .ASCII        /MX/
        .WORD        177130,MXSRC,10000,MXEND
        .ASCII        /BY/
        .WORD        177130,BYSRC,10000,BYEND
        .ASCII        /BT/
        .WORD        100002,BTSRC,37000,DLDRV
        .ASCII        /BL/
        .WORD        100002,BLSRC,37700,BLEND
        .ASCII        /BF/
        .WORD        176560,BFSRC,10000,BFEND
        .ASCII        /PR/
        .WORD        177550,PRSRC,10000,PREND
        .WORD        0
READER:        MOV        #FSMM,@#VBE
        MOV        R4,R3
        BIC        #177767,R3
        BIS        #320,R3
        MOV        #11501,@#BWR+4
        JSR        PC,@#BWR
        CLR        @#VBE
        RTS        PC
WRITER:        MOV        #FSMM,@#VBE
        BIT        #HALT,R4
        BEQ        1$
        MOV        #HALTM,R3
        CMP        R5,#177677
        BHI        2$
        CMP        R5,#177600
        BLO        2$
3$:        JMP        HIEN
1$:        MOV        #USERM,R3
        CMP        R5,#177657
        BHI        2$
        CMP        R5,#177642
        BHIS        3$
2$:        MOV        #10115,@#BWR+4
        JSR        PC,@#BWR
        CLR        @#VBE
        RTS        PC
TRINI:        MOV        #BWR,R2
        MOV        #SG1,R3
1$:        MOV        (R3)+,(R2)+
        CMP        R3,#SG2
        BNE        1$
        RTS        PC
INIRFR:        MOV        @#BFU,R5
INIR:        MOV        #73,R0
        JSR        PC,TTOUT
        JMP        WORK
WHY:        JSR        PC,TTOUT
        MOV        @#HDM,R0
        CMP        R0,#11
        BNE        1$
        JSR        PC,INTERR
        BR        4$
1$:        CMP        R0,#13
        BNE        2$
        JSR        PC,DBUSER
        BR        4$
2$:        CMP        R0,#10
        BNE        4$
        JSR        PC,HALTI
4$:        JMP        WORK
OPENU:        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,R5
1$:        BIC        #HALT,R4
        BIC        #BYTE,R4
        JMP        MMSR
ENTER:        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,WRITER
1$:        JMP        WORK
OPENI:        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,WRITER
1$:        INC        R5
        INC        R5
        JMP        MMSR1
OPEND:        JSR        PC,TTOUT
        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,WRITER
1$:        DEC        R5
        DEC        R5
        JMP        MMSR1
OPENA:        JSR        PC,TTOUT
        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,WRITER
1$:        JSR        PC,READER
        MOV        R1,R5
        JMP        MMSR1
OPENAS:        JSR        PC,M1$
        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,WRITER
1$:        JSR        PC,READER
        MOV        R1,R5
        MOV        R4,R3
        COM        R3
        BIC        #177767,R3
        BIC        #HALT,R4
        BIS        R3,R4
        JMP        MMSR1
OPENID:        JSR        PC,TTOUT
        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,WRITER
1$:        JSR        PC,READER
        ADD        R1,R5
        INC        R5
        INC        R5
        JMP        MMSR1
OPENR:        MOV        R5,@#BFU
        JSR        PC,TTOUT
2$:        JSR        PC,NINP
        BIT        #CHAR,R4
        BEQ        MRG
        CMP        R0,#123      ; S
        BNE        2$
        JSR        PC,TTOUT
        BIS        #OPM,R4
        MOV        @#VRS,R1
        JSR        PC,NPRINT
        BIS        #IDE,R4
1$:        JSR        PC,NINPUT
        CMP        R0,#15
        BNE        1$
        BIT        #INDATA,R4
        BEQ        3$
        BIC        #177400,R1
        MOV        R1,@#VRS
3$:        JMP        WORK
MRG:        MOV        R0,R5
        ASL        R5
        ADD        #VR0,R5
        BR        MRG2
MREG:        JSR        PC,CRLF
        MOV        #122,R0
        JSR        PC,TTOUT
MRG1:        MOV        R5,R0
        SUB        #VR0,R0
        ASR        R0
        ADD        #60,R0
        JSR        PC,TTOUT
MRG2:        BIS        #OPM,R4
        MOV        @R5,R1
        JSR        PC,NPRINT
        BIS        #IDE,R4
REP2:        JSR        PC,NINPUT
        MOV        #RCMCH,R2
        MOV        #SRTR,R3
1$:        CMPB        R0,(R2)
        BEQ        2$
        INC        R2
        TSTB        (R2)
        BEQ        REP2
        TST        (R3)+
        BR        1$
2$:        JMP        JUMP
OPENRI:        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,(R5)
1$:        INC        R5
        INC        R5
        CMP        R5,#VRS
        BNE        2$
        MOV        #VR0,R5
2$:        BR        MREG
OPENRD:        JSR        PC,TTOUT
        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,(R5)
1$:        DEC        R5
        DEC        R5
        CMP        R5,#HDM
        BNE        2$
        MOV        #VPC,R5
2$:        BR        MREG
OPENRA:        JSR        PC,TTOUT
        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,(R5)
1$:        MOV        (R5),R5
        BIC        #HALT,R4
        JMP        MMSR1
OPENRS:        JSR        PC,M1$
        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,(R5)
1$:        MOV        (R5),R5
        BIS        #HALT,R4
        JMP        MMSR1
CLOSER:        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,(R5)
1$:        MOV        @#BFU,R5
        JMP        WORK
GOTO:        JSR        PC,TTOUT
        CLR        R0
        JSR        PC,TTOUT
        RESET
        MOV        R1,@#CPC
        BR        GO
CSTEP:        JSR        PC,TTOUT
        BIT        #ADL,@#TMR
        BNE        2$
1$:        BIT        #200,@#PRRS
        BEQ        1$
        MOV        @#CTM,@#TMR
        BIT        #100000,@#TMR
        BEQ        2$
        BIS        #ADL,@#TMR
2$:        MOV        #VR0,SP
        MOV        (SP)+,R0
        MOV        (SP)+,R1
        MOV        (SP)+,R2
        MOV        (SP)+,R3
        MOV        (SP)+,R4
        MOV        (SP)+,R5
        MOV        (SP)+,SP
        MOV        @#VPC,@#CPC
        MOV        @#VRS,@#CRS
        CLR        @#VBE
        STEP
SYSGO:        JSR        PC,TTOUT
        CLR        R0
        JSR        PC,TTOUT
        RESET
        MOV        #SG2,R2
        MOV        #BWR,R3
1$:        MOV        (R2)+,(R3)+
        CMP        R2,#SG3
        BNE        1$
        MOV        R1,@#BWR+10
        MOV        #BWR,@#CPC
GO:        MOV        #340,@#CRS
        MOV        #VR0,SP
        MOV        (SP)+,R0
        MOV        (SP)+,R1
        MOV        (SP)+,R2
        MOV        (SP)+,R3
        MOV        (SP)+,R4
        MOV        (SP)+,R5
        MOV        (SP),SP
        CLR        @#VBE
        START
OPENS:        MOV        #44,R0
        JSR        PC,TTOUT
        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,R5
1$:        BIS        #HALT,R4
        BIC        #BYTE,R4
        BR        MMSR
GOB:        JSR        PC,TTOUT
        BIT        #INDATA,R4
        BEQ        1$
        JSR        PC,WRITER
1$:        JSR        PC,READER
        BIC        #177400,R1
        BIT        #200,R1
        BEQ        3$
        BIC        #200,R1
        COM        R1
        BIC        #177600,R1
        ASL        R1
        SUB        R1,R5
4$:        BR        MMSR1
3$:        ASL        R1
        ADD        R1,R5
        ADD        #2,R5
        BR        MMSR1
OPENBU:        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,R5
1$:        BIC        #HALT,R4
        BIS        #BYTE,R4
        BR        MMSR
OPENBS:        BIT        #INDATA,R4
        BEQ        1$
        MOV        R1,R5
1$:        BIS        #HALT,R4
        BIS        #BYTE,R4
        MOV        #44,R0
        JSR        PC,TTYOUT
        BR        MMSR
MMSR1:        JSR        PC,CRLF
        BIT        #HALT,R4
        BEQ        1$
        MOV        #44,R0
        JSR        PC,TTOUT
1$:        MOV        R5,R1
        JSR        PC,NPRINT
MMSR:        MOV        #57,R0
        JSR        PC,TTOUT
        JSR        PC,READER
        MOV        R1,R2
        JSR        PC,NPRINT
        BIT        #BYTE,R4
        BEQ        1$
        MOV        #40,R0
        JSR        PC,TTOUT
        MOV        R1,R0
        BIC        #177600,R0
        CMP        R0,#40
        BGE        2$
        MOV        #40,R0
2$:        JSR        PC,TTYOUT
        MOV        R1,R0
        SWAB        R0
        BIC        #177600,R0
        CMP        R0,#40
        BGE        3$
        MOV        #40,R0
3$:        JSR        PC,TTYOUT
        BIS        #IDEP,R4
        BIC        #177400,R1
        JSR        PC,NPRINT
        MOV        R2,R1
        SWAB        R1
        BIC        #177400,R1
        BIS        #LB,R4
        JSR        PC,NPRINT
1$:        BIS        #IDE,R4
        JMP        RP
LOAD:        JSR        PC,TTOUT
        JSR        PC,CRLF
        JSR        PC,TRINI
        MOV        #44,R0
        JSR        PC,TTOUT
        MOV        #BFU,R2
        JSR        PC,TTINP
        JSR        PC,TTYOUT
        MOVB        R0,(R2)+
        JSR        PC,TTINP
        JSR        PC,TTYOUT
        MOVB        R0,(R2)+
        JSR        PC,TTINP
        JSR        PC,TTYOUT
        BIC        #177770,R0
        MOV        R0,-(SP)
        MOV        @#BFU,R1
        MOV        #TDEV,R0
1$:        CMP        R1,(R0)
        BEQ        2$
        ADD        #12,R0
        TST        (R0)
        BNE        1$
        JMP        WORK
2$:        MOV        2(R0),R5
        MOV        #FSBTD,@#VBE
        MOV        #USERM,R3
        MOV        #5715,@#BWR+4
        JSR        PC,@#BWR
        MOV        #FSMM,@#VBE
        MOV        #10215,@#BWR+4
        MOV        4(R0),R1
        MOV        6(R0),R5
10$:        MOV        (R1)+,R2
        JSR        PC,@#BWR
        INC        R5
        INC        R5
        CMP        R1,10(R0)
        BNE        10$
        JSR        PC,CRLF
        RESET
        MOV        6(R0),@#CPC
        MOV        (SP)+,R0
        MOV        #340,@#CRS
        CLR        @#VBE
        MOV        #10000,SP
        START
;BOOTSTRAP
DXSRC:        BIC        #177776,R0
        TST        R0
        BEQ        1000$
        MOV        #100267,R2
        BR        1$
1000$:        MOV        #100247,R2
        MOV        #40000,@#177170
1$:        MOV        #177170,R1
2$:        BITB        R2,(R1)
        BEQ        2$
        MOVB        #7,R3
        MOV        R1,R0
        MOV        R2,(R0)+
        BR        4$
3$:        MOV        #1,(R0)
4$:        ASR        R3
        BCS        6$
        MOVB        (PC)+,(R1)
5$:        MOVB        (R0),(R3)+
6$:        BIT        R2,(R1)
        BEQ        6$
        BMI        1$
        BCS        3$
        TSTB        (R1)
        BMI        5$
        CLR        R0
        CMP        #240,(R0)
        BNE        1$
        CMPB        #247,R2
        ADC        R0
        CLR        PC
DXEND:        HALT
DYSRC:        BIC        #177776,R0
        TST        R0
        BEQ        1000$
        MOV        #420,R0
        BR        1$
1000$:        MOV        #400,R0
1$:        MOV        #177170,R3
        MOV        #177172,R4
        MOV        #401,R5
        MOV        #200,R1
        BIT        #400,R0
        BNE        2$
        ASL        R1
2$:        CLR        R2
3$:        BIC        #177357,R0
4$:        BIS        #7,R0
5$:        MOV        R0,(R3)
6$:        BIT        #100200,(R3)
        BEQ        6$
        BMI        5$
        MOVB        R5,(R4)
7$:        BIT        #100200,(R3)
        BEQ        7$
        BMI        5$
        SWAB        R5
        MOVB        R5,(R4)
        SWAB        R5
8$:        BIT        #100040,(R3)
        BEQ        8$
        BMI        4$
        BIC        #177357,R0
        BIS        #3,R0
9$:        MOV        R0,(R3)
10$:        BIT        #100200,(R3)
        BEQ        10$
        BMI        9$
        MOV        R1,(R4)
11$:        BIT        #100200,(R3)
        BEQ        11$
        BMI        9$
        MOV        R2,(R4)
12$:        BIT        #100040,(R3)        
        BEQ        12$
        BMI        9$
        CMPB        (R5)+,(R5)+
        ADD        R1,R2
        ADD        R1,R2
        CMP        R2,#1000
        BCS        3$
        MOV        R0,R1
        CLR        R0
        BIT        #20,R1
        BEQ        13$
        INC        R0
13$:        BIC        #177377,R1
        CLR        PC
DYEND:        HALT
MXSRC:        MOV        #177130,R1
44$:        BIC        #177774,R0
        MOV        #10000,SP
        MOV        R0,-(SP)
        MOV        R1,R4
        MOV        #000100,(R4)
        MOV        #177777,R5
70$:        SOB        R5,70$
        ASL        R0
        ASL        R0
        BIS        R0,(R4)
        MOV        #047040,R5
104$:        SOB        R5,104$
        JSR        PC,322$
        MOV        R4,R5
        TST        (R5)+
        CLR        R0
        MOV        #001000,R1
        BIS        #040000,(R4)
130$:        TST        (R4)
        BPL        130$
        TST        (R5)
136$:        TST        (R4)
        BPL        136$
        TST        (R5)
        JSR        PC,234$
        MOV        #001000,R0
        MOV        #001600,R1
        JSR        PC,234$
        BIC        #040000,(R4)
        MOV        #000200,R1
        BIS        #010000,(R4)
        BIS        #040000,(R4)
204$:        TST        (R4)
        BPL        204$
        TST        (R5)
212$:        TST        (R4)
        BPL        212$
        TST        (R5)
        JSR        PC,234$
        BIC        #40000,(R4)
        CLR        PC
234$:        MOV        #000200,R3
        CLR        -(SP)
242$:        TST        (R4)
        BPL        242$
        MOV        (R5),(R0)
        ADD        (R0)+,(SP)
        DEC        R1
        BEQ        260$
        SOB        R3,242$
260$:        TST        (R4)
        BPL        260$
        CMP        (R5),(SP)+
        BEQ        300$
        TST        (SP)+
        MOV        (SP),R0
        JMP        MXSRC
300$:        TST        R1
        BNE        234$
        RTS        PC
306$:        BIS        #000020,(R4)
        MOV        #023420,R5
316$:        SOB        R5,316$
        RTS        PC
322$:        BIC        #000040,(R4)
326$:        BIT        #004000,(R4)
        BNE        342$
        JSR        PC,306$
        BR        326$
342$:        RTS        PC
MXEND:        HALT
PRSRC:        JSR        PC,PRINS
        BR        100$
1$:        HALT
100$:        MOV        PC,SP
        CMP        -(SP),-(SP)
        MOV        PC,R5
        ADD        #112,R5
        CLR        R1
2$:        MOV        #0,(SP)
        ROR        (SP)
        BCS        3$
        CLR        (SP)
        BR        4$
3$:        ASL        (SP)
        BNE        4$
        MOV        R1,(SP)
4$:        CLR        R0
        JSR        PC,(R5)
        DECB        R3
        BNE        4$
        JSR        PC,(R5)
        JSR        PC,9$
        MOV        R4,R2
        SUB        #4,R2
        CMP        #2,R2
        BEQ        10$
        JSR        PC,9$
        ADD        (SP),R4
        MOV        R4,R1
5$:        JSR        PC,(R5)
        BGE        7$
        TSTB        R0
        BEQ        4$
6$:        HALT
        BR        4$
7$:        MOVB        R3,(R1)+
        BR        5$
        MOV        17$,R3
        INCB        (R3)
8$:        TSTB        (R3)
        BPL        8$
        MOVB        2(R3),R3
        ADD        R3,R0
        BIC        #177400,R3
        DEC        R2
        RTS        PC
9$:        MOV        (SP)+,12$
        JSR        PC,(R5)
        MOV        R3,R4
        JSR        PC,(R5)
        SWAB        R3
        BIS        R3,R4
        MOV        12$,PC
10$:        JSR        PC,9$
        JSR        PC,(R5)
        TSTB        R0
        BNE        6$
        ASR        R4
        BCC        11$
        HALT
        BR        2$
11$:        ASL        R4
        ADD        (SP),R4
        JMP        (R4)
12$:        .WORD        0
        MOV        #352,14$
        MOV        #765,16$
        JMP        1$
        MOV        17$,R1
        MOV        (PC)+,R2
14$:        .WORD        352
        INC        (R1)
15$:        TSTB        (R1)
        BPL        15$
        MOVB        2(R1),157400(R2)
        INC        14$
16$:        .WORD        765
17$:        .WORD        177550
PRINS:        MOV        PC,R1
        BR        PRFIN+2
PRBEG:        .WORD        0
PRFIN:        .WORD        0
        SUB        #2,R1
        MOV        R1,PRFIN
        MOV        (SP)+,PRBEG
        MOV        @#6,-(SP)
        MOV        @#4,-(SP)
        JSR        PC,1$
        CMP        (SP)+,(SP)+
        DEC        R2
        BR        PROUT
1$:        MOV        (SP)+,@#4
        MOV        #340,@#6
        MOV        #16,R2
PROUT:        MOV        R2,R5
        MOV        #14,R3
1$:        ASL        R5
        SOB        R3,1$
        BIS        #7474,R5
        MOV        PRBEG,R4
2$:        MOV        (R4)+,(R5)+
        CMP        R4,PRFIN
        BNE        2$
        MOV        #14,R3
3$:        ASL        R2
        SOB        R3,3$
        BIS        #7474,R2
        MOV        (SP)+,@#4
        MOV        (SP)+,@#6
        JMP        (R2)
PREND:        HALT
MTSRC:        MOV        PC,R2
        BR        10$
        .WORD        172524
        .WORD        60003
        .WORD        60011
        .WORD        200
        .WORD        100000
10$:        MOV        R2,R0
        TST        (R0)+
        MOV        (R0)+,R1
        DEC        (R1)
        TST        (R0)+
        MOV        (R0)+,-(R1)
1$:        BIT        (R0),(R1)
        BEQ        1$
        TST        (R0)+
        BIT        (R0),-(R1)
        BEQ        2$
6$:        JMP        (R2)
2$:        MOV        R2,R0
        TST        (R0)+
        MOV        (R0)+,R1
        MOV        #177000,(R1)
        MOV        (R0),-(R1)
5$:        BIT        #100200,(R1)
        BEQ        5$
        BMI        6$
        CLR        PC
MTEND:        HALT
RKSRC:        TST        R0
        BNE        10$
        MOV        PC,R2
        BR        1$
10$:        MOV        PC,R2
        MOV        #20000,@#177412
1$:        MOV        #177000,@#177406
        MOV        #5,@#177404
2$:        BIT        #100200,@#177404
        BEQ        2$
        BMI        3$
        CLR        PC
3$:        JMP        (R2)
RKEND:        HALT
DWSRC:        MOV        #174020,R1
1$:        MOV        #10,(R1)
2$:        TST        (R1)
        BMI        2$
        MOV        #1,@#174006
        MOV        #40,@#174016
3$:        TST        (R1)
        BMI        3$
        CLR        R2
        MOV        #400,R3
4$:        TSTB        (R1)
        BPL        4$
        MOV        @#174010,(R2)+
        SOB        R3,4$
        CMP        #240,(R3)
        BNE        1$
        CLR        PC
DWEND:        HALT
MYSRC:        MOV        #172140,R1
        BIC        #177774,R0
1$:        BIT        #100040,(R1)
        BEQ        1$
        MOV        #37,(R1)
2$:        TSTB        (R1)
        BPL        2$
        MOV        R0,@#172142
3$:        BIT        #100040,(R1)
        BEQ        3$
        BMI        1$
        CMP        @#0,#240
        BNE        1$
        CLR        PC
MYEND:        HALT
BLSRC:        MOV        #1000,SP
        MOV        R0,-(SP)
        CMP        @#100000,#167
        BNE        1$
        CMP        @#100002,#254
        BNE        1$
        JSR        PC,@#100140
        MOV        (SP)+,R0
        BIC        #177770,R0
        EMT        40
        JSR        PC,@#100656
        MOV        @#264,R5
        JMP        @R5
1$:        MOV        #HALTM,@#SEL1
        MOV        #FSBTD,@#VBE
        MOV        #HSP,SP
        HALT
BLEND:        HALT
BFSRC:        JSR        PC,BFINS
BTSRC:        MOV        PC,R1
        MOV        #1000,SP
        CLR        R5
        CMP        R1,#37002
        BNE        6000$
        CMP        @#100000,#167
        BNE        2111$
        CMP        @#100002,#254
        BNE        2111$
        JSR        PC,@#100140
        MOV        #1,R5
6000$:        MOV        #12,R2
        JSR        R0,100$
        .ASCIZ        <12><15>/Name:/
        .EVEN
2111$:        MOV        #HALTM,@#SEL1
        MOV        #FSBTD,@#VBE
        MOV        #HSP,SP
        HALT
100$:        TSTB        (R0)
        BEQ        111$
110$:        BIT        #200,@#PRRS
        BEQ        110$
        MOVB        (R0)+,@#PRD
        BR        100$
111$:        TST        (SP)+
        CLR        @#322
        MOV        #326,R1
1$:        BIT        #200,@#KBRS
        BEQ        1$
        MOV        @#KBD,R0
        CMP        R0,#177
        BNE        4$
        MOV        #10,R4
        JSR        PC,7100$
        MOV        #40,R4
        JSR        PC,7100$
        MOV        #10,R4
        JSR        PC,7100$
        INC        R2
        DEC        R1
        BR        1$
4$:        CMP        R0,#15      ;CR
        BEQ        2$
        MOVB        R0,(R1)+
        MOV        R0,R4
        JSR        PC,7100$
        SOB        R2,1$
        BR        3$
2$:        MOVB        #40,(R1)+
        SOB        R2,2$
3$:        MOV        #20040,(R1)+
        MOV        #20040,(R1)+
        MOV        #20040,(R1)+
        MOV        #3,@#320
        MOV        #320,R1
        TST        R5
        BEQ        10$
        JSR        PC,@#116076      ;BT
        BR        20$
10$:        BIT        #ADL,@#TMR
        BEQ        1333$
        SWAB        @#TMR
1333$:        JSR        PC,DLDRV      ;BF
20$:        TSTB        @#321
        BEQ        5$
        CMPB        @#321,#1
        BEQ        6$
        JSR        R0,8$
        .ASCIZ        <12><15>/?FT-F-I/<57>/O error/
        .EVEN
6$:        JSR        R0,8$
        .ASCIZ        <12><15>/?FT-F-File not found/
        .EVEN
5$:        MOV        @#264,R5
        JMP        (R5)
8$:        TSTB        (R0)
        BNE        84$
        HALT
84$:        MOVB        (R0)+,R4
        JSR        PC,7100$
        BR        8$
7100$:        BIT        #200,@#PRRS
        BEQ        7100$
        MOVB        R4,@#PRD
        RTS        PC
DLDRV:        CLR        @#RSLR
        CLR        @#RSLT
        CLR        R5                
        MOVB        @#RDLR,R0        
        MOVB        (R1)+,R0        
        JSR        PC,$TR                
        JSR        PC,$RD                
        MOV        R1,R2                
        ADD        #5,R2                
        MOV        #12,R3                
1$:        MOVB        (R2)+,R0        
        JSR        PC,$TR                
        SOB        R3,1$                
        MOV        #4,R3                
        JSR        PC,$RD                
        MOVB        R0,(R1)+        
        BNE        2$                
        ADD        #6,R2                
4$:        JSR        PC,$RD                
        MOVB        R0,(R2)+        
        SOB        R3,4$                
        MOV        -(R2),R3        
        BEQ        2$                
        TST        (R1)                
        BEQ        5$                
        MOV        (R1),R2                
        BR        6$                
5$:        MOV        -(R2),R2        
        MOV        R2,@#264
6$:        JSR        PC,$RD                
        MOVB        R0,(R2)+        
        ADD        R0,R5                
        SOB        R3,6$                
7$:        JSR        PC,$RD                
        CMPB        R0,R5                
        BEQ        9$                
        MOVB        #2,-(R1)        
9$:        MOV        R5,R0                
        JSR        PC,$TR                
2$:        RTS        PC
$RD:        TSTB        @#RSLR
        BPL        $RD                
        MOVB        @#RDLR,R0        
        RTS        PC                
$TR:        TSTB        @#RSLT
        BPL        $TR                
        MOVB        R0,@#RDLT
        RTS        PC
BFINS:        MOV        PC,R1
        BR        BFFIN+2
BFBEG:        .WORD        0
BFFIN:        .WORD        0
        SUB        #2,R1
        MOV        R1,BFFIN
        MOV        (SP)+,BFBEG
        MOV        @#6,-(SP)
        MOV        @#4,-(SP)
        JSR        PC,1$
        CMP        (SP)+,(SP)+
        DEC        R2
        BR        BFOUT
1$:        MOV        #340,@#6
        MOV        (SP)+,@#4
        MOV        #16,R2
BFOUT:        MOV        R2,R5
        MOV        #14,R3
1$:        ASL        R5
        SOB        R3,1$
        BIS        #7010,R5
        MOV        BFBEG,R4
2$:        MOV        (R4)+,(R5)+
        CMP        R4,BFFIN
        BNE        2$
        MOV        #14,R3
3$:        ASL        R2
        SOB        R3,3$
        BIS        #7010,R2
        MOV        (SP)+,@#4
        MOV        (SP)+,@#6
        JMP        (R2)
BFEND:        HALT
BYSRC:        MOV        #1000,SP
        MOV        @#6,-(SP)
        MOV        @#4,-(SP)
        JSR        PC,11$
        CMP        (SP)+,(SP)+
111$:        MOV        (SP)+,@#4
        MOV        (SP)+,@#6
        MOV        #HALTM,@#SEL1
        MOV        #FSBTD,@#VBE
        MOV        #HSP,SP
        HALT
11$:        MOV        (SP)+,@#4
        MOV        #340,@#6
        CMP        @#160000,#410      ; boot if 1801RE2-253 or -326
        BEQ        301$              ;
        CMP        @#160000,#406      ;
        BNE        111$
301$:        BIC        #177774,R0
        MOV        #2000,R3
        JSR        PC,@#160010
        MOV        #2000,12(R3)
        CLR        22(R3)
        MOVB        R0,34(R3)
300$:        CLR        R0
        MOV        #400,R1
        MOV        #1000,R2
        JSR        PC,@#160004
        BCS        300$
        MOVB        34(R3),R0
        CMP        @#1000,#240
        BNE        301$
        MOV        (SP)+,@#4
        MOV        (SP)+,@#6
        JMP        @#1000
BYEND:        HALT
.=base+7760
        .ASCII        /© 1993 by fLRL/
.=base+17776
        .END        ST



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.4.2024, 19:12