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.