; SAVESTAR.ASM by David Weinberger cf Profile Feb 1986 p. 48-54 ; boot equ 0000h bdos equ 0005h deletef equ 19 makef equ 22 writef equ 21 closef equ 16 ctrlZ equ 1AH endfill equ 0000H FFfill equ 00FFH prnt equ 9 cr equ 13 lf equ 10 memax equ 00ECH ; ; Where text is stored in various programs: choose ONE ; cf Profile Feb 86 for more info ; ; BEGTEXT equ 846DH ;WS v. 3.3 BEGTEXT equ 802CH ;TURBO V. 2 with error msg.s ; GEBTEXT equ 7474h ;Turbo v. 2 without error msg.s ; org 100h lxi sp,stack ; lxi d,sinon mvi c,prnt call bdos ; lxi d,tfcb mvi c,deletef call bdos ; lxi d,tfcb mvi c,makef call bdos ; cpi 0FFh jz fuldir ; lxi h,begtext mspot: push h ; xchg mvi c,1AH call bdos ; lxi d,tfcb mvi c,writef call bdos ; cpi 0 jnz filled ; pop h mvi a,memax cmp h jz finis ; lxi d,127 dad d mov a,m ; cpi ctrlz jz finis cpi endfill jz finis cpi FFfill jz finis ; inx h jmp mspot ; FINIS: lxi d,donemsg mvi c,prnt call bdos ; clsf: lxi d,tfcb mvi c,closef call bdos mvi c,boot call bdos ; filled: lxi d,fulldsk mvi c,prnt call bdos ; jmp clsf ; fuldir: lxi d,fuldr mvi c,prnt call bdos ; mvi c,boot call bdos ; ; MESSAGES: ; sinon db 'SAVESTAR mini-version for TURBO V2 WITH MSG.S$' donemsg db cr,lf,'==> Saved text written to B:-SAVED$' fulldsk db 7,'++ Disk Full. Erase a file or use a new disk.' db ' Try again ++',cr,lf,'$' fuldr db 7,'++ Directory Full. Erase a file or use new disk.' db ' Try again ++',cr,lf,'$' ; the 2 in tfcb causes -SAVED to be put on drive B: ; 1 would put it on A: and 0 for whichever drive your logged on. tfcb db 2,'-SAVED ',0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0 ds 64 stack db 0 ; end