home *** CD-ROM | disk | FTP | other *** search
- ;..............................................................................
- ; SWITCH2.ASM .
- ; .
- ; THIS IS AN ASSEMBLER PROGRAM IN '.COM' FORM.WILL NOT RUN AS .EXE .
- ; .
- ; SET UP ADDRESS FOR THE DATA USED BY THE ROM BIOS. .
- ; THE EQUIPMENT FLAG CAN BE CHANGED TO FOOL THE SYSTEM INTO THINKING THAT THE.
- ; COLOR/GRAPHICS BOARD EXITS INSTEAD OF THE MONOCHROME BOARD. .
- ; .
- ; <- - - - - - - - | - - - - - - - -> EQUIP_FLAG .
- ; ^ ^ --display type
- ; AA--DISPLAY TYPE .
- ; DISPLAY TYPE: 1 - COLOR CARD 40 X 25 .
- ; 2 - COLOR CARD 80 X 25 .
- ; 3 - MONOCHROME DISPLAY .
- ;..............................................................................
- ROM_BIOS_DATA SEGMENT AT 40H
- RS232_BASE DW 4 DUP(?) ;ADDRESSES OF RS232 ADAPTER
- PRINTER_BASE DW 4 DUP(?) ;ADDRESSES OF PRINTER
- EQUIP_FLAG DW ? ;INSTALLED HARDWARE
- ROM_BIOS_DATA ENDS
-
-
- ;..............................................................................
- ; THIS IS THE START OF THE EXECUTABLE CODE. .
- ;..............................................................................
- CSEG SEGMENT PARA 'CODE'
- ASSUME CS:CSEG,DS:ROM_BIOS_DATA
- ORG 100H ;Set starting point for a COM file
- SWITCH: MOV AX,ROM_BIOS_DATA ;Set up data segment to point to data
- MOV DS,AX
-
- MOV CH,0FH ;Remove cursor by placing out of display range
- MOV CL,0
- MOV AH,1 ;Set cursor type, to clear cursor
- INT 10H
-
- MOV AH,6 ;Scroll screen to clear screen
- MOV AL,0 ;Blank entire screen
- XOR CX,CX ;Upper left corner at 0,0
- MOV DL,70 ;Lower right corner at 79,24
- MOV DH,24
- MOV BH,07 ;Fill attributes with 7 for normal display
- INT 10H ;Clear screen
-
-
-
- XOR AH,AH ;AH = 0 calls for set-mode function
- MOV BX,EQUIP_FLAG ;Get the current equipment flag
- MOV CX,BX ;Make a copy of the flag
- AND CX,30H ;Pick off the display information
- XOR BX,CX ;Erase current display information
- OR BX,20H ;Set to color display, 40 x 25
- MOV AL,2 ;BW 40X25 mode
- CMP CX,30H ;Was it set to monochrome display?
- JE S1 ;Yes, then set to BW, 40x25
- OR BX,30H ;No, set to monochrome display
-
- MOV AL,7 ;Monochrome mode
- S1: MOV EQUIP_FLAG,BX ;Write flag back to memory
- INT 10H ;Make request to BIOS to set display mode
-
- INT 20H ;Return to DOS
-
- CSEG ENDS
-
- END SWITCH