$42 : B_READDI : X68000 IOCS CALL

・B_READDI IOCS 콜 번호 : $42

기능 
 진단을 위한 읽기 (2HD만)

입력
 D0.L $42 IOCS 콜 번호
 D1.W PDA ✕ 256 + MODE
 D2.L 목적 읽기 위치
 D3.L 읽을 바이트 수
 A1.L 읽기 영역의 선두 어드레스

리턴
 D0.L 스테이터스
 비트 32 ~ 24 : ST0  리절트 스테이터스 0
 비트 23 ~ 16 : ST1  리절트 스테이터스 1
 비트 15 ~ 8  : ST2  리절트 스테이터스 2
 비트  7 ~ 0  : C    실린더 번호

해설
진단을 위한 읽기(2HD만) 동작을 실행합니다.
수퍼 바이저 영역의 어드레스도 지정할 수 있으므로, 부정한 어드레스를 지정하지 않도 록 주의해 주세요.
입력의 D1.W, D2.L의 상세내역에 관해서는 B_SEEK ($40 : 2HD)를 참조해 주세요.
입력의 D3.L, A1.L은 각각 읽은 데이터의 바이트수, 선두 어드레스입니다.
리턴의 D0.L은 FDC의 스테이터스입니다.
리절트 스테이터스 (ST0 ~ ST1)의 상세 내역에 대해서는 부록 6. FDC의 스테이터스를 참조해 주세요.

프로그램 예
******************************************
** B_READDI                            $42
***** 2HD ********************************
           .include    iocscall.mac
           .include    doscall.mac
iocs     equ     $0f
         
         .text
         .
         .
         moveq.l  #_B_REDADDI,d0   * IOCS 콜 번호 세트
         move.w   #$90_70,d1       * pda = $90, mode = %0111_0000 = $70
         move.l   #$03_05_01_08,d2 * sector길이=3, track=5, side=1, sector=8
         trap     #iocs            * IOCS 콜
         .
         . 
         .data
buf:     ds.b  1024
         .
         .
         .end

댓글 남기기