;Èíñòàëëÿòîð RAM-BIOS (c) ÀëüòÏðî, 1997-2002 ;Íàïèñàíî RSC ïî çàêàçó NOP NOP ZAPR: NOP TSTB @#167776 BMI 11$ MOV #TXT2,R1 CLR R2 EMT 20 EMT 6 EMT 130 11$: MOV #BUFKAT+2,R3 CALL RAMLX TST BK10 BEQ 10 MOV #140,STD BR 11 10: MOV #60,STD 11: MOV R4,BUFKAT SUB #BUFKAT,R3 MOV R3,-(SP) MOV #6,@#177130 MOV #2160,@#177130 MOV #120010,R0 CMP (R0)+,R0 BNE 1111 TST ZAPR BEQ 1EXIT MOV #6,@#177130 MOV STD,@#177130 MOV #0,@#177130 MOV #TXT,R1 CLR R2 EMT 20 EMT 6 CMPB R0,#12 BNE 1EXIT MOV #6,@#177130 MOV #2160,@#177130 1111: MOV #BUF,R0 MOV @#266,R1 MOV #120000,R2 MOVB (R0)+,(R2)+ SOB R1,.-2 MOV #6,@#177130 MOV STD,@#177130 MOV #0,@#177130 MOV #12,R0 MOV STD,R1 MOV #140000,R2 TST BK10 BEQ 22 MOV #100000,R2 22: JSR R5,@#167521 ; EMT 130 MOV #6,@#177130 MOV #2160,@#177130 SUB -(R1),R1 MOV (SP)+,R3 MOV #BUFKAT,R2 MOVB (R2)+,(R1)+ SOB R3,.-2 1EXIT: MOV #6,@#177130 MOV STD,@#177130 11W: MOV #0,@#177130 223: CMP ZAPR-4,#240 BNE 111 EMT 130 111: RET STD: .WORD 0 RAMLX: ;ÍÀ ÂÕÎÄÅ Â R3 - àäðåñ òàáëèöû ;ÍÀ ÂÛÕÎÄÅ Â @R3 - êîíåö òàáëèöû, â R4 - ÷èñëî ñëîâ ;ÒÛ ÓÆ ÈÇÂÈÍÈ,ÅÑËÈ ÇÀÃËÞ×ÈÒ - ß ÅÅ ÍÅ ÎÒËÀÆÈÂÀË, ;ÄÀÆÅ ÍÅ ÊÎÌÏÈËÈÐÎÂÀË :-) MOV @#4,-(SP) MOV SP,STEK MOV #177130,R5 MOV #6,(R5) MOV #140,(R5) CLR BK10 MOV #B10,@#4 ;MC? MOV @#100000,@#100000 COM BK10 B10: CLR MUDEM MOV #MODEM,@#4 MOV #6,(R5) MOV #160,(R5) CLR @#176560 COM MUDEM MODEM: CLR OLD MOV #6,(R5) MOV #120,(R5) MOV #NEW,@#4 MOV #0,@#177776 COM OLD NEW: MOV #6,(R5) MOV #140,(R5) MOV PC,HDD CMPB @#167776,#300 BLO 0HD CLR HDD 0HD: MOV #6,@#177130 TST BK10 BEQ 10M MOV #140,@#177130 BR 11M 10M: MOV #60,@#177130 11M: MOV #0,@#177130 CLR R0 ;ÎÏÐÅÄ.ÎÁÚÅÌÀ ÏÀÌßÒÈ BISB @#167777,R0 MOV #2,R1 CMP R0,#374 BEQ OKAY BLO 1EXI ;ÀÂÀÐÈÉÍÛÉ ÂÛÕÎÄ :-) SUB #374,R0 1: ASL R1 SOB R0,1 OKAY: MOV #120,REGIME TST BK10 BNE 1$ MOV #60,REGIME 1$: MOV R1,PAGES CLR R1 CLR R4 ;×ÈÑËÎ ÑÅÃÌÅÍÒΠ1RET: TST BK10 ;ÅÑËÈ 10... BNE 102 CMP R4,#2 ;ÒÎ ÈÑÊËÞ×ÀÅÌ BLO 101 102: MOV R1,R0 ;ÑÒÐÀÍÈÖÀ,BITS 1-2 CLR R2 CLC ROR R0 ADC R2 SWAB R2 BIS R2,R0 ;2000,BIT 0 ASL R0 ASL R0 BIT #20,R0 BEQ 10 BIC #20,R0 INC R0 ;3 ÁÈÒ 10: BIS REGIME,R0 ;ÐÅÆÈÌ BIS ORDR,R0 ;BIT 15 CMP R4,#2 BNE 177 ;ÃËÞÊÈ TST HDD BEQ 1HD ;ÃËÞÊÈ BIS #40000,R0 ;-10000 BR 1NEW ;ÁÎËÜØÅ ÍÅ ÂÛ×ÈÒÀÒÜ 1HD: BIS #20000,R0 ;-650 TST MUDEM BEQ 177 BIS #30000,R0 ;-650-350 177: CMP R4,#6 BNE 1RAM BIS #44000,R0 ;+10000,-10000 1RAM: TST OLD BEQ 1NEW BIT #1,R4 ;ÊÀÊ ÑÊÀÇÀË ÍÎÂÀÊ BNE 1NEW ;SEGMENTS 2-3,6-7 BIT #2,R4 BEQ 1NEW ;SEGMENTS 6-7 BIS #20000,R0 ;-650 1NEW: MOV R0,(R3)+ ;ÏÎÐßÄÎÊ: (11) 120,100,160,140 ; 100120 120 120020 20 ; 102120 2120 146020 2020 101: INC R4 ADD #100000,ORDR BIT #1,R4 BNE 13$ ADD #100,REGIME BIC #200,REGIME 13$: BIT #3,R4 BNE 1RET INC R1 CMP R1,PAGES BNE 1RET BR 1DONE 1EXI: MOV STEK,SP MOV (SP)+,@#4 RET ; HALT 1DONE: TST BK10 BNE 1D TST -(R4) ;ÇÀÁÛË ÎÁÎÉÒÈ DOS :-) 1D: MOV STEK,SP MOV (SP)+,@#4 RET STEK: .WORD 0 ORDR: .WORD 100000 REGIME: .WORD 0 MUDEM: .WORD 0 ;BNE ÌÎÄÅÌ BK10: .WORD 0 ;BEQ ÄÅÑßÒÊÀ OLD: .WORD 0 ;BNE ÑÒÀÐÛÉ PAGES: .WORD 0 ;×ÈÑËÎ ÑÒÐÀÍÈÖ ÏÀÌßÒÈ HDD: .WORD 0 BUFKAT: .BLKB 404 TXT: .ASCII /RAM-BIOS óæå èíñòàëëèðîâàí./<12> .ASCIZ /Äëÿ ïîâòîðíîé èíñòàëëÿöèè v3.05 íàæìèòå ÂÂÎÄ./ TXT2: .ASCII /Ïðîãðàììà ðàáîòàåò íà êîíòðîëëåðàõ: / .ASCIZ /A64-512M, SMK64-512/ .EVEN BUF: .INCLUD /RAM512.OBJ/ .END