Originally Posted by shattered
rt1715w WIP -- card games, using loadable chargen for graphics:

[Linked Image from i.imgur.com]

cp/m syscall tracing script I've used while working on this driver:


Code
bpset 5,1,      { logerror "BDOS call %3d arg %04x\n", c, de; go }
bpset 5,c==0x00,{ logerror "BDOS call %3d arg %04x = P_TERMCPM\n", c, de; go }
bpset 5,c==0x01,{ logerror "BDOS call %3d arg %04x = C_READ\n", c, de; go }
bpset 5,c==0x02,{ logerror "BDOS call %3d arg %04x = C_WRITE '%c'\n", c, de, e; go }
bpset 5,c==0x03,{ logerror "BDOS call %3d arg %04x = A_READ\n", c, de; go }
bpset 5,c==0x04,{ logerror "BDOS call %3d arg %04x = A_WRITE '%c'\n", c, de, e; go }
bpset 5,c==0x05,{ logerror "BDOS call %3d arg %04x = L_WRITE '%c'\n", c, de, e; go }
bpset 5,c==0x06,{ logerror "BDOS call %3d arg %04x = C_RAWIO\n", c, de; go }
bpset 5,c==0x07,{ logerror "BDOS call %3d arg %04x = A_STATIN\n", c, de; go }
bpset 5,c==0x08,{ logerror "BDOS call %3d arg %04x = A_STATOUT\n", c, de; go }
bpset 5,c==0x09,{ logerror "BDOS call %3d arg %04x = C_WRITESTR\n", c, de; go }
bpset 5,c==0x0a,{ logerror "BDOS call %3d arg %04x = C_READSTR\n", c, de; go }
bpset 5,c==0x0b,{ logerror "BDOS call %3d arg %04x = C_STAT\n", c, de; go }
bpset 5,c==0x0c,{ logerror "BDOS call %3d arg %04x = S_BDOSVER\n", c, de; go }
bpset 5,c==0x0d,{ logerror "BDOS call %3d arg %04x = DRV_ALLRESET\n", c, de; go }
bpset 5,c==0x0e,{ logerror "BDOS call %3d arg %04x = DRV_SET drive %d\n", c, de, e; go }
bpset 5,c==0x0f,{ logerror "BDOS call %3d arg %04x = F_OPEN drive %d file '%c%c%c%c%c%c%c%c.%c%c%c'\n", c, de, b@(de), b@(de+1),b@(de+2),b@(de+3),b@(de+4),b@(de+5),b@(de+6),b@(de+7),b@(de+8),b@(de+9),b@(de+0xa),b@(de+0xb); go }

