; 8 July 88 -- MFB cseg segment byte assume cs:cseg,ds:cseg,es:cseg org 100h head = (5db7h-100h-ab) ; change if load point altered cr = 0dh lf = 0ah start: MOV (HEAD+RSAV),CX MOV BX,CS mov es,bx mov ah,4ah mov bx,0ff0h int 21h mov (head+stkseg),ss ;save ss mov (head+stkptr),sp ;and sp mov ax,[cs:2ch] MOV (head+PARBLK),AX ; parblk ; MOV BX,CS ; MOV AX,OFFSET (head+ENVIR) ;convert offset ; SHR AX,1 ;to segment ; SHR AX,1 ; address ; SHR AX,1 ; of offset ; SHR AX,1 ; zero ; ADD BX,AX ;put it into ; MOV (head+PARBLK),BX ; parblk MOV (head+ONE),CS ;put segment MOV (head+TWO),CS ; addresses MOV (head+THREE),CS ; into cmdline and fcb mov dx,offset (head+pgname) mov bx,offset (head+parblk) mov al,0 mov ah,4bh int 21h mov ss,(head+stkseg) mov sp,(head+stkptr) ; mov al,0 ; mov ah,4ch ; int 21h MOV CX,(HEAD+RSAV) db 'endproc ' db 'PGLIN ' pgname db 'C:\VED.COM',0 ;This "default" never takes effect -- ; see words EDIT and SYS in file DOSXTRA2 db 10 dup (?) ;space to patch in longer default name/path parblk dw 0 dw offset (head+cmdline-6) ONE dw 0 dw offset (head+fcb1-6) TWO dw 0 dw offset (head+fcb2-6) THREE dw 0 envir db 'PATH=',0 db 'COMSPEC=C:\COMMAND.COM',0 db 0 RSAV DW 0 stkseg dw 0 stkptr dw 0 db 'endproc ' db 'USLIN ' cmdline db 6,'EDHELP',cr ; db 10 dup (?) fcb1 db 0 db 11 dup ('?') db 25 dup (0) fcb2 db 0 db 11 dup ('?') db 25 dup (0) db 'endfile' aa equ $ db 'PGLIN ' ; db 'USLIN ' ab equ $-aa cseg ends end start