mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Reintegrate wbw -> trunk
This commit is contained in:
@@ -15,13 +15,15 @@ echo Building DWG.REL...
|
||||
echo.
|
||||
set TGT=dwg.rel
|
||||
if exist %TGT% del %TGT%
|
||||
zx rmac printers
|
||||
zx rmac memory
|
||||
zx rmac banner
|
||||
zx rmac terminal
|
||||
zx rmac identity
|
||||
zx rmac hbios
|
||||
zx lib %TGT%=printers,memory,banner,terminal,identity,hbios
|
||||
zx rmac printers.asm -$PN
|
||||
zx rmac memory.asm -$PN
|
||||
zx rmac banner.asm -$PN
|
||||
zx rmac terminal.asm -$PN
|
||||
zx rmac identity.asm -$PN
|
||||
zx rmac hbios.asm -$PN
|
||||
ZX rmac labelib.asm -$PN
|
||||
zx rmac metadata.asm -$PN
|
||||
zx lib %TGT%=printers,memory,banner,terminal,identity,hbios,labelib,metadata
|
||||
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
|
||||
|
||||
echo.
|
||||
@@ -52,7 +54,7 @@ echo Building ACCESS.COM...
|
||||
echo.
|
||||
set TGT=access.com
|
||||
if exist %TGT% del %TGT%
|
||||
zx rmac access
|
||||
zx rmac access.asm -$PN
|
||||
zx link access,dwg
|
||||
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
|
||||
|
||||
@@ -71,7 +73,7 @@ echo Building FINDFILE.COM...
|
||||
echo.
|
||||
set TGT=findfile.com
|
||||
if exist %TGT% del %TGT%
|
||||
zx rmac findfile
|
||||
zx rmac findfile.asm -$PN
|
||||
zx link findfile,dwg
|
||||
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
|
||||
|
||||
@@ -110,7 +112,7 @@ echo Building REM.COM...
|
||||
echo.
|
||||
set TGT=rem.com
|
||||
if exist %TGT% del %TGT%
|
||||
zx rmac rem
|
||||
zx rmac rem.asm -$PN
|
||||
zx link rem
|
||||
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
|
||||
|
||||
@@ -119,7 +121,7 @@ echo Building SETLABEL.COM...
|
||||
echo.
|
||||
set TGT=setlabel.com
|
||||
if exist %TGT% del %TGT%
|
||||
zx rmac setlabel
|
||||
zx rmac setlabel.asm -$PN
|
||||
zx link setlabel,dwg
|
||||
if not exist %TGT% echo *** Failed to build %TGT% *** && pause
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
#define A_RMJ 2
|
||||
#define A_RMN 5
|
||||
#define A_RUP 0
|
||||
#define A_RTP 12
|
||||
#define A_RTP 13
|
||||
|
||||
#define A_MONTH 5
|
||||
#define A_DAY 24
|
||||
#define A_MONTH 6
|
||||
#define A_DAY 7
|
||||
#define A_YEAR 2013
|
||||
#define A_YR 13
|
||||
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
A$RMJ equ 2
|
||||
A$RMN equ 5
|
||||
A$RUP equ 0
|
||||
A$RTP equ 12
|
||||
A$RTP equ 13
|
||||
|
||||
A$MONTH equ 5
|
||||
A$DAY equ 24
|
||||
A$MONTH equ 6
|
||||
A$DAY equ 7
|
||||
A$YEAR equ 2013
|
||||
|
||||
date macro
|
||||
dat db ' 5/24/2013$'
|
||||
dat db ' 6/7/2013$'
|
||||
endm
|
||||
|
||||
serial macro
|
||||
|
||||
@@ -94,7 +94,7 @@ struct CNFGDATA {
|
||||
unsigned int idecapacity;
|
||||
|
||||
unsigned char ppideenable;
|
||||
unsigned char ppidemode;
|
||||
unsigned char ppideiob;
|
||||
unsigned char ppidetrace;
|
||||
unsigned char ppide8bit;
|
||||
unsigned int ppidecapacity;
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#define RESETDRIVE 37
|
||||
#define WRRANDFILL 38
|
||||
|
||||
#define BDOSDEFDR 0 /* BDOS Default (current) Drive Number */
|
||||
#define BDOSDRA 1
|
||||
#define BDOSDRB 2
|
||||
#define BDOSDRC 3
|
||||
|
||||
@@ -12,9 +12,11 @@
|
||||
#define GETSYSCFG 0xF000 /* HBIOS function for Get System Configuration */
|
||||
|
||||
char None[] = "*None*";
|
||||
char Unk[] = "*Unknown*";
|
||||
char * PltName[] = {None, "N8VEM Z80", "ZETA Z80", "N8 Z180"};
|
||||
char * CIOName[] = {"UART", "ASCI", "VDU", "CVDU", "UPD7220",
|
||||
"N8V", "PRPCON", "PPPCON", "CRT", "BAT", "NUL"};
|
||||
"N8V", "PRPCON", "PPPCON", Unk, Unk, Unk, Unk, Unk,
|
||||
"CRT", "BAT", "NUL"};
|
||||
char * DIOName[] = {"MD", "FD", "IDE", "ATAPI", "PPIDE",
|
||||
"SD", "PRPSD", "PPPSD", "HDSK"};
|
||||
char * VDAName[] = {None, "VDU", "CVDU", "UPD7220", "N8V"};
|
||||
@@ -123,8 +125,9 @@ prtcfg1(pSysCfg)
|
||||
pager();
|
||||
pager();
|
||||
|
||||
printf("Console: Default=%s, Alternate=%s, Init Baudrate=%d0",
|
||||
CIOName[pCfg->defcon], CIOName[pCfg->altcon],
|
||||
printf("Console: Default=%s:%d, Alternate=%s:%d, Init Baudrate=%d0",
|
||||
CIOName[(pCfg->defcon) >> 4], pCfg->defcon & 0xF,
|
||||
CIOName[(pCfg->altcon) >> 4], pCfg->altcon & 0xF,
|
||||
pCfg->conbaud);
|
||||
pager();
|
||||
printf ("Default Video Display: %s, Default Emulation: %s",
|
||||
@@ -208,8 +211,8 @@ prtcfg2(pSysCfg)
|
||||
fmtenable(pCfg->ideenable), IDEModeName[pCfg->idemode],
|
||||
pCfg->idetrace, fmtbool(pCfg->ide8bit), pCfg->idecapacity);
|
||||
pager();
|
||||
printf("PPIDE %s, Mode=%s, TraceLevel=%d, 8bit=%s, Slow=%s, Size=%dMB",
|
||||
fmtenable(pCfg->ppideenable), IDEModeName[pCfg->ppidemode],
|
||||
printf("PPIDE %s, IOBase=0x%s, TraceLevel=%d, 8bit=%s, Slow=%s, Size=%dMB",
|
||||
fmtenable(pCfg->ppideenable), fmthexbyte(pCfg->ppideiob, buf),
|
||||
pCfg->ppidetrace, fmtbool(pCfg->ppide8bit),
|
||||
fmtbool(pCfg->ppideslow), pCfg->ppidecapacity);
|
||||
pager();
|
||||
|
||||
@@ -8,7 +8,7 @@ struct INFOLIST {
|
||||
void * dpbmap;
|
||||
void * dphmap;
|
||||
void * ciomap;
|
||||
} * pINFOLIST;
|
||||
};
|
||||
|
||||
/********************/
|
||||
/* eof - infolist.h */
|
||||
|
||||
@@ -238,8 +238,7 @@ int main(argc,argv)
|
||||
char szDrive[32];
|
||||
char szLuNum[32];
|
||||
char szWP[2];
|
||||
|
||||
|
||||
struct INFOLIST * pINFOLIST;
|
||||
|
||||
if(argc == 3) {
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
; memory.asm 2/1/2012 dwg - memory library implementation
|
||||
; maclib z80
|
||||
maclib z80
|
||||
|
||||
;memcpy macro h=src,d==dst,bc=size
|
||||
public x$memcpy
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/* meta.c 6/7/2012 dwg - view and edit the metadata */
|
||||
|
||||
|
||||
#include "stdio.h"
|
||||
#include "portab.h"
|
||||
#include "globals.h"
|
||||
@@ -47,10 +46,10 @@ display()
|
||||
rdsector(drive,0,11,&metadata);
|
||||
|
||||
crtlc(METALINE+0,METACOL);
|
||||
printf("metadata.signature = 0x%04x",metadata.signature);
|
||||
printf("metadata.signature = 0x%x",metadata.signature);
|
||||
|
||||
crtlc(METALINE+1,METACOL);
|
||||
printf("metadata.platform = 0x%02x",metadata.platform);
|
||||
printf("metadata.platform = 0x%x",metadata.platform);
|
||||
|
||||
crtlc(METALINE+2,METACOL);
|
||||
printf("metadata.formatter = \"");
|
||||
@@ -93,16 +92,16 @@ display()
|
||||
}
|
||||
printf("\"");
|
||||
crtlc(METALINE+9,METACOL);
|
||||
printf("metadata.infloc = 0x%04x",metadata.infloc);
|
||||
printf("metadata.infloc = 0x%x",metadata.infloc);
|
||||
|
||||
crtlc(METALINE+10,METACOL);
|
||||
printf("metadata.cpmloc = 0x%04x",metadata.cpmloc);
|
||||
printf("metadata.cpmloc = 0x%x",metadata.cpmloc);
|
||||
|
||||
crtlc(METALINE+11,METACOL);
|
||||
printf("metadata.cpmend = 0x%04x",metadata.cpmend);
|
||||
printf("metadata.cpmend = 0x%x",metadata.cpmend);
|
||||
|
||||
crtlc(METALINE+12,METACOL);
|
||||
printf("metadata.cpment = 0x%04x",metadata.cpment);
|
||||
printf("metadata.cpment = 0x%x",metadata.cpment);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -219,7 +219,7 @@ clrdir(line,col)
|
||||
|
||||
if(-1 != line) {
|
||||
crtlc(line,col-1);
|
||||
printf("%3d",sectors-sector);
|
||||
printf("%d",sectors-sector);
|
||||
}
|
||||
|
||||
wrsector(gDrvNum,pDPB->off,sector,e5buffer,1);
|
||||
@@ -283,7 +283,7 @@ physfmt(lu)
|
||||
/* LU is not protected or override is enabled */
|
||||
|
||||
if(0==gTT) {
|
||||
printf("Formatting LU# %3d%c",lu,0x0d);
|
||||
printf("Formatting LU# %d%c",lu,0x0d);
|
||||
clrmeta(lu,-1,-1);
|
||||
clrdir(-1,-1);
|
||||
} else {
|
||||
@@ -291,14 +291,14 @@ physfmt(lu)
|
||||
|
||||
line = lu / 16;
|
||||
crtlc(26-16-4+line,0);
|
||||
printf("%3d...",lu & 0xf0);
|
||||
printf("%d...",lu & 0xf0);
|
||||
|
||||
col = lu & 15;
|
||||
clrmeta(lu,24-16-2+line,((80-64)/2)+(col*4)+1);
|
||||
clrdir( 24-16-2+line,((80-64)/2)+(col*4)+1);
|
||||
|
||||
crtlc(24-16-2+line,((80-64)/2)+(col*4)+1);
|
||||
printf("OK");
|
||||
crtlc(24-16-2+line,((80-64)/2)+(col*4));
|
||||
printf(" OK");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@@ -317,7 +317,7 @@ lformat()
|
||||
if(0 != gTT) {
|
||||
for(index=0;index<16;index++) {
|
||||
crtlc(24-16-2-2,((80-64)/2)+(index*4));
|
||||
printf("+%2d",index);
|
||||
printf("+%d",index);
|
||||
}
|
||||
for(index=0;index<16;index++) {
|
||||
crtlc(24-16-2-1,((80-64)/2)+(index*4));
|
||||
@@ -438,6 +438,7 @@ main(argc,argv)
|
||||
char *argv[];
|
||||
{
|
||||
int retcode;
|
||||
struct INFOLIST * pINFOLIST;
|
||||
|
||||
hregbc = GETSYSCFG; /* function = Get System Config */
|
||||
hregde = HIGHSEG; /* addr of dest (must be high) */
|
||||
|
||||
@@ -64,7 +64,6 @@ around$bandata:
|
||||
printf 'Sorry, you can only label drives with reserved tracks'
|
||||
jmp main$exit
|
||||
off$ok:
|
||||
|
||||
lda drive$num ; using the default drive number
|
||||
mov c,a ; (presented in the C register)
|
||||
call x$label ; call the actual code in labelib.asm
|
||||
|
||||
@@ -2,292 +2,21 @@
|
||||
|
||||
#include "stdio.h"
|
||||
#include "applvers.h"
|
||||
|
||||
/* declarations for HBIOS access */
|
||||
extern char hrega;
|
||||
extern unsigned int hregbc;
|
||||
extern unsigned int hregde;
|
||||
extern unsigned int hreghl;
|
||||
extern diagnose();
|
||||
|
||||
/* declaration dir BIOS and BDOS and low level calls */
|
||||
extern char xrega;
|
||||
extern unsigned int xregbc;
|
||||
extern unsigned int xregde;
|
||||
extern unsigned int xreghl;
|
||||
extern asmif(); /* asmif(0x0E6**,bc,de,hl); */
|
||||
#include "infolist.h"
|
||||
#include "cnfgdata.h"
|
||||
#include "syscfg.h"
|
||||
#include "diagnose.h"
|
||||
#include "asmiface.h"
|
||||
#include "cpmbdos.h"
|
||||
#include "cpmbios.h"
|
||||
|
||||
#define BDOS 5 /* memory address of BDOS invocation */
|
||||
#define PRIFCB 0x5C /* memory address of primary FCB */
|
||||
#define SECFCB 0x6C /* memory address of secondary FCB */
|
||||
#define DEFBUF 0x80 /* memory address of default buffer */
|
||||
#define HIGHSEG 0x0C000 /* memory address of system config */
|
||||
|
||||
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
|
||||
#define PUTSYSCFG 0x0F100 /* HBIOS function for Put System Configuration */
|
||||
|
||||
#define TERMCPM 0 /* BDOS function for System Reset */
|
||||
#define CONIN 1 /* BDOS function for Console Input */
|
||||
#define CWRITE 2 /* BDOS function for Console Output */
|
||||
#define DIRCONIO 6 /* BDOS function for Direct Console I/O */
|
||||
#define PRINTSTR 9 /* BDOS function for Print String */
|
||||
#define RDCONBUF 10 /* BDOS function for Buffered Console Read */
|
||||
#define GETCONST 11 /* BDOS function for Get Console Status */
|
||||
#define RETVERNUM 12 /* BDOS function for Return Version Number */
|
||||
#define RESDISKSYS 13 /* BDOS function for Reset Disk System */
|
||||
#define SELECTDISK 14 /* BDOS function for Select Disk */
|
||||
#define FOPEN 15 /* BDOS function for File Open */
|
||||
#define FCLOSE 16 /* BDOS function for File Close */
|
||||
#define SEARCHFIRST 17 /* BDOS function for Search First */
|
||||
#define SEARCHNEXT 18 /* BDOS function for Search Next */
|
||||
#define FDELETE 19 /* BDOS function for File Delete */
|
||||
#define FREADSEQ 20 /* BDOS function for File Read Sequential */
|
||||
#define FWRITESEQ 21 /* BDOS function for File Write Sequential */
|
||||
#define FMAKEFILE 22 /* BDOS function for File Make */
|
||||
#define FRENAME 23 /* BDOS function for File Rename */
|
||||
#define RETLOGINVEC 24 /* BDOS function for Return Login Vector */
|
||||
#define RETCURRDISK 25 /* BDOS function for Return Current Disk */
|
||||
#define SETDMAADDR 26 /* BDOS function for Set DMA Address */
|
||||
#define GETALLOCVEC 27 /* BDOS function for Get Allocation Vector */
|
||||
#define WRPROTDISK 28 /* BDOS function for Write Protect Disk */
|
||||
#define GETROVECTOR 29 /* BDOS function for Get Read Only Vector */
|
||||
#define FSETATTRIB 30 /* BDOS function for File Set Attribute */
|
||||
#define GETDPBADDR 31 /* BDOS function for Get DPB Address */
|
||||
#define SETGETUSER 32 /* BDOS function for Set & Get User Number */
|
||||
#define FREADRANDOM 33 /* BDOS function for File Read Random */
|
||||
#define FWRITERAND 34 /* BDOS function for File Write Random */
|
||||
#define FCOMPSIZE 35 /* BDOS function for File Compare Size */
|
||||
#define SETRANDREC 36 /* BDOS function for Set Random Record # */
|
||||
#define RESETDRIVE 37 /* BDOS function for Reset Drive */
|
||||
#define WRRANDFILL 38 /* BDOS function for Write Random w/ Fill */
|
||||
|
||||
#define BDOSDEFDR 0 /* BDOS Default (current) Drive Number */
|
||||
#define BDOSDRA 1 /* BDOS Drive A: number */
|
||||
#define BDOSDRB 2 /* BDOS Drive B: number */
|
||||
#define BDOSDRC 3 /* BDOS Drive C: number */
|
||||
#define BDOSDRD 4 /* BDOS Drive D: number */
|
||||
#define BDOSDRE 5 /* BDOS Drive E: number */
|
||||
#define BDOSDRF 6 /* BDOS Drive F: number */
|
||||
#define BDOSDRG 7 /* BDOS Drive G: number */
|
||||
#define BDOSDRH 8 /* BDOS Drive H: number */
|
||||
|
||||
#define BIOSDRA 0 /* BIOS Drive A: number */
|
||||
#define BIOSDRB 1 /* BIOS Drive B: number */
|
||||
#define BIOSDRC 2 /* BIOS Drive C: number */
|
||||
#define BIOSDRD 3 /* BIOS Drive D: number */
|
||||
#define BIOSDRE 4 /* BIOS Drive E: number */
|
||||
#define BIOSDRF 5 /* BIOS Drive F: number */
|
||||
#define BIOSDRG 6 /* BIOS Drive G: number */
|
||||
#define BIOSDRH 7 /* BIOS Drive H: number */
|
||||
|
||||
struct FCB {
|
||||
char drive; /* BDOS Drive Code */
|
||||
char filename[8]; /* space padded file name */
|
||||
char filetype[3]; /* space padded file extension */
|
||||
char filler[24]; /* remainder of FCB */
|
||||
};
|
||||
|
||||
struct FCB * pPriFcb = PRIFCB; /* pointer to Primary FCB structure */
|
||||
|
||||
struct FCB * pSecFcb = SECFCB; /* pointer to secondary FCB structure */
|
||||
|
||||
struct {
|
||||
char length; /* length of commad tail */
|
||||
char tail[127]; /* command tail */
|
||||
} * pDefBuf = DEFBUF;
|
||||
|
||||
|
||||
#define CURDRV 0x00004
|
||||
#define BIOSAD 0x0e600 /* base address of BIOS jumps */
|
||||
|
||||
/* addresses of BIOS jumps */
|
||||
#define pBOOT 0x0E600
|
||||
#define pWBOOT 0x0E603
|
||||
#define pCONST 0x0E606
|
||||
#define pCONIN 0x0E609
|
||||
#define pCONOUT 0x0E60C
|
||||
#define pLIST 0x0E60F
|
||||
#define pPUNCH 0x0E612
|
||||
#define pREADER 0x0E615
|
||||
#define pHOME 0x0E618
|
||||
#define pSELDSK 0x0E61B
|
||||
#define pSETTRK 0x0E61E
|
||||
#define pSETSEC 0x0E621
|
||||
#define pSETDMA 0x0E624
|
||||
#define pREAD 0x0E627
|
||||
#define pWRITE 0x0E62A
|
||||
#define pLISTST 0x0E62D
|
||||
#define pSECTRN 0x0E630
|
||||
#define pBNKSEL 0x0E633
|
||||
#define pGETLU 0x0E636
|
||||
#define pSETLU 0x0E639
|
||||
#define pGETINFO 0x0E63C
|
||||
|
||||
struct JMP {
|
||||
unsigned char opcode; /* JMP opcode */
|
||||
unsigned int address; /* JMP address */
|
||||
};
|
||||
|
||||
struct BIOS {
|
||||
struct JMP boot;
|
||||
struct JMP wboot;
|
||||
struct JMP const;
|
||||
struct JMP conin;
|
||||
struct JMP conout;
|
||||
struct JMP list;
|
||||
struct JMP punch;
|
||||
struct JMP reader;
|
||||
struct JMP home;
|
||||
struct JMP seldsk;
|
||||
struct JMP settrk;
|
||||
struct JMP setsec;
|
||||
struct JMP setdma;
|
||||
struct JMP read;
|
||||
struct JMP write;
|
||||
struct JMP listst;
|
||||
struct JMP sectrn;
|
||||
struct JMP bnksel;
|
||||
struct JMP getlu;
|
||||
struct JMP setlu;
|
||||
struct JMP getinfo;
|
||||
struct JMP rsvd1;
|
||||
struct JMP rsvd2;
|
||||
struct JMP rsvd3;
|
||||
struct JMP rsvd4;
|
||||
|
||||
char rmj;
|
||||
char rmn;
|
||||
char rup;
|
||||
char rtp;
|
||||
|
||||
} * pBIOS = 0xe600;
|
||||
|
||||
/* pointer based Disk Parameter Block structure */
|
||||
struct DPB {
|
||||
unsigned int spt;
|
||||
unsigned char bsh;
|
||||
unsigned char blm;
|
||||
unsigned char exm;
|
||||
unsigned int dsm;
|
||||
unsigned int drm;
|
||||
unsigned char al0;
|
||||
unsigned int cks;
|
||||
unsigned int off;
|
||||
} * pDPB;
|
||||
|
||||
/* pointer based Disk Parameter Header structure */
|
||||
struct DPH {
|
||||
unsigned int xlt;
|
||||
unsigned int rv1;
|
||||
unsigned int rv2;
|
||||
unsigned int rv3;
|
||||
unsigned int dbf;
|
||||
struct DPB * pDpb;
|
||||
unsigned int csv;
|
||||
unsigned int alv;
|
||||
unsigned char sigl;
|
||||
unsigned char sigu;
|
||||
unsigned int current;
|
||||
unsigned int number;
|
||||
} * pDPH;
|
||||
|
||||
/* pointer based Information List structure */
|
||||
struct INFOLIST {
|
||||
int version;
|
||||
void * banptr;
|
||||
void * varloc;
|
||||
void * tstloc;
|
||||
void * dpbmap;
|
||||
void * dphmap;
|
||||
void * ciomap;
|
||||
} * pINFOLIST;
|
||||
|
||||
/* pointer based Configuration Data structure */
|
||||
struct CNFGDATA {
|
||||
unsigned char rmj;
|
||||
unsigned char rmn;
|
||||
unsigned char rup;
|
||||
unsigned char rtp;
|
||||
unsigned char diskboot;
|
||||
unsigned char devunit;
|
||||
unsigned int bootlu;
|
||||
unsigned char hour;
|
||||
unsigned char minute;
|
||||
unsigned char second;
|
||||
unsigned char month;
|
||||
unsigned char day;
|
||||
unsigned char year;
|
||||
unsigned char freq;
|
||||
unsigned char platform;
|
||||
unsigned char dioplat;
|
||||
unsigned char vdumode;
|
||||
unsigned int romsize;
|
||||
unsigned int ramsize;
|
||||
unsigned char clrramdk;
|
||||
unsigned char dskyenable;
|
||||
unsigned char uartenable;
|
||||
unsigned char vduenable;
|
||||
unsigned char fdenable;
|
||||
unsigned char fdtrace;
|
||||
unsigned char fdmedia;
|
||||
unsigned char fdmediaalt;
|
||||
unsigned char fdmauto;
|
||||
unsigned char ideenable;
|
||||
unsigned char idetrace;
|
||||
unsigned char ide8bit;
|
||||
unsigned int idecapacity;
|
||||
unsigned char ppideenable;
|
||||
unsigned char ppidetrace;
|
||||
unsigned char ppide8bit;
|
||||
unsigned int ppidecapacity;
|
||||
unsigned char ppideslow;
|
||||
unsigned char boottype;
|
||||
unsigned char boottimeout;
|
||||
unsigned char bootdefault;
|
||||
unsigned int baudrate;
|
||||
unsigned char ckdiv;
|
||||
unsigned char memwait;
|
||||
unsigned char iowait;
|
||||
unsigned char cntlb0;
|
||||
unsigned char cntlb1;
|
||||
unsigned char sdenable;
|
||||
unsigned char sdtrace;
|
||||
unsigned int sdcapacity;
|
||||
unsigned char sdcsio;
|
||||
unsigned char sdcsiofast;
|
||||
unsigned char defiobyte;
|
||||
unsigned char termtype;
|
||||
unsigned int revision;
|
||||
unsigned char prpsdenable;
|
||||
unsigned char prpsdtrace;
|
||||
unsigned int prpsdcapacity;
|
||||
unsigned char prpconenable;
|
||||
unsigned int biossize;
|
||||
unsigned char pppenable;
|
||||
unsigned char pppsdenable;
|
||||
unsigned char pppsdtrace;
|
||||
unsigned int pppsdcapacity;
|
||||
unsigned char pppconenable;
|
||||
unsigned char prpenable;
|
||||
} * pCNFGDATA;
|
||||
|
||||
|
||||
struct JMP_TAG {
|
||||
unsigned char opcode;
|
||||
unsigned int address;
|
||||
};
|
||||
|
||||
|
||||
/* pointer based System Configuration structure */
|
||||
struct SYSCFG {
|
||||
struct JMP_TAG jmp;
|
||||
void * cnfloc;
|
||||
void * tstloc;
|
||||
void * varloc;
|
||||
struct CNFGDATA cnfgdata;
|
||||
char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
|
||||
} * pSYSCFG = HIGHSEG;
|
||||
|
||||
struct SYSCFG * pSYSCFG = HIGHSEG;
|
||||
|
||||
#define TTY 0
|
||||
#define ANSI 1
|
||||
|
||||
@@ -23,28 +23,6 @@
|
||||
|
||||
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
|
||||
|
||||
/*
|
||||
#include "cpmbind.h"
|
||||
#include "cbioshdr.h"
|
||||
#include "std.h"
|
||||
#include "infolist.h"
|
||||
#include "dphdpb.h"
|
||||
#include "dphmap.h"
|
||||
#include "metadata.h"
|
||||
#include "setlunum.h"
|
||||
#include "applvers.h"
|
||||
#include "cpmbdos.h"
|
||||
#include "ctermcap.h"
|
||||
#include "diagnose.h"
|
||||
*/
|
||||
|
||||
|
||||
#define BDOS 5 /* memory address of BDOS invocation */
|
||||
#define HIGHSEG 0x0C000 /* memory address of system config */
|
||||
|
||||
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
|
||||
|
||||
|
||||
/* Drive List Geometry */
|
||||
#define COL1 0
|
||||
#define COL2 (80/4)
|
||||
@@ -67,39 +45,31 @@
|
||||
|
||||
struct SYSCFG * pSYSCFG = HIGHSEG;
|
||||
|
||||
|
||||
/*
|
||||
struct DPH * pDPH;
|
||||
struct DPB * pDPB;
|
||||
*/
|
||||
|
||||
/* int drive; */
|
||||
|
||||
dispdpb(line,column,pDPB)
|
||||
int line;
|
||||
int column;
|
||||
struct DPB * pDPB;
|
||||
{
|
||||
crtlc(line+0,column);
|
||||
printf("[%04x] spt =%04x",&pDPB->spt,pDPB->spt);
|
||||
printf("[%x] spt =%x",&pDPB->spt,pDPB->spt);
|
||||
crtlc(line+1,column);
|
||||
printf("[%04x] bsh =%02x",&pDPB->bsh,pDPB->bsh);
|
||||
printf("[%x] bsh =%x",&pDPB->bsh,pDPB->bsh);
|
||||
crtlc(line+2,column);
|
||||
printf("[%04x] blm =%02x",&pDPB->blm,pDPB->blm);
|
||||
printf("[%x] blm =%x",&pDPB->blm,pDPB->blm);
|
||||
crtlc(line+3,column);
|
||||
printf("[%04x] exm =%02x",&pDPB->exm,pDPB->exm);
|
||||
printf("[%x] exm =%x",&pDPB->exm,pDPB->exm);
|
||||
crtlc(line+4,column);
|
||||
printf("[%04x] dsm =%04x",&pDPB->dsm,pDPB->dsm);
|
||||
printf("[%x] dsm =%x",&pDPB->dsm,pDPB->dsm);
|
||||
crtlc(line+5,column);
|
||||
printf("[%04x] drm =%04x",&pDPB->drm,pDPB->drm);
|
||||
printf("[%x] drm =%x",&pDPB->drm,pDPB->drm);
|
||||
crtlc(line+6,column);
|
||||
printf("[%04x] al0 =%02x",&pDPB->al0,pDPB->al0);
|
||||
printf("[%x] al0 =%x",&pDPB->al0,pDPB->al0);
|
||||
crtlc(line+7,column);
|
||||
printf("[%04x] al1 =%02x",&pDPB->al1,pDPB->al1);
|
||||
printf("[%x] al1 =%x",&pDPB->al1,pDPB->al1);
|
||||
crtlc(line+8,column);
|
||||
printf("[%04x] cks =%04x",&pDPB->cks,pDPB->cks);
|
||||
printf("[%x] cks =%x",&pDPB->cks,pDPB->cks);
|
||||
crtlc(line+9,column);
|
||||
printf("[%04x] off =%04x",&pDPB->off,pDPB->off);
|
||||
printf("[%x] off =%x",&pDPB->off,pDPB->off);
|
||||
}
|
||||
|
||||
struct DPB * dispdph(drive,line,column)
|
||||
@@ -149,31 +119,31 @@ struct DPB * dispdph(drive,line,column)
|
||||
}
|
||||
|
||||
|
||||
crtlc(line+0,column); printf("[%04x] xlt =%04x",
|
||||
crtlc(line+0,column); printf("[%x] xlt =%x",
|
||||
&pDPH->xlt,pDPH->xlt);
|
||||
crtlc(line+1,column); printf("[%04x] rv1 =%04x",
|
||||
crtlc(line+1,column); printf("[%x] rv1 =%x",
|
||||
&pDPH->rv1,pDPH->rv1);
|
||||
crtlc(line+2,column); printf("[%04x] rv2 =%04x",
|
||||
crtlc(line+2,column); printf("[%x] rv2 =%x",
|
||||
&pDPH->rv2,pDPH->rv2);
|
||||
crtlc(line+3,column); printf("[%04x] rv3 =%04x",
|
||||
crtlc(line+3,column); printf("[%x] rv3 =%x",
|
||||
&pDPH->rv3,pDPH->rv3);
|
||||
crtlc(line+4,column); printf("[%04x] dbf =%04x",
|
||||
crtlc(line+4,column); printf("[%x] dbf =%x",
|
||||
&pDPH->dbf,pDPH->dbf);
|
||||
crtlc(line+5,column); printf("[%04x] dpb =%04x",
|
||||
crtlc(line+5,column); printf("[%x] dpb =%x",
|
||||
&pDPH->dpb,pDPH->dpb);
|
||||
crtlc(line+6,column); printf("[%04x] csv =%04x",
|
||||
crtlc(line+6,column); printf("[%x] csv =%x",
|
||||
&pDPH->csv,pDPH->csv);
|
||||
crtlc(line+7,column); printf("[%04x] alv =%04x",
|
||||
crtlc(line+7,column); printf("[%x] alv =%x",
|
||||
&pDPH->alv,pDPH->alv);
|
||||
if( ('L' == pDPH->sigl) && ('U' == pDPH->sigu) ) {
|
||||
crtlc(line+8,column);
|
||||
printf("[%04x] sigl=%02x",&pDPH->sigl,pDPH->sigl);
|
||||
printf("[%x] sigl=%x",&pDPH->sigl,pDPH->sigl);
|
||||
crtlc(line+9,column);
|
||||
printf("[%04x] sigu=%02x",&pDPH->sigu,pDPH->sigu);
|
||||
printf("[%x] sigu=%x",&pDPH->sigu,pDPH->sigu);
|
||||
crtlc(line+10,column);
|
||||
printf("[%04x] curr=%04x",&pDPH->current,pDPH->current);
|
||||
printf("[%x] curr=%x",&pDPH->current,pDPH->current);
|
||||
crtlc(line+11,column);
|
||||
printf("[%04x] numb=%04x",&pDPH->number,pDPH->number);
|
||||
printf("[%x] numb=%x",&pDPH->number,pDPH->number);
|
||||
}
|
||||
|
||||
if(DSM720 == pDPB->dsm) {
|
||||
|
||||
Reference in New Issue
Block a user