Changeset 84901 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Jun 22, 2020 1:37:32 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/orgs.asm
r84752 r84901 53 53 include commondefs.inc 54 54 55 EBDA_SEG equ 09FC0h ; starts at 639K 56 EBDA_SIZE equ 1 ; 1K 57 BASE_MEM_IN_K equ (640 - EBDA_SIZE) 55 EBDA_SIZE equ 1 ; 1K minimum -- other modules may add to it 58 56 59 57 CMOS_ADDR equ 070h … … 449 447 450 448 ;; base memory in K to 40:13 451 mov ax, BASE_MEM_IN_K 449 mov al, 16h 450 out CMOS_ADDR, al 451 in al, CMOS_DATA 452 mov ah, al 453 mov al, 15h 454 out CMOS_ADDR, al 455 in al, CMOS_DATA 456 sub ax, EBDA_SIZE 452 457 mov ds:[413h], ax 453 458 … … 492 497 xor ax, ax 493 498 mov ds, ax 494 ;; TODO: What's the point? The BDA is zeroed already?!495 mov ds:[417h], al ; keyboard shift flags, set 1496 mov ds:[418h], al ; keyboard shift flags, set 2497 mov ds:[419h], al ; keyboard Alt-numpad work area498 mov ds:[471h], al ; keyboard Ctrl-Break flag499 mov ds:[497h], al ; keyboard status flags 4500 499 mov al, 10h 501 500 mov ds:[496h], al ; keyboard status flags 3 … … 882 881 SET_INT_VECTOR 77h, BIOSSEG, dummy_isr ; IRQ 15 883 882 884 mov ax, EBDA_SEG 883 ;; calculate EBDA segment 884 xor ax, ax 885 mov ds, ax 886 mov ax, ds:[413h] ; conventional memory size minus EBDA size 887 mov cx, 64 ; 64 paras per KB 888 mul cx 889 ;; store EBDA seg in 40:0E 890 mov word ptr ds:[40Eh], ax 891 ;; store EBDA size in the first word of EBDA 885 892 mov ds, ax 886 893 mov byte ptr ds:[0], EBDA_SIZE 887 ;; store EBDA seg in 40:0E894 ;; must reset DS to zero again 888 895 xor ax, ax 889 896 mov ds, ax 890 mov word ptr ds:[40Eh], EBDA_SEG891 897 ret 892 898
Note:
See TracChangeset
for help on using the changeset viewer.