> VTAM is not provided as part of the hardware. That's
> why it's available to MVS programs but not
> CMS/VSE/MUSICSP/PDOS3X0/Linux programs.
You dont know what youre talking about. VTAM is available for those OS platforms as well. Its a program product just like it is on MVS.
>And we're missing an INT 13H on mainframes too.
No we're not. EXCP with a channel program works just fine, the same as it does on an ancient PC. Here's the actual code from the BIOS for INT 13. It operates exactly the same as EXCP.
;-- INT 13 ----------------------------------
;DISKETTE I/O
; THIS INTERFACE PROVIDES ACCESS TO THE 5 1/4" DISKETTE DRIVES
;INPUT
; (AH)=0 RESET DISKETTE SYSTEM
; HARD RESET TO NEC, PREPARE COMMAND, RECAL REQD ON ALL DRIVES
; (AH)=1 READ THE STATUS OF THE SYSTEM INTO (AL)
; DISKETTE_STATUS FROM LAST OP'N IS USED
; REGISTERS FOR READ/WRITE/VERIFY/FORMAT
; (DL) - DRIVE NUMBER (0-3 ALLOWED, VALUE CHECKED)
; (DH) - HEAD NUMBER (0-1 ALLOWED, NOT VALUE CHECKED)
; (CH) - TRACK NUMBER (0-39, NOT VALUE CHECKED)
; (CL) - SECTOR NUMBER (1-8, NOT VALUE CHECKED)
; (AL) - NUMBER OF SECTORS ( MAX = 8, NOT VALUE CHECKED)
;
; (ES:BX) - ADDRESS OF BUFFER ( NOT REQUIRED FOR VERIFY)
;
; (AH)=2 READ THE DESIRED SECTORS INTO MEMORY
; (AH)=3 WRITE THE DESIRED SECTORS FROM MEMORY
; (AH)=4 VERIFY THE DESIRED SECTORS
; (AH)=5 FORMAT THE DESIRED TRACKS
; FOR THE FORMAT OPERATION, THE BUFFER POINTER (ES,BX) MUST
; POINT TO THE COLLECTION OF DESIRED ADDRESS FIELDS FOR THE
; TRACK. EACH FIELD IS COMPOSED OF 4 BYTES, (C,H,R,N), WHERE
; C = TRACK NUMBER, H=HEAD NUMBER, R = SECTOR NUMBER, N= NUMBER
; OF BYTES PER SECTOR (00=128, 01=256, 02=512, 03=1024,)
; THERE MUST BE ONE ENTRY FOR EVERY SECTOR ON THE TRACK.
; THIS INFORMATION IS USED TO FIND THE REQUESTED SECTOR DURING
; READ/WRITE ACCESS.
; DATA VARIABLE -- DISK_POINTER
; DOUBLE WORD POINTER TO THE CURRENT SET OF DISKETTE PARAMETERS
; OUTPUT
; AH = STATUS OF OPERATION
; STATUS BITS ARE DEFINED IN THE EQUATES FOR DISKETTE_STATUS
; VARIABLE IN THE DATA SEGMENT OF THIS MODULE
; CY = 0 SUCCESSFUL OPERATION (AH=0 ON RETURN)
; CY = 1 FAILED OPERATION (AH HAS ERROR REASON)
; FOR READ/WRITE/VERIFY
; DS,BX,DX,CH,CL PRESERVED
; AL = NUMBER OF SECTORS ACTUALLY READ
; ***** AL MAY NOT BE CORRECT IF TIME OUT ERROR OCCURS
; NOTE: IF AN ERROR IS REPORTED BY THE DISKETTE CODE, THE APPROPRIATE
; ACTION IS TO RESET THE DISKETTE, THEN RETRY THE OPERATION.
; ON READ ACCESSES, NO MOTOR START DELAY IS TAKEN, SO THAT
; THREE RETRIES ARE REQUIRED ON READS TO ENSURE THAT THE
; PROBLEM IS NOT DUE TO MOTOR START-UP.
;--------------------------------------------
Joe