Files
CydandClaude Fable 5 db7745fcd0 sda4: commit the Glaze developer hard-drive dump
Un-ignored: the dev drive is the ground truth the restoration and
emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer
source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio
content). Kept in-repo for the pod-owner community.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:41:15 -05:00

51 lines
1.2 KiB
C++

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cm200io.h"
extern Set();
extern dnc_Wait_count(void *, int);
/* 50 equates to 100 ticks in bla loop, == 4 uS on -25 */
#define dnc_Wait(a) dnc_Wait_count(a,50)
/* #define dnc_Wait(a) Wait(a) */
#define start_transaction(t,n) \
dnc_Wait (&output_ccb->lock); \
output_ccb->command_type = t; \
output_ccb->command_no = n; \
output_ccb->ack = 1
#define end_transaction() dnc_Wait (&output_ccb->ack)
#define event() Set(&ioc->tevent,1)
/*{{{ void dN_ld_list_run (int linkno)*/
void dN_ld_list_run (int linkno)
{
start_transaction(IO_LISTDRIVER_RUN, linkno);
event();
end_transaction();
}
/*}}} */
/*{{{ void dN_ld_list_add (int linkno, void *data, int size)*/
void dN_ld_list_add (int linkno, void *data, int size, int pre, int post )
{
int *dptr = (int *) &output_ccb->data[0];
/* printf ("dN_ld_list_add, link %d data 0x%x size %d\n", linkno, data, size ); */
if (pre) end_transaction();
start_transaction(IO_LISTDRIVER_ADD, linkno);
*dptr++=(int) data;
*dptr =size;
event();
if (post) end_transaction();
}
/*}}} */