home *** CD-ROM | disk | FTP | other *** search
- ;Save memory: put your print messages into code space for easy access by
- ;Quick BASIC programs without using precious data space.
- ;Written by Bruce W. Tonkin on 12/30/85. Copyright 1985, Bruce W. Tonkin.
- ;This routine may be used with or without attribution.
- ;Simple modifications to this routine can save any data into any part of code
- ;space. Doing this is left as an exercise for the student.
- ;
- data segment word public 'data'
-
- storage dw 0
- data ends
- dgroup group data
- code segment byte public 'code'
- assume cs:code, ds:data
-
- public generr
- generr proc far ;routine is a far procedure
- push bp ;save base pointer
- mov bp,sp ;index off stack
- push ds ;save data segment
- call messg ;print whatever
- pop ds ;restore data segment
- pop bp ;and base pointer
- ret
- generr endp
- messg proc near
- mov ax,cs ;manipulate code segment
- mov ds,ax ;into the data segment
- mov dx,offset show ;so we can print some fake code
- mov ah,9 ;set up for print
- int 21h ;call DOS service routine for print.
- ret
- show db 'This is a message.',0dh,0ah
- db 'The message can take as much room as you need.',0dh,0ah
- db '$'
- ret
- messg endp
- code ends
- end