TITLE   File Creation Test Program
.MODEL SMALL                            ;Sets it for a medium program model
.8086                                   ; Use crusty 8086 code
.STACK 256                                      ; Set small 256 byte stack
.DATA

FILENAME        DB      "TEST.scb",0h          ; Name of test file
FILEHAND        DW      ?
MESSAGE         DB      "File TEST.SCB written...",0ah,0dh,24h
.CODE


MAIN            PROC    NEAR           ; Start of program

				       ; Push MOST registers
		PUSH    DS              ; Push old data segment

		MOV     AX,@DATA        ; Copy new data segment to AX
		MOV     DS,AX           ; Copy AX to data segment reg.
		MOV     ES,AX           ; Copy AX to extra segment reg.
		MOV     SI,0            ; Set SI reg. to 0  ( for message )

                LEA     DX,FILENAME     
		MOV     CX,0
                MOV     AX,3C00h        ;Create file
		INT     21h

                MOV     FILEHAND,AX     ;Save file handle obtained in FILEHAND
                MOV     AX,4000h        ;Write to file
                MOV     CX,4000d        ;Write 4000 bytes
                MOV     BX,FILEHAND     ;using the file we just created

		PUSH    DS
                MOV     DX,0B800h       ;Point DX to video mem

                MOV     DS,DX           ;Save in DS
                XOR     DX,DX           ;Offset is 0
                INT     21h             ;Write 4000 bytes from video mem
                POP     DS              ;Restore data segment

		MOV     AH,09h
                LEA     DX,MESSAGE      ;Print message
		INT     21h
                MOV     AX,3E00h        ;Close file
		MOV     BX,FILEHAND
		INT     21h
		POP     DS

		MOV     AX,4C00H         ; Send exit code to dos
		INT     21H             ; Send command to DOS

MAIN           ENDP                    ; Set end of program
END             MAIN                   ; Set starting address!
					; Hard to explain. Read the book.
