V30=400 TEKPAN=402 PRENT=404 INSERT=406 INSFIL=410 ODIN=412 INREAD=414 INWRIT=416 REST=420 PERV=422 ESTDIR=424 TEKZAP=426 STBLK=430 LENC=432 LENBLK=434 GDE=436 PROC=440 FF=442 WREG=444 STEN=125672 STENA=125674 PARAM=125512 COLOR=446 VERS=120004 BLK=120006 SUBTEK=120010 SUBOLD=120011 DEVTEK=120012 SUBDIR=120013 DIR=120014 PANEL=120072 SCREEN=120074 STEK=120076 USER=120100 USER2=120114 OVERWR=120124 NAM=306 BLOK=314 SIZE=316 LD0=120134 LD1=120136 LD2=120140 DK=120131 SORTIR=120132 SY=120130 PALET=120127 INIDR.=216 EMT6.=220 INOUT.=222 RDDIR.=224 DIRFI.=226 DIRPR.=230 FRFIN.=232 CREAT.=234 DELET=120036 SAVDI.=242 EMT20.=244 PRINA.=246 TXT=120150 OCTOU.=256 DECOU.=260 TST.=262 TST2.=264 ERROR.=266 FRFN2.=320 CRET2.=322 SELP$=0 SWAP$=2 RAMA$=4 TXT$=6 TXTA$=10 RDIR$=12 OUTP$=14 INVAD$=16 INVKR$=20 BIT16$=22 STA$=24 STA1$=26 WIN$=30 LIN$=32 KEY$=34 STR$=36 SORT$=40 FINS$=42 TX$=44 STEI$=46 TAKE$=50 ZWE$=52 NEBO$=54 CLS$=56 STWIN$=60 INF$=62 OTH$=64 OTHE$=66 ZWUK$=70 SDIR$=72 DEC$=74 C124$=76 C120$=100 IS$=102 IS1$=104 AD160$=106 OVL$=110 .WORD 51414 0SSS: MOV (SP)+,RETUR TRAP INVKR$ CLR @#177130 MOV @#BLK,R0 CLR @R0 COM @#44 TRAP TXTA$ .WORD 40004 .ASCII<5>/Left/<5> .ASCIZ/Commands/<5>/Options/<5>/Right/<237><5> .EVEN CLR @#104 TST @#TEKPAN BEQ STA1 MOV #3,TEKPUN STA1: CALL COMTEK TST PULL BNE 2 EMT 6 000: CALL COMTEK MOV PC,R1 ADD #TEKPUN-.,R1 CMPB R0,#10 BNE 01 TST @R1 BEQ STA1 DEC @R1 01: CMPB R0,#31 BNE 02 CMP @R1,#3 BEQ STA1 INC @R1 02: CMPB R0,#3 BNE 021 JMP QUIT 021: CMPB R0,#12 BEQ 03 CMPB R0,#33 BNE STA1 03: MOV #1,PULL BR STA1 2: MOV TEKPUN,R0 ASL R0 ADD R0,PC BR 0LEFT BR 0CMND BR 0OPT MOV #41047,-(SP) TST @#TEKPAN BNE 0PAN BR 1PAN 0LEFT: MOV #41005,-(SP) TST @#TEKPAN BEQ 0PAN 1PAN: TRAP SWAP$ MOV (SP)+,@#160 CALL LRM MOV R0,R1 TRAP SWAP$ MOV R1,R0 BR 000 0PAN: MOV (SP)+,@#160 CALL LRM 000$: BR 000 0CMND: MOV #41017,-(SP) MOV @SP,R0 MOV #20,R1 MOV #86.,R2 CALL SAVE MOV @SP,R0 TRAP WIN$ .BYTE 15,72. MOV @SP,@#160 TRAP TX$ .WORD 403 .ASCIZ/Protect/ .EVEN TRAP TX$ .WORD 1200-7 .ASCIZ/Unprotect/ .EVEN TRAP TX$ .WORD 1200-12 .ASCIZ/µµµµµµµµµµµ/ .EVEN TRAP TX$ .WORD 1200-12 .ASCIZ/Backup/ .EVEN TRAP TX$ .WORD 1200-6 .ASCIZ/Restore/ .EVEN TRAP TX$ .WORD 1200-7 .ASCIZ/Init/ .EVEN TRAP TX$ .WORD 1200-4 .ASCIZ/Create/ .EVEN 099: MOV @SP,@#160 MOV PC,R5 ADD #BB2-.,R5 CALL VMENU BCS 0EE MOV @R5,R0 ASL R0 ADD PC,R0 ADD #FN-.,R0 ADD @R0,R0 CALL @R0 BR 099 0EE: CALL RES TST (SP)+ BR 000$ 0OPT: MOV #41032,-(SP) MOV @SP,R0 MOV #23,R1 MOV #76.,R2 CALL SAVE MOV @SP,R0 TRAP WIN$ .BYTE 20,62. MOV @SP,@#160 TRAP TX$ .WORD 404 .ASCIZ<237>/Save Setup/<237> .EVEN TRAP TX$ .WORD 1200-14 .ASCIZ"["<3>"] Color" .EVEN TRAP TX$ .WORD 1200-13 .ASCIZ"["<3>"] pr. Code" .EVEN TRAP TX$ .WORD 1200-16 .ASCIZ"["<3>"] pr. Port" .EVEN TRAP TX$ .WORD 1200-16 .ASCIZ"["<3>"] fl. Time" .EVEN TRAP TX$ .WORD 1200-16 .ASCIZ"["<3>"] fl. Type" .EVEN 1REG: MOV #41030+405+1200,@#160 CMPB #300,@#177717 BNE 81 MOVB @#PALET,R0 CALL DECI BR 82 0EE1: BR 0EE 81: TSTB @#PALET BNE 83 TRAP TXT$ .ASCIZ/B&W/ .EVEN BR 82 83: TRAP TXT$ .ASCIZ/Col/ .EVEN 82: MOV #41030+405+2400,@#160 MOV @#PARAM-10,R1 BIC #177774,R1 ASL R1 ADD R1,PC BR 0K7 BR 0K8 BR 0KO TRAP TXT$ .ASCIZ/áÌÔ/ .EVEN BR 84 0K7: TRAP TXT$ .ASCIZ/K-7/ .EVEN BR 84 3REG: BR 1REG 0K8: TRAP TXT$ .ASCIZ/K-8/ .EVEN BR 84 0KO: TRAP TXT$ .ASCIZ/ïÓÎ/ .EVEN 84: BIT #4,@#PARAM-10 BNE 85 TRAP TXTA$ .WORD 41030+405+3600 .ASCIZ/ðÒÍ/ .EVEN BR 86 85: TRAP TXTA$ .WORD 41030+405+3600 .ASCIZ/éÎ×/ .EVEN 86: MOV #41030+405+3600+1200,@#160 MOV @#120070,R1 CLR R0 87: INC R0 SUB #200,R1 BPL 87 DEC R0 CALL DECI 2REG: MOV #41030+405+3600+2400,@#160 MOV #80.,R0 TSTB @#120126 BNE 88 MOV #40.,R0 88: CALL DECI MOV PC,R5 ADD #BB3-.,R5 MOV @SP,@#160 CALL VMENU BCS 0EE1 MOV @R5,R5 ASL R5 ADD R5,PC BR 1SET BR 1COL BR 1COD BR 1PORT BR 1TIME TSTB @#120126 BNE 1FL INCB @#120126 BR 2REG 1SET: JMP SETUP 82$: BR 82 1FL: CLRB @#120126 BR 2REG 1COL: MOV #PALET,R1 CMPB #300,@#177717 BNE 1CO CMPB @R1,#15. BLO 2CO CLRB @R1 BR 3CO 2CO: INCB @R1 3CO: CLR R0 MOVB @R1,R0 SWAB R0 BIS #40000,R0 MOV R0,@#177662 BR 3REG 1CO: TSTB @R1 BNE 4CO INCB @R1 BR 3REG 4CO: CLRB @R1 BR 3REG 1TIME: MOV #120070,R0 CMP @R0,#400 BHIS 1T 2T: MOV #400,@R0 BR 86 1T: CMP @R0,#24000 BHIS 2T CMP @R0,#4000 BLOS 3T ADD #1000,@R0 3T: ADD #200,@R0 BR 86 1PORT: BIT #4,@#PARAM-10 BNE 1P BIS #4,@#PARAM-10 BR 84 1P: BIC #4,@#PARAM-10 BR 84 1COD: MOV #PARAM-10,R0 BIC #177770,@R0 MOV @R0,R1 BIC #177774,R1 BIC #3,@R0 CMP R1,#3 BLO 1C CLR R1 BR 2C 1C: INC R1 2C: BIS R1,@R0 BR 82$ BB3: .WORD 0,5 .WORD 403,14 .WORD 1602,5 .WORD 1602+1200,5 .WORD 1602+2400,5 .WORD 1602+3600,5 .WORD 1602+3600+1200,5 BB2: .WORD 0,5 .WORD 402,11 .WORD 1602,13 .WORD 1602+2400,10 .WORD 1602+2400+1200,11 .WORD 1602+3600+1200,6 .WORD 1602+6200,10 LRM: MOV @#160,R0 MOV R0,-(SP) MOV #16,R1 MOV #76.,R2 CALL SAVE MOV @SP,R0 TRAP WIN$ .BYTE 13,62. TRAP TX$ .WORD 404 .ASCIZ/Brief/ .EVEN TRAP TX$ .WORD 1200-5 .ASCIZ/Full/ .EVEN TRAP TX$ .WORD 1200-7 .ASCIZ/µµµµµµµµµµµ/ .EVEN TRAP TX$ .WORD 1200-10 .ASCIZ/Unsort./ .EVEN TRAP TX$ .WORD 1200-7 .ASCIZ/Name/ .EVEN TRAP TX$ .WORD 1200-4 .ASCIZ/Extens./ .EVEN 1K: TRAP SELP$ MOV R0,R2 SWAB R2 MOV @SP,@#160 TRAP AD160$ .WORD 402 MOV #"} ,R3 MOV R3,R0 TSTB R2 BNE 01 SWAB R0 01: EMT 16 SWAB R0 TRAP AD160$ .WORD 1200-1 EMT 16 SWAB R2 TRAP AD160$ .WORD 2400-1 MOV R3,R0 TSTB R2 BEQ 02 SWAB R0 02: EMT 16 TRAP AD160$ .WORD 1200-1 MOV R3,R0 CMPB #1,R2 BEQ 03 SWAB R0 03: EMT 16 TRAP AD160$ .WORD 1200-1 MOV R3,R0 CMPB #2,R2 BEQ 04 SWAB R0 04: EMT 16 0MEN: MOV PC,R5 ADD #BB1-.,R5 MOV @SP,@#160 CALL VMENU BCS 06 MOV #SORTIR,R4 MOV @R5,R5 ASL R5 ADD R5,PC BR 0BRF BR 0FUL BR 0UN BR 0NAM BICB #3,@R4 BISB #2,@R4 BR 1K 0BRF: BISB #4,@R4 BR 1K 0FUL: BICB #4,@R4 BR 1K 0UN: BICB #3,@R4 BR 1K 0NAM: BICB #3,@R4 BISB #1,@R4 BR 1K 06: CALL RES TST (SP)+ RET BB1: .WORD 0,4 .WORD 401,13 .WORD 1200+401,13 .WORD 3600+401,13 .WORD 5000+401,13 .WORD 6200+401,13 VMENU: CALL INTEK EMT EMT6. CALL INTEK CMPB R0,#33 BNE 01 CMP (R5),2(R5) BEQ VMENU INC (R5) BR VMENU 01: CMPB R0,#32 BNE 02 TST @R5 BEQ VMENU DEC @R5 BR VMENU 02: CMPB R0,#10 BNE 03 TST TEKPUN BNE 0EX 03: CMPB R0,#31 BNE 04 CMP TEKPUN,#3 BNE 0EX 04: CMPB R0,#3 BEQ 0EX CMPB R0,#12 BNE VMENU TST (PC)+ 0EX: SEC RET INTEK: MOV R5,R3 ADD #4,R3 MOV (R5),R2 BEQ 1 CMP (R3)+,(R3)+ SOB R2,.-2 1: MOV (R3)+,R4 ADD @#160,R4 MOV (R3)+,R1 BR INV SAVE: MOV PC,R5 ADD #EOF-.,R5 MOV R0,(R5)+ MOV R1,(R5)+ MOV R2,(R5)+ 1: MOV R1,R3 2: MOVB (R0)+,(R5)+ SOB R3,2 ADD #100,R0 SUB R1,R0 SOB R2,1 RET RES: MOV PC,R5 ADD #EOF-.,R5 MOV (R5)+,R4 MOV (R5)+,R1 MOV (R5)+,R2 1: MOV R1,R3 ASR R3 2: MOVB (R5)+,(R4)+ MOVB (R5)+,(R4)+ SOB R3,2 BCC 3 MOVB (R5)+,(R4)+ 3: ADD #100,R4 SUB R1,R4 SOB R2,1 RET COMTEK: MOV PC,R1 ADD #PSPIS-.,R1 MOV TEKPUN,R4 BEQ 0 CMP (R1)+,(R1)+ SOB R4,.-2 0: MOV (R1)+,R4 MOV (R1)+,R1 INV: MOV #12,R2 1: MOV R1,R3 2: COMB (R4)+ SOB R3,2 ADD #100,R4 SUB R1,R4 SOB R2,1 RET INIT: CALL RES CALL STWIN MOV @#160,-(SP) MOV @SP,@#160 TRAP TX$ .WORD 503 .ASCIZ/éÎÉÃÉÁÌÉÚÁÃÉÑ,/ .EVEN TRAP TX$ .WORD 1600-15 .ASCIZ"[ä]a,[î]ÅÔ?" .EVEN 0K: TRAP ZWUK$ CLR @#104 EMT 6 EMT TST2. CMPB R0,#'D BEQ 0DA CMPB R0,#'N BNE 0K 0NET: JMP QUIT 0DA: EMT INIDR. EMT RDDIR. BCS 0NET TST @#LD0 BNE 0LD MOV @#4,R5 MOV SP,R4 CMPB @#DEVTEK,#1 BHI 0VINT NETU: MOV R5,@#4 MOV R4,SP MOV #1600.,SIZE$ CMPB @#DEVTEK,#'E-'A BHIS 0LD TSTB @#120126 BNE INIDIS MOV #800.,SIZE$ BR INIDIS 0VINT: MOV PC,R0 ADD #NETU-.,R0 MOV R0,@#4 TST @#177640 ;TST @#177740 MOV R5,@#4 MOV R4,SP MOV @#BLK,R3 CALL @#160010 MOVB @#DEVTEK,34(R3) MOV #320,R2 MOV #1,R1 ;CLR R1 CLR R0 CALL @#160004 BCS 0HANA MOV 54(R3),SIZE$ ;MOV R0,SIZE$ BR INIDIS 0LD: MOV #100.,SIZE$ MOV @#DIR,R3 CMP #123456,400(R3) BNE 0SEL MOV 466(R3),SIZE$ 0SEL: CALL SELECT INIDIS: MOV @#DIR,R3 MOV R3,R1 MOV #1000,R2 CLR (R1)+ SOB R2,.-2 MOV #24,32(R3) TST @#LD0 BEQ 1 MOV #12,32(R3) 1: MOV #123456,400(R3) MOV #51414,402(R3) MOV SIZE$,466(R3) MOV 32(R3),470(R3) MOV 32(R3),520(R3) CLR @#44 TRAP SDIR$ 0HANA: JMP QUIT STWIN: TRAP SELP$ TRAP AD160$ .WORD 10006 MOV @#160,R0 TRAP WIN$ .BYTE 21,36 RET SEL1: CALL STWIN MOV @#160,-(SP) TRAP TX$ .WORD 502 .ASCIZ/Select vol.size:/ .EVEN MOV #32767.+32766.,SSZ BR S1 SELECT: MOV #32767.,SSZ CALL STWIN MOV @#160,-(SP) TRAP TX$ .WORD 502 .ASCIZ/Select LD size:/ .EVEN S1: MOV @SP,@#160 TRAP TX$ .WORD 502+1600 .ASCIZ/­³/ .EVEN MOV (PC)+,R0 SIZE$: .WORD 0 TRAP DEC$ TRAP TXT$ .ASCIZ/ blocks/ .EVEN 0K: EMT EMT6. MOV PC,R1 ADD #SIZE$-.,R1 CMPB R0,#3 BNE 01 JMP QUIT 01: CMPB R0,#33 BNE 02 CMP @R1,#100. BLOS 0K SUB #100.,@R1 BR S1 02: CMPB R0,#32 BNE 03 CMPB @#DEVTEK,#1 BHI 1$ MOV #1580.,R3 TSTB @#120126 BNE 2$ MOV #780.,R3 2$: CMP @R1,R3 BHIS 0K ADD #100.,@R1 CMP @R1,#26000. BLOS S1 ADD #1000.,@R1 BR S1 1$: MOV SSZ,R3 BR 2$ 03: CMPB R0,#12 BNE 0K MOV (SP)+,@#160 RET SSZ: .WORD 0 CREATE: CALL RES TRAP SELP$ EMT INIDR. EMT RDDIR. BCS 0NET CMP 400(R3),#123456 BEQ 0OK 0NET: JMP QUIT 0OK: MOV #100.,SIZE$ MOV @#DIR,R3 MOV SIZE$,R1 TST 30(R3) BNE 90 MOV 466(R3),R0 SUB 32(R3),R0 CMP R1,R0 BHI 91 90: EMT FRFN2. BCC 1OK 91: CALL STWIN TRAP TX$ .WORD 1205 .ASCIZ/îÅÔ ÍÅÓÔÁ!/ .EVEN TRAP ZWUK$ EMT 6 BR 0NET 1OK: CALL SELECT MOV @#DIR,R3 MOV SIZE$,R1 TST 30(R3) BNE 92 MOV 466(R3),R0 SUB 32(R3),R0 CMP R1,R0 BHI 93 92: EMT FRFN2. BCC 2OK 93: TRAP ZWUK$ BR 1OK 2OK: MOV R3,-(SP) TRAP SELP$ TRAP AD160$ .WORD 15006 MOV @#160,-(SP) MOV @SP,R0 TRAP WIN$ .BYTE 21,36 TRAP TX$ .WORD 402 .ASCIZ/Enter LD name:/ .EVEN MOV (SP)+,@#160 TRAP AD160$ .WORD 402+1400 MOV #326,R1 MOV #16,R2 MOVB #40,(R1)+ SOB R2,.-4 5OK: MOV #326,R3 MOV #16,R2 CLR @#44 MOV @#160,-(SP) TRAP STR$ BCS 0NET MOV (SP)+,@#160 CMPB @#326,#40 BEQ 5OK MOV @#DIR,R3 EMT DIRFI. BCS 6OK TRAP ZWUK$ BR 5OK 6OK: MOV (SP),R3 MOV SIZE$,R1 MOV @#DIR,R4 EMT CRET2. MOV (SP),R3 MOV #2,@R3 TRAP SDIR$ MOV (SP)+,R3 ADD 20(R3),@#LD0 ADD 20(R3),@#LD1 JMP INIDIS RESTOR: TRAP SELP$ TST @#LD0 BEQ 1 RET 1: CMPB @#DEVTEK,#1 BLOS 2 RET 2: CALL RES CALL STWIN TRAP TX$ .WORD 603 .ASCIZ/÷ÏÓÓÔÁÎÏ×ÉÔØ/ .EVEN TRAP TX$ .WORD 1400-14 .ASCIZ"ËÁÔÁÌÏÇ (ä/î)?" .EVEN TRAP ZWUK$ 3K: CLR @#104 EMT 6 EMT TST2. CMPB R0,#'N BEQ 05$ CMPB R0,#'D BNE 3K EMT INIDR. MOV #1600.,R0 TSTB @#120126 BNE 3 MOV #800.,R0 3: MOV #4300,R1 MOV @#DIR,R2 CALL @#160004 BCS 06 EMT INIDR. MOV @#DIR,R2 CMP 402(R2),#51414 BNE 06 CLR R0 MOV #-4300,R1 MOVB #3,15(R3) MOV R0,BL MOV R1,LN MOV R2,AD CALL @#160004 BCC 05 BR RW 05$: BR 05 BACK: TRAP SELP$ TST @#LD0 BEQ 01 RET 01: CMPB @#DEVTEK,#1 BLOS 02 RET 02: CALL RES EMT INIDR. CLR R0 MOV @#DIR,R2 MOV #4300,R1 CALL @#160004 BCS 06 MOV @#DIR,R3 CMP 402(R3),#51414 BNE 06 03: EMT INIDR. MOV #1600.,R0 TSTB @#120126 BNE 04 MOV #800.,R0 04: MOV #-4300,R1 MOV @#DIR,R2 MOVB #1,15(R3) MOV R0,BL MOV R1,LN MOV R2,AD CALL @#160004 BCC 05 RW: MOV #3,-(SP) O07: MOVB #4,15(R3) CALL @#160012 BCC 09 CMPB @#52,#7 BEQ 06 CMPB @#52,#1 BEQ 06 09: MOV (PC)+,R0 BL: .WORD 0 MOV (PC)+,R1 LN: .WORD 0 MOV (PC)+,R2 AD: .WORD 0 CALL @#160004 BCC 05 CMPB @#52,#7 BEQ 06 DEC @SP BNE O07 06: TRAP ZWUK$ 05: JMP QUIT DECI: MOV R0,R2 MOVB #40,R0 EMT 16 EMT 16 EMT 16 SUB #3,@#160 MOV R2,R0 EMT DECOU. RET SETUP: CALL RES EMT INIDR. CLR @#LD1 MOVB @#SY,34(R3) MOV PC,R2 ADD #EOF-.,R2 MOV R2,SIZE$ MOV #44,R0 MOV #400,R1 EMT INOUT. BCS 31Q MOV SIZE$,R2 MOV #120000,R3 CMP 4(R2),4(R3) ;÷åòóéé óï÷ðáìé??? BNE 31Q MOV PC,R5 ADD #DAT-.,R5 1: MOV R3,R0 ADD @R5,R0 MOV R2,R1 ADD (R5)+,R1 MOV @R0,@R1 TST @R5 BNE 1 MOV #44,R0 MOV #-400,R1 EMT INOUT. BCS 31Q MOV SIZE$,R2 MOV #51,R0 MOV #400,R1 EMT INOUT. BCS 31Q MOV SIZE$,R2 MOV R2,R1 ADD #512-14,R1 MOV #PARAM-14,R3 MOV #26,R0 MOVB (R3)+,(R1)+ SOB R0,.-2 MOV #51,R0 MOV #-400,R1 EMT INOUT. BCS 31Q CMPB #300,@#177717 BNE QUIT TRAP SWAP$ EMT INIDR. CLR @#LD1 MOVB @#SY,34(R3) MOV @#DIR,R2 MOV #36,R0 MOV #2400,R1 EMT INOUT. BCS 2QUIT MOV #112276,R1 MOV @#DIR,R2 ADD #276,R2 MOV #3600,R3 MOVB (R1)+,(R2)+ SOB R3,.-2 MOV #36,R0 MOV #-2400,R1 MOV @#DIR,R2 EMT INOUT. 2QUIT: TRAP SWAP$ BR QUIT 31Q: BR 1QUIT DAT:.WORD 10,12,70,72,124,126,132,0 UNPROT: CLR STS+2 BR 1ROT PROT: MOV #1,STS+2 1ROT: TRAP SELP$ TST 14(R5) BEQ 1$ RET 1$: TST 30(R3) BNE 2$ RET 2$: CALL RES CLR @#44 TRAP INF$ TST @#INSFIL BNE 0MNOGO TRAP SELP$ TRAP TAKE$ BIS #100000,22(R3) 0MNOGO: TRAP SELP$ MOV 30(R3),R2 ADD #450,R3 D1: ADD #30,R3 CMPB #377,@R3 BEQ D1 CMPB #177,2(R3) BEQ 2 CMPB #200,@R3 BEQ 2 TST 22(R3) BPL 2 CMPB #2,@R3 BEQ 2 STS: MOVB #1,@R3 2: BIC #100000,22(R3) SOB R2,D1 TRAP OTH$ BCC 00Q 1QUIT: TRAP ZWUK$ TST (PC)+ 00Q: TRAP SDIR$ QUIT: CLR @#44 JMP @(PC)+ RETUR: .WORD 0 TEKPUN: .WORD 0 PULL: .WORD 0 PSPIS: .WORD 40010,6,40021,12,40036,11,40052,7 FN: .WORD PROT-.,UNPROT-.,BACK-.,RESTOR-.,INIT-.,CREATE-. EOF:.END