$46 : B_READ (2HD) : X68000 IOCS CALL

・B_READ IOCS 콜 번호 : $46 (2HD)

기능
 디스크 데이터 읽기

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

리턴
 D0.L 스테이터스

해설
디스크로부터 데이터를 읽습니다.
슈퍼 바이저 영역의 어드레스도 지정할 수 있으므로, 부정한 어드레스를 지정하지 않도록 주의해 주세요.
입력의 D1.W, D2.L에 대해서는 B_SEEK ($40 : 2HD, 하드디스크)를 참조해 주세요.
입력의 D3.L, A1.L은 각각 읽은 데이터 바이트 수, 선두 어드레스 입니다.
리턴의 D0.L의 스테이터스에 대해서는, B_VERIFY ($41 : 2HD, 하드디스크)를 참조해 주세요.

주: OS가 행하고 있는 버퍼링 처리와는 무관계로 동작하므로, OS가 버퍼 중의 데이터를 가지고 있는 경우 디스크 상의 데이터는 내용이 보증되지 않는 경우가 있습니다.

프로그램 예
******************************************
** B_READ                              $46
******************************************

           .include    iocscall.mac
           .include    doscall.mac
iocs     equ     $0f
         
         .text
         .
         .
         moveq.l  #_B_READ,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
         move.l   #1024,d3         * 읽을 바이트 수
         trap     #iocs            * IOCS 콜
         .
         .
         .data
buf:     ds.b 1024
         .
         .
         .end

댓글 남기기