.ENABL LC .SBTTL MACROS AND DEFINITIONS ; ; ; DEFINE 'ESCAPE' ; ESC = 27. ; ; .PAGE .SBTTL TERMINAL DEVICE TYPE TABLE ; ; THIS TABLE CONTAINS AN ENTRY FOR EACH TERMINAL DEVICE TYPE ; SUPPORTED. ; LA30=1 LA35=1 LA36=1 LA180=1 LP11=1 LS120=1 MTX=1 SUPTRM=1 MK1=2 MK2=2 MK3=3 VT50=4 VT50H=5 VT52=6 VT100=7 H1500=8. H2000=8. ; END OF DEVICE TYPE TABLE ; .IF EQ .TITLE L36TBL .ident /V01/ .PAGE .SBTTL PRINTER CHARACTERISTICS TABLES ; ; ; THIS SECTION CONTAINS THE TABLES POINTING TO THE FEATURE DESCRIPTORS ; FOR THE PRINTING DEVICES IN THE DEVICE TYPE TABLE. MANY OF THE ; PRINTING DEVICES SHARE COMMON CHARACTERISTICS AND SO ARE ; DEFINED AS MULTIPLE LABELS ON THE SAME ADDRESS. ; ; ; THE FOLLOWING DEVICES HAVE IDENTICAL CHARACTERISTICS ; AS FAR AS SYSTEL IS CONCERNED. THE VARIATIONS IN FORM ; FEED CHARACTERISTICS ARE HANDLED BY THE OPERATING SYSTEM. ; CTLTBL:: ; ; RESET 1 FD.RST .WORD PTAB ; TAB 2 FD.TAB .WORD PPOS ; POSITION 3 FD.POS .WORD PNLINE ; NEWLINE 4 FD.NLN .WORD PBELL ; BELL 5 FD.BEL ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.TAB == 1 ; TAB FD.POS == 2 ; POSITION FD.NLN == 3 ; NEWLINE FD.BEL == 4 ; BELL FD.TOP == 4 ; Max ; ; END OF PRINTING DEVICE CHARACTERISTIC TABLE ; .ENDC .IF EQ .TITLE MK2TBL .ident /V01/ .PAGE .SBTTL MK1/2 VDU DEVICE CHARACTERISTICS TABLE ; ; ; ; THIS SECTION IS THE DEVICE CHARACTERISTICS TABLE FOR THE ; SYSTIME MK1/2 VDU. ; ; CTLTBL:: .WORD MK1RST ; RESET 1 FD.RST .WORD MK1TAB ; TAB 2 FD.TAB .WORD MK1POS ; POSITION 3 FD.POS .WORD MK1NLN ; NEWLINE 4 FD.NLN .WORD MK1BEL ; BELL 5 FD.BEL ; CONTROL CHARS.6 FD.CTL .WORD MK1CLA ; CLR LINE ALL 7 FD.CLA .WORD MK1CLR ; CLR LINE REST 8 FD.CLR .WORD MK1CSA ; CLR SCN ALL 9 FD.CSA ; CLR SCN REST 10 FD.CSR .WORD MK1HOM ; HOME 11 FD.HOM .WORD MK1ION ; INVERSE ON 12 FD.ION .WORD MK1IOF ; INVERSE OFF 13 FD.IOF .WORD MK1LOF ; LIGHTS OFF 14 FD.LOF .WORD MK1LT1 ; LIGHT 1 ON 15 FD.LT1 .WORD MK1LT2 ; LIGHT 2 ON 16 FD.LT2 .WORD MK1LT3 ; LIGHT 3 ON 17 FD.LT3 .WORD MK1LT4 ; LIGHT 4 ON 18 FD.LT4 .WORD MK1PON ; PAGE MODE ON 19 FD.PON .WORD MK1POF ; PAGE MODE OFF 20 FD.POF ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.RST == 1 ; RESET FD.TAB == 2 ; TAB FD.POS == 3 ; POSITION FD.NLN == 4 ; NEWLINE FD.BEL == 5 ; BELL FD.CLA == 6 ; CLEAR LINE (ALL) FD.CLR == 7 ; CLEAR LINE (REST) FD.CSA == 8. ; CLEAR SCREEN (ALL) FD.HOM == 9. ; HOME FD.ION == 10. ; INVERSE ON FD.IOF == 11. ; INVERSE OFF FD.LOF == 12. ; LIGHTS OFF FD.LT1 == 13. ; LIGHT 1 ON FD.LT2 == 14. ; LIGHT 2 ON FD.LT3 == 15. ; LIGHT 3 ON FD.LT4 == 16. ; LIGHT 4 ON FD.PON == 17. ; PAGE MODE ON FD.POF == 18. ; PAGE MODE OFF FD.TOP == 18. ; MAX ; .ENDC ; .IF EQ .TITLE MK3TBL .ident /V01/ .PAGE .SBTTL MK3 DEVICE CHARACTERISTICS TABLE ; ; THIS SECTION IS THE DEVICE CHARACTERISTICS TABLE FOR THE ; SYSTIME MK3 VDU. ; ; CTLTBL:: .WORD MK3RST ; RESET 1 FD.RST .WORD MK3TAB ; TAB 2 FD.TAB .WORD MK3POS ; POSITION 3 FD.POS .WORD MK3NLN ; NEWLINE 4 FD.NLN .WORD MK3BEL ; BELL 5 FD.BEL .WORD MK3CTL ; CONTROL CHARS.6 FD.CTL .WORD MK3CLA ; CLR LINE ALL 7 FD.CLA .WORD MK3CLR ; CLR LINE REST 8 FD.CLR .WORD MK3CSA ; CLR SCN ALL 9 FD.CSA .WORD MK3CSR ; CLR SCN REST 10 FD.CSR .WORD MK3HOM ; HOME 11 FD.HOM .WORD MK3ION ; INVERSE ON 12 FD.ION .WORD MK3IOF ; INVERSE OFF 13 FD.IOF .WORD MK3LOF ; LIGHTS OFF 14 FD.LOF .WORD MK3LT1 ; LIGHT 1 ON 15 FD.LT1 .WORD MK3LT2 ; LIGHT 2 ON 16 FD.LT2 .WORD MK3LT3 ; LIGHT 3 ON 17 FD.LT3 .WORD MK3LT4 ; LIGHT 4 ON 18 FD.LT4 .WORD MK3PON ; PAGE MODE ON 19 FD.PON .WORD MK3POF ; PAGE MODE OFF 20 FD.POF .WORD MK3BON ; BLINK ON 21 FD.BON .WORD MK3BOF ; BLINK OFF 22 FD.BOF .WORD MK3UON ; UNDERSCORE ON 23 FD.UON .WORD MK3UOF ; UNDERSCORE OFF24 FD.UOF .WORD MK3CT1 ; CURSOR TYPE 1 25 FD.CT1 .WORD MK3CT2 ; CURSOR TYPE 2 26 FD.CT2 .WORD MK3CT3 ; CURSOR TYPE 3 27 FD.CT3 .WORD MK3CT4 ; CURSOR TYPE 4 28 FD.CT4 .WORD MK3FT1 ; FOUNT 1 29 FD.FT1 .WORD MK3FT2 ; FOUNT 2 30 FD.FT2 .WORD MK3FUL ; FULL INTENSITY31 FD.FUL .WORD MK3HLF ; 1/2 INTENSITY 32 FD.HLF .WORD MK3VP1 ; TO VDU PAGE1 33 FD.VP1 .WORD MK3VP2 ; TO VDU PAGE2 34 FD.VP2 .WORD MK3PRT ; TO SLAVE PRINT35 FD.PRT .WORD MK3DMP ; DUMP SCREEN 36 FD.DMP .WORD MK3DP0 ; DISPLAY NONE 37 FD.DP0 .WORD MK3DP1 ; DISPLAY PAGE1 38 FD.DP1 .WORD MK3DP2 ; DISPLAY PAGE2 39 FD.DP2 .WORD MK3DP3 ; DISPLAY BOTH 40 FD.DP3 .WORD MK3STR ; STORE CURSOR 41 FD.STR .WORD MK3RES ; RESTORE CURSO%42 FD.RES .WORD MK3SWD ; SINGLE WIDTH 43 FD.SWD .WORD MK3DWD ; DOUBLE WIDTH 44 FD.DWD .WORD MK3SHT ; SINGLE HEIGHT 45 FD.SHT .WORD MK3DHT ; DOUBLE HEIGHT 46 FD.DHT .WORD MK3BAS ; SET SCROLL BASE 47 FD.BAS ;* Withdrawn *; ; MODE ABSOLUTE 48 FD.ABS ;* Withdrawn *; ; MODE RELATIVE 49 FD.REL .WORD MK3DET ; Enable Ctl Chars 50 FD.DET ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.RST == 1 ; RESET FD.TAB == 2 ; TAB FD.POS == 3 ; POSITION FD.NLN == 4 ; NEWLINE FD.BEL == 5 ; BELL FD.CTL == 6 ; DISABLE CONTROL CHARACTERS FD.CLA == 7 ; CLEAR LINE (ALL) FD.CLR == 8. ; CLEAR LINE (REST) FD.CSA == 9. ; CLEAR SCREEN (ALL) FD.CSR == 10. ; CLEAR SCREEN (REST) FD.HOM == 11. ; HOME FD.ION == 12. ; INVERSE ON FD.IOF == 13. ; INVERSE OFF FD.LOF == 14. ; LIGHTS OFF FD.LT1 == 15. ; LIGHT 1 ON FD.LT2 == 16. ; LIGHT 2 ON FD.LT3 == 17. ; LIGHT 3 ON FD.LT4 == 18. ; LIGHT 4 ON FD.PON == 19. ; PAGE MODE ON FD.POF == 20. ; PAGE MODE OFF FD.BON == 21. ; BLINK ON FD.BOF == 22. ; BLINK OFF FD.UON == 23. ; UNDERSCORE ON FD.UOF == 24. ; UNDERSCORE OFF FD.CT1 == 25. ; CURSOR TYPE 1 FD.CT2 == 26. ; CURSOR TYPE 2 FD.CT3 == 27. ; CURSOR TYPE 3 FD.CT4 == 28. ; CURSOR TYPE 4 FD.FT1 == 29. ; FONT 1 FD.FT2 == 30. ; FONT 2 FD.FUL == 31. ; FULL INTENSITY FD.HLF == 32. ; HALF INTENSITY FD.VP1 == 33. ; DIRECT TO VDU PAGE 1 FD.VP2 == 34. ; DIRECT TO VDU PAGE 2 FD.PRT == 35. ; DIRECT TO SLAVE PRINTER FD.DMP == 36. ; DUMP SCREEN TO PRINTER FD.DP0 == 37. ; DISPLAY NO PAGES FD.DP1 == 38. ; DISPLAY PAGE 1 FD.DP2 == 39. ; DISPLAY PAGE 2 FD.DP3 == 40. ; DISPLAY BOTH PAGES FD.STR == 41. ; STORE CURSOR FD.RES == 42. ; RESTORE CURSOR FD.SWD == 43. ; SET SINGLE WIDTH FD.DWD == 44. ; SET DOUBLE WIDTH FD.SHT == 45. ; SET SINGLE HEIGHT FD.DHT == 46. ; SET DOUBLE HEIGHT FD.BAS == 47. ; SET SCROLL BASE FD.DET == 48. ; Reenable Control Chars FD.TOP == 48. ;highest valid ; .ENDC ; .IF EQ .TITLE V52TBL .ident /V01/ .PAGE .SBTTL VT52 DEVICE CHARACTERISTICS TABLE ; ; ; ; THIS SECTION IS THE DEVICE CHARACTERISTICS TABLE FOR THE ; VT52. ; ; ; CTLTBL:: .WORD VT2RST ; RESET 1 FD.RST .WORD VT2TAB ; TAB 2 FD.TAB .WORD VT2POS ; POSITION 3 FD.POS .WORD VT2NLN ; NEWLINE 4 FD.NLN .WORD VT2BEL ; BELL 5 FD.BEL ; CONTROL CHARS.6 FD.CTL .WORD VT2CLA ; CLR LINE ALL 7 FD.CLA .WORD VT2CLR ; CLR LINE REST 8 FD.CLR .WORD VT2CSA ; CLR SCN ALL 9 FD.CSA .WORD VT2CSR ; CLR SCN REST 10 FD.CSR .WORD VT2HOM ; HOME 11 FD.HOM ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.RST == 1 ; RESET FD.TAB == 2 ; TAB FD.POS == 3 ; POSITION FD.NLN == 4 ; NEWLINE FD.BEL == 5 ; BELL FD.CLA == 6 ; CLEAR LINE (ALL) FD.CLR == 7 ; CLEAR LINE (REST) FD.CSA == 8. ; CLEAR SCREEN (ALL) FD.CSR == 9. ; CLEAR SCREEN (REST) FD.HOM == 10. ; HOME FD.TOP == 10. ; Max ; .ENDC ; .IF EQ .TITLE V5HTBL .ident /V01/ .PAGE .SBTTL VT50H DEVICE CHARACTERISTICS TABLE ; ; ; ; THIS SECTION IS THE DEVICE CHARACTERISTICS TABLE FOR THE ; VT50H. ; ; ; CTLTBL:: .WORD VTHRST ; RESET 1 FD.RST .WORD VTHTAB ; TAB 2 FD.TAB .WORD VTHPOS ; POSITION 3 FD.POS .WORD VTHNLN ; NEWLINE 4 FD.NLN .WORD VTHBEL ; BELL 5 FD.BEL ; CONTROL CHARS.6 FD.CTL .WORD VTHCLA ; CLR LINE ALL 7 FD.CLA .WORD VTHCLR ; CLR LINE REST 8 FD.CLR .WORD VTHCSA ; CLR SCN ALL 9 FD.CSA .WORD VTHCSR ; CLR SCN REST 10 FD.CSR .WORD VTHHOM ; HOME 11 FD.HOM ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.RST == 1 ; RESET FD.TAB == 2 ; TAB FD.POS == 3 ; POSITION FD.NLN == 4 ; NEWLINE FD.BEL == 5 ; BELL FD.CLA == 6 ; CLEAR LINE (ALL) FD.CLR == 7 ; CLEAR LINE (REST) FD.CSA == 8. ; CLEAR SCREEN (ALL) FD.CSR == 9. ; CLEAR SCREEN (REST) FD.HOM == 10. ; HOME FD.TOP == 10. ; Max ; .ENDC ; .IF EQ .TITLE V50TBL .ident /V01/ .PAGE .SBTTL VT50 DEVICE CHARACTERISTICS TABLE ; ; ; ; THIS SECTION IS THE DEVICE CHARACTERISTICS TABLE FOR THE ; DEC VT50 ; ; ; CTLTBL:: .WORD VT5RST ; RESET 1 FD.RST .WORD VT5TAB ; TAB 2 FD.TAB ; POSITION 3 FD.POS .WORD VT5NLN ; NEWLINE 4 FD.NLN .WORD VT5BEL ; BELL 5 FD.BEL ; CONTROL CHARS.6 FD.CTL .WORD VT5CLA ; CLR LINE ALL 7 FD.CLA .WORD VT5CLR ; CLR LINE REST 8 FD.CLR .WORD VT5CSA ; CLR SCN ALL 9 FD.CSA .WORD VT5CSR ; CLR SCN REST 10 FD.CSR .WORD VT5HOM ; HOME 11 FD.HOM ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.RST == 1 ; RESET FD.TAB == 2 ; TAB FD.NLN == 3 ; NEWLINE FD.BEL == 4 ; BELL FD.CLA == 5 ; CLEAR LINE (ALL) FD.CLR == 6 ; CLEAR LINE (REST) FD.CSA == 7 ; CLEAR SCREEN (ALL) FD.CSR == 8. ; CLEAR SCREEN (REST) FD.HOM == 9. ; HOME FD.TOP == 9. ; Max ; .ENDC ; .IF EQ .TITLE VTCTBL .ident /V01/ .PAGE .SBTTL VT100 DEVICE CHARACTERISTICS TABLE ; ; ; ; THIS IS THE DEVICE CHARACTERISTICS TABLE FOR THE DEC VT100 ; ; ; ; ; CTLTBL:: .WORD VT1RST ; RESET 1 FD.RST .WORD VT1TAB ; TAB 2 FD.TAB .WORD VT1POS ; POSITION 3 FD.POS .WORD VT1NLN ; NEWLINE 4 FD.NLN .WORD VT1BEL ; BELL 5 FD.BEL ; CONTROL CHARS.6 FD.CTL .WORD VT1CLA ; CLR LINE ALL 7 FD.CLA .WORD VT1CLR ; CLR LINE REST 8 FD.CLR .WORD VT1CSA ; CLR SCN ALL 9 FD.CSA .WORD VT1CSR ; CLR SCN REST 10 FD.CSR .WORD VT1HOM ; HOME 11 FD.HOM .WORD VT1ION ; INVERSE ON 12 FD.ION .WORD VT1IOF ; INVERSE OFF 13 FD.IOF ; LIGHTS OFF 14 FD.LOF ; LIGHT 1 ON 15 FD.LT1 ; LIGHT 2 ON 16 FD.LT2 ; LIGHT 3 ON 17 FD.LT3 ; LIGHT 4 ON 18 FD.LT4 ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.RST == 1 ; RESET FD.TAB == 2 ; TAB FD.POS == 3 ; POSITION FD.NLN == 4 ; NEWLINE FD.BEL == 5 ; BELL FD.CLA == 6 ; CLEAR LINE (ALL) FD.CLR == 7 ; CLEAR LINE (REST) FD.CSA == 8. ; CLEAR SCREEN (ALL) FD.CSR == 9. ; CLEAR SCREEN (REST) FD.HOM == 10. ; HOME FD.ION == 11. ; INVERSE ON FD.IOF == 12. ; INVERSE OFF FD.TOP == 12. ;highest valid ; .ENDC .IF EQ .TITLE H15TBL .ident /V01/ .PAGE .SBTTL H1500/H2000 DEVICE CHARACTERISTICS TABLE ; ; ; ; THIS SECTION IS THE DEVICE CHARACTERISTICS TABLE FOR THE ; H1500/H2000. ; ; ; CTLTBL:: ; RESET 1 FD.RST .WORD H15TAB ; TAB 2 FD.TAB .WORD H15POS ; POSITION 3 FD.POS .WORD H15NLN ; NEWLINE 4 FD.NLN .WORD H15BEL ; BELL 5 FD.BEL ; CONTROL CHARS.6 FD.CTL .WORD H15CLA ; CLR LINE ALL 7 FD.CLA .WORD H15CLR ; CLR LINE REST 8 FD.CLR .WORD H15CSA ; CLR SCN ALL 9 FD.CSA .WORD H15CSR ; CLR SCN REST 10 FD.CSR .WORD H15HOM ; HOME 11 FD.HOM ; ; ; ; CHARACTERISTIC TABLE FEATURE VALUES ; ; ; FD.TAB == 1 ; TAB FD.POS == 2 ; POSITION FD.NLN == 3 ; NEWLINE FD.BEL == 4 ; BELL FD.CLA == 5 ; CLEAR LINE (ALL) FD.CLR == 6 ; CLEAR LINE (REST) FD.CSA == 7 ; CLEAR SCREEN (ALL) FD.CSR == 8. ; CLEAR SCREEN (REST) FD.HOM == 9. ; HOME FD.TOP == 9. ; Max ; .ENDC ; .PAGE .SBTTL FEATURE DESCRIPTORS ; ; ; A FEATURE DESCRIPTOR CONTAINS THE INFORMATION REQUIRED ; IN ORDER FOR A PARTICULAR I/O REQUEST TO BE FORMED FROM ; THE CORRECT CHARACTERS. ; ; THE FORMAT IS :- ; ; OFFSET MNEMONIC DESCRIPTION ; ------------------------------------------- ; 0 FD$LEN NO OF CHARACTERS TO OUTPUT - BYTE ; (NEGATIVE FOR CURSOR CONTROL) ; 1 FD$STR START OF STRING FOR ALL COMMANDS ; EXCEPT CURSOR CONTROL. ; ; 1 * FD$XMX MAXIMUM X VALUE (MIN=1) ; ; 2 * FD$YMX MAXIMUM Y VALUE (MIN=1) ; ; 3 * FD$XPS OFFSET INTO STRING OF X POSITION ; IN CURSOR POSITION COMMANDS. THE FIRST ; CHARACTER OUTPUT IS OFFSET 0. ; ; 4 * FD$XON VALUE TO ADD TO X VALUE ; ; 5 * FD$YPS OFFSET OF Y POSITION ; ; 6 * FD$YON THE VALUE TO ADD ONTO THE Y VALUE ; ; 7 * FD$CST THE OFFSET TO THE START OF THE OUTPUT ; STRING FOR CURSOR COMMANDS. ; ; ; N.B. ALL OFFSETS LABELLED '*' ARE APPLICABLE FOR CURSOR ; MOVEMENT ONLY. ; ; .PAGE .SBTTL RESET TERMINAL ; ; FEATURE 1 FD.RST RESET TERMINAL ; .IF GE .IF LE VTHRST: ; VT50H RESET VT1RST: ; VT100 RESET VT5RST: ; VT50 RESET VT2RST: ; VT52 RESET .BYTE 6 .BYTE ESC .ASCII /\/ ; EXIT HOLD SCREEN .BYTE ESC .ASCII />/ ; EXIT ALTERNATE KEYPAD .BYTE ESC .ASCII /G/ ; EXIT GRAPHICS MODE ; .ENDC .ENDC ; ; .IF EQ ; MK1RST: ; MK1 RESET .BYTE 3 .BYTE 2 ; PAGE MODE OFF .BYTE 15. ; INVERSE OFF .BYTE 16. ; LED'S OFF ; .ENDC ; .IF EQ ; MK3RST: ; MK3 RESET .BYTE 2 .BYTE ESC .ASCII /0/ ; .ENDC ; .PAGE .SBTTL TAB ; ; FEATURE 2 FD.TAB TAB ; ; THIS FEATURE DESCRIPTOR IS NON-STANDARD IN THAT THE ; LENGTH AND CONTENT OF THE STRING IS THAT REQUIRED TO ; MOVE THE CURSOR OR HEAD ONE POSITION TO THE RIGHT. ; THE STRING MUST BE REPEATED N TIMES TO TAB TO POSITION ; N, AND MUST ALSO BE PRECEDED BY A CARRIAGE RETURN (CR). ; ; .IF EQ ; PTAB: .BYTE 1 ; ALL PRINTERS .ASCII / / ; USE SPACE ; .ENDC ; .IF EQ ; MK1TAB: ; MK1 TAB .BYTE 1 .BYTE 21. ; CURSOR RIGHT ; .ENDC ; .IF GE .IF LE ; VT5TAB: ; VT50 TAB VTHTAB: ; VT50H TAB VT1TAB: ; VT100 TAB VT2TAB: ; VT52 TAB MK3TAB: ; MK3 TAB .BYTE 2 .BYTE ESC .ASCII /C/ ; CURSOR RIGHT ; .ENDC .ENDC ; .IF EQ ; H15TAB: .BYTE 1 .BYTE 16. ; Cursor right ; .ENDC ; .PAGE .SBTTL POSITION CURSOR ; ; FEATURE 3 FD.POS POSITION CURSOR ; ; REFER TO THE LAYOUT AT THE HEAD OF THE FEATURE DESCRIPTOR ; SECTION FOR DETAILS OF THE CONSTRUCTION OF THE POSITION ; FEATURE DESCRIPTOR. ; .IF EQ ; PPOS: .BYTE 2 ; PRINTER POSITION??? .BYTE 13.,10. ; CR/LF ; .ENDC ; .IF EQ ; MK1POS: ; MK1 POSITION .BYTE -10. .BYTE 80.,25. ; XMAX,YMAX .BYTE 2 ; OFFSET 2 FOR XPOS .BYTE 31. ; INCREMENT FOR X POS .BYTE 3 ; OFFSET 3 FOR YPOS .BYTE 63. ; ADD 63 FOR Y .BYTE 13. ; CR .BYTE 30. ; CONTROL CHARACTER .BYTE 0 ; XPOS .BYTE 0 ; YPOS .BYTE 0,0,0,0,0,0 ; FILLS ; .ENDC ; .IF GE .IF LE ; VT2POS: ; VT52 POSITION VT1POS: ; VT100 POSITION .BYTE -5 .BYTE 80.,24. ; XMAX,YMAX .BYTE 4 ; OFFSET 4 FOR X .BYTE 31. ; ADD 31 FOR X .BYTE 3 ; OFFSET 3 FOR Y .BYTE 31. ; ADD 31 FOR Y .BYTE 13. ; CR .BYTE ESC .ASCII /Y/ ; CONTROL .BYTE 0 ; YPOS .BYTE 0 ; XPOS ; .ENDC .ENDC ; .IF EQ ; MK3POS: ; MK3 POSITION .BYTE -5 .BYTE 80.,25. ; XMAX,YMAX .BYTE 4 ; OFFSET 4 FOR X .BYTE 31. ; ADD 31. FOR X .BYTE 3 ; OFFSET 3 FOR Y .BYTE 31. ; ADD 31 FOR Y .BYTE 13. ; CR .BYTE ESC .ASCII /Y/ ; CONTROL .BYTE 0 ; YPOS .BYTE 0 ; XPOS ; .ENDC ; .IF EQ ; VTHPOS: ; VT50H POSITION .BYTE -5 .BYTE 80.,12. ; XMAX,YMAX .BYTE 4 ; OFFSET 4 FOR X .BYTE 31. ; ADD 31. FOR X .BYTE 3 ; OFFSET 3 FOR Y .BYTE 31. ; ADD 31 FOR Y .BYTE 13. ; CR .BYTE ESC .ASCII /Y/ ; CONTROL .BYTE 0 ; YPOS .BYTE 0 ; XPOS ; .ENDC ; .IF EQ ; H15POS: .BYTE -4 .BYTE 79.,23. ; X,Y MAXIMA .BYTE 2 ; X OFFSET .BYTE -1 ; ADD -1 FOR X .BYTE 3 ; Y OFFSET .BYTE -1 ; ADD -1 FOR Y .BYTE 126. .BYTE 17. ; CONTROL .BYTE 0,0 ; X,Y POS ; .ENDC ; .PAGE .SBTTL NEWLINE AND BELL CODE ; ; ; FEATURE 4 FD.NLN NEWLINE ; ; PNLINE: VT5NLN: ; VT50 NEWLINE VT1NLN: ; VT100 NEWLINE VTHNLN: ; VT50H NEWLINE VT2NLN: ; VT52 NEWLINE MK1NLN: ; MK1 NEWLINE MK2NLN: ; MK2 NEWLINE MK3NLN: ; MK3 NEWLINE H15NLN: H20NLN: .BYTE 2 .BYTE 13.,10. ; CR/LF ; ; ; ; FEATURE 5 FD.BEL BELL CODE ; ; ; PBELL: VT5BEL: ; VT50 BELL VT1BEL: ; VT100 BELL VT2BEL: ; VT52 BELL VTHBEL: ; VT50H BELL MK1BEL: ; MK1 BELL MK2BEL: ; MK2 BELL MK3BEL: ; MK3 BELL H15BEL: H20BEL: .BYTE 1 .BYTE 7 ; BELL CODE ; .PAGE .SBTTL DISABLE CONTROL CHARACTERS ; ; ; ; FEATURE 6 FD.CTL DISABLE CONTROL CHARACTERS ; .IF EQ ; MK3CTL: ; MK3 VDU .BYTE 18. .BYTE ESC .ASCII /T/ ; DISABLE CHARACTER .BYTE 21. ; ^U .BYTE ESC .ASCII /T/ .BYTE 15. ; ^O .BYTE ESC .ASCII /T/ .BYTE 18. ; ^R .BYTE ESC .ASCII /T/ .BYTE 21. ; not CTL/c yet** temp - 3 ; ^C .BYTE ESC .ASCII /T/ .BYTE 26. ; ^Z .BYTE ESC .ASCII /T/ .BYTE 12. ; ^L (FORM FEED) ; .ENDC ; .PAGE .SBTTL CLEAR LINE (ALL AND REST) ; ; ; ; FEATURE 7 FD.CLA CLEAR LINE ALL ; .IF EQ ; MK1CLA: ; MK1 VDU .BYTE 8. .BYTE 13. ; CR .BYTE 22. ; CLEAR TO END OF LINE .BYTE 0,0,0,0,0,0 ;FILLS ; .ENDC ; .IF GE .IF LE ; VT2CLA: ; VT52 VT5CLA: ; VT50 VTHCLA: ; VT50H VT1CLA: ; VT100 .BYTE 3 .BYTE 13. ; CR .BYTE ESC .ASCII /K/ ; CLEAR E-O-L ; .ENDC .ENDC ; .IF EQ ; MK3CLA: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /L/ .BYTE 0 ; CLEAR CURRENT LINE ; .ENDC ; .IF EQ ; H15CLA: .BYTE 3 .BYTE 13. ; CR .BYTE 126. .BYTE 15. ; Clear to e-o-l ; .ENDC ; ; ; FEATURE 8 FD.CLR CLEAR LINE (REST) ; .IF EQ ; MK1CLR: ; MK1 VDU .BYTE 5 .BYTE 22. ; CLEAR E-O-L .BYTE 0,0,0,0 ;FILLS ; .ENDC ; .IF GE .IF LE ; VT5CLR: ; VT50 VTHCLR: ; VT50H VT2CLR: ; VT52 VT1CLR: ; VT100 .BYTE 2 .BYTE ESC .ASCII /K/ ; CLEAR E-O-L ; .ENDC .ENDC ; .IF EQ ; MK3CLR: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /L/ .BYTE 2 ; CLEAR E-O-L ; .ENDC ; .IF EQ ; H15CLR: .BYTE 2 .BYTE 126. .BYTE 15. ; Clear to E-O-L ; .ENDC ; .PAGE .SBTTL CLEAR SCREEN (ALL AND REST) ; ; ; ; FEATURE 9 FD.CSA CLEAR SCREEN (ALL) ; .IF EQ ; MK1CSA: ; MK1 VDU .BYTE 12. .BYTE 24. ; HOME AND CLEAR .BYTE 0,0,0,0,0,0,0,0,0,0,0 ;FILLS ; .ENDC ; .IF GE .IF LE ; VT5CSA: ; VT50 VTHCSA: ; VT50H VT2CSA: ; VT52 VT1CSA: ; VT100 .BYTE 4 .BYTE ESC .ASCII /H/ ; HOME .BYTE ESC .ASCII /J/ ; CLEAR E-O-S ; .ENDC .ENDC ; .IF EQ ; MK3CSA: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /P/ .BYTE 3 ; HOME AND CLEAR ; .ENDC ; .IF EQ ; H15CSA: .BYTE 2 .BYTE 126. .BYTE 28. ; Clear Screen All ; .ENDC ; ; ; FEATURE 10 FD.CSR CLEAR SCREEN (REST) ; .IF GE .IF LE ; VT5CSR: ; VT50 VTHCSR: ; VT50H VT2CSR: ; VT52 VT1CSR: ; VT100 .BYTE 2 .BYTE ESC .ASCII /J/ ; CLEAR E-O-S ; .ENDC .ENDC ; .IF EQ ; MK3CSR: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /P/ .BYTE 2 ; CLEAR ALL ; .ENDC ; .IF EQ ; H15CSR: .BYTE 2 .BYTE 126. .BYTE 24. ; Clear Rest ; .ENDC ; .PAGE .SBTTL HOME, INVERSE ON, INVERSE OFF ; ; FEATURE 11 FD.HOM HOME ; .IF EQ ; MK1HOM: ; MK1 VDU .BYTE 2 .BYTE 25. ; HOME .BYTE 13. ; for terminal driver ; .ENDC ; .IF GE .IF LE ; VT5HOM: ; VT50 VTHHOM: ; VT50H VT2HOM: ; VT52 VT1HOM: ; VT100 MK3HOM: ;; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /H/ ; HOME .BYTE 13. ; for terminal driver ; .ENDC .ENDC ; .IF EQ ; H15HOM: .BYTE 3 .BYTE 126. .BYTE 18. ; Home .BYTE 13. ; for terminal driver ; .ENDC ; ; ; FEATURE 12 FD.ION INVERSE ON ; .IF EQ ; MK1ION: ; MK1 VDU .BYTE 1 .BYTE 14. ; INVERSE ON ; .ENDC ; .IF EQ ; VT1ION: ; VT100 .BYTE 3 .BYTE ESC .ASCII /XA/ ; INVERSE ON ; .ENDC ; .IF EQ ; MK3ION: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /XI/ ; Inverse On ; .ENDC ; ; ; FEATURE 13 FD.IOF INVERSE OFF ; .IF EQ ; MK1IOF: ; MK1 VDU .BYTE 1 .BYTE 15. ; INVERSE OFF ; .ENDC ; .IF EQ ; VT1IOF: ; VT100 .BYTE 3 .BYTE ESC .ASCII /Xa/ ; INVERSE OFF ; .ENDC ; .IF EQ ; MK3IOF: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /Xi/ ; Inverse Off ; .ENDC ; .PAGE .SBTTL LED LIGHT CONTROL ; ; FEATURE 14 FD.LOF LIGHTS OFF ; .IF GE .IF LE ; MK1LOF: ; MK1 VDU MK2LOF: ; MK2 VDU MK3LOF: ; MK3 VDU .BYTE 1 .BYTE 16. ; LIGHTS OFF ; ; FEATURE 15 FD.LT1 LIGHT 1 ON ; MK1LT1: ; MK1 VDU MK2LT1: ; MK2 VDU MK3LT1: ; MK3 VDU .BYTE 1 .BYTE 17. ; LIGHT 1 ON ; ; FEATURE 16 FD.LT2 LIGHT 2 ON ; MK1LT2: ; MK1 VDU MK2LT2: ; MK2 VDU MK3LT2: ; MK3 VDU .BYTE 1 .BYTE 18. ; LIGHT 2 ON ; ; FEATURE 17 FD.LT3 LIGHT 3 ON ; MK1LT3: ; MK1 VDU MK2LT3: ; MK2 VDU MK3LT3: ; MK3 VDU .BYTE 1 .BYTE 19. ; LIGHT 3 ON ; ; FEATURE 18 FD.LT4 LIGHT 4 ON ; MK1LT4: ; MK1 VDU MK2LT4: ; MK2 VDU MK3LT4: ; MK3 VDU .BYTE 1 .BYTE 20. ; LIGHT 4 ON .PAGE .SBTTL PAGE/SCROLL MODE CONTROL ; ; ; FEATURE 19 FD.PON PAGE MODE ON ; ; MK1PON: ; MK1 VDU MK2PON: ; MK2 VDU MK3PON: ; MK3 VDU .BYTE 1 .BYTE 1 ; ENTER PAGE MODE ; ; ; ; FEATURE 20 FD.POF PAGE MODE OFF (SCROLL ON) ; ; MK1POF: ; MK1 VDU MK2POF: ; MK2 VDU MK3POF: ; MK3VDU .BYTE 1 .BYTE 2 ; ENTER SCROLL MODE ; .ENDC .ENDC ; .PAGE .SBTTL BLINK AND UNDERSCORE CONTROL ; ; ; FEATURE 21 FD.BON BLINK ON ; .IF EQ ; MK3BON: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /XB/ ; BLINK ON ; ; FEATURE 22 FD.BOF BLINK OFF ; MK3BOF: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /Xb/ ; BLINK OFF ; ; FEATURE 23 FD.UON UNDERSCORE ON ; MK3UON: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /XU/ ; UNDERSCORE ON ; ; FEATURE 24 FD.UOF UNDERSCORE OFF ; MK3UOF: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /Xu/ ; UNDERSCORE OFF .PAGE .SBTTL CURSOR AND FONT CONTROL ; ; ; ; FEATURE 25 FD.CT1 CURSOR TYPE 1 SOLID BLOCK ; MK3CT1: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /VB/ ; Blink Off .BYTE ESC .ASCII /VU/ ; Block ; ; FEATURE 26 FD.CT2 CURSOR TYPE 2 FLASHING BLOCK ; MK3CT2: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /Vb/ ; Blink On .BYTE ESC .ASCII /VU/ ; Block ; ; FEATURE 27 FD.CT3 CURSOR TYPE 3 SOLID UNDERSCORE ; MK3CT3: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /VB/ ; Blink Off .BYTE ESC .ASCII /Vu/ ; Underscore ; ; FEATURE 28 FD.CT4 CURSOR TYPE 4 FLASHING UNDERSCORE ; MK3CT4: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /Vb/ ; Blink On .BYTE ESC .ASCII /Vu/ ; Underscore ; ; FEATURE 29 FD.FT1 FONT TYPE 1 ; MK3FT1: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /Xf/ ; Fount TYPE 1 ; ; FEATURE 29 FD.FT2 FONT TYPE 2 ; MK3FT2: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /XF/ ; Fount TYPE 2 .PAGE .SBTTL INTENSITY CONTROL ; ; ; ; FEATURE 31 FD.FUL SET FULL INTENSITY ; ; ; MK3FUL: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /Xh/ ; FULL INTENSITY ; ; ; ; FEATURE 32 FD.HLF SET HALF INTENSITY ; ; ; MK3HLF: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /XH/ ; 1/2 INTENSITY .PAGE .SBTTL OUTPUT DIRECTION CONTROL ; ; ; FEATURE 33 FD.VP1 DIRECT TO VDU PAGE 1 ; ; MK3VP1: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /O/ .BYTE 1 ; DIRECT TO 1. ; ; FEATURE 34 FD.VP2 DIRECT TO VDU PAGE 2 ; ; MK3VP2: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /O/ .BYTE 2 ; DIRECT TO 2. ; ; FEATURE 35 FD.PRT DIRECT TO PRINTER ; ; MK3PRT: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /O/ .BYTE 3 ; DIRECT TO PRINTER. ; ; FEATURE 36 FD.DMP DUMP TO PRINTER ; ; MK3DMP: ; MK3 VDU .BYTE 3 .BYTE ESC .ASCII /O/ .BYTE 4 ; DUMP TO PRINTER .PAGE .SBTTL PAGE DISPLAY LEVEL AND CURSOR STORE ; ; FEATURE 37 FD.DP0 DISPLAY NO PAGE ; MK3DP0: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /WF/ ; Hide Screen 1 .BYTE ESC .ASCII /Wb/ ; HIDE Screen 2 ; ; FEATURE 38 FD.DP1 DISPLAY PAGE 1 ; MK3DP1: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /Wf/ ; Display Screen 1 .BYTE ESC .ASCII /Wb/ ; HIDE Screen 2 ; ; FEATURE 39 FD.DP2 DISPLAY SCREEN 2 ; MK3DP2: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /WF/ ; Hide Screen 1 .BYTE ESC .ASCII /WB/ ; DISPLAY Screen 2 ; ; FEATURE 40 FD.DP3 DISPLAY BOTH ; MK3DP3: ; MK3 VDU .BYTE 6 .BYTE ESC .ASCII /Wf/ ; Display Screen 1 .BYTE ESC .ASCII /WB/ ; DISPLAY Screen 2 ; ; FEATURE 41 FD.STR STORE CURSOR ; MK3STR: ; MK3 VDU .BYTE 2 .BYTE ESC .ASCII /7/ ; STORE CURSOR ; ; FEATURE 42 FD.RES RESTORE CURSOR ; MK3RES: ; MK3 VDU .BYTE 2 .BYTE ESC .ASCII /8/ ; RESTORE CURSOR .PAGE .SBTTL HEIGHT AND WIDTH CONTROL ; ; FEATURE 43 FD.SWD SINGLE WIDTH ; MK3SWD: ; MK3 VDU .BYTE 2 .BYTE ESC .ASCII /5/ ; SINGLE WIDTH ; ; FEATURE 44 FD.DWD DOUBLE WIDTH ; MK3DWD: ; MK3 VDU .BYTE 2 .BYTE ESC .ASCII /6/ ; DOUBLE WIDTH ; ; FEATURE 45 FD.SHT SINGLE HEIGHT ; MK3SHT: ; MK3 VDU .BYTE 2 .BYTE ESC .ASCII /;/ ; SINGLE HEIGHT ; ; FEATURE 46 FD.DHT DOUBLE HEIGHT ; MK3DHT: ; MK3 VDU .BYTE 2 .BYTE ESC .ASCII /:/ ; DOUBLE HEIGHT .PAGE .SBTTL SCROLL AND MODE CONTROL ; ; ; THE SCROLL CONTROL USES A SPECIAL FEATURE DESCRIPTOR ; WHICH DESCRIBES THE ESCAPE SEQUENCE USED TO SET THE ; SCROLL AREA BASE TO THE SUPPLIED LINE. THE VALUE OF ; THE LINE PLUS THE MODIFIER SUPPLIED IN THE DESCRIPTOR ; SHOULD BE INSERTED IN THE ESCAPE SEQUENCE ; IN THE CHARACTER FOLLOWING THE 'S', I.E. THE THIRD ; CHARACTER OF THE SEQUENCE. NOTE THAT LINES ARE NUMBERED ; FROM 1 TO 24, 1 BEING THE TOP LINE OF THE SCREEN. ; ; ; FEATURE 47 FD.BAS SET SCROLL AREA BASE TO LINE SUPPLIED ; ; MK3BAS: ; MK3 VDU .BYTE 3 .BYTE 31. ; .BYTE ESC .ASCII /S/ .BYTE 0 ; INSERT LINE NUMBER ; ; Feature 50 FD.DET Reenable Control Chars on Detach ; MK3DET: .BYTE 18. .BYTE ESC .ASCII /U/ .BYTE 21. ; ^U .BYTE ESC .ASCII /U/ .BYTE 15. ; ^O .BYTE ESC .ASCII /U/ .BYTE 18. ; ^R .BYTE ESC .ASCII /U/ .BYTE 3 ; ^C .BYTE ESC .ASCII /U/ .BYTE 26. ; ^Z .BYTE ESC .ASCII /U/ .BYTE 12. ; ^L ; ; .ENDC ; CT.TAB==0 ; Default values for CTLOUT CT.BAS==0 .IIF DF FD.BAS,CT.BAS==FD.BAS .IIF DF FD.TAB,CT.TAB==FD.TAB .END