CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Table of contents 2- 3 /ESC C sequences/ 3- 3 /ESC # C sequences/ 4- 3 /ESC ( C sequences/ 5- 3 /ESC [ n C sequences/ 6- 3 /ESC [ ? n C sequences/ 7- 3 /ESC [ n;m C sequences/ 8- 3 /ESC [ >3 n;m C sequences/ 9- 3 /Integer -> ASCII Conversion routine/ CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 1 1 .TITLE CIT101 2 ; THIS INCLUDES THE SUPERSET OF CIT-101 ROUTINES WHICH EXTEND 3 ; VT-100 FUNCTIONALITY. 4 ; R. W. BARNARD 5 ; 6-SEP-82 6 ; 7-DEC-83 7 ; 10-FEB-84 8 ; CONVERTED FOR "I and D" PSECTS: 9-MAR-84 9 .IDENT /V02.2/ 10 .MCALL .PRINT 11 000000 .PSECT 12 ; 13 ;********************************************************************** 14 ; 15 ; Conditionals for assembly of code for the CIT 101 terminal 16 ; (a superset of the VT100), and for a VT100 with printer port 17 ; 18 000001 CIT101 = 1 ;Comment this line out for a VT100 19 000001 PRPORT = 1 ;Comment this line out for no Printer Port 20 ; 21 ;********************************************************************** 22 ; 23 ; These ".GLOBL" symbols indicate which labels may be 24 ; called as FORTRAN subroutines 25 ; 26 .GLOBL SAVCUR,RESCUR,KPAM,KPNM,RIS,RI,ALIGND,BIGTOP,BIGBOT 27 .GLOBL DWL,SWL,SGS,DGS,CLRALL,CLRTOP,CLRBOT,LL,CLRLIN 28 .GLOBL CLRBEG,CLREND,NEGVID,ATROFF,SM,RM,CUP,STBM,NEL,IND 29 .GLOBL CUU,CUD,CUF,CUB,ANSI,CRLF,HOME,ACS,AGS 30 .GLOBL BOLD,UNDLIN,BLINK,WHATRU 31 ; 32 .IF DF CIT101 33 .GLOBL CIPCN,CIPCF,CIAPN,CIAPF,CIPL,CIPS,CIALAS,CIALAC 34 .GLOBL CIKC,CIDHT,CIDHB,CISM,CIRM,CICBLK,CICUAT,CICLW,CICSW 35 .GLOBL CIK2C,CIK2P,CIP2C,CIP2S,CIPSTP,CIPCLR 36 .ENDC 37 ; 38 .IF DF PRPORT 39 .GLOBL AUPON,AUPOFF,PRCON,PRCOFF,PRTCUL,PRFLSC,PRSCRG,PRFFON 40 .GLOBL PRFFOF,DCHAR,ICHAR,DLINE,ILINE,INSMOD,REPMOD,PRS 41 .ENDC 42 ; 43 .ENABL LC 44 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 2 1 ;********************************************************************** 2 ; 3 .SBTTL /ESC C sequences/ 4 ; 5 000000 012702 000001' SAVCUR: MOV #MSG2+1,R2 ;SAVe CURsor & attributes 6 000004 112712 000067 MOVB #'7,(R2) 7 000010 000461 BR PRINT2 8 ; 9 000012 012702 000001' RESCUR: MOV #MSG2+1,R2 ;REStore CURsor & attributes 10 000016 112712 000070 MOVB #'8,(R2) 11 000022 000454 BR PRINT2 12 ; 13 000024 012702 000001' KPAM: MOV #MSG2+1,R2 ;KeyPad Application Mode 14 000030 112712 000075 MOVB #'=,(R2) 15 000034 000447 BR PRINT2 16 ; 17 000036 012702 000001' KPNM: MOV #MSG2+1,R2 ;KeyPad Numeric Mode 18 000042 112712 000076 MOVB #'>,(R2) 19 000046 000442 BR PRINT2 20 ; 21 000050 012702 000001' RIS: MOV #MSG2+1,R2 ;Reset to Initial State 22 000054 112712 000143 MOVB #'c,(R2) 23 000060 000435 BR PRINT2 24 ; 25 000062 012702 000001' RI: MOV #MSG2+1,R2 ;Reverse Index (move up) 26 000066 112712 000115 MOVB #'M,(R2) 27 000072 000430 BR PRINT2 28 ; 29 000074 012702 000001' NEL: MOV #MSG2+1,R2 ;NEw Line 30 000100 112712 000105 MOVB #'E,(R2) 31 000104 000423 BR PRINT2 32 ; 33 000106 012702 000001' IND: MOV #MSG2+1,R2 ;INDex (move down) 34 000112 112712 000104 MOVB #'D,(R2) 35 000116 000416 BR PRINT2 36 ; 37 000120 012702 000001' ANSI: MOV #MSG2+1,R2 ;set ANSI mode 38 000124 112712 000074 MOVB #'<,(R2) 39 000130 000411 BR PRINT2 40 ; 41 ; 42 .IF DF CIT101 43 000132 012702 000001' CIPCN: MOV #MSG2+1,R2 ;C. Itoh Print Controller oN 44 000136 112712 000061 MOVB #'1,(R2) 45 000142 000404 BR PRINT2 46 ; 47 000144 012702 000001' CIPCF: MOV #MSG2+1,R2 ;C. Itoh Print Controller ofF 48 000150 112712 000062 MOVB #'2,(R2) 49 .ENDC 50 ; 51 000154 PRINT2: .PRINT #MSG2 52 000162 000207 RTS PC 53 ; 54 000164 CRLF: .PRINT #MSG2A 55 000172 000207 RTS PC 56 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 3 /ESC C sequences/ 1 ;*********************************************************************** 2 ; 3 .SBTTL /ESC # C sequences/ 4 ; 5 000174 012702 000012' ALIGND: MOV #MSG3+2,R2 ;ALIGN Display (fill screen with E's) 6 000200 112712 000070 MOVB #'8,(R2) 7 000204 000167 000200 JMP PRINT3 8 ; 9 000210 012702 000012' BIGTOP: MOV #MSG3+2,R2 ;BIG TOP (of double height line) 10 000214 112712 000063 MOVB #'3,(R2) 11 000220 000473 BR PRINT3 12 ; 13 000222 012702 000012' BIGBOT: MOV #MSG3+2,R2 ;BIG BOTtom (of double height line) 14 000226 112712 000064 MOVB #'4,(R2) 15 000232 000466 BR PRINT3 16 ; 17 000234 012702 000012' DWL: MOV #MSG3+2,R2 ;Double Width Line 18 000240 112712 000066 MOVB #'6,(R2) 19 000244 000461 BR PRINT3 20 ; 21 000246 012702 000012' SWL: MOV #MSG3+2,R2 ;Single Width Line 22 000252 112712 000065 MOVB #'5,(R2) 23 000256 000454 BR PRINT3 24 ; 25 ; 26 .IF DF CIT101 27 000260 012702 000012' CIAPN: MOV #MSG3+2,R2 ;C. Itoh Auto Print oN 28 000264 112712 000060 MOVB #'0,(R2) 29 000270 000447 BR PRINT3 30 ; 31 000272 012702 000012' CIAPF: MOV #MSG3+2,R2 ;C. Itoh Auto Print ofF 32 000276 112712 000061 MOVB #'1,(R2) 33 000302 000442 BR PRINT3 34 ; 35 000304 012702 000012' CIPL: MOV #MSG3+2,R2 ;C. Itoh Print Line 36 000310 112712 000062 MOVB #'2,(R2) 37 000314 000435 BR PRINT3 38 ; 39 000316 012702 000012' CIPS: MOV #MSG3+2,R2 ;C. Itoh Print Screen 40 000322 112712 000067 MOVB #'7,(R2) 41 000326 000430 BR PRINT3 42 ; 43 000330 012702 000012' CIALAS: MOV #MSG3+2,R2 ;C. Itoh Alternate Line Attr. Set 44 000334 112712 000074 MOVB #'<,(R2) 45 000340 000423 BR PRINT3 46 ; 47 000342 012702 000012' CIALAC: MOV #MSG3+2,R2 ;C. Itoh Alternate Line Attr. Clr. 48 000346 112712 000075 MOVB #'=,(R2) 49 000352 000416 BR PRINT3 50 ; 51 000354 012702 000012' CIKC: MOV #MSG3+2,R2 ;C. Itoh KeyClick 52 000360 112712 000076 MOVB #'>,(R2) 53 000364 000411 BR PRINT3 54 ; 55 000366 012702 000012' CIDHT: MOV #MSG3+2,R2 ;C. Itoh Double Height (sgl wdth) Top 56 000372 112712 000072 MOVB #':,(R2) 57 000376 000404 BR PRINT3 CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 3-1 /ESC # C sequences/ 58 ; 59 000400 012702 000012' CIDHB: MOV #MSG3+2,R2 ;C. Itoh Double Height (sgl wdth) Bot 60 000404 112712 000073 MOVB #';,(R2) 61 .ENDC 62 ; 63 000410 PRINT3: .PRINT #MSG3 64 000416 000207 RTS PC 65 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 4 /ESC # C sequences/ 1 ;*********************************************************************** 2 ; 3 .SBTTL /ESC ( C sequences/ 4 000420 012702 000016' SGS: MOV #MSG3A+2,R2 ;Select Graphics Set 5 000424 112712 000060 MOVB #'0,(R2) 6 000430 000416 BR PRIN3A 7 ; 8 000432 012702 000016' DGS: MOV #MSG3A+2,R2 ;Deselect Graphics Set 9 000436 112712 000102 MOVB #'B,(R2) 10 000442 000411 BR PRIN3A 11 ; 12 000444 012702 000016' ACS: MOV #MSG3A+2,R2 ;Alternate Character Set 13 000450 112712 000061 MOVB #'1,(R2) 14 000454 000404 BR PRIN3A 15 ; 16 000456 012702 000016' AGS: MOV #MSG3A+2,R2 ;Alternate Graphics Set 17 000462 112712 000062 MOVB #'2,(R2) 18 ; 19 000466 PRIN3A: .PRINT #MSG3A 20 000474 000207 RTS PC 21 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 5 /ESC ( C sequences/ 1 ;*********************************************************************** 2 ; 3 .SBTTL /ESC [ n C sequences/ 4 000476 012702 000022' CLRALL: MOV #MSG4+2,R2 ;CLeaR ALL of the screen 5 000502 112712 000062 MOVB #'2,(R2) 6 000506 000412 BR ED 7 ; 8 000510 012702 000022' CLRTOP: MOV #MSG4+2,R2 ;CLeaR the TOP of the screen 9 000514 112712 000061 MOVB #'1,(R2) 10 000520 000405 BR ED 11 ; 12 000522 012702 000022' CLRBOT: MOV #MSG4+2,R2 ;CLeaR the BOTtom of the screen 13 000526 112712 000060 MOVB #'0,(R2) 14 000532 000400 BR ED 15 ; 16 000534 112762 000112 000001 ED: MOVB #'J,1(R2) ;[Erase the Display] 17 000542 000167 000424 JMP PRINT4 ;not Fortran callable 18 ; 19 000546 012702 000022' LL: MOV #MSG4+2,R2 ;Light Led (on keyboard) 20 000552 112762 000161 000001 MOVB #'q,1(R2) 21 000560 012504 MOV (R5)+,R4 ;Move no. of args. to R4 22 000562 042704 177400 BIC #177400,R4 ;Clear m.s. byte of R4 23 000566 004767 001442 JSR PC,GETARG 24 000572 110112 MOVB R1,(R2) 25 000574 000167 000372 JMP PRINT4 26 ; 27 000600 012702 000022' CLRLIN: MOV #MSG4+2,R2 ;CLeaR LINe 28 000604 112712 000062 MOVB #'2,(R2) 29 000610 000412 BR EL 30 ; 31 000612 012702 000022' CLRBEG: MOV #MSG4+2,R2 ;CleaR BEGinning of line 32 000616 112712 000061 MOVB #'1,(R2) 33 000622 000405 BR EL 34 ; 35 000624 012702 000022' CLREND: MOV #MSG4+2,R2 ;CLeaR END of the line 36 000630 112712 000060 MOVB #'0,(R2) 37 000634 000400 BR EL 38 ; 39 000636 112762 000113 000001 EL: MOVB #'K,1(R2) ;[Erase Line] 40 000644 000167 000322 JMP PRINT4 ;not Fortran callable 41 ; 42 000650 012702 000022' NEGVID: MOV #MSG4+2,R2 ;NEGative VIDeo for next characters 43 000654 112712 000067 MOVB #'7,(R2) 44 000660 000424 BR SGR 45 ; 46 000662 012702 000022' ATROFF: MOV #MSG4+2,R2 ;ATtRibutes OFF for next characters 47 000666 112712 000060 MOVB #'0,(R2) 48 000672 000417 BR SGR 49 ; 50 000674 012702 000022' UNDLIN: MOV #MSG4+2,R2 ;UNDerLINe for next characters 51 000700 112712 000064 MOVB #'4,(R2) 52 000704 000412 BR SGR 53 ; 54 000706 012702 000022' BOLD: MOV #MSG4+2,R2 ;BOLD for next characters 55 000712 112712 000061 MOVB #'1,(R2) 56 000716 000405 BR SGR 57 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 5-1 /ESC [ n C sequences/ 58 000720 012702 000022' BLINK: MOV #MSG4+2,R2 ;BLINK for next characters 59 000724 112712 000065 MOVB #'5,(R2) 60 000730 000400 BR SGR 61 ; 62 000732 112762 000155 000001 SGR: MOVB #'m,1(R2) ;[Select Graphics Rendition] 63 000740 000167 000226 JMP PRINT4 ;not Fortran callable 64 ; 65 000744 012702 000022' WHATRU: MOV #MSG4+2,R2 ;(Status report) 66 000750 112712 000060 MOVB #'0,(R2) 67 000754 112762 000143 000001 MOVB #'c,1(R2) 68 000762 000167 000204 JMP PRINT4 69 ; 70 ; 71 .IF DF CIT101 72 000766 012702 000022' CIK2C: MOV #MSG4+2,R2 ;C. Itoh Keyboard To Comm port 73 000772 112712 000060 MOVB #'0,(R2) 74 000776 000431 BR CIP 75 ; 76 001000 012702 000022' CIK2P: MOV #MSG4+2,R2 ;C. Itoh Keyboard To Printer port 77 001004 112712 000061 MOVB #'1,(R2) 78 001010 000424 BR CIP 79 ; 80 001012 012702 000022' CIP2C: MOV #MSG4+2,R2 ;C. Itoh aux (Printer) To Comm port 81 001016 112712 000062 MOVB #'2,(R2) 82 001022 000417 BR CIP 83 ; 84 001024 012702 000022' CIP2S: MOV #MSG4+2,R2 ;C. Itoh aux (Printer) To Screen 85 001030 112712 000063 MOVB #'3,(R2) 86 001034 000412 BR CIP 87 ; 88 001036 012702 000022' CIPSTP: MOV #MSG4+2,R2 ;C. Itoh aux Port SToP 89 001042 112712 000064 MOVB #'4,(R2) 90 001046 000405 BR CIP 91 ; 92 001050 012702 000022' CIPCLR: MOV #MSG4+2,R2 ;C. Itoh aux Port CLeaR 93 001054 112712 000065 MOVB #'5,(R2) 94 001060 000400 BR CIP 95 ; 96 001062 112762 000172 000001 CIP: MOVB #'z,1(R2) ;C. Itoh Aux Port control 97 001070 000440 BR PRINT4 98 .ENDC 99 ; 100 ; 101 .IF DF PRPORT 102 001072 012702 000022' PRCON: MOV #MSG4+2,R2 ;PRint Controller ON 103 001076 112712 000065 MOVB #'5,(R2) 104 001102 000412 BR PP1 105 ; 106 001104 012702 000022' PRCOFF: MOV #MSG4+2,R2 ;PRint Controller OFF 107 001110 112712 000064 MOVB #'4,(R2) 108 001114 000405 BR PP1 109 ; 110 001116 012702 000022' PRTSCN: MOV #MSG4+2,R2 ;PRinT SCreeN 111 001122 112712 000061 MOVB #'1,(R2) 112 001126 000400 BR PP1 113 ; 114 001130 112762 000151 000001 PP1: MOVB #'i,1(R2) ;Printer Port output Character CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 5-2 /ESC [ n C sequences/ 115 001136 000415 BR PRINT4 116 ; 117 001140 012702 000022' INSMOD: MOV #MSG4+2,R2 ;INSert MODe 118 001144 112762 000150 000001 MOVB #'h,1(R2) 119 001152 000405 BR PP1A 120 ; 121 001154 012702 000022' REPMOD: MOV #MSG4+2,R2 ;REPlace MODe 122 001160 112762 000154 000001 MOVB #'l,1(R2) 123 ; 124 001166 112712 000064 PP1A: MOVB #'4,(R2) ;Output character 125 .ENDC 126 ; 127 001172 PRINT4: .PRINT #MSG4 128 001200 000207 RTS PC 129 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 6 /ESC [ n C sequences/ 1 ;********************************************************************** 2 ; 3 .SBTTL /ESC [ ? n C sequences/ 4 001202 012702 000030' SM: MOV #MSG5+2,R2 ;Set Mode 5 001206 112712 000077 MOVB #'?,(R2) 6 001212 112762 000150 000002 MOVB #'h,2(R2) 7 001220 000427 BR M 8 ; 9 001222 012702 000030' RM: MOV #MSG5+2,R2 ;Reset Mode 10 001226 112712 000077 MOVB #'?,(R2) 11 001232 112762 000154 000002 MOVB #'l,2(R2) 12 001240 000417 BR M 13 ; 14 ; 15 .IF DF CIT101 16 001242 012702 000030' CISM: MOV #MSG5+2,R2 ;C. Itoh Set Mode 17 001246 112712 000076 MOVB #'>,(R2) 18 001252 112762 000150 000002 MOVB #'h,2(R2) 19 001260 000407 BR M 20 ; 21 001262 012702 000030' CIRM: MOV #MSG5+2,R2 ;C. Itoh Reset Mode 22 001266 112712 000076 MOVB #'>,(R2) 23 001272 112762 000154 000002 MOVB #'l,2(R2) 24 .ENDC 25 ; [Mode] - not Fortran callable 26 001300 012504 M: MOV (R5)+,R4 ;Move no. of args. to R4 27 001302 042704 177400 BIC #177400,R4 ;Clear m.s. byte of R4 28 001306 004767 000722 JSR PC,GETARG 29 001312 110162 000001 MOVB R1,1(R2) 30 001316 000167 000410 JMP PRINT5 31 ; 32 001322 012702 000030' CUU: MOV #MSG5+2,R2 ;CUrsor Up 33 001326 112762 000101 000002 MOVB #'A,2(R2) 34 001334 000435 BR CU 35 ; 36 001336 012702 000030' CUD: MOV #MSG5+2,R2 ;CUrsor Down 37 001342 112762 000102 000002 MOVB #'B,2(R2) 38 001350 000427 BR CU 39 ; 40 001352 012702 000030' CUF: MOV #MSG5+2,R2 ;CUrsor Forward 41 001356 112762 000103 000002 MOVB #'C,2(R2) 42 001364 000421 BR CU 43 ; 44 001366 012702 000030' CUB: MOV #MSG5+2,R2 ;CUrsor Backward 45 001372 112762 000104 000002 MOVB #'D,2(R2) 46 001400 000413 BR CU 47 ; 48 ; 49 .IF DF CIT101 50 001402 012702 000030' CICBLK: MOV #MSG5+2,R2 ;C. Itoh Cursor BLinK modes 51 001406 112762 000167 000002 MOVB #'w,2(R2) 52 001414 000405 BR CU 53 ; 54 001416 012702 000030' CICUAT: MOV #MSG5+2,R2 ;C. Itoh CUrsor ATribute modes 55 001422 112762 000166 000002 MOVB #'v,2(R2) 56 .ENDC 57 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 6-1 /ESC [ ? n C sequences/ 58 001430 012504 CU: MOV (R5)+,R4 ;Move no. of args. to R4 59 001432 042704 177400 BIC #177400,R4 ;Clear m.s. byte of R4 60 001436 004767 000572 JSR PC,GETARG 61 001442 110012 MOVB R0,(R2) 62 001444 110162 000001 MOVB R1,1(R2) 63 001450 000167 000256 JMP PRINT5 64 ; 65 ; 66 .IF DF PRPORT 67 001454 012702 000030' DCHAR: MOV #MSG5+2,R2 ;Delete CHARacter 68 001460 112762 000120 000002 MOVB #'P,2(R2) 69 001466 000760 BR CU 70 ; 71 001470 012702 000030' ICHAR: MOV #MSG5+2,R2 ;Insert CHARacter 72 001474 112762 000100 000002 MOVB #'@,2(R2) 73 001502 000752 BR CU 74 ; 75 001504 012702 000030' DLINE: MOV #MSG5+2,R2 ;Delete LINE 76 001510 112762 000115 000002 MOVB #'M,2(R2) 77 001516 000744 BR CU 78 ; 79 001520 012702 000030' ILINE: MOV #MSG5+2,R2 ;Insert LINE 80 001524 112762 000114 000002 MOVB #'L,2(R2) 81 001532 000736 BR CU 82 ; 83 001534 012702 000030' AUPON: MOV #MSG5+2,R2 ;AUto Print ON 84 001540 112762 000065 000001 MOVB #'5,1(R2) 85 001546 000414 BR PP2 86 ; 87 001550 012702 000030' AUPOFF: MOV #MSG5+2,R2 ;AUto Print OFF 88 001554 112762 000064 000001 MOVB #'4,1(R2) 89 001562 000406 BR PP2 90 ; 91 001564 012702 000030' PRTCUL: MOV #MSG5+2,R2 ;PRinT CUrsor Line 92 001570 112762 000061 000001 MOVB #'1,1(R2) 93 001576 000400 BR PP2 94 ; 95 001600 112712 000077 PP2: MOVB #'?,(R2) ;Printer Port output 2 96 001604 112762 000151 000002 MOVB #'i,2(R2) 97 001612 000447 BR PRINT5 98 ; 99 001614 012702 000030' PRFLSC: MOV #MSG5+2,R2 ;PRint FulL SCreen 100 001620 112762 000150 000002 MOVB #'h,2(R2) 101 001626 000406 BR PP3 102 ; 103 001630 012702 000030' PRSCRG: MOV #MSG5+2,R2 ;PRint SCroll ReGion 104 001634 112762 000154 000002 MOVB #'l,2(R2) 105 001642 000400 BR PP3 106 ; 107 001644 112712 000061 PP3: MOVB #'1,(R2) ;Printer port output 3 108 001650 112762 000071 000001 MOVB #'9,1(R2) 109 001656 000425 BR PRINT5 110 ; 111 001660 012702 000030' PRFFON: MOV #MSG5+2,R2 ;PRinter Form Feed ON 112 001664 112762 000150 000002 MOVB #'h,2(R2) 113 001672 000412 BR PP3A 114 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 6-2 /ESC [ ? n C sequences/ 115 001674 012702 000030' PRFFOF: MOV #MSG5+2,R2 ;PRinter Form Feed OFF 116 001700 112762 000154 000002 MOVB #'l,2(R2) 117 001706 000404 BR PP3A 118 ; 119 001710 PRS: .PRINT #MSG6 ;PRinter Status 120 001716 000207 RTS PC 121 ; 122 001720 112712 000061 PP3A: MOVB #'1,(R2) ;Printer port output 4 123 001724 112762 000070 000001 MOVB #'8,1(R2) 124 .ENDC 125 ; 126 001732 PRINT5: .PRINT #MSG5 127 001740 000207 RTS PC 128 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 7 /ESC [ ? n C sequences/ 1 ;*********************************************************************** 2 ; 3 .SBTTL /ESC [ n;m C sequences/ 4 001742 012715 000000 HOME: MOV #0,(R5) ;load # of args (0) 5 001746 004767 000004 JSR PC,CUP ;first call (default to CUP(1,1)) 6 001752 000167 176520 JMP CLRALL ;go clear screen 7 ; 8 001756 012702 000046' CUP: MOV #MSG8+2,R2 ;CUrsor Position (relative to origin) 9 001762 112762 000110 000005 MOVB #'H,5(R2) 10 001770 000405 BR PRINT8 11 ; 12 001772 012702 000046' STBM: MOV #MSG8+2,R2 ;Set Top and Bottom Margins 13 001776 112762 000162 000005 MOVB #'r,5(R2) ;i.e. the scrolling region 14 ; 15 002004 012504 PRINT8: MOV (R5)+,R4 ;Move no. of args. to R4 16 002006 042704 177400 BIC #177400,R4 ;Clear m.s. byte of R4 17 002012 004767 000216 JSR PC,GETARG 18 002016 110012 MOVB R0,(R2) 19 002020 110162 000001 MOVB R1,1(R2) 20 002024 004767 000204 JSR PC,GETARG 21 002030 110062 000003 MOVB R0,3(R2) 22 002034 110162 000004 MOVB R1,4(R2) 23 002040 .PRINT #MSG8 24 002046 000207 RTS PC 25 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 8 /ESC [ n;m C sequences/ 1 ;********************************************************************** 2 ; 3 .SBTTL /ESC [ >3 n;m C sequences/ 4 .IF DF CIT101 5 002050 012702 000063' CICLW: MOV #MSG9+5,R2 ;C. Itoh Clear Line Window 6 002054 112762 000113 000005 MOVB #'K,5(R2) 7 ; 8 002062 012504 PRINT9: MOV (R5)+,R4 ;Move no. of args. to R4 9 002064 042704 177400 BIC #177400,R4 ;Clear m.s. byte of R4 10 002070 004767 000140 JSR PC,GETARG 11 002074 110012 MOVB R0,(R2) 12 002076 110162 000001 MOVB R1,1(R2) 13 002102 004767 000126 JSR PC,GETARG 14 002106 110062 000003 MOVB R0,3(R2) 15 002112 110162 000004 MOVB R1,4(R2) 16 002116 .PRINT #MSG9 17 002124 000207 RTS PC 18 ; 19 002126 012702 000077' CICSW: MOV #MSG9A+5,R2 ;C. Itoh Clear Screen Window 20 002132 112762 000112 000013 MOVB #'J,11.(R2) 21 ; 22 002140 012504 PRIN9A: MOV (R5)+,R4 ;Move no. of args. to R4 23 002142 042704 177400 BIC #177400,R4 ;Clear m.s. byte of R4 24 002146 004767 000062 JSR PC,GETARG 25 002152 110012 MOVB R0,(R2) 26 002154 110162 000001 MOVB R1,1(R2) 27 002160 004767 000050 JSR PC,GETARG 28 002164 110062 000003 MOVB R0,3(R2) 29 002170 110162 000004 MOVB R1,4(R2) 30 002174 004767 000034 JSR PC,GETARG 31 002200 110062 000006 MOVB R0,6(R2) 32 002204 110162 000007 MOVB R1,7(R2) 33 002210 004767 000020 JSR PC,GETARG 34 002214 110062 000011 MOVB R0,9.(R2) 35 002220 110162 000012 MOVB R1,10.(R2) 36 002224 .PRINT #MSG9A 37 002232 000207 RTS PC 38 .ENDC 39 ; CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 9 /ESC [ >3 n;m C sequences/ 1 ;********************************************************************** 2 ; 3 .SBTTL /Integer -> ASCII Conversion routine/ 4 ; This subroutine takes the next argument and converts it to two ASCII 5 ; characters, which are left in R0 (most significant) and R1 (least sig.). 6 ; 7 002234 012700 000060 GETARG: MOV #'0,R0 ; Initialise R0 to '0' 8 002240 012701 000061 MOV #'1,R1 ; Initialise R1 to '1' 9 002244 005704 TST R4 ; Test number of arguments 10 002246 003001 BGT 1$ ; Branch if R4>0 11 002250 000207 RTS PC ; Here if no arguments left 12 ; 13 002252 005304 1$: DEC R4 ; Decrement no. of args left 14 002254 012503 MOV (R5)+,R3 ; Address of next arg -> R3 15 002256 020327 177777 CMP R3,#-1 16 002262 001001 BNE 2$ ; Branch if arg. is not defaulted 17 002264 000207 RTS PC ; Def.arg. -> R0='0', R1='1' 18 ; 19 002266 011301 2$: MOV @R3,R1 ; Value of next arg. -> R1 20 002270 020127 000001 CMP R1,#1 21 002274 002003 BGE 3$ ; Branch if arg>=1 22 002276 012701 000061 MOV #'1,R1 23 002302 000207 RTS PC ; Arg<1 => R0='0', R1='1' 24 ; 25 002304 020127 000120 3$: CMP R1,#80. 26 002310 003405 BLE 4$ ; Branch if arg<=80 27 002312 012700 000070 MOV #'8,R0 28 002316 012701 000060 MOV #'0,R1 29 002322 000207 RTS PC ; If arg>80 R1='8', R0='0' 30 ; 31 002324 005000 4$: CLR R0 32 002326 071027 000012 DIV #12,R0 ; Divide by 10. 33 002332 062700 000060 ADD #60,R0 ; Convert quotient to ASCII 34 002336 062701 000060 ADD #60,R1 ; Convert remainder to ASCII 35 002342 000207 RTS PC 36 ; 37 ;********************************************************************** 38 ; 39 000000 .PSECT DATA 40 000000 033 070 200 MSG2: .ASCII <33>/8/<200> 41 .EVEN 42 000004 015 012 200 MSG2A: .ASCII <15><12><200> 43 .EVEN 44 000010 033 043 070 MSG3: .ASCII <33>/#8/<200> 000013 200 45 .EVEN 46 000014 033 050 060 MSG3A: .ASCII <33>/(0/<200> 000017 200 47 .EVEN 48 000020 033 133 062 MSG4: .ASCII <33>/[2J/<200> 000023 112 200 49 .EVEN 50 000026 033 133 077 MSG5: .ASCII <33>/[?3l/<200> 000031 063 154 200 51 .EVEN 52 000034 033 133 077 MSG6: .ASCII <33>/[?15h/<200> 000037 061 065 150 CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 9-1 /Integer -> ASCII Conversion routine/ 000042 200 53 .EVEN 54 000044 033 133 062 MSG8: .ASCII <33>/[24;80H/<200> 000047 064 073 070 000052 060 110 200 55 .EVEN 56 000056 033 133 076 MSG9: .ASCII <33>/[>3;01;80k/<200> 000061 063 073 060 000064 061 073 070 000067 060 153 200 57 .EVEN 58 000072 033 133 076 MSG9A: .ASCII <33>/[>3;01;01;24;80k/<200> 000075 063 073 060 000100 061 073 060 000103 061 073 062 000106 064 073 070 000111 060 153 200 59 .EVEN 60 000001 .END CIT101 MACRO V05.00 Monday 31-Dec-84 18:46 Page 9-2 Symbol table ACS 000444RG CIK2P 001000RG CUF 001352RG MSG4 000020R 002 PRINT9 002062R AGS 000456RG CIP 001062R CUP 001756RG MSG5 000026R 002 PRIN3A 000466R ALIGND 000174RG CIPCF 000144RG CUU 001322RG MSG6 000034R 002 PRIN9A 002140R ANSI 000120RG CIPCLR 001050RG DCHAR 001454RG MSG8 000044R 002 PRPORT= 000001 ATROFF 000662RG CIPCN 000132RG DGS 000432RG MSG9 000056R 002 PRS 001710RG AUPOFF 001550RG CIPL 000304RG DLINE 001504RG MSG9A 000072R 002 PRSCRG 001630RG AUPON 001534RG CIPS 000316RG DWL 000234RG NEGVID 000650RG PRTCUL 001564RG BIGBOT 000222RG CIPSTP 001036RG ED 000534R NEL 000074RG PRTSCN 001116R BIGTOP 000210RG CIP2C 001012RG EL 000636R PP1 001130R REPMOD 001154RG BLINK 000720RG CIP2S 001024RG GETARG 002234R PP1A 001166R RESCUR 000012RG BOLD 000706RG CIRM 001262RG HOME 001742RG PP2 001600R RI 000062RG CIALAC 000342RG CISM 001242RG ICHAR 001470RG PP3 001644R RIS 000050RG CIALAS 000330RG CIT101= 000001 ILINE 001520RG PP3A 001720R RM 001222RG CIAPF 000272RG CLRALL 000476RG IND 000106RG PRCOFF 001104RG SAVCUR 000000RG CIAPN 000260RG CLRBEG 000612RG INSMOD 001140RG PRCON 001072RG SGR 000732R CICBLK 001402RG CLRBOT 000522RG KPAM 000024RG PRFFOF 001674RG SGS 000420RG CICLW 002050RG CLREND 000624RG KPNM 000036RG PRFFON 001660RG SM 001202RG CICSW 002126RG CLRLIN 000600RG LL 000546RG PRFLSC 001614RG STBM 001772RG CICUAT 001416RG CLRTOP 000510RG M 001300R PRINT2 000154R SWL 000246RG CIDHB 000400RG CRLF 000164RG MSG2 000000R 002 PRINT3 000410R UNDLIN 000674RG CIDHT 000366RG CU 001430R MSG2A 000004R 002 PRINT4 001172R WHATRU 000744RG CIKC 000354RG CUB 001366RG MSG3 000010R 002 PRINT5 001732R ...V1 = 000003 CIK2C 000766RG CUD 001336RG MSG3A 000014R 002 PRINT8 002004R . ABS. 000000 000 (RW,I,GBL,ABS,OVR) 002344 001 (RW,I,LCL,REL,CON) DATA 000114 002 (RW,I,LCL,REL,CON) Errors detected: 0 *** Assembler statistics Work file reads: 0 Work file writes: 0 Size of work file: 9212 Words ( 36 Pages) Size of core pool: 13312 Words ( 52 Pages) Operating system: RT-11 Elapsed time: 00:00:17.22 VM:CIT101,VM:CIT101=WB:CIT101