bpset 5,c==0x10,{ logerror "BDOS call %3d arg %04x = F_CLOSE\n", c, de; go }
bpset 5,c==0x11,{ logerror "BDOS call %3d arg %04x = F_SFIRST\n", c, de; go }
bpset 5,c==0x12,{ logerror "BDOS call %3d arg %04x = F_SNEXT\n", c, de; go }
bpset 5,c==0x13,{ logerror "BDOS call %3d arg %04x = F_DELETE drive %d file '%c%c%c%c%c%c%c%c.%c%c%c'\n", c, de, b@(de), b@(de+1),b@(de+2),b@(de+3),b@(de+4),b@(de+5),b@(de+6),b@(de+7),b@(de+8),b@(de+9),b@(de+0xa),b@(de+0xb); go }
bpset 5,c==0x14,{ logerror "BDOS call %3d arg %04x = F_READ drive %d file '%c%c%c%c%c%c%c%c.%c%c%c'\n", c, de, b@(de), b@(de+1),b@(de+2),b@(de+3),b@(de+4),b@(de+5),b@(de+6),b@(de+7),b@(de+8),b@(de+9),b@(de+0xa),b@(de+0xb); go }
bpset 5,c==0x15,{ logerror "BDOS call %3d arg %04x = F_WRITE drive %d file '%c%c%c%c%c%c%c%c.%c%c%c'\n", c, de, b@(de), b@(de+1),b@(de+2),b@(de+3),b@(de+4),b@(de+5),b@(de+6),b@(de+7),b@(de+8),b@(de+9),b@(de+0xa),b@(de+0xb); go }
bpset 5,c==0x16,{ logerror "BDOS call %3d arg %04x = F_MAKE drive %d file '%c%c%c%c%c%c%c%c.%c%c%c'\n", c, de, b@(de), b@(de+1),b@(de+2),b@(de+3),b@(de+4),b@(de+5),b@(de+6),b@(de+7),b@(de+8),b@(de+9),b@(de+0xa),b@(de+0xb); go }
bpset 5,c==0x17,{ logerror "BDOS call %3d arg %04x = F_RENAME\n", c, de; go }
bpset 5,c==0x18,{ logerror "BDOS call %3d arg %04x = DRV_LOGINVEC\n", c, de; go }
bpset 5,c==0x19,{ logerror "BDOS call %3d arg %04x = DRV_GET\n", c, de; go }
bpset 5,c==0x1a,{ logerror "BDOS call %3d arg %04x = F_DMAOFF\n", c, de; go }
bpset 5,c==0x1b,{ logerror "BDOS call %3d arg %04x = DRV_ALLOCVEC\n", c, de; go }
bpset 5,c==0x1c,{ logerror "BDOS call %3d arg %04x = DRV_SETRO\n", c, de; go }
bpset 5,c==0x1d,{ logerror "BDOS call %3d arg %04x = DRV_ROVEC\n", c, de; go }
bpset 5,c==0x1e,{ logerror "BDOS call %3d arg %04x = F_ATTRIB\n", c, de; go }
bpset 5,c==0x1f,{ logerror "BDOS call %3d arg %04x = DRV_DPB\n", c, de; go }

bpset 5,c==0x20,{ logerror "BDOS call %3d arg %04x = F_USERNUM\n", c, de; go }
bpset 5,c==0x2c,{ logerror "BDOS call %3d arg %04x = F_MULTISEC?\n", c, de; go }
bpset 5,c==0x2d,{ logerror "BDOS call %3d arg %04x = F_ERRMODE\n", c, de; go }

bpset 5,c==0x31,{ logerror "BDOS call %3d arg %04x = 'Access SCB'\n", c, de; go }
bpset 5,c==0x3b,{ logerror "BDOS call %3d arg %04x = P_LOAD drive %d file '%c%c%c%c%c%c%c%c.%c%c%c'\n", c, de, b@(de), b@(de+1),b@(de+2),b@(de+3),b@(de+4),b@(de+5),b@(de+6),b@(de+7),b@(de+8),b@(de+9),b@(de+0xa),b@(de+0xb); go }
bpset 5,c==0x3c,{ do temp1 = w@(de+2); logerror "BDOS call %3d arg %04x = 'Call RSX' func %d name '%c%c%c%c%c%c%c%c'\n", c, de, b@(de), b@(temp1),b@(temp1+1),b@(temp1+2),b@(temp1+3),b@(temp1+4),b@(temp1+5),b@(temp1+6),b@(temp1+7); go }

bpset 5,c==0x62,{ logerror "BDOS call %3d arg %04x = 'Clean up disc'\n", c, de; go }
bpset 5,c==0x63,{ logerror "BDOS call %3d arg %04x = F_TRUNCATE\n", c, de; go }
bpset 5,c==0x6c,{ logerror "BDOS call %3d arg %04x = P_CODE\n", c, de; go }
bpset 5,c==0x6d,{ logerror "BDOS call %3d arg %04x = C_MODE\n", c, de; go }

bpset 5,c==0x98,{ do temp1 = w@(de); logerror "BDOS call %3d arg %04x = F_PARSE name at %04x '%c%c%c%c%c%c%c%c%c%c%c%c%c'(...)\n", c, de, temp1,  b@(temp1),b@(temp1+1),b@(temp1+2),b@(temp1+3),b@(temp1+4),b@(temp1+5),b@(temp1+6),b@(temp1+7),b@(temp1+8),b@(temp1+9),b@(temp1+0xa),b@(temp1+0xb),b@(temp1+0xc); go }