Пультовой режим для БК |
Здравствуйте, гость ( Вход | Регистрация )
Пультовой режим для БК |
SuperMax |
3.4.2009, 14:09
Сообщение
#1
|
Администратор Группа: Root Admin Сообщений: 6 286 Регистрация: 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 -------------------- Живы будем - Не помрем !
|
Текстовая версия | Сейчас: 25.4.2024, 19:08 |