;This program has been adapted from John C. Smith's VDO-KPSL.ASM ;by the simple expedient of stripping out his message of VDO ;functions and allowing you to substitute your own message. ; ;The program will write the 25th line with any message you ;insert. Very handy for cues to specific function keys for ;certain programs--you can have a differently-named version for ;various programs, i.e, Wordstar, Perfect Writer, VDO, ;spreadsheets, etc. ;To clear the 25th line (it stays there once installed) you must ;use CLS.COM. An effective CLS.COM can be prepared with GTXT.COM ;or TXT.COM. Simply put the following line between the '@' and ;the '?': ; ^Z^[bd^[B7 ;and then write it to a file you name CLS.COM. ; (NOTE: The characters beginning with '^' above should be ; REAL control characters (the above are not). Use the ; "CTL-Q" facility in Perfect Writer. I'm not sure what the ; equivalent protocol is in Wordstar or other word ; processors.) ;Thus, with a SUBMIT or EX file, you can bring up the ;appropriate 25th line, run the program, and automatically clear ;the screen and line when you're through. ; ; - Irv Block ; 7/11/85 ;---------------------------------------------------------------- ; equates bdos equ 5 ;CP/M's BDOS entry point esc equ 1bh ;ESCape for Kaypro video sequences org 100h ;CP/M's program area start: lxi h,0 ;save CP/M's stack by adding it dad sp ;to the stack pointer and shld cpmstk ;storing it in a safe place lxi sp,stack+20 ;to generate a new stack for use ;by this program lxi d,msg ;point at message mvi c,9 ;print string function call bdos ;do it lhld cpmstk ;get the old stack back sphl ;switch into stack pointer ret ;and return to CP/M ; The command line message: msg: db esc,'B6' ;save cursor position db esc,'B7' ;enable 25th line db esc,'=8 ' ;position cursor to 25,0 ; the following are the actual labels to be written to the ; 25th line - edit them to suit your VDO.KEY def format db esc,'B0' ;inverse video on db esc,'B1' ;dim video on db 'THIS IS THE 25TH LINE - PUT YOUR MESSAGE HERE' db esc,'C0' ;inverse video off db esc,'C1' ;dim video off db esc,'C6' ;recall cursor position db '$' ;end of msg cpmstk dw 0 ;old stack saved here ds 20 ;stack grows down stack equ $ ; ds must be BEFORE label stack end ;that's all folks