IBM AT 5170 Technical Reference page 339

Table of Contents

Advertisement

IBM Personal Computer MACRO Assembler
Vers,oro 2.00
'-5
BIOSI
---- 06/10/85
INTERRUPT 15H BIOS ROUTINES
06-10-85
440
PAGE
441
;---
INT
15 H --
( FUNCTION 81 H -
BLOCK MOVE I
-----------------------------­
442
443
THIS BIOS FUNCTION PROVIDES A MEANS FOR A REAL MODE PROGRAM OR SYSTEM
444
TO TRANSFER A BLOCK OF STORAGE TO AND FROM STORAGE ABOVE THE 1 MEG
445
AOORESS RANGE IN PROTECTED MODE SPACE BY SWITCHING TO PROTECTED MODE.
446
447
ENTRY:
446
(AHI
"
81H (FUNCTION CALLI
-
BLOCK MOVE.
449
(CX)
"
WORD COUNT OF STORAGE BLOCK TO BE MOVED.
450
NOTE
I
MAX COUNT" MOOH FOR 32K WORDS
(65K 8YTES)
451
ES:SI
"
LOCATION OF A GOT TABLE BUILT BY ROUTINE USING THIS FUNCTION.
452
453
(ES:SI)
POINTS TO A OESCRIPTOR TABLE
(GOT)
BUILT BEFORE INTERRUPTING
454
TO THIS FUNCTION.
THE DESCRIPTORS ARE USE TO PERFORM THE BLOCK
455
MOVE
I N THE PROTECTED MODE.
THE SOURCE ANO TARGET DESCR
I
PTORS
456
BUILT BY THE USER MUST HAVE A SEGMENT LENGTH" 2
• CX-I OR GREATER.
457
THE DATA ACCESS RIGHTS BYTE MUST BE SET TO CPLO-R/W
193H).
THE
456
24 BIT ADDRESS
(BYTE HI. WORD LOWI
MUST BE SET TO THE TARGET/SOURCE.
459
460
NO I NTERRUPTS ARE ALLOWED OUR I NG TRANSFER.
LARGE BLOCK MOVES
461
MAY CAUSE LOST INTERAUPTS.
462
463
EXIT:
464
(AH)
"DOH
I F SUCCESSFUL
465
(AH)
= OIH
IF MEMORY PARITY
(PARITY ERROR REGISTERS ARE CLEARED)
466
(AHI
,. 02H
IF ANY OTHER EXCEPTION
INTERRUPT ERROR OCCURRED
467
IAHI
=
03H
IF GATE ADDRESS LINE 20 FAILED
466
ALL REGISTERS ARE RESTORED EXCEPT IAHI.
469
470
I F SUCCESSFUL -
CARRY FLAG
=
a
471
IF ERROR ------ CARRY FLAG =
I
472
473
DESCRIPTION:
414
475
1.
SAVE ENTRY REGISTERS AND SETUP FOR SHUTDOWN EXIT.
476
2.
THE REQUIRED ENTRIES ARE BUILT IN THE GOT AT
(ES:SI I.
477
3.
GATE ADDRESS LINE 20 ACTIVE. CLI
AND SET SHUTDOWN CODES.
476
4.
THE
IDTR
15
LOADED AND POINTS TO A ROM RESIDENT TABLE.
479
5.
THE GDTR
IS LOADED FROM THE OFFSET POINTER
IES:SI I.
460
6.
THE PROCESSOR
IS PUT
I NTO PROTECTED MODE.
461
7.
LOAD
(OS)
AND
(ES I
WITH SELECTORS FOR THE SOURCE AND TARGET.
462
8.
DS:SI
(SOURCEI
(ESIDI
J
(TARGET) REP MOVSW IS EXECUTED.
483
9.
CHECK MADE FOR PAR
I TV
ERRORS.
464
10.
REAL MODE RESTORED WHEN SHUTDOWN 09H IS EXECUTED.
465
11.
ERRORS ARE CHECKED FOR AND RETURN CODES ARE SET FOR
IAHI.
466
12.
ADDRESS LINE 20 GATE IS DISABLED.
467
13.
RETURN WITH REGISTERS RESTORED AND STATUS RETURN CODE.
466
(FOR PC-AT COMPATIBILITY ZF.. I
IF SUCCESSFUL. ZF=O IF ERROR.)
469
;
-
----
- - - - - - - - - - - - -
--
- - - - - - - - -- - -
---.------------------------
- - - - - - -
-
-- -- - - -- - ­
490
,
491
I
THE FOLLOWING DIAGRAM OEPICTS THE ORGANIZATION OF A BLOCK MOVE GOT.
492
493
GOT
494
(ES:SI)
495
----------­
496
I
497
'00
496
DUMMY
I
2'.'
THE FIRST DESCRIPTOR
IS THE REQUIRED DUMMY.
.. 11
i
499
{USER
INITIALIZED TO 01
500
'08
_ _
501
THE SECOND OESCR I PTOR PO I NTS TO THE GOT
502
TABLE AS A DATA SEGMENT.
503
(USER
INITIALIZED TO 0 -
MODIFIED BY BIOS)
I
::::~~~;~~~::::
I
504
3. THE THIRD DESCRIPTOR POINTS TO THE SOURCE
505
I
GOT
I
TO BE MOVED.
(FROM)
506
"8
1---------------1
(USER
INITIALIZED)
507
I
TARGET
I
4. THE FOURTH DESCR IPTOR POINTS TO THE
506
I
GOT
I
DESTINATION SEGMENT.
(TO)
509
'20
1---------------1
(USER
INITIALIZED)
510
I
BIOS
I
5. THE FIFTH IS A DESCRIPTOR THAT BIOS USES
511
I
(CS)
I
TO CREATE THE PROTECTED MODE CODE SEGMENT.
512
+28
1---------------1
(USER
INITIALIZED TO 0 -
MODIFIED BY BIOSI
513
I
{55)
I
6. THE SIXTH DESCRIPTOR
IS USED BY BIOS TO
514
CREATE A PROTECTED MODE STACK SEGMENT.
515
'--- ---- --------!
(USER INITIALIZED TO 0 -
BY BIOSI
MODIFIED
516
{POINTS TO USERS STACK)
517
516
519
SAMPLE
OF
SOURCE
OR
TARGET
DESCR IPTOR
520
521
SOURCE_TARGET_DEF
STRUC
522
523
SEG LIMIT
OW
?
SEGIlENT LIMIT
/1-65536 BYTES)
524
LO WORD
DW
?
24 BIT SEGMENT PHYSICAL
525
HI-BYTE
DB
?
ADDRESS
10 TO (I 6M- I I I
526
DATA ACC RIGHTS
DB
93H
ACCESS RIGHTS BYTE
(CPLO-R/WI
527
RESERVED-
OW
o
RESERVED WORD
(MUST BE ZERO I
526
529
SOURCE_TARGET_OEF
ENDS
530
531
532
533
THE GLOBAL DESCRIPTOR TABLE
(ACTUAL LOCATION POINTED TO BY ES:SI)
534
535
BLOCKMDVE GOT DEF
STRUC
536
0000
-
-
OQ
7
FIRST DESCRIPTOR NOT ACCESSIBLE
537
0008
CeDT LOC
DQ
?
LOCATION OF CALLING. ROUTINE GOT
538
0010
SOURCE
DQ
?
SOURCE OESCR IPTOR
539
0018
TARGET
DQ
?
TARGET DESCR I PTOR
540
0020
BIOS CS
DQ
?
BIOS CODE DESCR I PTOR
541
0028
TEMP-SS
DQ
?
STACK OESCR I PTOR
542
0030
BLOCKMOVE_GOT _OEF
ENDS
543
544
OICA
BLOCK MOVE
PROC
NEAR
545
546
OICA FC
CLD
SET DIRECT I ON FORWARD
541
OICB 60
PUSHA
SAVE GENERAL PURPOSE REGISTERS
548
OICC 06
PUSH
ES
SAVE USERS EXTRA SEGMENT
549
OICO
IE
PUSH
OS
SAVE USERS DATA SEGMENT
550
551
SAVE THE CALLING ROUTlNE"S STACK
552
553
01CE E8
0000
E
CALL
DDS
;
SET OS TO OATA AREA.
BIOS1
5-167

Advertisement

Table of Contents
loading

Table of Contents