* DOS.asm (of PCQ Pascal runtime library) * Copyright (c) 1989 Patrick Quaid * This module implements the calls to the DOS routines. In a * perfect world each of these calls would be in a separate * hunk, but there you go. The reason you don't need to open * dos.library again, by the way, is that this file makes the * following external reference: XREF _p%DOSBase section one XDEF _GetFileHandle _GetFileHandle move.l 4(sp),a0 move.l (a0),d0 rts XDEF _DOSClose _DOSClose move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOClose(a6) rts XDEF _CreateDir _CreateDir move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOCreateDir(a6) rts XDEF _CurrentDir _CurrentDir move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOCurrentDir(a6) rts XDEF _DeleteFile _DeleteFile move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVODeleteFile(a6) rts XDEF _DupLock _DupLock move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVODupLock(a6) rts XDEF _Examine _Examine move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOExamine(a6) move.l (sp)+,d2 rts XDEF _ExNext _ExNext move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOExNext(a6) move.l (sp)+,d2 rts XDEF _Info _Info move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOInfo(a6) move.l (sp)+,d2 rts XDEF _Input _Input move.l _p%DOSBase,a6 jsr _LVOInput(a6) rts XDEF _IoErr _IoErr move.l _p%DOSBase,a6 jsr _LVOIoErr(a6) rts XDEF _IsInteractive _IsInteractive move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOIsInteractive(a6) rts XDEF _Lock _Lock move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOLock(a6) move.l (sp)+,d2 rts XDEF _DOSOpen _DOSOpen move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOOpen(a6) move.l (sp)+,d2 rts XDEF _Output _Output move.l _p%DOSBase,a6 jsr _LVOOutput(a6) rts XDEF _ParentDir _ParentDir move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOParentDir(a6) rts XDEF _DOSRead _DOSRead movem.l d2-d3,-(sp) move.l 20(sp),d1 move.l 16(sp),d2 move.l 12(sp),d3 move.l _p%DOSBase,a6 jsr _LVORead(a6) movem.l (sp)+,d2-d3 rts XDEF _Rename _Rename move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVORename(a6) move.l (sp)+,d2 rts XDEF _Seek _Seek movem.l d2-d3,-(sp) move.l 20(sp),d1 move.l 16(sp),d2 move.l 12(sp),d3 move.l _p%DOSBase,a6 jsr _LVOSeek(a6) movem.l (sp)+,d2-d3 rts XDEF _SetComment _SetComment move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOSetComment(a6) move.l (sp)+,d2 rts XDEF _SetProtection _SetProtection move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOSetProtection(a6) move.l (sp)+,d2 rts XDEF _UnLock _UnLock move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOUnLock(a6) rts XDEF _WaitForChar _WaitForChar move.l d2,-(sp) move.l 12(sp),d1 move.l 8(sp),d2 move.l _p%DOSBase,a6 jsr _LVOWaitForChar(a6) move.l (sp)+,d2 rts XDEF _DOSWrite _DOSWrite movem.l d2-d3,-(sp) move.l 20(sp),d1 move.l 16(sp),d2 move.l 12(sp),d3 move.l _p%DOSBase,a6 jsr _LVOWrite(a6) movem.l (sp)+,d2-d3 rts XDEF _CreateProc _CreateProc movem.l d2-d4,-(sp) move.l 28(sp),d1 move.l 24(sp),d2 move.l 20(sp),d3 move.l 16(sp),d4 move.l _p%DOSBase,a6 jsr _LVOCreateProc(a6) movem.l (sp)+,d2-d4 rts XDEF _DateStamp _DateStamp move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVODateStamp(a6) rts XDEF _Delay _Delay move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVODelay(a6) rts XDEF _DeviceProc _DeviceProc move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVODeviceProc(a6) rts XDEF _DOSExit _DOSExit move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOExit(a6) rts XDEF _Execute _Execute movem.l d2-d3,-(sp) move.l 20(sp),d1 move.l 16(sp),d2 move.l 12(sp),d3 move.l _p%DOSBase,a6 jsr _LVOExecute(a6) movem.l (sp)+,d2-d3 rts XDEF _LoadSeg _LoadSeg move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOLoadSeg(a6) rts XDEF _UnLoadSeg _UnLoadSeg move.l 4(sp),d1 move.l _p%DOSBase,a6 jsr _LVOUnLoadSeg(a6) rts * I should get around to defining these things in this file, * but I suppose it can wait. XREF _LVOExecute XREF _LVOIsInteractive XREF _LVOParentDir XREF _LVOWaitForChar XREF _LVODelay XREF _LVODateStamp XREF _LVOSetProtection XREF _LVOSetComment XREF _LVODeviceProc XREF _LVOQueuePacket XREF _LVOGetPacket XREF _LVOUnLoadSeg XREF _LVOLoadSeg XREF _LVOExit XREF _LVOCreateProc XREF _LVOIoErr XREF _LVOCurrentDir XREF _LVOCreateDir XREF _LVOInfo XREF _LVOExNext XREF _LVOExamine XREF _LVODupLock XREF _LVOUnLock XREF _LVOLock XREF _LVORename XREF _LVODeleteFile XREF _LVOSeek XREF _LVOOutput XREF _LVOInput XREF _LVOWrite XREF _LVORead XREF _LVOClose XREF _LVOOpen END