;----------------------------------- ; PKT maker (c) Андрей Леликов ; 1995 MMSG= 76000 MDAT= 36000 MPKT= 16000 FREMEM= 400 ; MKDOS: TXT= 120050 DIR= 120014 DIRFIN= 120026 START: MOV #776,SP JSR PC,LOACNF JSR PC,LOAMID JSR PC,DSKS JSR PC,PODKAT CLDST: MOV #MPKT,177716 mov #bpm+6+20,r1 mov #20,r0 movb #40,-(r1) sob r0,.-4 mov #midtek+4,r0 mov #4,r2 1$: movb -(r0),r3 asr r3 asr r3 asr r3 asr r3 jsr pc,msg55 movb (r0),r3 jsr pc,msg55 sob r2,1$ MOV #TXT2,R0 ;/.PKT/ MOVB (R0)+,(R1)+ MOVB (R0)+,(R1)+ MOVB (R0)+,(R1)+ MOVB (R0)+,(R1)+ ; Попытаемся прочитать ; MOV #BPM,R1 ; MOV #3+10+20,(R1) ; MOV #MDAT,177716 ; EMT 36 ; JSR PC,DSKS ; MOV #MPKT,177716 ; TSTB 1(R1) ; BEQ 751$ ;CMPB 1(R1),#1 ;BNE START JSR PC,CREPKT ; BR 75$ ;751$: MOV #14,R0 ; EMT 16 ; JSR R5,INL ; .WORD TXT5 ;/Имя сети :/ ; JSR PC,FFSTR ; Начали добавлять... 75$: MOV #232,R0 EMT 16 DFPK: MOV #MPKT,177716 JSR PC,SPKT JSR PC,SETAK JSR PC,GETNAM BCC 2$ MOV #<2+20+10+40>,BPM ;EXIT: JSR PC,SVPKT JSR PC,SVMID CLR R0 SOB R0,. JMP 100000 2$: MOV APKT,R0 ADD 324,R0 CMP R0,#74000 BLO 1$ MOV #<2+20+40+10>,BPM JSR PC,SVPKT MOV #MPKT,177716 JSR R1,@TXT .ASCIZ/Пакет переполнен. Создается новый./<232><12> .EVEN MOV SP,FLAG JMP CLDST 1$: BIC #100000,2(R5) JSR R1,@TXT .ASCIZ/Обрабатывается файл / .EVEN MOV #326,R1 MOV #16,R2 EMT 20 MOV #320,R1 MOV #40002,2(R1) MOV #<3+10+20>,(R1) MOV #MMSG,177716 EMT 36 TSTB 1(R1) BNE DFPK MOV #40000,R0 CLR (R0)+ MOV 324,R1 10$: MOVB #'╖,R5 MOVB (R0),R2 BPL 91$ cmpb R2,#252 ;'╙ bne 92$ cmpb 1(r0),R5 bne 99$ movb #311,R2 BR 9$ 92$: cmpb r2,#246 ;'╕ bne 93$ cmpb 1(r0),R5 bne 99$ movb #310,r2 br 9$ 93$: MOVB #'м,R5 cmpb r2,#243 ;'ё BNE 94$ cmpb -1(r0),r5 bne 99$ movb #273,r2 br 9$ 94$: cmpb r2,#271 ;'╧ bne 99$ cmpb -1(r0),r5 bne 99$ movb #274,r2 br 9$ 99$: MOVB (R2),R2 91$: CMPB R2,#12 BNE 9$ CLR R2 9$: 4$: MOVB R2,(R0)+ 3$: SOB R1,10$ mov #dfpk,-(sp) Jmp ADDMSG ;BR DFPK ;------ Добавить MSG к пакету ----- ADDMSG: MOV #MDAT,177716 CLR DPT CLR (PC)+ MODE: .WORD 0 MOV APKT,R1 ADD #2,R1 MOV PONODE,R4 JSR PC,PUTW JSR PC,PUTW ; У босса такая-же нода, логично? MOV PDNET,R4 ; Пакет идет боссу от пойнта, WARNING! JSR PC,PUTW JSR PC,PUTW ; и сеть тоже... mov #'E,r4 Jsr pc,finstr mov #mdat,177716 ;jsr pc,makstr bcs 888$ MOV R1,-(SP) mov #bufer,r1 jsr pc,ddc MOV (SP)+,R1 mov r5,r4 tst (pc)+ 888$: clr r4 JSR PC,PUTW ; ATTR clr r4 JSR PC,PUTW ; COST MOV #'D,R4 ; DATE JSR PC,FINSTR bcc 767$ ;CMPB BUFER,#40 ;BNE 767$ JSR PC,MDATE 767$: JSR PC,MAKSTR MOV #'T,R4 ; TO JSR PC,FINSTR JSR PC,MAKSTR MOV #'F,R4 ; FROM JSR PC,FINSTR bcc 768$ ;CMPB BUFER,#40 ;BNE 768$ JSR PC,MDFRM 768$: JSR PC,MAKSTR MOV #'S,R4 ; SUBJ JSR PC,FINSTR JSR PC,MAKSTR MOV R1,(PC)+ APKT2: .WORD 0 MOV #'N,R4 ; Это NETMAIL? JSR PC,FINSTR bcs 8$ ;CMPB BUFER,#40 ;BEQ 8$ MOV PDNET,DNT ; Адрес по умолчанию MOV PDNODE,DND CLR DPT ;MOV POPOIN,DPT MOV #BUFER,R1 MOV POZONE,R5 CMPB (R1),#': ; Нет зоны BEQ 24$ 23$: CMPB (R1),#'/ ; только нода BEQ 21$ CMPB (R1),#'. ; только поинт BEQ 22$ JSR PC,DDC 24$: CMP PDZONE,#-1 BNE 1$ MOV R5,PDZONE 1$: MOV R5,QDZONE ;;;; CMP R5,PDZONE BEQ 2$ 3$: JMP TXT20 ;BEEP, RTS PC ; Несовпадение зон!!! 2$: JSR R5,FCH .WORD ': BCS 3$ JSR PC,DDC MOV R5,DNT 21$: JSR R5,FCH .WORD '/ BCS 3$ JSR PC,DDC MOV R5,DND 22$: JSR R5,FCH .WORD '. BCS 4$ JSR PC,DDC MOV R5,DPT 4$: cmp pdzone,#-1 bne 41$ mov pozone,pdzone mov pozone,qdzone 41$: MOV APKT,R1 ADD #4,R1 MOV DND,R4 JSR PC,PUTW ADD #2,R1 MOV DNT,R4 JSR PC,PUTW MOV APKT2,R1 JSR PC,WRTPNT BR MMS 8$: MOV #'A,R4 INC MODE JSR PC,FINSTR BCS 3$ ; Это не NETMAIL и не ECHOMAIL... CMP PDZONE,#-1 BNE 12$ MOV POZONE,PDZONE mov pozone,qdzone 12$: CMP POZONE,PDZONE BNE 3$ MOV #MDAT,177716 MOV #TXT10,R0 ;/AREA:/ MOV #5,R2 11$: MOVB (R0)+,(R1)+ SOB R2,11$ JSR PC,MAKSTR MOVB #15,-1(R1) MMS: JSR PC,MSGID ; Поставить MSGID MOV #'R,R4 JSR PC,FINSTR CMPB BUFER,#40 BEQ 765$ MOV #MDAT,177716 MOV #TXT15,R0 ;/REPLY: / MOV #8.,R2 766$: MOVB (R0)+,(R1)+ SOB R2,766$ JSR PC,MAKSTR MOVB #15,-1(R1) 765$: MOV #40002,R0 ; Добавляем само сообщение MOV 324,R5 ADD R0,R5 3$: MOV #MMSG,177716 CMP R0,R5 BHIS 6$ CMPB (R0),#'@ BNE 1$ TSTB -1(R0) BNE 1$ CMPB 1(R0),#'* BNE 15$ JSR PC,INORIG ; Вставить *ORIGIN BR 3$ 15$: CMPB 2(R0),#': BNE 1$ 2$: TSTB (R0)+ BNE 2$ BR 3$ 1$: TSTB (R0) BEQ 4$ MOVB (R0),R3 5$: INC R0 MOV #MDAT,177716 MOVB R3,(R1)+ BR 3$ 4$: MOV #15,R3 BR 5$ 6$: MOV #MDAT,177716 CLRB (R1)+ CLRB (R1)+ CLRB (R1)+ CLRB (R1)+ MOV APKT,R1 MOV #2,R4 ; Выыыыыыыыыыыы! Jmp PUTW DNT: .WORD 0 DND: .WORD 0 DPT: .WORD 0 ;------ DEFAULT FROM ---- MDFRM: MOV #MDAT,177716 MOV CNFADR,R0 1$: CMPB (R0)+,#40 BEQ 1$ 2$: CMPB (R0)+,#40 BNE 2$ 3$: CMPB (R0)+,#40 BEQ 3$ DEC R0 MOV #BUFER,R2 4$: MOVB (R0)+,(R2)+ BNE 4$ DEC R2 5$: CMPB -(R2),#40 BEQ 5$ CLRB 1(R2) MOV #MPKT,177716 RTS PC ;------ Создать дату ---- MDATE: MOV R1,-(SP) MOV #BUFER,R2 MOV PDAY,R1 JSR PC,D1OU MOVB #40,(R2)+ MOV PMON,R0 BNE 1$ INC R0 1$: CMP R0,#12. BLOS 2$ MOV #1,R0 2$: MOV R0,R1 ASL R0 ADD R1,R0 ADD #,R0 ;/JanFebMar../ MOVB (R0)+,(R2)+ MOVB (R0)+,(R2)+ MOVB (R0)+,(R2)+ MOVB #40,(R2)+ MOV PYEAR,R1 SUB #1900.,R1 JSR PC,D1OU MOVB #40,(R2)+ MOVB #40,(R2)+ MOV PHOUR,R1 JSR PC,D1OU MOVB #':,(R2)+ MOV PMIN,R1 JSR PC,D1OU MOV PSEC,R1 MOVB #':,(R2)+ JSR PC,D1OU CLRB (R2)+ MOV (SP)+,R1 RTS PC D1OU: MOV #2,R3 JSR PC,MDEC CMPB -2(R2),#40 BNE 1$ MOVB #60,-2(R2) 1$: RTS PC ;------ Вставить origin ---- INORIG: TSTB (R0)+ ; Пропустим упр. коды BNE INORIG MOV #MDAT,177716 MOV R0,-(SP) MOV CNFADR,R0 MOV #2,R3 ; SKIP ADR&PASSW 1$: TSTB (R0)+ BNE 1$ SOB R3,1$ CLR R3 ;mov #2,r3 2$: MOVB (R0)+,(R1)+ BNE 2$ MOVB #15,-1(R1) TST R3 BNE 7$ cmpB (r0),#40 bne 2$ CMPB 1(R0),#'* BNE 2$ INC R3 BR 2$ ;sob r3,2$ 7$: TST MODE BEQ 4$ JSR R5,5$ .WORD TXT16 ;/SEEN-BY: / JSR R5,5$ .WORD TXT17 ;<1>/PATCH: / 4$: MOV (SP)+,R0 RTS PC 5$: MOV (R5)+,R0 MOV R5,(SP) 6$: MOVB (R0)+,(R1)+ BNE 6$ DEC R1 MOV PDNET,R5 JSR PC,dDDOUT .word '/ MOV PDNODE,R5 JSR PC,DDdOUT .word 15 RTS PC ;------ Прописать пойнтов ------- WRTPNT: MOV #MDAT,177716 mov #txt7,r0 ;<1>/intl / mov #6,r2 5$: movb (r0)+,(r1)+ sob r2,5$ mov pozone,r5 jsr pc,dddout .word ': mov dnt,r5 jsr pc,dddout .word '/ mov DND,r5 jsr pc,dddout .word 40 mov pdzone,r5 jsr pc,dddout .word ': mov PdnEt,r5 jsr pc,dddout .word '/ mov PONODE,r5 jsr pc,dddout .word 15 MOV DPT,R5 BEQ 1$ MOV #TXT11,R0 ;<1>/TOPT / JSR PC,4$ 1$: MOV POPOIN,R5 BEQ 2$ MOV #TXT12,R0 ;<1>/FMPT / 4$: MOV #6,R2 3$: MOVB (R0)+,(R1)+ SOB R2,3$ JSR PC,DDdOUT .word 15 2$: RTS PC ;------ Вывод числа из R5 --- dddout: call ddout mov (sp),r0 movb (r0),(r1)+ ADD #2,(SP) rts pc DDOUT: MOV R1,-(SP) MOV R5,R1 MOV #BUFER,R2 MOV #5,R3 JSR PC,MDEC CLRB (R2)+ MOV (SP)+,R1 MOV #BUFER,R0 5$: CMPB (R0)+,#40 BEQ 5$ DEC R0 6$: MOVB (R0)+,(R1)+ BNE 6$ DEC R1 RTS PC ;------ Проставить MSGID ---- MSGID: MOV #MDAT,177716 MOV #TXT14,R0 ;<1>/MSGID: / MOV #10,R2 1$: MOVB (R0)+,(R1)+ SOB R2,1$ MOV POZONE,R5 JSR PC,DDdOUT .word ': MOV PDNET,R5 JSR PC,dDDOUT .word '/ MOV PONODE,R5 JSR PC,dDDOUT .word '. MOV POPOIN,R5 JSR PC,DDdOUT .word 40 ADD #111,MIDTEK ADC MIDTEK+2 MOV #MIDTEK+4,R0 MOV #4,R2 3$: MOVB -(R0),R3 ASR R3 ASR R3 ASR R3 ASR R3 JSR PC,55$ MOVB (R0),R3 JSR PC,55$ SOB R2,3$ MOVB #15,(R1)+ MOV #TXT19,R0 ;<1>/PID: BK11M ImageMailer/ 31$: MOVB (R0)+,(R1)+ BNE 31$ MOVB #15,-1(R1) RTS PC 55$: msg55: BIC #177760,R3 CMP R3,#9. BHI 56$ ADD #60,R3 57$: MOVB R3,(R1)+ RTS PC 56$: ADD #<'a-10.>,R3 BR 57$ ;------ It is ... --- MDEC:: CLR R5 MOV #TDEC+12,R4 SUB R3,R4 SUB R3,R4 4$: CLR R0 2$: INC R0 SUB (R4),R1 BPL 2$ ADD (R4)+,R1 DEC R0 BNE 5$ TST R5 BNE 5$ CMP R3,#1 BEQ 5$ MOV #-20,R0 BR 3$ 5$: MOV SP,R5 3$: ADD #60,R0 MOVB R0,(R2)+ SOB R3,4$ RTS PC TDEC: .WORD 10000.,1000.,100.,10.,1 ;------ Сбросить буфер ASCIZ строкой --- MAKSTR: MOV #MDAT,177716 MOV #BUFER,R0 1$: MOVB (R0)+,(R1)+ BNE 1$ RTS PC ;------ Найти в тексте строку @x: ---- FINSTR: MOV #MMSG,177716 MOV #40000,R0 MOV 324,R3 ADD R0,R3 ADD #2,R3 1$: CMP R0,R3 BHIS 5$ TSTB (R0)+ BNE 1$ CMPB (R0),#'@ BNE 1$ CMPB 1(R0),R4 BNE 1$ CMPB 2(R0),#': BNE 1$ ADD #3,R0 2$: CMPB (R0)+,#40 BEQ 2$ DEC R0 MOV #BUFER,R3 3$: TSTB (R0) BEQ 4$ ; CMPB (R0),#40 ; BEQ 4$ MOVB (R0)+,(R3)+ BR 3$ 4$: CLRB (R3)+ RTS PC 5$: MOV #BUFER,R0 MOVB #40,(R0)+ CLRB (R0)+ SEC RTS PC ;------ MOV R4,(R1)+ ---- PUTW: MOV #MDAT,177716 MOVB R4,(R1)+ SWAB R4 MOVB R4,(R1)+ SWAB R4 RTS PC ;------ Записать пакет ------- SVPKT: MOV 120124,-(SP) MOV #400,120124 JSR PC,SETAK MOV #MDAT,177716 MOV APKT,R0 CLRB (R0)+ CLRB (R0)+ CLRB (R0)+ CLRB (R0)+ SUB #PKTDAT,R0 MOV R0, mov 120010,-(sp) tstb boss bmi 1$ mov #subbos-6,306 bisb #60,boss 3$: mov dir,r3 jsr pc,@Dirfin bcc 2$ movb #'$,boss MOV DIR,R3 JSR pc,@dirfin bcs 1$ 2$: movb (r3),120010 1$: MOV #BPM,R1 EMT 36 mov (sp)+,120010 MOV #MPKT,177716 MOV (SP)+,120124 RTS PC subbos: .ascii<177>/OUT_#/ boss: .byte 0 .ascii/ / .even ;------ Установить адрес конца пакета ---- SETAK: MOV #,R5 MOV #MDAT,177716 3$: TSTB (R5) BNE 1$ TSTB 1(R5) BEQ 4$ 1$: ADD #<2*7>,R5 MOV #5,R4 2$: TSTB (R5)+ BNE 2$ SOB R4,2$ BR 3$ 4$: MOV R5,(PC)+ APKT: .WORD 0 MOV #MPKT,177716 RTS PC ;------ Преложить в 320 имя выделеного ф. и снять в. ---- GETNAM: MOV #MPKT,177716 ;Развыделение в вызывающей прг. MOV DIR,R5 MOV 30(R5),R4 ADD #<500-30>,R5 3$: ADD #30,R5 2$: CMPB (R5),#377 BEQ 3$ 1$: TST 22(R5) BMI 4$ SOB R4,3$ SEC RTS PC 4$: TST (R5)+ MOV #7,R4 MOV #326,R0 5$: MOV (R5)+,(R0)+ SOB R4,5$ MOV 6(R5),324 CLC RTS PC ;------ DSKS ---- DSKS: TST 177132 CLR 177130 CLR @120006 RTS PC ;------ Показать информацию о пакете ----- SPKT: JSR R1,@TXT .ASCIZ<14>/Идет обработка пакета.../<12> .EVEN RTS PC ;------ Декодировать дес. число ---- DDC: CLR R5 2$: MOVB (R1)+,R0 CMP R0,#'9 BHI 1$ CMP R0,#'0 BLO 1$ SUB #60,R0 MOV R5,R2 ; *10 ASL R5 ASL R5 ADD R2,R5 ASL R5 ADD R0,R5 BR 2$ 1$: DEC R1 RTS PC ;------ Ввести строку ------ INL: MOV (R5)+,R1 MOV R5,(SP) CLR R2 EMT 20 MOV #FREMEM,R1 MOV #5100,R2 EMT 10 CLRB -1(R1) RTS PC ;------ Найти символ или конец строки --- FCH: MOV (R5)+,R0 TSTB (R1) BEQ 1$ CMPB (R1)+,R0 BNE FCH TST (PC)+ 1$: SEC RTS R5 ;------ Создаем пустой PKT-шник ------- CREPKT: TST (PC)+ FLAG: .WORD 0 BNE 559$ JSR R1,@TXT .ASCIZ<14>/Создание PKT-файла. Введите параметры./<12> .EVEN JSR PC,MKDD MOV SMD,PDAY ; Default date MOV SMM,PMON MOV SMY,PYEAR JSR R5,INL ; DATE .WORD TXT3 ;/Дата [/ MOV #FREMEM,R1 JSR PC,DDC TST R5 BEQ 1$ MOV R5,PDAY MOV R5,SMD JSR R5,FCH .WORD '. BCS 1$ JSR PC,DDC MOV R5,PMON MOV R5,SMM JSR R5,FCH .WORD '. BCS 1$ JSR PC,DDC CMP R5,#1900. BHI 2$ ADD #1900.,R5 2$: MOV R5,PYEAR MOV R5,SMY 1$: JSR R5,INL ; TIME .WORD TXT4 ;/Время [CH:MN:SC] : / MOV #FREMEM,R1 JSR PC,DDC MOV R5,PHOUR JSR R5,FCH .WORD ': BCS 3$ JSR PC,DDC MOV R5,PMIN JSR R5,FCH .WORD ': BCS 3$ JSR PC,DDC MOV R5,PSEC 3$: JSR R5,INL ;сетка .WORD TXT5 ;/Имя сети : / JSR PC,FFSTR JSR R5,SBCP ; Password .WORD 1 MOV #FREMEM,R1 4$: TSTB (R1)+ BNE 4$ DEC R1 MOV #9.,R2 5$: CLRB (R1)+ SOB R2,5$ MOV #FREMEM,R1 MOV #PASSW,R2 MOV (R1)+,(R2)+ MOV (R1)+,(R2)+ MOV (R1)+,(R2)+ MOV (R1)+,(R2)+ 559$: JSR R5,SBCP ; ADRESS .WORD 0 MOV #FREMEM,R1 JSR PC,DDC MOV R5,POZONE MOV R5,QOZONE ; Не лезь, куда не знаешь... JSR R5,FCH .WORD ': ; BCS CREPKT ; Раньше все шло с клавы... JSR PC,DDC MOV R5,PONET MOV R5,PDNET JSR R5,FCH .WORD '/ ; BCS CREPKT JSR PC,DDC MOV R5,PONODE MOV R5,PDNODE CLR POPOIN JSR R5,FCH .WORD '. BCS 7$ JSR PC,DDC MOV R5,POPOIN 7$: MOV #,R0 MOV #2,(R0)+ CMP (R0)+,(R0)+ MOV #401,(R0)+ ADD #<46-32>,R0 MOV PDNET,(R0)+ ;aonet MOV #400,(R0)+ MOV #401,(R0)+ MOV #1,(R0)+ TST (R0)+ MOV #-1,(R0)+ TST (R0)+ CLR (R0)+ .REPT 5 CLR (R0)+ .ENDR ;CLR QOZONE ;CLR QDZONE RTS PC ;------ Скопировать строку в буфер --- SBCP: MOV #MDAT,177716 MOV (PC)+,R0 CNFADR: .WORD 0 MOV (R5)+,R1 BEQ 1$ 2$: TSTB (R0)+ BNE 2$ SOB R1,2$ 1$: MOV #FREMEM,R1 3$: MOVB (R0)+,(R1)+ BNE 3$ MOV #MPKT,177716 RTS R5 ;------ Найти номер первой строки в конф. ---- FFSTR: MOV #MDAT,177716 MOV #74000,R0 ; CLR R1 3$: CMPB (R0)+,#'@ BEQ 1$ 2$: TSTB (R0)+ BNE 2$ ; INC R1 BR 3$ 1$: TSTB (R0) BEQ 4$ MOV #FREMEM,R2 7$: TSTB (R0) BEQ 2$ TSTB (R2) BEQ 6$ CMPB (R0)+,(R2)+ BEQ 7$ BR 2$ 6$: ;INC R1 61$: TSTB (R0)+ BNE 61$ MOV R0,CNFADR ;tst -(r0) CMPB -(R0),#40 Blos .-4 ;DEC R0 ;CMPB (R0)+,#40 ;BLOS .-4 ;DEC R0 movb (r0),r0 CMPB R0,#'$ BEQ 71$ CMPB R0,#'9 BHI 72$ CMPB R0,#'0 BHIS 71$ 72$: MOVB #-1,R0 71$: movb r0,boss TST (PC)+ 4$: SEC MOV #MPKT,177716 RTS PC ;------ Прочитать MSGID ---- LNMID= 12 SVMID: MOV #MIDPAR,R1 MOV #LNMID,4(R1) MOV #2+10+20,(R1) MOV 120124,-(SP) CLR 120124 MOV 120010,-(SP) MOV (PC)+,R0 PDKT: .WORD 0 MOVB R0,120010 EMT 36 MOV (SP)+,120010 MOV (SP)+,120124 TSTB 1(R1) BNE SVMID RTS PC LOAMID: MOV #MIDPAR,R1 MOV #<3+10+20>,(R1) EMT 36 TSTB 1(R1) BEQ 1$ MOV 177132,R0 SOB R0,. MOV #MIDTEK,R0 MOV #4,R1 3$: MOV 177132,R2 ; ГСЧ MOVB R2,(R0)+ SOB R2,. SOB R1,3$ MOV #5,(R0)+ MOV #9.,(R0)+ MOV #1995.,(R0)+ JSR PC,TXT20 ;BEEP 1$: RTS PC ;------ PKT.MID ----- MIDTEK: .WORD 0,0 SMD: .WORD 0 SMM: .WORD 0 SMY: .WORD 0 ;------ Создать def.date ---- MKDD: CMP SMD,#32. BLO 1$ MOV #1,SMD 1$: CMP SMM,#13. BLO 2$ MOV #1,SMM 2$: CMP SMY,#1995. BLO 3$ CMP SMY,#2050. BLO 4$ 3$: MOV #1995.,SMY 4$: MOV SMD,R1 MOV #TXT3D,R2 ;/DD./ JSR PC,10$ MOV SMM,R1 MOV #TXT3M,R2 ;/MM./ JSR PC,10$ MOV SMY,R1 CMP R1,#1999. BHI 5$ SUB #1900.,R1 BR 6$ 5$: SUB #2000.,R1 6$: MOV #TXT3Y,R2 ;/YY] : / ;JSR PC,10$ ;RTS PC 10$: MOV #2,R3 JSR PC,MDEC CMPB -2(R2),#40 BNE 11$ MOVB #'0,-2(R2) 11$: RTS PC ;------ Чтение файла конфигурации LOACNF: MOV #CNFPAR,R1 EMT 36 TSTB 1(R1) BEQ 1$ JSR R1,@TXT .ASCIZ/?PKT-F-Нет файла конфигурации/<12><12> .EVEN HALT 1$: MOV #MDAT,177716 MOV #30000,R0 MOV #74000,R1 MOV #4000,R2 3$: MOVB (R0)+,R3 BPL 31$ MOVB (R3),R3 BR 2$ 31$: CMP R3,#12 BNE 2$ CLR R3 2$: MOVB R3,(R1)+ SOB R2,3$ MOV 266,R0 ADD #74000,R0 CLRB (R0)+ MOVB #'@,(R0)+ CLRB (R0)+ MOV #MPKT,177716 RTS PC ;------ TEXTS ---- BPM: .WORD 0,PKTDAT,0 .BLKB 40 TXT2: .ASCII/.PKT/ TXT3: .ASCII/Дата [/ TXT3D: .ASCII/DD./ TXT3M: .ASCII/MM./ TXT3Y: .ASCIZ/YY] : / TXT4: .ASCIZ/Время [CH:MN:SC] : / TXT5: .ASCIZ/Имя сети : / ;TXT6: .ASCIZ"Ваш адрес [Z:N/D.P] : " TXT10: .ASCII/AREA:/ TXT7: .Asciz<1>/INTL / TXT11: .ASCII<1>/TOPT / TXT12: .ASCII<1>/FMPT / TXT14: .ASCII<1>/MSGID: / TXT15: .ASCII<1>/REPLY: / TXT16: .ASCIZ/SEEN-BY: / TXT17: .ASCIZ<1>/PATH: / TXT18: .ASCII/JanFebMarAprMayJunJulAugSepOctNovDec/ TXT19: .ASCIZ<1>/PID: BK11M-Image v1.12 by LAV & MKT/ .EVEN TXT20: JSR R1,@TXT .BYTE 7,7,7,7,7,7,7,7,14,0 .EVEN RTS PC KOITAB: .WORD 020040,020040,020040,020040,020040,020040,020040,020040 ;200 .WORD 020040,020040,020040,020040,020040,020040,020040,020040 ;220 .ASCII<24>/а/<3>/©╣цюмя/<6>/збп/<31>/е╨/ ;240 .ASCII/╢/<33>/н/<30><5>/двЁ/<4>/ыьроф/<32>/╠/ ;260 .ASCII/Н═║Ф╓╔ДёЕ╗╘╙╚╛╜╝/ ;300 .ASCII/╞ОЮАБy╕╒ЛК╖ХМИГЙ/ ;320 .ASCII<236><200><201><226><204><205><224><203> ;340 .ASCII<225><210><211><212><213><214>/H/<216> ;350 .ASCII<217><237><220><221><222><223><206><202> ;360 .ASCII<234><233><207><230><235><231><227><232> ;370 MIDPAR: .WORD 3+10+20,MIDTEK,0 .ASCII/PKT.MID / .BLKB 24. ;------ Буферная память -------------- BUFER: .BLKB 80. PKTDAT: PONODE: .WORD 0 PDNODE: .WORD 0 PYEAR: .WORD 0 PMON: .WORD 0 PDAY: .WORD 0 PHOUR: .WORD 0 PMIN: .WORD 0 PSEC: .WORD 0 .WORD 14400. .WORD 2 PONET: .WORD 0 PDNET: .WORD 0 .BYTE 0,0 PASSW: .BLKB 8. QOZONE: .WORD 0 QDZONE: .WORD 0 AONET: .WORD 0 .WORD 0 .BYTE 0,0 .WORD 0 POZONE: .WORD 0 PDZONE: .WORD -1 POPOIN: .WORD 0,0 .WORD 0,0 ;------ Начало пакета ----- ;------ Блок параметров файла конфигурации --- CNFPAR: .WORD 3+10+20,30000,0 .ASCII/PKT.CNF / .BLKB 24. ;------ Поиск подкаталога, откуда грузили --- PODKAT: MOV #midpar,306 MOV DIR,R3 JSR PC,@DIRFIN BCS 2$ MOVB 1(R3),PDKT 2$: RTS PC .BLKW 15. .END START