home *** CD-ROM | disk | FTP | other *** search
- 20000 '
- 20010 ' Interpreted BASIC EGA Shadow Reg Interface library interface subroutines
- 20020 '
- 20030 ' Copyright (c) 1988-1989 by Microsoft Corp. All rights reserved.
- 20040 '
- 20050 ' Author: Tom Hensel 12/15/88
- 20060 '
- 20070 ' Use a GOSUB 20000 to call subroutine
- 20080 '
- 20090 ' Variables are named E1%, E2%, E3%, and E4%. Only variables affected
- 20100 ' need to be passed, the subroutines will take care of the rest.
- 20110 '
- 20120 '
- 20130 DIM EGASRI%(45)
- 20140 ' Define temp variables in case the user hasn't defined the EX% variable
- 20150 EGATMP1% = E1% : EGATMP2% = E2% : EGATMP3% = E3% : EGATMP4% = E4%
- 20160 '
- 20170 EGASRI%(0) = &H8955 ' 55 push bp
- 20180 EGASRI%(1) = &H06E5 ' 89E5 mov bp,sp
- 20190 ' 06 push es
- 20200 EGASRI%(2) = &HD88C ' 8CD8 mov ax,ds
- 20210 EGASRI%(3) = &HC08E ' 8EC0 mov es,ax
- 20220 EGASRI%(4) = &H5E8B ' 8B5E0C mov bx,[bp + 0ch]
- 20230 EGASRI%(5) = &H8A0C ' 278A mov ah,[bx]
- 20240 EGASRI%(6) = &H8B27
- 20250 EGASRI%(7) = &H085E ' 8B5E08 mov bx,[bp + 8]
- 20260 EGASRI%(8) = &H0F8B ' 8B0F mov cx,[bx]
- 20270 EGASRI%(9) = &H5E8B ' 8B5E06 mov bx,[bp + 6]
- 20280 EGASRI%(10) = &H8B06 ' 8B17 mov dx,[bx]
- 20290 EGASRI%(11) = &H8B17
- 20300 EGASRI%(12) = &H0A5E ' 8B5E0A mov bx,[bp + 0ah]
- 20310 EGASRI%(13) = &H1F8B ' 8B1F mov bx,[bx]
- 20320 EGASRI%(14) = &HFC80 ' 80FCF1 cmp ah,0f1h
- 20330 EGASRI%(15) = &H74F1 ' 740D je FlipFlop1
- 20340 EGASRI%(16) = &H800D
- 20350 EGASRI%(17) = &HF3FC ' 80FCF3 cmp ah,0f3h
- 20360 EGASRI%(18) = &H0874 ' 7408 je FlipFlop1
- 20370 EGASRI%(19) = &HFC80 ' 80FCF5 cmp ah,0f5h
- 20380 EGASRI%(20) = &H75F5 ' 751C jne execute_function
- 20390 EGASRI%(21) = &H261C ' 268A17 mov dl,es:[bx]
- 20400 EGASRI%(22) = &H178A ' FlipFlop1:
- 20410 EGASRI%(23) = &HFA80 ' 80FA18 cmp dl,18h
- 20420 EGASRI%(24) = &H7518 ' 7514 jne execute_function
- 20430 EGASRI%(25) = &H5014 ' 50 push ax
- 20440 EGASRI%(26) = &H1E52 ' 52 push dx
- 20450 ' 1E push ds
- 20460 EGASRI%(27) = &HC031 ' 31C0 xor ax,ax
- 20470 EGASRI%(28) = &HD88E ' 8ED8 mov ds,ax
- 20480 EGASRI%(29) = &H8B3E ' 3E8B166304 mov dx,ds:[463h]
- 20490 EGASRI%(30) = &H6316
- 20500 EGASRI%(31) = &H1F04 ' 1F pop ds
- 20510 EGASRI%(32) = &HC280 ' 80C206 add dl,6
- 20520 EGASRI%(33) = &HFA06 ' FA cli
- 20530 EGASRI%(34) = &H5AEC ' EC in al,dx
- 20540 ' 5A pop dx
- 20550 EGASRI%(35) = &HCD58 ' 58 pop ax
- 20560 ' execute_function:
- 20570 EGASRI%(36) = &HFB10 ' CD10 int 10h
- 20580 ' FB sti
- 20590 EGASRI%(37) = &HD889 ' 89D8 mov ax,bx
- 20600 EGASRI%(38) = &H5E8B ' 8B5E0A mov bx,[bp + 0ah]
- 20610 EGASRI%(39) = &H890A ' 8907 mov [bx],ax
- 20620 EGASRI%(40) = &H8B07
- 20630 EGASRI%(41) = &H065E ' 8B5E06 mov bx,[bp + 6]
- 20640 EGASRI%(42) = &H078C ' 8C07 mov [bx],es
- 20650 EGASRI%(43) = &H5D07 ' 07 pop es
- 20660 ' 5D pop bp
- 20670 EGASRI%(44) = &H08CA ' CA0800 retf 8
- 20680 EGASRI%(45) = &H9000
- 20690 '
- 20700 EGASRISUBRT = VARPTR(EGASRI%(0))
- 20710 CALL EGASRISUBRT(EGATMP1%, EGATMP2%, EGATMP3%, EGATMP4%)
- 20720 E2% = EGATMP2% : E4% = EGATMP4% : RETURN
-