Browse Source

Merge trunk -> s100

import/raw
wayne 13 years ago
parent
commit
ab1cb9b7f6
  1. 68
      branches/s100/Apps/crossdev/2DRIVE.C
  2. 322
      branches/s100/Apps/crossdev/2MAP.C
  3. 106
      branches/s100/Apps/crossdev/ACCESS.ASM
  4. 18
      branches/s100/Apps/crossdev/ACCESS.BAT
  5. BIN
      branches/s100/Apps/crossdev/ACCESS.CPM
  6. BIN
      branches/s100/Apps/crossdev/ACCESS.REL
  7. 7
      branches/s100/Apps/crossdev/ACCESS.SUB
  8. 8
      branches/s100/Apps/crossdev/ACCESS.SYM
  9. BIN
      branches/s100/Apps/crossdev/ANSI.H
  10. 18
      branches/s100/Apps/crossdev/APPLVERS.H
  11. 34
      branches/s100/Apps/crossdev/APPLVERS.LIB
  12. BIN
      branches/s100/Apps/crossdev/AS.COM
  13. 13
      branches/s100/Apps/crossdev/ASCII.H
  14. BIN
      branches/s100/Apps/crossdev/ASMIFACE.O
  15. BIN
      branches/s100/Apps/crossdev/ASMIFACE.REL
  16. 18
      branches/s100/Apps/crossdev/AUTOEXEC.Z80
  17. 656
      branches/s100/Apps/crossdev/BANKER.ASM
  18. 153
      branches/s100/Apps/crossdev/BANKER.C
  19. 156
      branches/s100/Apps/crossdev/BANNER.ASM
  20. 18
      branches/s100/Apps/crossdev/BANNER.LIB
  21. BIN
      branches/s100/Apps/crossdev/BANNER.REL
  22. 29
      branches/s100/Apps/crossdev/BANNER.SYM
  23. BIN
      branches/s100/Apps/crossdev/BDOSCALL.O
  24. BIN
      branches/s100/Apps/crossdev/BDOSCALL.REL
  25. BIN
      branches/s100/Apps/crossdev/BIOSCALL.O
  26. BIN
      branches/s100/Apps/crossdev/BIOSCALL.REL
  27. 385
      branches/s100/Apps/crossdev/BIOSHDR.LIB
  28. 208
      branches/s100/Apps/crossdev/CBANNER.ASM
  29. BIN
      branches/s100/Apps/crossdev/CBANNER.O
  30. BIN
      branches/s100/Apps/crossdev/CC.COM
  31. 333
      branches/s100/Apps/crossdev/CC.TMP
  32. 970
      branches/s100/Apps/crossdev/CHARS.ASM
  33. 23
      branches/s100/Apps/crossdev/CHARS.C
  34. 18
      branches/s100/Apps/crossdev/CHARS.SUB
  35. 12
      branches/s100/Apps/crossdev/CHECK.SUB
  36. 27
      branches/s100/Apps/crossdev/CLEAN.SUB
  37. 44
      branches/s100/Apps/crossdev/CLEAR.ASM
  38. 48
      branches/s100/Apps/crossdev/CLEAR.C
  39. 10
      branches/s100/Apps/crossdev/CLEAR.SUB
  40. 159
      branches/s100/Apps/crossdev/CLOGICAL.ASM
  41. 6
      branches/s100/Apps/crossdev/CLOGICAL.H
  42. BIN
      branches/s100/Apps/crossdev/CLOGICAL.O
  43. 127
      branches/s100/Apps/crossdev/CLS.C
  44. 283
      branches/s100/Apps/crossdev/CMEMORY.ASM
  45. BIN
      branches/s100/Apps/crossdev/CMEMORY.O
  46. 527
      branches/s100/Apps/crossdev/CNAMEPT1.ASM
  47. BIN
      branches/s100/Apps/crossdev/CNAMEPT1.O
  48. 480
      branches/s100/Apps/crossdev/CNAMEPT2.ASM
  49. BIN
      branches/s100/Apps/crossdev/CNAMEPT2.O
  50. 794
      branches/s100/Apps/crossdev/CNAMEPT3.ASM
  51. BIN
      branches/s100/Apps/crossdev/CNAMEPT3.O
  52. 742
      branches/s100/Apps/crossdev/CNAMEPT4.ASM
  53. BIN
      branches/s100/Apps/crossdev/CNAMEPT4.O
  54. 210
      branches/s100/Apps/crossdev/CNFGDATA.LIB
  55. 80
      branches/s100/Apps/crossdev/CONVERT.C
  56. 28
      branches/s100/Apps/crossdev/COREAPPS.BAK
  57. 38
      branches/s100/Apps/crossdev/COREAPPS.BAT
  58. 71
      branches/s100/Apps/crossdev/COREAPPS.SUB
  59. 5
      branches/s100/Apps/crossdev/CPM80.H
  60. 82
      branches/s100/Apps/crossdev/CPMAPPL.LIB
  61. 3
      branches/s100/Apps/crossdev/CPMBDOS.H
  62. 174
      branches/s100/Apps/crossdev/CPMBDOS.LIB
  63. 4
      branches/s100/Apps/crossdev/CPMBIND.H
  64. 137
      branches/s100/Apps/crossdev/CPMBIOS.LIB
  65. 164
      branches/s100/Apps/crossdev/CPMNAME.ASM
  66. 57
      branches/s100/Apps/crossdev/CPMNAME.BAT
  67. 37
      branches/s100/Apps/crossdev/CPMNAME.C
  68. BIN
      branches/s100/Apps/crossdev/CPMNAME.CPM
  69. BIN
      branches/s100/Apps/crossdev/CPMNAME.O
  70. 20
      branches/s100/Apps/crossdev/CPMNAME.SUB
  71. 334
      branches/s100/Apps/crossdev/CTERMCAP.ASM
  72. 47
      branches/s100/Apps/crossdev/CTERMCAP.C
  73. 8
      branches/s100/Apps/crossdev/CTERMCAP.H
  74. BIN
      branches/s100/Apps/crossdev/CTERMCAP.O
  75. 42
      branches/s100/Apps/crossdev/CVT2H.C
  76. 41
      branches/s100/Apps/crossdev/CVT2H.H
  77. 45
      branches/s100/Apps/crossdev/CVT2INC.H
  78. 4
      branches/s100/Apps/crossdev/DIAGNOSE.ASM
  79. BIN
      branches/s100/Apps/crossdev/DIAGNOSE.O
  80. BIN
      branches/s100/Apps/crossdev/DIAGNOSE.REL
  81. 229
      branches/s100/Apps/crossdev/DISKCOPY.C
  82. 12
      branches/s100/Apps/crossdev/DOIT.C
  83. 36
      branches/s100/Apps/crossdev/DPHDPB.H
  84. 8
      branches/s100/Apps/crossdev/DPHMAP.H
  85. 1494
      branches/s100/Apps/crossdev/DUMP.ASM
  86. 101
      branches/s100/Apps/crossdev/DUMP.C
  87. 1542
      branches/s100/Apps/crossdev/DUMPCOM.H
  88. 108
      branches/s100/Apps/crossdev/DUMPMAC.ASM
  89. 367
      branches/s100/Apps/crossdev/EDITOR.ASM
  90. 103
      branches/s100/Apps/crossdev/EDITOR.C
  91. 6
      branches/s100/Apps/crossdev/EDITOR.SUB
  92. 1
      branches/s100/Apps/crossdev/EXTRACT.SUB
  93. 4
      branches/s100/Apps/crossdev/FAST.SUB
  94. 8
      branches/s100/Apps/crossdev/FCNTL.H
  95. 12
      branches/s100/Apps/crossdev/FFGETLU.LIB
  96. 25
      branches/s100/Apps/crossdev/FFHASLU.LIB
  97. 13
      branches/s100/Apps/crossdev/FFNUMLU.LIB
  98. 22
      branches/s100/Apps/crossdev/FFSETLU.LIB
  99. 1088
      branches/s100/Apps/crossdev/FINDFILE.ASM
  100. 12
      branches/s100/Apps/crossdev/FINDFILE.BAK

68
branches/s100/Apps/crossdev/2DRIVE.C

@ -0,0 +1,68 @@
/* twodrive.c 7/11/2012 dwg - */
/* This program is experimental and is not for release because
it contains techniques which are not recommended because
there are better API functions to do these operations. */
#include "cpmbios.h"
#include "bioscall.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#define u8 unsigned char
#define u16 unsigned int
struct DPH * pDPH_C;
struct DPB * pDPB_C;
u8 * pDU_C;
u16 * pCUR_C;
u16 * pNUM_C;
struct DPH * pDPH_D;
struct DPB * pDPB_D;
u8 * pDU_D;
u16 * pCUR_D;
u16 * pNUM_D;
main(argc,argv)
int argc;
char *argv[];
{
ireghl = pSELDSK;
iregbc = DRIVEC;
iregde = 0;
bioscall();
pDPH_C = ireghl;
pDPB_C = pDPH_C->dpb;
pDU_C = ireghl -1;
*pDU_C = 0X41;
printf("Current C: DevUnit is %02x\n",*pDU_C);
pCUR_C = ireghl + 18;
*pCUR_C = 0;
printf("Current C: Logical Unit is %d\n",* pCUR_C);
pNUM_C = ireghl + 20;
*pNUM_C = 64/9;
printf("Current C: Number of LU's is %d\n",* pNUM_C);
ireghl = pSELDSK;
iregbc = DRIVED;
iregde = 0;
bioscall();
pDPH_D = ireghl;
pDPB_D = pDPH_D->dpb;
pDU_D = ireghl -1;
*pDU_D = 0x41;
printf("Current D: DevUnit is %02x\n",*pDU_D);
pCUR_D = ireghl + 18;
*pCUR_D = 1;
printf("Current D: Logical Unit is %d\n",* pCUR_D);
pNUM_D = ireghl + 20;
*pNUM_D = 64/9;
printf("Current D: Number of LU's is %d\n",* pNUM_D);
}


322
branches/s100/Apps/crossdev/2MAP.C

@ -0,0 +1,322 @@
/* map.c 6/7/2012 dwg - */
#include "portab.h"
#include "globals.h"
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#include "cpmbind.h"
#include "infolist.h"
#include "dphdpb.h"
#include "dphmap.h"
#include "metadata.h"
#include "clogical.h"
#include "applvers.h"
#define MAXDRIVE 8
/* Drive List Geometry */
#define COL1 0
#define COL2 (80/4)
#define COL3 (80/2)
#define COL4 (COL2+COL3)
#define LINE 3
/* Logical Unit List Geometry */
#define LGUT 5
#define COL1A 0
#define COL2A (80/3)
#define COL3A (2*COL2A)
/* Nomenclature Geometry */
#define LINE2 8
/* Misc Info Geometry */
#define CDLINE 6
/* BDOS Function number */
#define RETCURR 25
/* function defined in bdoscall.asm */
extern lurst();
struct BIOS * pBIOS;
struct DPH * pDPH;
int devunit;
int dev;
int unit;
int currlu;
int numlu;
int drivenum;
int drive;
int deflu;
char szTemp[128];
int readsec(drive,track,sector,buffer)
int drive;
int track;
int sector;
unsigned int buffer;
{
ireghl = pSELDSK;
iregbc = drive;
iregde = 0;
bioscall();
ireghl = pSETTRK;
iregbc = track;
bioscall();
ireghl = pSETSEC;
iregbc = sector;
bioscall();
ireghl = pSETDMA;
iregbc = buffer;
bioscall();
ireghl = pREAD;
bioscall();
return irega;
}
int haslu(dr)
int dr;
{
if(0 < lugnum(dr)) {
return TRUE;
} else {
return FALSE;
}
}
void dispdph(l,c,drive,ptr)
int l;
int c;
char drive;
struct DPH *ptr;
{
/*
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
unsigned int dpb;
unsigned int csv;
unsigned int alv;
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
*/
crtlc(l,c);
printf("%c: ",drive);
devunit = lugdu(drive-'A');
dev = devunit & 0xf0;
unit = devunit & 0x0f;
currlu = lugcur(drive-'A');
switch(dev) {
case DEV_MD:
if(0 == unit) printf("ROM");
if(1 == unit) printf("RAM");
break;
case DEV_FD:
printf("FD%d",unit);
break;
case DEV_IDE:
printf("IDE%d",unit);
break;
case DEV_ATAPI:
printf("ATAPI%d",unit);
break;
case DEV_PPIDE:
printf("PPIDE%d",unit);
break;
case DEV_SD:
printf("SD%d",unit);
break;
case DEV_PRPSD:
printf("PRPSD%d",unit);
break;
default:
printf("UNK");
break;
};
if('L' == (unsigned char)ptr->sigl) {
if('U' == (unsigned char)ptr->sigu) {
/* printf("-LU%d",(int)ptr->current); */
printf("-LU%d",currlu);
}
}
/* printf("dpb=0x%04x, ",(unsigned int)ptr->dpb);
printf("sigl=0x%02x, ",(unsigned char)ptr->sigl);
printf("sigu=0x%02x, ",(unsigned char)ptr->sigu);
printf("curr=0x%04x, ",(unsigned int)ptr->current);
printf("numb=0x%04x", (unsigned int)ptr->number);
*/
}
int main(argc,argv)
int argc;
char *argv[];
{
int i;
int mylu;
int drivenum;
int column;
int line;
char szDrive[32];
char szLuNum[32];
if(argc == 3) {
strcpy(szDrive,argv[1]);
strcpy(szLuNum,argv[2]);
mylu = atoi(szLuNum);
if(strlen(szDrive) == 2) {
if(':' == szDrive[1]) {
switch(szDrive[0]) {
case 'a':
case 'A':
luscur(0,mylu);
break;
case 'b':
case 'B':
luscur(1,mylu);
break;
case 'c':
case 'C':
luscur(2,mylu);
break;
case 'd':
case 'D':
luscur(3,mylu);
break;
case 'e':
case 'E':
luscur(4,mylu);
break;
case 'f':
case 'F':
luscur(5,mylu);
break;
case 'g':
case 'G':
luscur(6,mylu);
break;
case 'h':
case 'H':
luscur(7,mylu);
break;
default:
break;
}
}
}
exit(1);
}
pBIOS = BIOSAD;
crtinit();
crtclr();
crtlc(0,0);
printf("MAP.COM %d/%d/%d v%d.%d.%d.%d",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - System Storage Drives and Logical Units");
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
crtlc(CDLINE,COL3A+LGUT);
printf("infolist.version %d\n",pINFOLIST->version);
pDPHMAP = (struct DPHMAPA *)pINFOLIST->dphmap;
dispdph(LINE, COL1+LGUT-1,'A',(struct DPH *)pDPHMAP->drivea);
dispdph(LINE+1,COL1+LGUT-1,'B',(struct DPH *)pDPHMAP->driveb);
dispdph(LINE, COL2+LGUT-1,'C',(struct DPH *)pDPHMAP->drivec);
dispdph(LINE+1,COL2+LGUT-1,'D',(struct DPH *)pDPHMAP->drived);
dispdph(LINE, COL3+LGUT-1,'E',(struct DPH *)pDPHMAP->drivee);
dispdph(LINE+1,COL3+LGUT-1,'F',(struct DPH *)pDPHMAP->drivef);
dispdph(LINE, COL4+LGUT-1,'G',(struct DPH *)pDPHMAP->driveg);
dispdph(LINE+1,COL4+LGUT-1,'H',(struct DPH *)pDPHMAP->driveh);
dregbc = RETCURR;
bdoscall();
drive = drega;
crtlc(CDLINE,5);
printf("Current drive is %c:",'A'+drive);
devunit = lugdu(drive);
dev = devunit & 0xf0;
unit = devunit & 0x0f;
currlu = lugcur(drive);
deflu = currlu;
numlu = lugnum(drive);
crtlc(CDLINE,COL2A+LGUT);
printf("Number of LUs is %d\n",lugnum(drive));
if(0<numlu) {
crtlc(LINE2,COL1A+LGUT);
printf("LU -----Label------");
crtlc(LINE2,COL2A+LGUT);
printf("LU -----Label------");
crtlc(LINE2,COL3A+LGUT);
printf("LU -----Label------");
line = LINE2+1;
column = 0;
for(i=0;i<numlu;i++) {
luscur(drive,i);
readsec(drive,0,11,&metadata);
metadata.term = 0;
switch(column++) {
case 0:
crtlc(line,COL1A+LGUT);
printf("%2d %s",i,metadata.label);
break;
case 1:
crtlc(line,COL2A+LGUT);
printf("%2d %s",i,metadata.label);
break;
case 2:
crtlc(line,COL3A+LGUT);
printf("%2d %s",i,metadata.label);
column = 0;
line++;
break;
}
}
luscur(drive,deflu);
}
}
/****************/
/* eof - cmap.c */
/****************/

106
branches/s100/Apps/crossdev/ACCESS.ASM

@ -0,0 +1,106 @@
; access.asm 7/19/2012 dwg - for 2.0.0.0 B22
; access.com 2/17/2012 dwg - review for release 1.5.1.0
; access.asm 2/11/2012 dwg - make ident compliant
; access.com 2/07/2012 dwg - review for release 1.5
; access.com 2/05/2012 dwg - adjust for new macros
; access.asm 1/30/2012 dwg - use new do$start and do$end macros
; access.asm 1/28/2012 dwg - assure file exists from within submit file
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
;----------------------------------------------------------------------
maclib portab
maclib globals
maclib cpmbdos
maclib printers
maclib banner
maclib applvers
maclib z80
maclib memory
maclib version
maclib cpmappl
maclib banner
;-----------------------
do$start
jmp around$bandata
argv dw prog,dat,prod,orig,ser,myname,0
prog db 'ACCESS.COM $'
date
serial
product
originator
oriname
uuid db '08D4953E-B6F4-4673-990C-7E17A0A299BD$'
around$bandata:
sbanner argv
lda 80h ; pick up the command tail length provided by CCP
cpi 0 ; were there any parameters given?
jnz no$usage ; If not, go around
printf 'usage - access <filename>'
jmp do$exit
no$usage:
memcpy work$fcb,PRIFCB,32 ; Save initial default FCB from CCP
printf 'Checking: '
mvi a,'$' ; place a terminating dollar sign
sta PRIFCB+9 ; at the end of the filname field
print PRIFCB+1 ; and print the filename portion
conout '.' ; print the seperating dot
memcpy PRIFCB,work$fcb,16 ; get a fresh copy of the initial FCB
mvi a,'$' ; place a terminating dollar sign
sta PRIFCB+12 ; at the end of the filetype field
print PRIFCB+9 ; and print the filetype
print crlf ; followed by a CR and LF
memcpy PRIFCB,work$fcb,32 ; restore the initial FCB
mvi c,FOPEN ; Try to open the given filename
lxi d,PRIFCB ; using the primary default FCB
call BDOS ; with a BDOS call
cpi 255 ; Test for Open Failure (255)
jnz done ; jump if file existed
mvi c,FDELETE ; Delete the A:$$$.SUB file
lxi d,del$fcb ; using an alternative FCB
call BDOS
printf 'Submit file terminated due to missing file$'
jmp do$exit ; Go to the one true exit point
done:
printf 'File found, Submit may proceed'
do$exit:
do$end
newfcb del$fcb,1,'$$$ SUB'
work$fcb ds 36 ; A place to save a copy of the default FCB on entry
crlf db CR,LF ; a dollar sign terminated CR and LF
term db '$' ; a general purpose terminating character
end start
; eof - access.asm


18
branches/s100/Apps/crossdev/ACCESS.BAT

@ -0,0 +1,18 @@
rem access.sub 9/5/2012 dwg - build access from sources
if not exist access.rel erase access.cpm
if not exist access.rel z80mu rmac access
if not exist printers.rel erase access.cpm
if not exist printers.rel z80mu rmac printers
if not exist memory.rel erase access.cpm
if not exist memory.rel z80mu rmac memory
if not exist banner.rel erase access.cpm
if not exist banner.rel z80mu rmac banner
if not exist access.cpm z80mu link access,memory,banner,printers
if not exist access.cpm rename access.com access.cpm
dir access.cpm

BIN
branches/s100/Apps/crossdev/ACCESS.CPM

Binary file not shown.

BIN
branches/s100/Apps/crossdev/ACCESS.REL

Binary file not shown.

7
branches/s100/Apps/crossdev/ACCESS.SUB

@ -0,0 +1,7 @@
e:rem access.sub 9/5/2012 dwg - build access from sources
rasm80 access
rasm80 printers
rasm80 memory
rasm80 banner
link80 access,memory,banner,printers


8
branches/s100/Apps/crossdev/ACCESS.SYM

@ -0,0 +1,8 @@
0103 HEXREF 0113 IDSIG 0115 IDRMJ 0116 IDRMN
0117 IDRUP 0118 IDRTP 0119 IDMON 011A IDDAY
011B IDYR 0120 PRESTK 0122 BEGIN 09C1 PRDWOR
0999 PRHBYT 09AE PRHWOR 0554 XBANNE 07FF XSBANN
0546 XMEMCP 0547 XMEMSE 0983 PRHNYB 09CD PDEC
09EF PDEC1 09F1 PDEC2 0A0D PDEC3 0A24 PDEC4
0A25 PDEC5


BIN
branches/s100/Apps/crossdev/ANSI.H

Binary file not shown.

18
branches/s100/Apps/crossdev/APPLVERS.H

@ -1,20 +1,20 @@
/****************************/
/* applvers.h dwg - 2.0.0.0 */
/****************************/
/************************************/
/* applvers.h dwg - 2.2.0.3 Beta */
/************************************/
#define A_RMJ 2
#define A_RMN 0
#define A_RMN 3
#define A_RUP 0
#define A_RTP 0
#define A_MONTH 6
#define A_DAY 10
#define A_YEAR 2012
#define A_YR 12
#define A_MONTH 1
#define A_DAY 16
#define A_YEAR 2013
#define A_YR 13
/********************/
/* eof - applvers.h */
/********************/



34
branches/s100/Apps/crossdev/APPLVERS.LIB

@ -0,0 +1,34 @@
; applvers.lib 2/29/2012 dwg - For RomWBW 2.1.1 Release
A$RMJ equ 2
A$RMN equ 2
A$RUP equ 0
A$RTP equ 0
A$MONTH equ 2
A$DAY equ 15
A$YEAR equ 2013
date macro
dat db ' 2/15/2013$'
endm
serial macro
ser db '654321$'
endm
product macro
prod db 'CPM80$'
endm
originator macro
orig db 'DWG$'
endm
oriname macro
myname db ' Douglas W Goodall $'
endm
; eof - applvers.lib

BIN
branches/s100/Apps/crossdev/AS.COM

Binary file not shown.

13
branches/s100/Apps/crossdev/ASCII.H

@ -0,0 +1,13 @@
/* ascii.h 11/25/2012 dwg - */
#define ASCII_BS 8
#define ASCII_TAB 9
#define ASCII_LF 10
#define ASCII_VT 11
#define ASCII_FF 12
#define ASCII_CR 13
#define ASCII_ESC 27
/* eof - ascii.h */


BIN
branches/s100/Apps/crossdev/ASMIFACE.O

Binary file not shown.

BIN
branches/s100/Apps/crossdev/ASMIFACE.REL

Binary file not shown.

18
branches/s100/Apps/crossdev/AUTOEXEC.Z80

@ -0,0 +1,18 @@
;
; This is a sample AUTOEXEC.Z80 file. Tailor it to your own preferences,
; or delete it entirely.
;
set_bdos min
set_cpmecho off
set_cpmlist lpt1
set_cpmpun com1
set_cpmrdr com1
set_cpu z80
set_fake on
set_illop fault
set_iobase 400
set_mask on
set_source z80
set_term h19
set_vars on
coldboot

656
branches/s100/Apps/crossdev/BANKER.ASM

@ -0,0 +1,656 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global pINFOLIS_,2
global metadata_,128
global pSYSCFG_,2
global pCBIOS_,2
PUBLIC main_
main_: lxi d,.2
call csave
LXI H,0
XCHG
LXI H,-132-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,-6596
SHLD ireghl_
CALL bioscall_
LHLD ireghl_
SHLD pINFOLIS_
LHLD pINFOLIS_
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
POP D
POP D
LXI H,-6656
SHLD pCBIOS_
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
LXI H,-16384
SHLD pSYSCFG_
LHLD pSYSCFG_
LXI D,68
DAD D
MOV E,M
MVI D,0
PUSH D
CALL crtinit_
POP D
CALL crtclr_
LXI H,0
PUSH H
LXI H,0
PUSH H
CALL crtlc_
POP D
POP D
LXI H,0
PUSH H
LXI H,1
PUSH H
LXI H,1
PUSH H
LXI H,2
PUSH H
LXI H,2012
PUSH H
LXI H,29
PUSH H
LXI H,8
PUSH H
LXI H,.1+31
PUSH H
CALL printf_
XCHG
LXI H,16
DAD SP
SPHL
LXI H,.1+64
PUSH H
CALL printf_
POP D
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
LXI H,-16384
SHLD pSYSCFG_
LXI H,0
PUSH H
LXI H,2
PUSH H
CALL crtlc_
POP D
POP D
LXI H,0
PUSH H
LXI H,3
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.1+107
PUSH H
CALL printf_
POP D
LXI H,0
PUSH H
LXI H,4
PUSH H
CALL crtlc_
POP D
POP D
LHLD pSYSCFG_
LXI D,9
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+117
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,5
PUSH H
CALL crtlc_
POP D
POP D
LHLD pSYSCFG_
LXI D,10
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+126
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,6
PUSH H
CALL crtlc_
POP D
POP D
LHLD pSYSCFG_
LXI D,11
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+135
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,7
PUSH H
CALL crtlc_
POP D
POP D
LHLD pSYSCFG_
LXI D,12
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+144
PUSH H
CALL printf_
POP D
POP D
LXI H,0
PUSH H
LXI H,9
PUSH H
CALL crtlc_
POP D
POP D
LHLD pSYSCFG_
LXI D,7
DAD D
MOV E,M
INX H
MOV D,M
LXI H,2-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,-16384
DAD D
SHLD dregde_
LXI H,9
SHLD dregbc_
CALL bdoscall_
LXI H,0
PUSH H
LXI H,10
PUSH H
CALL crtlc_
POP D
POP D
LHLD pSYSCFG_
LXI D,5
DAD D
MOV E,M
INX H
MOV D,M
LXI H,-16384
DAD D
XCHG
LXI H,0-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,128
PUSH H
LXI H,0
PUSH H
LXI H,-124-.2
DAD SP
PUSH H
CALL memset_
POP D
POP D
POP D
LXI H,11
PUSH H
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-124-.2
DAD SP
PUSH H
CALL memcpy_
POP D
POP D
POP D
LXI H,-128-.2
DAD SP
PUSH H
LXI H,.1+153
PUSH H
CALL printf_
POP D
POP D
LXI H,26
PUSH H
LXI H,3
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.1+156
PUSH H
CALL printf_
POP D
LXI H,26
PUSH H
LXI H,4
PUSH H
CALL crtlc_
POP D
POP D
LHLD pCBIOS_
LXI D,75
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+166
PUSH H
CALL printf_
POP D
POP D
LXI H,26
PUSH H
LXI H,5
PUSH H
CALL crtlc_
POP D
POP D
LHLD pCBIOS_
LXI D,76
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+175
PUSH H
CALL printf_
POP D
POP D
LXI H,26
PUSH H
LXI H,6
PUSH H
CALL crtlc_
POP D
POP D
LHLD pCBIOS_
LXI D,77
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+184
PUSH H
CALL printf_
POP D
POP D
LXI H,26
PUSH H
LXI H,7
PUSH H
CALL crtlc_
POP D
POP D
LHLD pCBIOS_
LXI D,78
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,.1+193
PUSH H
CALL printf_
POP D
POP D
LXI H,26
PUSH H
LXI H,9
PUSH H
CALL crtlc_
POP D
POP D
LHLD pINFOLIS_
LXI D,4
DAD D
MOV E,M
INX H
MOV D,M
LXI H,2-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,128
PUSH H
LXI H,0
PUSH H
LXI H,-124-.2
DAD SP
PUSH H
CALL memset_
POP D
POP D
POP D
LXI H,127
PUSH H
LXI H,4-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-124-.2
DAD SP
PUSH H
CALL memcpy_
POP D
POP D
POP D
LXI H,0
XCHG
LXI H,-130-.2
DAD SP
MOV M,E
INX H
MOV M,D
JMP .4
.3:
LXI H,-130-.2
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.4:
LXI H,-130-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,128
CALL .ul
JZ .5
LXI H,-130-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,-128-.2
DAD SP
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,45
POP D
CALL .eq
JZ .6
LXI H,-132-.2
DAD SP
mov a,m
inx h
ora m
JZ .7
LXI H,0
PUSH H
LXI H,-128-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,-126-.2
DAD SP
DAD D
POP D
MOV M,E
JMP .8
.7:
LXI H,1
XCHG
LXI H,-132-.2
DAD SP
MOV M,E
INX H
MOV M,D
.8:
.6:
JMP .3
.5:
LXI H,-128-.2
DAD SP
PUSH H
LXI H,.1+202
PUSH H
CALL printf_
POP D
POP D
LXI H,26
PUSH H
LXI H,10
PUSH H
CALL crtlc_
POP D
POP D
LHLD pINFOLIS_
LXI D,6
DAD D
MOV E,M
INX H
MOV D,M
LXI H,0-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,128
PUSH H
LXI H,0
PUSH H
LXI H,-124-.2
DAD SP
PUSH H
CALL memset_
POP D
POP D
POP D
LXI H,11
PUSH H
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-124-.2
DAD SP
PUSH H
CALL memcpy_
POP D
POP D
POP D
LXI H,-128-.2
DAD SP
PUSH H
LXI H,.1+205
PUSH H
CALL printf_
POP D
POP D
LXI H,52
PUSH H
LXI H,3
PUSH H
CALL crtlc_
POP D
POP D
LXI H,.1+208
PUSH H
CALL printf_
POP D
LXI H,52
PUSH H
LXI H,4
PUSH H
CALL crtlc_
POP D
POP D
LXI H,2
PUSH H
LXI H,.1+219
PUSH H
CALL printf_
POP D
POP D
LXI H,52
PUSH H
LXI H,5
PUSH H
CALL crtlc_
POP D
POP D
LXI H,1
PUSH H
LXI H,.1+228
PUSH H
CALL printf_
POP D
POP D
LXI H,52
PUSH H
LXI H,6
PUSH H
CALL crtlc_
POP D
POP D
LXI H,1
PUSH H
LXI H,.1+237
PUSH H
CALL printf_
POP D
POP D
LXI H,52
PUSH H
LXI H,7
PUSH H
CALL crtlc_
POP D
POP D
LXI H,0
PUSH H
LXI H,.1+246
PUSH H
CALL printf_
POP D
POP D
LXI H,52
PUSH H
LXI H,10
PUSH H
CALL crtlc_
POP D
POP D
LXI H,29
PUSH H
LXI H,8
PUSH H
LXI H,12
PUSH H
LXI H,.1+255
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,0
PUSH H
LXI H,23
PUSH H
CALL crtlc_
POP D
POP D
RET
.2 EQU -136
.1:
DB 112,111,115,116,32,71,69,84,73,78,70,79,32,105,114
DB 101,103,104,108,32,105,115,32,48,120,37,48,52,120,10
DB 0,66,65,78,75,69,82,46,67,79,77,32,37,100,47
DB 37,100,47,37,100,32,118,37,100,46,37,100,46,37,100
DB 46,37,100,0,32,100,119,103,32,45,32,68,105,115,112
DB 108,97,121,32,77,101,109,111,114,121,32,66,97,110,107
DB 32,67,104,97,114,97,99,116,101,114,105,115,116,105,99
DB 115,0,82,79,77,32,66,97,110,107,49,0,82,77,74
DB 32,61,32,37,100,0,82,77,78,32,61,32,37,100,0
DB 82,85,80,32,61,32,37,100,0,82,84,80,32,61,32
DB 37,100,0,37,115,0,67,66,73,79,83,32,72,68,82
DB 0,82,77,74,32,61,32,37,100,0,82,77,78,32,61
DB 32,37,100,0,82,85,80,32,61,32,37,100,0,82,84
DB 80,32,61,32,37,100,0,37,115,0,37,115,0,66,65
DB 78,75,69,82,46,67,79,77,0,82,77,74,32,61,32
DB 37,100,0,82,77,78,32,61,32,37,100,0,82,85,80
DB 32,61,32,37,100,0,82,84,80,32,61,32,37,100,0
DB 37,48,50,100,37,48,50,100,37,48,50,100,0
extrn crtlc_
extrn crtclr_
extrn crtinit_
extrn printf_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn bioscall_
extrn ireghl_
extrn bdoscall_
extrn dregde_
extrn dregbc_
extrn memset_
extrn memcpy_
extrn .eq
extrn .ul
END


153
branches/s100/Apps/crossdev/BANKER.C

@ -0,0 +1,153 @@
/* banker.c 6/7/2012 dwg - */
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
/* #include "cpmbind.h" */
#include "std.h"
#include "infolist.h"
#include "metadata.h"
/* #include "setlunum.h" */
#include "applvers.h"
#include "bdoscall.h"
#include "cpmbdos.h"
#include "bioscall.h"
#include "cpmbios.h"
#include "diagnose.h"
#include "cnfgdata.h"
#include "syscfg.h"
#include "applvers.h"
#define COL1 0
#define COL2 (80/3)
#define COL3 (2*COL2)
#define LINE 2
#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 */
struct SYSCFG * pSYSCFG;
struct BIOS * pCBIOS;
int main(argc,argv)
int argc;
char *argv[] ;
{
char * varloc;
char * tstloc;
char temp[128];
int i;
int bFirst;
bFirst = 0;
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
printf("post GETINFO ireghl is 0x%04x\n",pINFOLIST);
pCBIOS = 0x0e600;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
printf("BANKER.COM %d/%d/%d v%d.%d.%d.%d",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - Display Memory Bank Characteristics");
hregbc = 0x0f000;
hregde = 0x0c000;
diagnose();
pSYSCFG = 0x0C000;
crtlc(LINE+0,COL1);
crtlc(LINE+1,COL1);
printf("ROM Bank1");
crtlc(LINE+2,COL1);
printf("RMJ = %d",pSYSCFG->cnfgdata.rmj);
crtlc(LINE+3,COL1);
printf("RMN = %d",pSYSCFG->cnfgdata.rmn);
crtlc(LINE+4,COL1);
printf("RUP = %d",pSYSCFG->cnfgdata.rup);
crtlc(LINE+5,COL1);
printf("RTP = %d",pSYSCFG->cnfgdata.rtp);
crtlc(LINE+7,COL1);
varloc = pSYSCFG->varloc;
/* dregde = (unsigned int)varloc-0x200+0x0c000; */
dregde = (unsigned int)varloc+0x0c000;
dregbc = 9;
bdoscall();
crtlc(LINE+8,COL1);
/* tstloc = 0x0c000-0x0200+(unsigned int)pSYSCFG->tstloc; */
tstloc = 0x0c000+(unsigned int)pSYSCFG->tstloc;
memset(temp,0,sizeof(temp));
memcpy(temp,tstloc,11);
printf("%s",temp);
crtlc(LINE+1,COL2);
printf("CBIOS HDR");
crtlc(LINE+2,COL2);
printf("RMJ = %d",pCBIOS->rmj);
crtlc(LINE+3,COL2);
printf("RMN = %d",pCBIOS->rmn);
crtlc(LINE+4,COL2);
printf("RUP = %d",pCBIOS->rup);
crtlc(LINE+5,COL2);
printf("RTP = %d",pCBIOS->rtp);
/* */
crtlc(LINE+7,COL2);
varloc = pINFOLIST->varloc;
memset(temp,0,sizeof(temp));
memcpy(temp,varloc,sizeof(temp)-1);
for(i=0;i<sizeof(temp);i++) {
if('-' == temp[i]) {
if(0 != bFirst) {
temp[i] = 0;
} else {
bFirst = 1;
}
}
}
printf("%s",temp);
crtlc(LINE+8,COL2);
tstloc = pINFOLIST->tstloc;
memset(temp,0,sizeof(temp));
memcpy(temp,tstloc,11);
printf("%s",temp);
crtlc(LINE+1,COL3);
printf("BANKER.COM");
crtlc(LINE+2,COL3);
printf("RMJ = %d",A_RMJ);
crtlc(LINE+3,COL3);
printf("RMN = %d",A_RMN);
crtlc(LINE+4,COL3);
printf("RUP = %d",A_RUP);
crtlc(LINE+5,COL3);
printf("RTP = %d",A_RTP);
crtlc(LINE+8,COL3);
printf("%02d%02d%02d",A_YR,A_MONTH,A_DAY);
crtlc(23,0);
}
/*****************/
/* eof - cview.c */
/*****************/


156
branches/s100/Apps/crossdev/BANNER.ASM

@ -0,0 +1,156 @@
; banner.asm 9/5/2012 dwg - new version semantics - #.#.# (#)
maclib portab
maclib globals
maclib cpmbios
maclib cpmbdos
maclib bioshdr
maclib printers
maclib cpmappl
maclib applvers
cseg
; entered with argv in hl
public x$banner
x$banner:
shld argv
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
printf '----------------------------------------'
print crlf
lhld xprog ! xchg ! mvi c,9 ! call BDOS
printf ' '
IF A$MONTH LT 10
conout ' '
ENDIF
IF A$DAY LT 10
conout ' '
ENDIF
lxi h,A$MONTH
call pr$d$word
conout '/'
lxi h,A$DAY
call pr$d$word
conout '/'
lxi h,A$YEAR
call pr$d$word
printf ' '
printf 'Version '
lxi h,A$RMJ
call pr$d$word
conout '.'
lxi h,A$RMN
call pr$d$word
conout '.'
lxi h,A$RUP
call pr$d$word
printf ' ('
lxi h,A$RTP
call pr$d$word
conout ')'
print crlf
printf 'S/N '
lhld xprod ! xchg ! mvi c,9 ! call BDOS
conout '-'
lhld xorig ! xchg ! mvi c,9 ! call BDOS
conout '-'
; print xser
lhld xser ! xchg ! mvi c,9 ! call BDOS
printf ' '
; printf 'All Rights Reserved'
printf 'Licensed under GPL3'
print crlf
printf 'Copyright (C) 2011-12'
lhld xnam ! xchg ! mvi c,9 ! call BDOS
print crlf
printf '----------------------------------------'
print crlf
ret
; entered with argv in hl
public x$sbanner
x$sbanner:
shld argv
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprog ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xvers ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xprod ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xorig ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xser ! xchg
mov e,m ! inx h ! mov d,m ! inx h ! xchg ! shld xnam ! xchg
; printf '----------------------------------------'
; print crlf
lhld xprog ! xchg ! mvi c,9 ! call BDOS
printf ' '
IF A$MONTH LT 10
conout ' '
ENDIF
IF A$DAY LT 10
conout ' '
ENDIF
lxi h,A$MONTH
call pr$d$word
conout '/'
lxi h,A$DAY
call pr$d$word
conout '/'
lxi h,A$YEAR
call pr$d$word
printf ' '
printf 'Vers. '
lxi h,A$RMJ
call pr$d$word
conout '.'
lxi h,A$RMN
call pr$d$word
conout '.'
lxi h,A$RUP
call pr$d$word
printf ' ( '
lxi h,A$RTP
call pr$d$word
printf ') '
printf 'COPR Douglas Goodall Licensed w/GPLv3'
print crlf
ret
;----------------------------------------------------------------
argv ds 2
;----------------
xprog ds 2
xvers ds 2
xprod ds 2
xorig ds 2
xser ds 2
xnam ds 2
crlf db CR,LF,'$'
end
; eof - banner.asm


18
branches/s100/Apps/crossdev/BANNER.LIB

@ -0,0 +1,18 @@
; banner.lib 7/19/2012 dwg - for 2.0.0.0 B22
; banner.lib 2/17/2012 dwg - review for release 1.5.1.0
; banner.lib 2/11/2012 dwg - banner library declarations
extrn x$banner
banner macro argv
lxi h,argv
call x$banner
endm
extrn x$sbanner
sbanner macro argv
lxi h,argv
call x$sbanner
endm
; eof - banner.lib


BIN
branches/s100/Apps/crossdev/BANNER.REL

Binary file not shown.

29
branches/s100/Apps/crossdev/BANNER.SYM

@ -0,0 +1,29 @@
000F ADAY 0009 AL0OFS 000A AL1OFS 000E ALVOFS 0002 AMONTH
041E ARGV 0002 ARMJ 0002 ARMN 0000 ARTP 0000 ARUP
07DD AYEAR 0005 BDOS E600 BIBOOT E609 BICONIN E60C BICONOUT
E606 BICONST 0000 BIDRVA 0001 BIDRVB 0002 BIDRVC 0003 BIDRVD
0004 BIDRVE 0005 BIDRVF 0006 BIDRVG 0007 BIDRVH E618 BIHOME
E60F BILIST E62D BILISTST E612 BIPUNCH E627 BIREAD E615 BIREADER
E630 BISECTRN E61B BISELDSK E624 BISETDMA E621 BISETSEC E61E BISETTRK
E603 BIWBOOT E62A BIWRITE 0003 BLMOFS 0002 BSHOFS 0001 BYTESIZE
000B CKSOFS 003A COLON 000D CR 0001 CREAD 042C CRLF
0020 CROFS 000C CSVOFS 0012 CUROFS 0002 CWRITE 0010 D0OFS
0008 DBFOFS 0080 DEFBUF 000F DPBLEN 000A DPBOFS 0010 DPHLEN
0001 DRIVEB 0007 DRMOFS 0000 DROFS 000D DSKRESET 0005 DSMOFS
0001 ENGLISH 001B ESC 0004 EXMOFS 000C EXOFS 0001 F1OFS
0002 F2OFS 0003 F3OFS 0004 F4OFS 0005 F5OFS 0006 F6OFS
0007 F7OFS 0008 F8OFS 0000 FALSE 0024 FCBLEN 0010 FCLOSE
0023 FCOMPSIZE 0013 FDELETE 0016 FMAKE 000F FOPEN 0017 FRENAME
0020 LENFCB 000A LF 0010 LU1OFS 0011 LU2OFS 0010 MAXLABEL
0000 NEVER 0014 NLUOFS 00E5 OEMID 000D OFFOFS 0000 PRDWORD
0000 PRHBYTE 0000 PRHWORD 005C PRIFCB 0009 PRINTSTR 0021 R0OFS
0022 R1OFS 0023 R2OFS 000F RCOFS 000A READCONBUF 0014 READSEQ
0025 RESETDRIVE 0019 RETCURR 000C RETVERNO E64B RMJ E64C RMN
E64E RTP E64D RUP 0002 RV1OFS 0004 RV2OFS 0006 RV3OFS
000D S1OFS 000E S2OFS 006C SECFCB 000E SELDSK 001A SETDMA
0024 SETRANDREC 0000 SPANISH 0000 SPTOFS 0200 STACKSIZE 0009 T1OFS
000A T2OFS 000B T3OFS 0000 TERMCPM 0001 TRUE 0002 WORDSIZE
0022 WRITERAND 0028 WRITERANDZF 0015 WRITESEQ 0000 XBANNER
0000 XLTOFS 042A XNAM 0426 XORIG 0424 XPROD 0420 XPROG
02AB XSBANNER 0428 XSER 0422 XVERS


BIN
branches/s100/Apps/crossdev/BDOSCALL.O

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BDOSCALL.REL

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BIOSCALL.O

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BIOSCALL.REL

Binary file not shown.

385
branches/s100/Apps/crossdev/BIOSHDR.LIB

@ -0,0 +1,385 @@
; biohdr.lib 2/19/2012 dwg - BIOS header display macros
; copyright (C) 2011 Douglas Goodall. All Rights Reserved.
; Licensed to N8VEM Community for non-commercial use only.
; 2/19/2012 dwg - review for release 1.5.1.0
; 2/05/2012 dwg - added DSKM (DM_ROM...) better late than never
; 2/05/2012 dwg - added prpsdenable,prpsdtrace, and prpsdcapacity
; 1/16/2012 dwg - extend LU numbers to 0x1C entries (256MB)
; 1/11/2012 dwg - added new setlu for 1.4 slice technique
; 12/18/2011 dwg - added REVISION (from svn)
; 12/07/2011 dwg - BIOS header enhancement for version 1.3
; Common Configuration items,
; Valid in all configurations
RMJ equ 0E64Bh
RMN equ RMJ+1
RUP equ RMN+1
RTP equ RUP+1
if 0
BANPTR equ RTP+1
DKMP equ BANPTR+2
DBBOOL equ DKMP+2 ; Disk Boot Boolean
DBDRV equ DBBOOL+1 ; Disk Boot Drive Code
FREQ equ DBDRV+1
PLAT equ FREQ+1 ; Hardware Platform
DIOPLT equ PLAT+1
VDUPLT equ DIOPLT+1
ROMSIZ equ VDUPLT+1
RAMSIZ equ ROMSIZ+2
CRAM equ RAMSIZ+2
DSKY equ CRAM+1 ; Is Display/Keyboard Attached?
UART equ DSKY+1 ; Is UART Enabled?
VDUEN equ UART+1
FDEN equ VDUEN+1 ; Is Floppy Disk Support Enabled
FDTR equ FDEN+1 ; Is Floppy Disk Error Tracing Enabled?
FMED equ FDTR+1 ; Floppy Disk Media Type
FALT equ FMED+1 ; Alternative Floppy Disk Media Type
FAUT equ FALT+1 ; Is Floppy Disk Automatic Sensing Enabled?
IDEN equ FAUT+1 ; Is On-Board IDE Support Enabled
IDTR equ IDEN+1
IDE8 equ IDTR+1
IDCP equ IDE8+1 ; 1/13/2012 IDE Capacity
PPEN equ IDCP+2 ; Is PPIDE Support Enablned?
PPTR equ PPEN+1 ; Is PPIDE Tracing Enabled?
PP8B equ PPTR+1
PPCP equ PP8B+1 ; 1/13/2012 PPIDE Capacity
PSLW equ PPCP+2 ; Use NOPs for recovery-time compensation
BTYP equ PSLW+1
BTTO equ BTYP+1
BTDF equ BTTO+1
BAUD equ BTDF+1 ; What is the Console Baud Rate
; Only Valid if PLATFORM == PLT_N8
CLKDIV equ BAUD+2 ; Z180_CLKDIV
MEMWAIT equ CLKDIV+1 ; Z180_MEMWAIT
IOWAIT equ MEMWAIT+1 ; Z180_IOWAIT
CNTLB0 equ IOWAIT+1 ; Z180_CNTLB0
CNTLB1 equ CNTLB0+1 ; Z180_CNTLB1
SDENABLE equ CNTLB1+1
SDTRACE equ SDENABLE+1
SDCP equ SDTRACE+1 ; 1/13/2012 SD Capacity
VDPTR equ SDCP+2 ; pointer to VDU Data
FDPTR equ VDPTR+2 ; pointer to FD Data
IDEPTR equ FDPTR+2 ; pointer to IDE Data
PPIPTR equ IDEPTR+2 ; pointer to PPIDE_DATA Data
PPIPTR2 equ PPIPTR+2 ; pointer to PPIDE.ASM DATA
DEFIO equ PPIPTR2+2 ; pointer to DEFIOBYTE
LDRC equ DEFIO+1 ; pointer to LDRCON
DBGC equ LDRC+1 ; pointer to DBGCON
TTYP equ DBGC+1 ; pointer to TERMTYPE
REV equ TTYP+1 ; subversion revision
TMDT equ REV+2 ; startup date and time
PSDE equ TMDT+6 ; prpsdenable
PSDT equ PSDE+1 ; prpsdtrace
PSDC equ PSDT+1 ; prpsdcapacity
PRCE equ PSDC+2
DSKM equ PRCE+1 ; DM_ROM...
DTSZ equ DSKM+1 ; DATASIZE
; LU0 LU1 LU2 LU3 LU4 LU5 LU6 LU7 LU8 LU9
; 41 82 c3 104 145 186 1c7 208 249 286
;
; LU10 LU11 LU12 LU13 LU14 LU15 LU16
; 2c7 308 349 38a 3cb 40c 44d
LU0 equ 0 ; 041h ; PPIDE1 offset for first slice (default)
LU1 equ 1 ; 082h ; PPIDE1 offset for second slice
LU2 equ 2 ; 0C3h ; PPIDE1 offset for third slice
LU3 equ 3 ; 104h ; PPIDE1 offset for fourth slice
LU4 equ 4 ; 145h ; PPIDE1 offset for fifth slice
LU5 equ 5 ; 186h ; PPIDE1 offset for sixth slice
LU6 equ 6 ; 1c7h ; PPIDE1 offset for seventh slice
LU7 equ 7 ; 208h ; PPIDE1 offset for eighth slice
LU8 equ 8 ; 249h ; PPIDE1 offset for ninth slice
LU9 equ 9 ; 286h ; PPIDE1 offset for tenth slice
LU10 equ 10
LU11 equ 11
LU12 equ 12
LU13 equ 13
LU14 equ 14
LU15 equ 15
LU16 equ 16
LU17 equ 17
LU18 equ 18
LU19 equ 19
LU20 equ 20
LU21 equ 21
LU22 equ 22
LU23 equ 23
LU24 equ 24
LU25 equ 25
LU26 equ 26 ; 0x1a
LU27 equ 27 ; 0x1b (1Cth entry)
endif
DRIVEB equ 1 ; 0=A, 1=B...
setlu13 macro offset
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
lxi d,offset ; load caller's parameter in de
mov m,e ; stuff LO offset byte into offset
inx h ; bump ptr
mov m,d ; stuff HO offset byte into offset
mvi c,13 ; BDOS DSKRESET
call 5 ; call BDOS
endm
getlu13 macro
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
mov e,m ; pick up LO byte of offset
inx h ; bump ptr
mov d,m ; pick up HO byte of offset
xchg ; hl = offset
endm
setlu14 macro offset
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
lxi d,offset ; load caller's parameter in de
mov m,e ; stuff LO offset byte into offset
inx h ; bump ptr
mov m,d ; stuff HO offset byte into offset
mvi c,13 ; BDOS DSKRESET
call 5 ; call BDOS
endm
getlu14 macro
lxi h,PPIPTR2 ; set pointer to ppide.asm data
mov e,m ; dereference pointer
inx h
mov d,m ; de -> ppide.asm data
xchg ; hl -> ppide.asm data
lxi d,6 ; offset to offset
dad d ; hl -> offset in ppide.asm data
mov e,m ; pick up LO byte of offset
inx h ; bump ptr
mov d,m ; pick up HO byte of offset
xchg ; hl = offset
endm
setlu macro drive,slice
local dontboth,msg,msg2
mvi c,drive
call BISELDSK
lxi d,16
dad d
mov a,m
cpi 'L'
jnz dontboth
inx h
mov a,m
cpi 'U'
jnz dontboth
inx h
mvi a,slice
mov m,a
print msg
mvi a,drive
adi 'A'
mov e,a
mvi c,2
call BDOS
print msg2
lxi h,slice
call pr$d$word
jmp dontboth
msg db CR,LF,'Drive $'
msg2 db ': set to Logical Unit (slice) $'
dontboth:
endm
xluset macro
local ldrive,lslice,dontboth,msg,msg2
; C = DRIVE
; A = SLICE
sta lslice
mov a,c
sta ldrive
call BISELDSK ; uses c parameter (drive)
lxi d,16
dad d
mov a,m
cpi 'L'
jnz dontboth
inx h
mov a,m
cpi 'U'
jnz dontboth
inx h
lda lslice
mov m,a ; put slice into CURRENT
; print msg
; lda ldrive
; adi 'A'
; mov e,a
; mvi c,2
; call BDOS
; print msg2
; lda lslice
; mov l,a
; mvi h,0
; call pr$d$word
jmp dontboth
msg db CR,LF,'Drive $'
msg2 db ': set to Logical Unit (slice) $'
ldrive db 0
lslice db 0
dontboth:
endm
hdrlit macro ptr,val,msg
local notval
lxi h,ptr
mvi a,val
cmp m
jnz notval
print msg
notval:
endm
hdrbool macro ptr,tmsg,fmsg
local itstrue,itsfalse,imdone
enter
lxi h,ptr
mov a,m
cpi TRUE
jnz itsfalse
lxi d,tmsg
jmp imdone
itsfalse: lxi d,fmsg
imdone: mvi c,PRINTSTR
call BDOS
leave
endm
hdrbyte macro ptr,msg
enter
mvi c,PRINTSTR
lxi d,msg
call BDOS
lxi h,ptr
mov a,m
call pr$h$byte
conout '('
mov e,m
mov d,0
xchg
call pr$d$word
conout ')'
leave
endm
hdrpbyte macro ptr,msg
enter
mvi c,PRINTSTR
lxi d,msg
call BDOS
lxi h,PTR
mov e,m
inx h
mov d,m
xchg
mov a,m
call pr$h$byte
; conout ' '
conout '('
mov e,m
mov d,0
xchg
call pr$d$word
conout ')'
leave
endm
hdrword macro ptr,msg
enter
mvi c,PRINTSTR
lxi d,msg
call BDOS
lxi h,ptr
inx h
mov a,m
call pr$h$byte
lxi h,ptr
mov a,m
call pr$h$byte
conout '('
lxi h,ptr
mov e,m
inx h
mov d,m
xchg
call pr$d$word
conout ')'
leave
endm
syncerr macro
print syncmsg
exit
endm
hdrvalid macro
local byte1ok,byte2ok
enter
lxi h,CFDA
mov a,m
cpi 0DAh
jz byte1ok
syncerr
byte1ok:
inx h
mov al,m
cpi 0CFh
jz byte2ok
syncerr
byte2ok:
leave
endm
; eof - bioshdr.lib


208
branches/s100/Apps/crossdev/CBANNER.ASM

@ -0,0 +1,208 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
DSEG
public lines_
lines_:
DW .1+0
CSEG
.1:
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
DB 45,45,45,45,45,45,45,45,45,45,0
DSEG
public line1_
line1_:
DW .2+0
CSEG
.2:
DB 49,50,51,52,53,54,55,56,46,49,50,51,32,109,109
DB 47,100,100,47,121,121,121,121,32,32,86,101,114,115,105
DB 111,110,32,120,46,120,46,120,46,120,0
DSEG
public line2_
line2_:
DW .3+0
CSEG
.3:
DB 83,47,78,32,67,80,77,56,48,45,68,87,71,45,54
DB 53,52,51,50,49,32,76,105,99,101,110,115,101,100,32
DB 117,110,100,101,114,32,71,80,76,51,0
DSEG
public line3_
line3_:
DW .4+0
CSEG
.4:
DB 67,111,112,121,114,105,103,104,116,32,40,67,41,32,50
DB 48,49,49,45,49,50,32,68,111,117,103,108,97,115,32
DB 87,46,32,71,111,111,100,97,108,108,0
PUBLIC sbanner_
sbanner_: lxi d,.6
call csave
LXI H,8-.6
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.5+0
PUSH H
CALL printf_
POP D
POP D
LXI H,2013
PUSH H
LXI H,16
PUSH H
LXI H,1
PUSH H
LXI H,.5+4
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,3
PUSH H
LXI H,2
PUSH H
LXI H,.5+18
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
LXI H,.5+39
PUSH H
CALL printf_
POP D
RET
.6 EQU -128
.5:
DB 37,115,32,0,37,50,100,47,37,50,100,47,37,52,100
DB 32,32,0,86,101,114,115,105,111,110,32,37,100,46,37
DB 100,46,37,100,46,37,100,32,0,67,79,80,82,32,68
DB 111,117,103,108,97,115,32,71,111,111,100,97,108,108,32
DB 76,105,99,101,110,115,101,100,32,119,47,71,80,76,118
DB 51,10,0
PUBLIC banner_
banner_: lxi d,.8
call csave
LHLD lines_
PUSH H
LXI H,.7+0
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.8
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-122-.8
DAD SP
PUSH H
CALL strcpy_
POP D
POP D
.9:
LXI H,-124-.8
DAD SP
PUSH H
CALL strlen_
POP D
PUSH H
LXI H,12
POP D
XCHG
CALL .gt
JZ .10
LXI H,.7+4
PUSH H
LXI H,-122-.8
DAD SP
PUSH H
CALL strcat_
POP D
POP D
JMP .9
.10:
LXI H,-124-.8
DAD SP
PUSH H
LXI H,.7+6
PUSH H
CALL printf_
POP D
POP D
LXI H,2013
PUSH H
LXI H,16
PUSH H
LXI H,1
PUSH H
LXI H,.7+10
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,3
PUSH H
LXI H,2
PUSH H
LXI H,.7+24
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
LHLD line2_
PUSH H
LXI H,.7+45
PUSH H
CALL printf_
POP D
POP D
LHLD line3_
PUSH H
LXI H,.7+49
PUSH H
CALL printf_
POP D
POP D
LHLD lines_
PUSH H
LXI H,.7+53
PUSH H
CALL printf_
POP D
POP D
RET
.8 EQU -128
.7:
DB 37,115,10,0,32,0,37,115,32,0,37,50,100,47,37
DB 50,100,47,37,52,100,32,32,0,86,101,114,115,105,111
DB 110,32,37,100,46,37,100,46,37,100,46,37,100,10,0
DB 37,115,10,0,37,115,10,0,37,115,10,0
extrn strcat_
extrn strlen_
extrn strcpy_
extrn printf_
extrn .gt
END


BIN
branches/s100/Apps/crossdev/CBANNER.O

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CC.COM

Binary file not shown.

333
branches/s100/Apps/crossdev/CC.TMP

@ -0,0 +1,333 @@
extrn .begin,.chl,.swt
extrn zsave,zret
global termtype_,1
DSEG
public wy50row_
wy50row_:
DB 32
DB 33
DB 34
DB 35
DB 36
DB 37
DB 38
DB 39
DB 40
DB 41
DB 42
DB 43
DB 44
DB 45
DB 46
DB 47
DB 48
DB 49
DB 50
DB 51
DB 52
DB 53
DB 54
DB 55
CSEG
DSEG
public wy50col_
wy50col_:
DB 32
DB 33
DB 34
DB 35
DB 36
DB 37
DB 38
DB 39
DB 40
DB 41
DB 42
DB 43
DB 44
DB 45
DB 46
DB 47
DB 48
DB 49
DB 50
DB 51
DB 52
DB 53
DB 54
DB 55
DB 56
DB 57
DB 58
DB 59
DB 60
DB 61
DB 62
DB 63
DB 64
DB 65
DB 66
DB 67
DB 68
DB 69
DB 70
DB 71
DB 72
DB 73
DB 74
DB 75
DB 76
DB 77
DB 78
DB 79
DB 80
DB 81
DB 82
DB 83
DB 84
DB 85
DB 86
DB 87
DB 88
DB 89
DB 90
DB 91
DB 92
DB 93
DB 94
DB 95
DB 96
DB 97
DB 98
DB 99
DB 100
DB 101
DB 102
DB 103
DB 104
DB 105
DB 106
DB 107
DB 108
DB 109
DB 110
DB 111
CSEG
PUBLIC crtinit_
crtinit_: lxi d,.2
call zsave
LXI H,12-.2
DAD SP
MOV E,M
XCHG
MOV A,L
STA termtype_
RET
.2 EQU 0
PUBLIC crtclr_
crtclr_: lxi d,.3
call zsave
LDA termtype_
MOV L,A
MVI H,0
JMP .4
.6:
LXI H,0
XCHG
LXI H,6-.3
DAD SP
MOV M,E
INX H
MOV M,D
JMP .8
.7:
LXI H,6-.3
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.8:
LXI H,6-.3
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,43
CALL .lt
JZ .9
LXI H,10
PUSH H
LXI H,13
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
POP D
POP D
POP D
JMP .7
.9:
JMP .5
.10:
LXI H,27
PUSH H
LXI H,.1+5
PUSH H
CALL printf_
POP D
POP D
JMP .5
.11:
LXI H,27
PUSH H
LXI H,.1+11
PUSH H
CALL printf_
POP D
POP D
JMP .5
.12:
LXI H,27
PUSH H
LXI H,27
PUSH H
LXI H,.1+15
PUSH H
CALL printf_
POP D
POP D
POP D
JMP .5
.4:
CALL .swt
DW 4
DW 0,.6
DW 1,.10
DW 2,.11
DW 3,.12
DW .5
.5:
RET
.3 EQU -2
.1:
DB 37,99,37,99,0,37,99,91,50,74,0,37,99,43,0
DB 37,99,74,37,99,72,0
PUBLIC crtlc_
crtlc_: lxi d,.14
call zsave
LDA termtype_
MOV L,A
MVI H,0
JMP .15
.17:
JMP .16
.18:
LXI H,102
PUSH H
LXI H,16-.14
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,16-.14
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,27
PUSH H
LXI H,.13+0
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
JMP .16
.19:
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,wy50col_
DAD D
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,wy50row_
DAD D
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,27
PUSH H
LXI H,.13+11
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
JMP .16
.20:
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,32
DAD D
PUSH H
LXI H,14-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,32
DAD D
PUSH H
LXI H,27
PUSH H
LXI H,.13+19
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
JMP .16
.15:
CALL .swt
DW 4
DW 0,.17
DW 1,.18
DW 2,.19
DW 3,.20
DW .16
.16:
RET
.14 EQU -2
.13:
DB 37,99,91,37,100,59,37,100,37,99,0,37,99,61,37
DB 99,37,99,0,37,99,89,37,99,37,99,0
extrn printf_
extrn .lt
END

970
branches/s100/Apps/crossdev/CHARS.ASM

@ -0,0 +1,970 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global pDPHMAP_,2
global pDPHVEC_,24
DSEG
public pSYSCFG_
pSYSCFG_:
DW -16384
CSEG
DSEG
public map_
map_:
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 1
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 1
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
DB 0
CSEG
DSEG
public attroff_
attroff_:
DB 27
DB 91
DB 109
DB 0
CSEG
DSEG
public attrbold_
attrbold_:
DB 27
DB 91
DB 49
DB 109
DB 0
CSEG
DSEG
public attrlow_
attrlow_:
DB 27
DB 91
DB 50
DB 109
DB 0
CSEG
DSEG
public attrundr_
attrundr_:
DB 27
DB 91
DB 52
DB 109
DB 0
CSEG
DSEG
public attrblnk_
attrblnk_:
DB 27
DB 91
DB 53
DB 109
DB 0
CSEG
DSEG
public attrrevs_
attrrevs_:
DB 27
DB 91
DB 55
DB 109
DB 0
CSEG
DSEG
public attrinvs_
attrinvs_:
DB 27
DB 91
DB 56
DB 109
DB 0
CSEG
DSEG
public graphon_
graphon_:
DB 27
DB 70
DB 0
CSEG
DSEG
public graphoff_
graphoff_:
DB 27
DB 71
DB 0
CSEG
DSEG
public atreset_
atreset_:
DB 48
DB 0
CSEG
DSEG
public atbold_
atbold_:
DB 49
DB 0
CSEG
DSEG
public atdim_
atdim_:
DB 50
DB 0
CSEG
DSEG
public atundrsc_
atundrsc_:
DB 52
DB 0
CSEG
DSEG
public atblink_
atblink_:
DB 53
DB 0
CSEG
DSEG
public atrevs_
atrevs_:
DB 55
DB 0
CSEG
DSEG
public athidden_
athidden_:
DB 56
DB 0
CSEG
DSEG
public fgblack_
fgblack_:
DB 51
DB 48
DB 0
CSEG
DSEG
public fgred_
fgred_:
DB 51
DB 49
DB 0
CSEG
DSEG
public fggreen_
fggreen_:
DB 51
DB 50
DB 0
CSEG
DSEG
public fgyellow_
fgyellow_:
DB 51
DB 51
DB 0
CSEG
DSEG
public fgblue_
fgblue_:
DB 51
DB 52
DB 0
CSEG
DSEG
public fgmagent_
fgmagent_:
DB 51
DB 53
DB 0
CSEG
DSEG
public fgcyan_
fgcyan_:
DB 51
DB 54
DB 0
CSEG
DSEG
public fgwhite_
fgwhite_:
DB 51
DB 55
DB 0
CSEG
DSEG
public bgblack_
bgblack_:
DB 52
DB 48
DB 0
CSEG
DSEG
public bgred_
bgred_:
DB 52
DB 49
DB 0
CSEG
DSEG
public bggreen_
bggreen_:
DB 52
DB 50
DB 0
CSEG
DSEG
public bgyellow_
bgyellow_:
DB 52
DB 51
DB 0
CSEG
DSEG
public bgblue_
bgblue_:
DB 52
DB 52
DB 0
CSEG
DSEG
public bgmagent_
bgmagent_:
DB 52
DB 53
DB 0
CSEG
DSEG
public bgcyan_
bgcyan_:
DB 52
DB 54
DB 0
CSEG
DSEG
public bgwhite_
bgwhite_:
DB 52
DB 55
DB 0
CSEG
PUBLIC dispattr_
dispattr_: lxi d,.2
call csave
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,27
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
RET
.2 EQU 0
.1:
DB 37,99,91,37,115,59,37,115,59,37,115,109,0
PUBLIC main_
main_: lxi d,.4
call csave
LXI H,1
XCHG
LXI H,8-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .5
LXI H,1
XCHG
LXI H,2-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .7
.6:
LXI H,2-.4
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.7:
LXI H,2-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,8-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .8
LXI H,2-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
XCHG
LXI H,10-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
CALL atoi_
POP D
PUSH H
LXI H,.3+0
PUSH H
CALL printf_
POP D
POP D
JMP .6
.8:
JMP .9
.5:
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
LXI H,-16384
SHLD pSYSCFG_
LHLD pSYSCFG_
LXI D,68
DAD D
MOV E,M
MVI D,0
PUSH D
CALL crtinit_
POP D
CALL crtclr_
LXI H,0
PUSH H
LXI H,0
PUSH H
CALL crtlc_
POP D
POP D
LXI H,bgblack_
PUSH H
LXI H,fggreen_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,.3+3
PUSH H
CALL banner_
POP D
LXI H,attroff_
PUSH H
LXI H,.3+9
PUSH H
CALL printf_
POP D
POP D
LXI H,bgblack_
PUSH H
LXI H,fgcyan_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,0
XCHG
LXI H,-4-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .11
.10:
LXI H,-4-.4
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.11:
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16
CALL .lt
JZ .12
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
LXI D,9
DAD D
PUSH H
LXI H,6
PUSH H
CALL crtlc_
POP D
POP D
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.3+12
PUSH H
CALL printf_
POP D
POP D
JMP .10
.12:
LXI H,attroff_
PUSH H
LXI H,.3+17
PUSH H
CALL printf_
POP D
POP D
LXI H,0
XCHG
LXI H,-6-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .14
.13:
LXI H,-6-.4
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.14:
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16
CALL .lt
JZ .15
LXI H,4
PUSH H
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,7
DAD D
PUSH H
CALL crtlc_
POP D
POP D
LXI H,bgblack_
PUSH H
LXI H,fgcyan_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.3+20
PUSH H
CALL printf_
POP D
POP D
LXI H,attroff_
PUSH H
LXI H,.3+25
PUSH H
CALL printf_
POP D
POP D
LXI H,0
XCHG
LXI H,-4-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .17
.16:
LXI H,-4-.4
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.17:
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16
CALL .lt
JZ .18
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
LXI D,10
DAD D
PUSH H
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,7
DAD D
PUSH H
CALL crtlc_
POP D
POP D
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
DAD H
DAD H
XCHG
LXI H,-4-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
LXI D,map_
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .19
LXI H,.3+28
PUSH H
CALL printf_
POP D
JMP .20
.19:
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
DAD H
DAD H
XCHG
LXI H,-4-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
PUSH H
LXI H,.3+30
PUSH H
CALL printf_
POP D
POP D
.20:
JMP .16
.18:
LXI H,bgblack_
PUSH H
LXI H,fgcyan_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.3+33
PUSH H
CALL printf_
POP D
POP D
LXI H,attroff_
PUSH H
LXI H,.3+40
PUSH H
CALL printf_
POP D
POP D
JMP .13
.15:
.9:
LXI H,0
RET
.4 EQU -10
.3:
DB 37,99,0,67,72,65,82,83,0,37,115,0,91,37,120
DB 93,0,37,115,0,91,37,120,93,0,37,115,0,46,0
DB 37,99,0,32,32,91,37,120,93,0,37,115,0
extrn atoi_
extrn printf_
extrn banner_
extrn crtlc_
extrn crtclr_
extrn crtinit_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn .eq
extrn .lt
END


23
branches/s100/Apps/crossdev/CHARS.C

@ -8,10 +8,19 @@
#include "cpm80.h"
#include "cpmappl.h"
#include "applvers.h"
#include "cnfgdata.h"
#include "syscfg.h"
#define TOP 0
#define LEFT 4
#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 */
struct SYSCFG * pSYSCFG = HIGHSEG;
char map[256] =
{
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
@ -92,7 +101,17 @@ int main(argc,argv)
}
} else {
crtinit();
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
/* printf("TT is %d\n",pSYSCFG->cnfgdata.termtype); */
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
@ -130,4 +149,4 @@ int main(argc,argv)
return 0;
}



18
branches/s100/Apps/crossdev/CHARS.SUB

@ -0,0 +1,18 @@
e:rem chars.sub 7/22/2012 dwg - build chars from source
cc chars
as chars
as bdoscall
as bioscall
as diagnose
cc cbanner
as cbanner
cc ctermcap
as ctermcap
ln chars.o bdoscall.o bioscall.o cbanner.o diagnose.o ctermcap.o c.lib
era chars.o
era bdoscall.o
era bioscall.o
era diagose.o
era cbanner.o
era ctermcap.o


12
branches/s100/Apps/crossdev/CHECK.SUB

@ -0,0 +1,12 @@
e:access access.com
e:access cpmname.com
e:access findfile.com
e:access map.com
e:access meta.com
e:access multifmt.com
e:access rem.com
e:access setlabel.com
e:access sysgen.com
e:access termtype.com
e:access view.com


27
branches/s100/Apps/crossdev/CLEAN.SUB

@ -0,0 +1,27 @@
era *.bak
era *.prn
era *.rel
era *.sym
era *.lst
era *.o
era sect0*.h
era sect1*.h
era sect2*.h
era sect3*.h
era sect4*.h
era sect5*.h
era sect6*.h
era sect7*.h
era sect8*.h
era sect9*.h
era sect0*.inc
era sect1*.inc
era sect2*.inc
era sect3*.inc
era sect4*.inc
era sect5*.inc
era sect6*.inc
era sect7*.inc
era sect8*.inc
era sect9*.inc


44
branches/s100/Apps/crossdev/CLEAR.ASM

@ -0,0 +1,44 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global style_,1
global vdp_rege_,960
global pINFOLIS_,2
global metadata_,128
global pCNFGDAT_,2
global pSYSCFG_,2
PUBLIC main_
main_: lxi d,.2
call csave
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
LXI H,-16384
SHLD pSYSCFG_
LHLD pSYSCFG_
LXI D,68
DAD D
MOV E,M
MVI D,0
PUSH D
CALL crtinit_
POP D
CALL crtclr_
LXI H,0
PUSH H
LXI H,0
PUSH H
CALL crtlc_
POP D
POP D
RET
.2 EQU -1
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn crtlc_
extrn crtclr_
extrn crtinit_
END


48
branches/s100/Apps/crossdev/CLEAR.C

@ -0,0 +1,48 @@
/* clear.c 11/23/2012 dwg - */
#include "portab.h"
#include "globals.h"
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#include "applvers.h"
#include "n8chars.h"
#include "tms9918.h"
#include "std.h"
#include "ctermcap.h"
#include "cpmbdos.h"
#include "bdoscall.h"
#include "hbios.h"
#include "asmiface.h"
#include "diagnose.h"
#include "cnfgdata.h"
#include "syscfg.h"
#include "cpmbind.h"
#include "infolist.h"
#include "metadata.h"
#include "clogical.h"
#define HIGHSEG 0x0C000 /* memory address of system config */
#define GETSYSCFG 0x0F000 /* HBIOS function for Get System Configuration */
struct CNFGDATA * pCNFGDATA;
struct SYSCFG * pSYSCFG;
int main(argc,argv)
int argc;
char *argv[];
{
char column;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
}


10
branches/s100/Apps/crossdev/CLEAR.SUB

@ -0,0 +1,10 @@
e:rem clear.sub 7/22/2012 dwg - build clear from sources
cc clear
as clear
as bdoscall
as bioscall
cc ctermcap
as ctermcap
as diagnose
ln clear.o diagnose.o bioscall.o bdoscall.o ctermcap.o c.lib


159
branches/s100/Apps/crossdev/CLOGICAL.ASM

@ -0,0 +1,159 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
PUBLIC lugcur_
lugcur_: lxi d,.2
call csave
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-6602
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
LHLD xregde_
RET
.2 EQU 0
PUBLIC lugnum_
lugnum_: lxi d,.3
call csave
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,12-.3
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-6602
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
LHLD xreghl_
RET
.3 EQU 0
PUBLIC lugdu_
lugdu_: lxi d,.4
call csave
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,12-.4
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-6602
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
LHLD xregbc_
LXI D,8
XCHG
CALL .ur
RET
.4 EQU 0
PUBLIC luscur_
luscur_: lxi d,.5
call csave
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,12-.5
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-6602
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
LHLD xreghl_
PUSH H
LXI H,12-.5
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LHLD xregbc_
PUSH H
LXI H,-6599
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
RET
.5 EQU 0
PUBLIC lusnum_
lusnum_: lxi d,.6
call csave
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,12-.6
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-6602
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,10-.6
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LHLD xregde_
PUSH H
LHLD xregbc_
PUSH H
LXI H,-6599
PUSH H
CALL asmif_
XCHG
LXI H,8
DAD SP
SPHL
RET
.6 EQU 0
extrn asmif_
extrn xreghl_
extrn xregde_
extrn xregbc_
extrn .ur
END


6
branches/s100/Apps/crossdev/CLOGICAL.H

@ -1,11 +1,7 @@
/*****************************/
/* clogical.H 6/4/2012 dwg - */
/*****************************/
#define METATRK 0
#define METASEC 11
extern lugdu();
extern lugcur();
extern luscur();
@ -15,4 +11,4 @@ extern lusnum();
/********************/
/* eof - clogical.h */
/********************/



BIN
branches/s100/Apps/crossdev/CLOGICAL.O

Binary file not shown.

127
branches/s100/Apps/crossdev/CLS.C

@ -0,0 +1,127 @@
/* cls.c 7/21/2012 dwg - elegant form of clear screen program */
/*
#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); */
#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 */
/* 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;
};
struct JMP {
unsigned char opcode; /* JMP opcode */
unsigned int address; /* JMP address */
};
struct SYSCFG {
struct JMP jmp;
void * cnfloc;
void * tstloc;
void * varloc;
struct CNFGDATA cnfgdata;
char filler[256-3-2-2-2-sizeof(struct CNFGDATA)];
} * pSYSCFG = HIGHSEG;
main(argc,argv)
int argc;
char *argv[];
{
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the HBIOS function */
crtinit(pSYSCFG->cnfgdata.termtype); /* pass termtype to init */
crtclr();
crtlc(0,0);
}


283
branches/s100/Apps/crossdev/CMEMORY.ASM

@ -0,0 +1,283 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
PUBLIC memcmp_
memcmp_: lxi d,.2
call csave
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,0-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-2-.2
DAD SP
MOV M,E
INX H
MOV M,D
JMP .4
.3:
LXI H,-2-.2
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.4:
LXI H,-2-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,12-.2
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .5
LXI H,0-.2
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
XCHG
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,4-.2
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
XCHG
DCX H
MOV E,M
MVI D,0
POP H
CALL .ne
JZ .6
LXI H,0
RET
.6:
JMP .3
.5:
LXI H,1
RET
.2 EQU -6
PUBLIC memcpy_
memcpy_: lxi d,.7
call csave
LXI H,10-.7
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.7
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,8-.7
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,0-.7
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-2-.7
DAD SP
MOV M,E
INX H
MOV M,D
JMP .9
.8:
LXI H,-2-.7
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.9:
LXI H,-2-.7
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,12-.7
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .10
LXI H,2-.7
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
XCHG
DCX H
MOV E,M
PUSH D
LXI H,2-.7
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
XCHG
DCX H
POP D
MOV M,E
JMP .8
.10:
RET
.7 EQU -6
PUBLIC memset_
memset_: lxi d,.11
call csave
LXI H,8-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.11
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,0-.11
DAD SP
MOV M,E
INX H
MOV M,D
JMP .13
.12:
LXI H,0-.11
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.13:
LXI H,0-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,12-.11
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .ul
JZ .14
LXI H,10-.11
DAD SP
MOV E,M
PUSH D
LXI H,4-.11
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
XCHG
DCX H
POP D
MOV M,E
JMP .12
.14:
RET
.11 EQU -4
extrn .ne
extrn .lt
extrn .ul
END


BIN
branches/s100/Apps/crossdev/CMEMORY.O

Binary file not shown.

527
branches/s100/Apps/crossdev/CNAMEPT1.ASM

@ -0,0 +1,527 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global cache_,17
PUBLIC cnamept1_
cnamept1_: lxi d,.2
call csave
LXI H,.1+0
PUSH H
LXI H,cache_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
INX H
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.1+17
PUSH H
CALL printf_
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
INX H
INX H
INX H
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.1+51
PUSH H
CALL printf_
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,5
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.1+85
PUSH H
CALL printf_
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,7
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.1+119
PUSH H
CALL printf_
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,9
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+153
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,10
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+175
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,11
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+197
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,12
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+219
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+241
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,13
DAD D
MOV E,M
MVI D,0
XCHG
JMP .3
.5:
LXI H,.1+261
PUSH H
CALL printf_
POP D
JMP .4
.6:
LXI H,.1+266
PUSH H
CALL printf_
POP D
JMP .4
.3:
CALL .swt
DW 2
DW 0,.6
DW 1,.5
DW .4
.4:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,14
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+272
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,15
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+298
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,23
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+324
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+349
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,24
DAD D
MOV E,M
MVI D,0
XCHG
JMP .7
.9:
LXI H,.1+369
PUSH H
CALL printf_
POP D
JMP .8
.10:
LXI H,.1+375
PUSH H
CALL printf_
POP D
JMP .8
.11:
LXI H,.1+380
PUSH H
CALL printf_
POP D
JMP .8
.7:
CALL .swt
DW 3
DW 1,.9
DW 2,.10
DW 3,.11
DW .8
.8:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+383
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,25
DAD D
MOV E,M
MVI D,0
XCHG
JMP .12
.14:
LXI H,.1+403
PUSH H
CALL printf_
POP D
JMP .13
.15:
LXI H,.1+415
PUSH H
CALL printf_
POP D
JMP .13
.16:
LXI H,.1+429
PUSH H
CALL printf_
POP D
JMP .13
.17:
LXI H,.1+441
PUSH H
CALL printf_
POP D
JMP .13
.18:
LXI H,.1+453
PUSH H
CALL printf_
POP D
JMP .13
.19:
LXI H,.1+463
PUSH H
CALL printf_
POP D
JMP .13
.20:
LXI H,.1+478
PUSH H
CALL printf_
POP D
JMP .13
.12:
CALL .swt
DW 6
DW 0,.14
DW 1,.15
DW 2,.16
DW 3,.17
DW 4,.18
DW 5,.19
DW .20
.13:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+486
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,26
DAD D
MOV E,M
MVI D,0
XCHG
JMP .21
.23:
LXI H,.1+506
PUSH H
CALL printf_
POP D
JMP .22
.24:
LXI H,.1+518
PUSH H
CALL printf_
POP D
JMP .22
.25:
LXI H,.1+529
PUSH H
CALL printf_
POP D
JMP .22
.26:
LXI H,.1+541
PUSH H
CALL printf_
POP D
JMP .22
.27:
LXI H,.1+555
PUSH H
CALL printf_
POP D
JMP .22
.28:
LXI H,.1+567
PUSH H
CALL printf_
POP D
JMP .22
.21:
CALL .swt
DW 5
DW 0,.23
DW 1,.24
DW 2,.25
DW 3,.26
DW 4,.27
DW .28
.22:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,27
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+577
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,29
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+599
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
RET
.2 EQU 0
.1:
DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
DB 97,0,115,121,115,99,102,103,45,62,106,109,112,32,32
DB 32,32,32,32,32,32,32,32,32,32,106,112,32,32,48
DB 37,48,52,120,104,0,115,121,115,99,102,103,45,62,99
DB 110,102,108,111,99,32,32,32,32,32,32,32,32,32,46
DB 100,119,32,48,37,48,52,120,104,0,115,121,115,99,102
DB 103,45,62,116,115,116,108,111,99,32,32,32,32,32,32
DB 32,32,32,46,100,119,32,48,37,48,52,120,104,0,115
DB 121,115,99,102,103,45,62,118,97,114,108,111,99,32,32
DB 32,32,32,32,32,32,32,46,100,119,32,48,37,48,52
DB 120,104,0,37,115,46,114,109,106,32,32,32,32,32,32
DB 32,32,32,32,32,61,32,37,100,0,37,115,46,114,109
DB 110,32,32,32,32,32,32,32,32,32,32,32,61,32,37
DB 100,0,37,115,46,114,117,112,32,32,32,32,32,32,32
DB 32,32,32,32,61,32,37,100,0,37,115,46,114,116,112
DB 32,32,32,32,32,32,32,32,32,32,32,61,32,37,100
DB 0,37,115,46,100,105,115,107,98,111,111,116,32,32,32
DB 32,32,32,61,32,0,84,82,85,69,0,70,65,76,83
DB 69,0,37,115,46,100,101,118,117,110,105,116,32,32,32
DB 32,32,32,32,61,32,48,120,37,48,50,120,0,37,115
DB 46,98,111,111,116,108,117,32,32,32,32,32,32,32,32
DB 61,32,48,120,37,48,52,120,0,37,115,46,102,114,101
DB 113,32,32,32,32,32,32,32,32,32,32,61,32,37,100
DB 77,72,122,0,37,115,46,112,108,97,116,102,111,114,109
DB 32,32,32,32,32,32,61,32,0,78,56,86,69,77,0
DB 90,69,84,65,0,78,56,0,37,115,46,100,105,111,112
DB 108,97,116,32,32,32,32,32,32,32,61,32,0,68,73
DB 79,80,76,84,95,78,79,78,69,0,68,73,79,80,76
DB 84,95,68,73,83,75,73,79,0,68,73,79,80,76,84
DB 95,90,69,84,65,0,68,73,79,80,76,84,95,68,73
DB 68,69,0,68,73,79,80,76,84,95,78,56,0,68,73
DB 79,80,76,84,95,68,73,83,75,73,79,51,0,85,110
DB 107,110,111,119,110,0,37,115,46,118,100,117,109,111,100
DB 101,32,32,32,32,32,32,32,61,32,0,86,68,85,80
DB 76,84,95,78,79,78,69,0,86,68,85,80,76,84,95
DB 86,68,85,0,86,68,85,80,76,84,95,86,68,85,67
DB 0,86,68,85,80,76,84,95,80,82,79,80,73,79,0
DB 86,68,85,80,76,84,95,86,80,78,56,0,85,110,107
DB 110,111,119,110,33,33,0,37,115,46,114,111,109,115,105
DB 122,101,32,32,32,32,32,32,32,61,32,37,100,0,37
DB 115,46,114,97,109,115,105,122,101,32,32,32,32,32,32
DB 32,61,32,37,100,0
extrn printf_
extrn strcpy_
extrn pager_
END


BIN
branches/s100/Apps/crossdev/CNAMEPT1.O

Binary file not shown.

480
branches/s100/Apps/crossdev/CNAMEPT2.ASM

@ -0,0 +1,480 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global cache_,17
PUBLIC cnamept2_
cnamept2_: lxi d,.2
call csave
LXI H,.1+0
PUSH H
LXI H,cache_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,cache_
PUSH H
LXI H,.1+17
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,31
DAD D
MOV E,M
MVI D,0
XCHG
JMP .3
.5:
LXI H,.1+37
PUSH H
CALL printf_
POP D
JMP .4
.6:
LXI H,.1+47
PUSH H
CALL printf_
POP D
JMP .4
.7:
LXI H,.1+56
PUSH H
CALL printf_
POP D
JMP .4
.3:
CALL .swt
DW 3
DW 0,.5
DW 1,.6
DW 2,.7
DW .4
.4:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+68
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,32
DAD D
MOV E,M
MVI D,0
XCHG
JMP .8
.10:
LXI H,.1+88
PUSH H
CALL printf_
POP D
JMP .9
.11:
LXI H,.1+93
PUSH H
CALL printf_
POP D
JMP .9
.8:
CALL .swt
DW 2
DW 0,.11
DW 1,.10
DW .9
.9:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+99
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,33
DAD D
MOV E,M
MVI D,0
XCHG
JMP .12
.14:
LXI H,.1+119
PUSH H
CALL printf_
POP D
JMP .13
.15:
LXI H,.1+124
PUSH H
CALL printf_
POP D
JMP .13
.12:
CALL .swt
DW 2
DW 0,.15
DW 1,.14
DW .13
.13:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+130
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,34
DAD D
MOV E,M
MVI D,0
XCHG
JMP .16
.18:
LXI H,.1+150
PUSH H
CALL printf_
POP D
JMP .17
.19:
LXI H,.1+155
PUSH H
CALL printf_
POP D
JMP .17
.16:
CALL .swt
DW 2
DW 0,.19
DW 1,.18
DW .17
.17:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+161
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,35
DAD D
MOV E,M
MVI D,0
XCHG
JMP .20
.22:
LXI H,.1+181
PUSH H
CALL printf_
POP D
JMP .21
.23:
LXI H,.1+186
PUSH H
CALL printf_
POP D
JMP .21
.20:
CALL .swt
DW 2
DW 0,.23
DW 1,.22
DW .21
.21:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,35
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .24
LXI H,cache_
PUSH H
LXI H,.1+192
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,36
DAD D
MOV E,M
MVI D,0
XCHG
JMP .25
.27:
LXI H,.1+212
PUSH H
CALL printf_
POP D
JMP .26
.28:
LXI H,.1+219
PUSH H
CALL printf_
POP D
JMP .26
.29:
LXI H,.1+232
PUSH H
CALL printf_
POP D
JMP .26
.30:
LXI H,.1+243
PUSH H
CALL printf_
POP D
JMP .26
.31:
LXI H,.1+254
PUSH H
CALL printf_
POP D
JMP .26
.25:
CALL .swt
DW 4
DW 0,.27
DW 1,.28
DW 2,.29
DW 3,.30
DW .31
.26:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+264
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,37
DAD D
MOV E,M
MVI D,0
XCHG
JMP .32
.34:
LXI H,.1+284
PUSH H
CALL printf_
POP D
LXI H,.1+291
PUSH H
CALL printf_
POP D
JMP .33
.35:
LXI H,.1+329
PUSH H
CALL printf_
POP D
LXI H,.1+336
PUSH H
CALL printf_
POP D
JMP .33
.36:
LXI H,.1+376
PUSH H
CALL printf_
POP D
LXI H,.1+383
PUSH H
CALL printf_
POP D
JMP .33
.37:
LXI H,.1+422
PUSH H
CALL printf_
POP D
LXI H,.1+429
PUSH H
CALL printf_
POP D
JMP .33
.38:
LXI H,.1+468
PUSH H
CALL printf_
POP D
JMP .33
.32:
CALL .swt
DW 4
DW 0,.34
DW 1,.35
DW 2,.36
DW 3,.37
DW .38
.33:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+478
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,38
DAD D
MOV E,M
MVI D,0
XCHG
JMP .39
.41:
LXI H,.1+498
PUSH H
CALL printf_
POP D
LXI H,.1+505
PUSH H
CALL printf_
POP D
JMP .40
.42:
LXI H,.1+543
PUSH H
CALL printf_
POP D
LXI H,.1+550
PUSH H
CALL printf_
POP D
JMP .40
.43:
LXI H,.1+590
PUSH H
CALL printf_
POP D
LXI H,.1+597
PUSH H
CALL printf_
POP D
JMP .40
.44:
LXI H,.1+636
PUSH H
CALL printf_
POP D
LXI H,.1+643
PUSH H
CALL printf_
POP D
JMP .40
.39:
CALL .swt
DW 4
DW 0,.41
DW 1,.42
DW 2,.43
DW 3,.44
DW .40
.40:
CALL pager_
.24:
RET
.2 EQU 0
.1:
DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
DB 97,0,37,115,46,99,108,114,114,97,109,100,107,32,32
DB 32,32,32,32,61,32,0,67,76,82,95,78,69,86,69
DB 82,0,67,76,82,95,65,85,84,79,0,67,76,82,95
DB 65,76,76,87,65,89,83,0,37,115,46,100,115,107,121
DB 101,110,97,98,108,101,32,32,32,32,61,32,0,84,82
DB 85,69,0,70,65,76,83,69,0,37,115,46,117,97,114
DB 116,101,110,97,98,108,101,32,32,32,32,61,32,0,84
DB 82,85,69,0,70,65,76,83,69,0,37,115,46,118,100
DB 117,101,110,97,98,108,101,32,32,32,32,32,61,32,0
DB 84,82,85,69,0,70,65,76,83,69,0,37,115,46,102
DB 100,101,110,97,98,108,101,32,32,32,32,32,32,61,32
DB 0,84,82,85,69,0,70,65,76,83,69,0,37,115,46
DB 102,100,116,114,97,99,101,32,32,32,32,32,32,32,61
DB 32,0,83,105,108,101,110,116,0,70,97,116,97,108,32
DB 69,114,114,111,114,115,0,65,108,108,32,69,114,114,111
DB 114,115,0,69,118,101,114,121,116,104,105,110,103,0,85
DB 110,107,110,111,119,110,33,33,0,37,115,46,102,100,109
DB 101,100,105,97,32,32,32,32,32,32,32,61,32,0,70
DB 68,77,55,50,48,0,32,32,51,46,53,32,55,50,48
DB 75,66,32,50,45,115,105,100,101,100,32,56,48,32,84
DB 114,107,115,32,57,32,83,101,99,116,111,114,115,0,70
DB 68,77,49,52,52,0,32,32,51,46,53,32,49,46,52
DB 52,77,66,32,50,45,115,105,100,101,100,32,56,48,32
DB 84,114,107,115,32,49,56,32,83,101,99,116,111,114,115
DB 0,70,68,77,51,54,48,0,32,32,53,46,50,53,32
DB 51,54,48,75,66,32,50,45,115,105,100,101,100,32,52
DB 48,32,84,114,107,115,32,57,32,83,101,99,116,111,114
DB 115,0,70,68,77,49,50,48,0,32,32,51,46,53,32
DB 49,46,50,77,66,32,50,45,115,105,100,101,100,32,56
DB 48,32,84,114,107,115,32,49,53,32,83,101,99,116,111
DB 114,115,0,85,110,107,110,111,119,110,33,33,0,37,115
DB 46,102,100,109,101,100,105,97,97,108,116,32,32,32,32
DB 61,32,0,70,68,77,55,50,48,0,32,32,51,46,53
DB 32,55,50,48,75,66,32,50,45,115,105,100,101,100,32
DB 56,48,32,84,114,107,115,32,57,32,83,101,99,116,111
DB 114,115,0,70,68,77,49,52,52,0,32,32,51,46,53
DB 32,49,46,52,52,77,66,32,50,45,115,105,100,101,100
DB 32,56,48,32,84,114,107,115,32,49,56,32,83,101,99
DB 116,111,114,115,0,70,68,77,51,54,48,0,32,32,53
DB 46,50,53,32,51,54,48,75,66,32,50,45,115,105,100
DB 101,100,32,52,48,32,84,114,107,115,32,57,32,83,101
DB 99,116,111,114,115,0,70,68,77,49,50,48,0,32,32
DB 51,46,53,32,49,46,50,77,66,32,50,45,115,105,100
DB 101,100,32,56,48,32,84,114,107,115,32,49,53,32,83
DB 101,99,116,111,114,115,0
extrn printf_
extrn strcpy_
extrn pager_
extrn .eq
END


BIN
branches/s100/Apps/crossdev/CNAMEPT2.O

Binary file not shown.

794
branches/s100/Apps/crossdev/CNAMEPT3.ASM

@ -0,0 +1,794 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global cache_,17
PUBLIC cnamept3_
cnamept3_: lxi d,.2
call csave
LXI H,.1+0
PUSH H
LXI H,cache_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,cache_
PUSH H
LXI H,.1+17
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,39
DAD D
MOV E,M
MVI D,0
XCHG
JMP .3
.5:
LXI H,.1+37
PUSH H
CALL printf_
POP D
JMP .4
.6:
LXI H,.1+42
PUSH H
CALL printf_
POP D
JMP .4
.3:
CALL .swt
DW 2
DW 0,.6
DW 1,.5
DW .4
.4:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+48
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,40
DAD D
MOV E,M
MVI D,0
XCHG
JMP .7
.9:
LXI H,.1+68
PUSH H
CALL printf_
POP D
JMP .8
.10:
LXI H,.1+73
PUSH H
CALL printf_
POP D
JMP .8
.7:
CALL .swt
DW 2
DW 0,.10
DW 1,.9
DW .8
.8:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,40
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .11
LXI H,cache_
PUSH H
LXI H,.1+79
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,41
DAD D
MOV E,M
MVI D,0
XCHG
JMP .12
.14:
LXI H,.1+95
PUSH H
CALL printf_
POP D
JMP .13
.15:
LXI H,.1+102
PUSH H
CALL printf_
POP D
JMP .13
.16:
LXI H,.1+109
PUSH H
CALL printf_
POP D
JMP .13
.17:
LXI H,.1+120
PUSH H
CALL printf_
POP D
JMP .13
.12:
CALL .swt
DW 3
DW 0,.14
DW 1,.15
DW 2,.16
DW .17
.13:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+130
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,42
DAD D
MOV E,M
MVI D,0
XCHG
JMP .18
.20:
LXI H,.1+149
PUSH H
CALL printf_
POP D
JMP .19
.21:
LXI H,.1+154
PUSH H
CALL printf_
POP D
JMP .19
.22:
LXI H,.1+160
PUSH H
CALL printf_
POP D
JMP .19
.18:
CALL .swt
DW 2
DW 0,.21
DW 1,.20
DW .22
.19:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,43
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+170
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
.11:
LXI H,cache_
PUSH H
LXI H,.1+194
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,45
DAD D
MOV E,M
MVI D,0
XCHG
JMP .23
.25:
LXI H,.1+214
PUSH H
CALL printf_
POP D
JMP .24
.26:
LXI H,.1+219
PUSH H
CALL printf_
POP D
JMP .24
.23:
CALL .swt
DW 2
DW 0,.26
DW 1,.25
DW .24
.24:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,45
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .27
LXI H,cache_
PUSH H
LXI H,.1+225
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,46
DAD D
MOV E,M
MVI D,0
XCHG
JMP .28
.30:
LXI H,.1+245
PUSH H
CALL printf_
POP D
JMP .29
.31:
LXI H,.1+252
PUSH H
CALL printf_
POP D
JMP .29
.32:
LXI H,.1+259
PUSH H
CALL printf_
POP D
JMP .29
.33:
LXI H,.1+270
PUSH H
CALL printf_
POP D
JMP .29
.28:
CALL .swt
DW 3
DW 0,.30
DW 1,.31
DW 2,.32
DW .33
.29:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+280
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,47
DAD D
MOV E,M
MVI D,0
XCHG
JMP .34
.36:
LXI H,.1+300
PUSH H
CALL printf_
POP D
JMP .35
.37:
LXI H,.1+305
PUSH H
CALL printf_
POP D
JMP .35
.38:
LXI H,.1+311
PUSH H
CALL printf_
POP D
JMP .35
.34:
CALL .swt
DW 2
DW 0,.37
DW 1,.36
DW .38
.35:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,48
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+321
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+345
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,50
DAD D
MOV E,M
MVI D,0
XCHG
JMP .39
.41:
LXI H,.1+365
PUSH H
CALL printf_
POP D
JMP .40
.42:
LXI H,.1+370
PUSH H
CALL printf_
POP D
JMP .40
.43:
LXI H,.1+376
PUSH H
CALL printf_
POP D
JMP .40
.39:
CALL .swt
DW 2
DW 0,.42
DW 1,.41
DW .43
.40:
CALL pager_
.27:
LXI H,cache_
PUSH H
LXI H,.1+386
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,51
DAD D
MOV E,M
MVI D,0
XCHG
JMP .44
.46:
LXI H,.1+406
PUSH H
CALL printf_
POP D
JMP .45
.47:
LXI H,.1+414
PUSH H
CALL printf_
POP D
JMP .45
.44:
CALL .swt
DW 2
DW 1,.46
DW 2,.47
DW .45
.45:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,52
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+422
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,53
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+452
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,54
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,54
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+475
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,24
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,3
POP D
CALL .eq
JZ .48
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,56
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+511
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,57
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+533
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,58
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+559
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,59
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+585
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,60
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+611
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+637
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,61
DAD D
MOV E,M
MVI D,0
XCHG
JMP .49
.51:
LXI H,.1+657
PUSH H
CALL printf_
POP D
JMP .50
.52:
LXI H,.1+662
PUSH H
CALL printf_
POP D
JMP .50
.53:
LXI H,.1+668
PUSH H
CALL printf_
POP D
JMP .50
.49:
CALL .swt
DW 2
DW 0,.52
DW 1,.51
DW .53
.50:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+678
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,62
DAD D
MOV E,M
MVI D,0
XCHG
JMP .54
.56:
LXI H,.1+698
PUSH H
CALL printf_
POP D
JMP .55
.57:
LXI H,.1+703
PUSH H
CALL printf_
POP D
JMP .55
.58:
LXI H,.1+709
PUSH H
CALL printf_
POP D
JMP .55
.54:
CALL .swt
DW 2
DW 0,.57
DW 1,.56
DW .58
.55:
CALL pager_
.48:
RET
.2 EQU 0
.1:
DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
DB 97,0,37,115,46,102,100,109,97,117,116,111,32,32,32
DB 32,32,32,32,61,32,0,84,82,85,69,0,70,65,76
DB 83,69,0,37,115,46,105,100,101,101,110,97,98,108,101
DB 32,32,32,32,32,61,32,0,84,82,85,69,0,70,65
DB 76,83,69,0,37,115,46,105,100,101,116,114,97,99,101
DB 32,32,61,32,0,83,73,76,69,78,84,0,69,82,82
DB 79,82,83,0,69,86,69,82,89,84,72,73,78,71,0
DB 85,110,107,110,111,119,110,33,33,0,37,115,46,100,101
DB 56,98,105,116,32,32,32,32,32,32,32,61,32,0,84
DB 82,85,69,0,70,65,76,83,69,0,85,110,107,110,111
DB 119,110,33,33,0,37,115,46,105,100,101,99,97,112,97
DB 99,105,116,121,32,32,32,61,32,37,100,77,66,0,37
DB 115,46,112,112,105,100,101,101,110,97,98,108,101,32,32
DB 32,61,32,0,84,82,85,69,0,70,65,76,83,69,0
DB 37,115,46,112,112,105,100,101,116,114,97,99,101,32,32
DB 32,32,61,32,0,83,73,76,69,78,84,0,69,82,82
DB 79,82,83,0,69,86,69,82,89,84,72,73,78,71,0
DB 85,110,107,110,111,119,110,33,33,0,37,115,46,112,112
DB 105,100,101,56,98,105,116,32,32,32,32,32,61,32,0
DB 84,82,85,69,0,70,65,76,83,69,0,85,110,107,110
DB 111,119,110,33,33,0,37,115,46,112,112,105,100,101,99
DB 97,112,97,99,105,116,121,32,61,32,37,100,75,66,0
DB 37,115,46,112,112,105,100,101,115,108,111,119,32,32,32
DB 32,32,61,32,0,84,82,85,69,0,70,65,76,83,69
DB 0,85,110,107,110,111,119,110,33,33,0,37,115,46,98
DB 111,111,116,116,121,112,101,32,32,32,32,32,32,61,32
DB 0,66,84,95,77,69,78,85,0,66,84,95,65,85,84
DB 79,0,37,115,46,98,111,111,116,116,105,109,101,111,117
DB 116,32,32,32,61,32,37,100,32,115,101,99,111,110,100
DB 115,0,37,115,46,98,111,111,116,100,101,102,97,117,108
DB 116,32,32,32,61,32,37,99,58,0,37,115,46,98,97
DB 117,100,114,97,116,101,32,32,32,32,32,32,61,32,37
DB 117,32,40,48,120,37,48,52,120,41,32,66,97,117,100
DB 0,37,115,46,99,107,100,105,118,32,32,32,32,32,32
DB 32,32,32,61,32,37,100,0,37,115,46,109,101,109,119
DB 97,105,116,32,32,32,32,32,32,32,61,32,48,120,37
DB 48,50,120,0,37,115,46,105,111,119,97,105,116,32,32
DB 32,32,32,32,32,32,61,32,48,120,37,48,50,120,0
DB 37,115,46,99,110,116,108,98,48,32,32,32,32,32,32
DB 32,32,61,32,48,120,37,48,50,120,0,37,115,46,99
DB 110,116,108,98,49,32,32,32,32,32,32,32,32,61,32
DB 48,120,37,48,50,120,0,37,115,46,115,100,101,110,97
DB 98,108,101,32,32,32,32,32,32,61,32,0,84,82,85
DB 69,0,70,65,76,83,69,0,85,110,107,110,111,119,110
DB 33,33,0,37,115,46,115,100,116,114,97,99,101,32,32
DB 32,32,32,32,32,61,32,0,84,82,85,69,0,70,65
DB 76,83,69,0,85,110,107,110,111,119,110,33,33,0
extrn printf_
extrn strcpy_
extrn pager_
extrn .eq
END


BIN
branches/s100/Apps/crossdev/CNAMEPT3.O

Binary file not shown.

742
branches/s100/Apps/crossdev/CNAMEPT4.ASM

@ -0,0 +1,742 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global cache_,17
PUBLIC cnamept4_
cnamept4_: lxi d,.2
call csave
LXI H,.1+0
PUSH H
LXI H,cache_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,24
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,3
POP D
CALL .eq
JZ .3
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,63
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+17
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+41
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
MOV E,M
MVI D,0
XCHG
JMP .4
.6:
LXI H,.1+61
PUSH H
CALL printf_
POP D
JMP .5
.7:
LXI H,.1+66
PUSH H
CALL printf_
POP D
JMP .5
.8:
LXI H,.1+72
PUSH H
CALL printf_
POP D
JMP .5
.4:
CALL .swt
DW 2
DW 0,.7
DW 1,.6
DW .8
.5:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+82
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,66
DAD D
MOV E,M
MVI D,0
XCHG
JMP .9
.11:
LXI H,.1+102
PUSH H
CALL printf_
POP D
JMP .10
.12:
LXI H,.1+107
PUSH H
CALL printf_
POP D
JMP .10
.13:
LXI H,.1+113
PUSH H
CALL printf_
POP D
JMP .10
.9:
CALL .swt
DW 2
DW 0,.12
DW 1,.11
DW .13
.10:
CALL pager_
.3:
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,67
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+123
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+149
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,68
DAD D
MOV E,M
MVI D,0
XCHG
JMP .14
.16:
LXI H,.1+169
PUSH H
CALL printf_
POP D
JMP .15
.17:
LXI H,.1+178
PUSH H
CALL printf_
POP D
JMP .15
.18:
LXI H,.1+188
PUSH H
CALL printf_
POP D
JMP .15
.19:
LXI H,.1+198
PUSH H
CALL printf_
POP D
JMP .15
.20:
LXI H,.1+208
PUSH H
CALL printf_
POP D
JMP .15
.14:
CALL .swt
DW 4
DW 0,.16
DW 1,.17
DW 2,.18
DW 3,.19
DW .20
.15:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,69
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+218
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+240
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,84
DAD D
MOV E,M
MVI D,0
XCHG
JMP .21
.23:
LXI H,.1+260
PUSH H
CALL printf_
POP D
JMP .22
.24:
LXI H,.1+265
PUSH H
CALL printf_
POP D
JMP .22
.25:
LXI H,.1+271
PUSH H
CALL printf_
POP D
JMP .22
.21:
CALL .swt
DW 2
DW 0,.24
DW 1,.23
DW .25
.22:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,84
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .26
LXI H,.1+281
PUSH H
CALL printf_
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,71
DAD D
MOV E,M
MVI D,0
XCHG
JMP .27
.29:
LXI H,.1+301
PUSH H
CALL printf_
POP D
JMP .28
.30:
LXI H,.1+306
PUSH H
CALL printf_
POP D
JMP .28
.31:
LXI H,.1+312
PUSH H
CALL printf_
POP D
JMP .28
.27:
CALL .swt
DW 2
DW 0,.30
DW 1,.29
DW .31
.28:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,71
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .32
LXI H,cache_
PUSH H
LXI H,.1+322
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,72
DAD D
MOV E,M
MVI D,0
XCHG
JMP .33
.35:
LXI H,.1+342
PUSH H
CALL printf_
POP D
JMP .34
.36:
LXI H,.1+349
PUSH H
CALL printf_
POP D
JMP .34
.37:
LXI H,.1+356
PUSH H
CALL printf_
POP D
JMP .34
.38:
LXI H,.1+367
PUSH H
CALL printf_
POP D
JMP .34
.33:
CALL .swt
DW 3
DW 0,.35
DW 1,.36
DW 2,.37
DW .38
.34:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+377
PUSH H
CALL printf_
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+397
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,75
DAD D
MOV E,M
MVI D,0
XCHG
JMP .39
.41:
LXI H,.1+417
PUSH H
CALL printf_
POP D
JMP .40
.42:
LXI H,.1+422
PUSH H
CALL printf_
POP D
JMP .40
.43:
LXI H,.1+428
PUSH H
CALL printf_
POP D
JMP .40
.39:
CALL .swt
DW 2
DW 0,.42
DW 1,.41
DW .43
.40:
CALL pager_
.32:
.26:
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,76
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+438
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+460
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,78
DAD D
MOV E,M
MVI D,0
XCHG
JMP .44
.46:
LXI H,.1+480
PUSH H
CALL printf_
POP D
JMP .45
.47:
LXI H,.1+485
PUSH H
CALL printf_
POP D
JMP .45
.48:
LXI H,.1+491
PUSH H
CALL printf_
POP D
JMP .45
.44:
CALL .swt
DW 2
DW 0,.47
DW 1,.46
DW .48
.45:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,78
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .49
LXI H,cache_
PUSH H
LXI H,.1+501
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,79
DAD D
MOV E,M
MVI D,0
XCHG
JMP .50
.52:
LXI H,.1+520
PUSH H
CALL printf_
POP D
JMP .51
.53:
LXI H,.1+525
PUSH H
CALL printf_
POP D
JMP .51
.54:
LXI H,.1+531
PUSH H
CALL printf_
POP D
JMP .51
.50:
CALL .swt
DW 2
DW 0,.53
DW 1,.52
DW .54
.51:
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+541
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,80
DAD D
MOV E,M
MVI D,0
XCHG
JMP .55
.57:
LXI H,.1+561
PUSH H
CALL printf_
POP D
JMP .56
.58:
LXI H,.1+568
PUSH H
CALL printf_
POP D
JMP .56
.59:
LXI H,.1+575
PUSH H
CALL printf_
POP D
JMP .56
.60:
LXI H,.1+586
PUSH H
CALL printf_
POP D
JMP .56
.55:
CALL .swt
DW 3
DW 0,.57
DW 1,.58
DW 2,.59
DW .60
.56:
CALL pager_
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,73
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,cache_
PUSH H
LXI H,.1+596
PUSH H
CALL printf_
POP D
POP D
POP D
CALL pager_
LXI H,cache_
PUSH H
LXI H,.1+618
PUSH H
CALL printf_
POP D
POP D
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,83
DAD D
MOV E,M
MVI D,0
XCHG
JMP .61
.63:
LXI H,.1+638
PUSH H
CALL printf_
POP D
JMP .62
.64:
LXI H,.1+643
PUSH H
CALL printf_
POP D
JMP .62
.65:
LXI H,.1+649
PUSH H
CALL printf_
POP D
JMP .62
.61:
CALL .swt
DW 2
DW 0,.64
DW 1,.63
DW .65
.62:
CALL pager_
.49:
RET
.2 EQU 0
.1:
DB 115,121,115,99,102,103,45,62,99,110,102,103,100,97,116
DB 97,0,37,115,46,115,100,99,97,112,97,99,105,116,121
DB 32,32,32,32,61,32,37,117,75,66,0,37,115,46,115
DB 100,99,115,105,111,32,32,32,32,32,32,32,32,61,32
DB 0,84,82,85,69,0,70,65,76,83,69,0,85,110,107
DB 110,111,119,110,33,33,0,37,115,46,115,100,99,115,105
DB 111,102,97,115,116,32,32,32,32,61,32,0,84,82,85
DB 69,0,70,65,76,83,69,0,85,110,107,110,111,119,110
DB 33,33,0,37,115,46,100,101,102,105,111,98,121,116,101
DB 32,32,32,32,32,61,32,48,120,37,48,50,120,0,37
DB 115,46,116,101,114,109,116,121,112,101,32,32,32,32,32
DB 32,61,32,0,84,69,82,77,95,84,84,89,0,84,69
DB 82,77,95,65,78,83,73,0,84,69,82,77,95,87,89
DB 83,69,0,84,69,82,77,95,86,84,53,50,0,85,110
DB 107,110,111,119,110,33,33,0,37,115,46,114,101,118,105
DB 115,105,111,110,32,32,32,32,32,32,61,32,37,100,0
DB 37,115,46,112,114,112,101,110,97,98,108,101,32,32,32
DB 32,32,61,32,0,84,82,85,69,0,70,65,76,83,69
DB 0,85,110,107,110,111,119,110,33,33,0,37,115,46,112
DB 114,112,115,100,101,110,97,98,108,101,32,32,32,61,32
DB 0,84,82,85,69,0,70,65,76,83,69,0,85,110,107
DB 110,111,119,110,33,33,0,37,115,46,112,114,112,115,100
DB 116,114,97,99,101,32,32,32,32,61,32,0,83,73,76
DB 69,78,84,0,69,82,82,79,82,83,0,69,86,69,82
DB 89,84,72,73,78,71,0,85,110,107,110,111,119,110,33
DB 33,0,37,115,46,112,114,112,115,100,99,97,112,97,99
DB 105,116,121,32,61,32,0,37,115,46,112,114,112,99,111
DB 110,101,110,97,98,108,101,32,32,61,32,0,84,82,85
DB 69,0,70,65,76,83,69,0,85,110,107,110,111,119,110
DB 33,33,0,37,115,46,98,105,111,115,115,105,122,101,32
DB 32,32,32,32,32,61,32,37,100,0,37,115,46,112,112
DB 112,101,110,97,98,108,101,32,32,32,32,32,61,32,0
DB 84,82,85,69,0,70,65,76,83,69,0,85,110,107,110
DB 111,119,110,33,33,0,37,115,46,112,112,112,115,100,101
DB 110,97,98,108,101,32,32,61,32,0,84,82,85,69,0
DB 70,65,76,83,69,0,85,110,107,110,111,119,110,33,33
DB 0,37,115,46,112,112,112,115,100,116,114,97,99,101,32
DB 32,32,32,61,32,0,83,73,76,69,78,84,0,69,82
DB 82,79,82,83,0,69,86,69,82,89,84,72,73,78,71
DB 0,85,110,107,110,111,119,110,33,33,0,37,115,46,112
DB 112,112,99,97,112,97,99,105,116,121,32,32,32,61,32
DB 37,100,0,37,115,46,112,112,112,99,111,110,101,110,97
DB 98,108,101,32,32,61,32,0,84,82,85,69,0,70,65
DB 76,83,69,0,85,110,107,110,111,119,110,33,33,0
extrn printf_
extrn strcpy_
extrn pager_
extrn .eq
END


BIN
branches/s100/Apps/crossdev/CNAMEPT4.O

Binary file not shown.

210
branches/s100/Apps/crossdev/CNFGDATA.LIB

@ -0,0 +1,210 @@
; cnfgdata.lib 7/19/2012 dwg -
byte equ 1
word equ 2
;; /* cnfgdata.h 6/04/2012 dwg - */
;;
;; struct CNFGDATA {
;; unsigned char rmj;
cfgrmj equ 08009h
;;
;; unsigned char rmn;
cfgrmn equ cfgrmj + byte
;;
;; unsigned char rup;
cfgrup equ cfgrmn + byte
;;
;; unsigned char rtp;
cfgrtp equ cfgrup + byte
;;
;; unsigned char diskboot;
diskboot equ cfgrtp + byte
;;
;; unsigned char devunit;
devunit equ diskboot + byte
;;
;; unsigned int bootlu;
bootlu equ devunit + byte
;;
;; unsigned char hour;
hour equ bootlu + word
;;
;; unsigned char minute;
minute equ hour + byte
;;
;; unsigned char second;
second equ minute + byte
;;
;; unsigned char month;
month equ second + byte
;;
;; unsigned char day;
day equ month + byte
;;
;; unsigned char year;
year equ day + byte
;;
;; unsigned char freq;
freq equ year + byte
;;
;; unsigned char platform;
platform equ freq+ byte
;;
;; unsigned char dioplat;
dioplat equ platform + byte
;;
;; unsigned char vdumode;
vdumode equ dioplat + byte
;;
;; unsigned int romsize;
romsize equ vdumode + byte
;;
;; unsigned int ramsize;
ramsize equ romsize + word
;;
;; unsigned char clrramdk;
clrramdk equ ramsize + word
;;
;; unsigned char dskyenable;
dskyenable equ clrramdk + byte
;;
;; unsigned char uartenable;
uartenable equ dskyenable + byte
;;
;; unsigned char vduenable;
vduenable equ uartenable + byte
;;
;; unsigned char fdenable;
fdenable equ vduenable + byte
;;
;; unsigned char fdtrace;
fdtrace equ fdenable + byte
;;
;; unsigned char fdmedia;
fdmedia equ fdtrace + byte
;;
;; unsigned char fdmediaalt;
fdmediaalt equ fdmedia + byte
;;
;; unsigned char fdmauto;
fdmauto equ fdmediaalt + byte
;;
;; unsigned char ideenable;
ideenable equ fdmauto + byte
;;
;; unsigned char idetrace;
idetrace equ ideenable + byte
;;
;; unsigned char ide8bit;
ide8bit equ idetrace + byte
;;
;; unsigned int idecapacity;
idecapacity equ ide8bit + byte
;;
;; unsigned char ppideenable;
ppideenable equ idecapacity + word
;;
;; unsigned char ppidetrace;
ppidetrace equ ppideenable + byte
;;
;; unsigned char ppide8bit;
ppide8bit equ ppidetrace + byte
;;
;; unsigned int ppidecapacity;
ppidecapacity equ ppide8bit + byte
;;
;; unsigned char ppideslow;
ppideslow equ ppidecapacity + word
;;
;; unsigned char boottype;
boottype equ ppideslow + byte
;;
;; unsigned char boottimeout;
boottimeout equ boottype + byte
;;
;; unsigned char bootdefault;
bootdefault equ boottimeout + byte
;;
;; unsigned int baudrate;
baudrate equ bootdefault + byte
;;
;; unsigned char ckdiv;
ckdiv equ baudrate + word
;;
;; unsigned char memwait;
memwait equ ckdiv + byte
;;
;; unsigned char iowait;
iowait equ memwait + byte
;;
;; unsigned char cntlb0;
cntlb0 equ iowait + byte
;;
;; unsigned char cntlb1;
cntlb1 equ cntlb0 + byte
;;
;; unsigned char sdenable;
sdenable equ cntlb1 + byte
;;
;; unsigned char sdtrace;
sdtrace equ sdenable + byte
;;
;; unsigned int sdcapacity;
sdcapacity equ sdtrace + byte
;;
;; unsigned char sdcsio;
sdcsio equ sdcapacity + word
;;
;; unsigned char sdcsiofast;
sdcsiofast equ sdcsio + byte
;;
;; unsigned char defiobyte;
defiobyte equ sdcsiofast + byte
;;
;; unsigned char termtype;
termtype equ defiobyte + byte
;;
;; unsigned int revision;
revision equ termtype + byte
;;
;; unsigned char prpsdenable;
prpsdenable equ revision + word
;;
;; unsigned char prpsdtrace;
prpsdtrace equ prpsdenable + byte
;;
;; unsigned int prpsdcapacity;
prpsdcapacity equ prpsdtrace + byte
;;
;; unsigned char prpconenable;
prpconenable equ prpsdcapacity + word
;;
;; unsigned int biossize;
biossize equ prpconenable + byte
;;
;; unsigned char pppenable;
pppenable equ biossize + word
;;
;; unsigned char pppsdenable;
pppsdenable equ pppenable + byte
;;
;; unsigned char pppsdtrace;
pppsdtrace equ pppsdenable + byte
;;
;; unsigned int pppsdcapacity;
pppsdcapacity equ pppsdtrace + byte
;;
;; unsigned char pppconenable;
pppconenable equ pppsdcapacity + word
;;
;; unsigned char prpenable;
prpenable equ pppconenable + byte
;;
;; };
;;
;; /********************/
;; /* eof - cnfgdata.h */
;; /********************/


80
branches/s100/Apps/crossdev/CONVERT.C

@ -0,0 +1,80 @@
/* convert.c 7/11/2012 dwg -
The purpose of this program is similar to the CP/M dump program
except that in addition to the normal hexadecimal bytes, a field
of ascii bytes to the right are displayed as well.
*/
#include "stdio.h"
char visible[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 10 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 20 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 30 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 40 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 50 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 60 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, /* 70 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 80 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 90 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* A0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* B0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* C0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* D0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* E0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* F0 */
};
#include "cvt2h.h"
unsigned char sector[32767];
main(argc,argv)
int argc;
char *argv[];
{
int i,j;
int offset;
int result;
unsigned char byte;
char name[32];
FILE * fd;
for(i=0;i<sizeof(sector);i++) sector[i] = 0;
banner("DUMP.COM");
/* cvt2h(0x0100,12*1024,"dumpcomh.h"); */
if(1 == argc) {
printf("Sorry, no input file specified");
exit(1);
}
fd = fopen(argv[1],"r");
if(NULL == fd) {
printf("Sorry, cannot open input file");
exit(1);
}
printf("Converting %s\n\n",argv[1]);
result = fread(sector,32767,1,fd);
for(i=32767;i>0;i--) {
if(sector[i] != 0) break;
}
sprintf(name,"sect%04x.h",0);
cvt2h(sector,i,name);
fclose(fd);
exit(0);
}


28
branches/s100/Apps/crossdev/COREAPPS.BAK

@ -0,0 +1,28 @@
rem coreapps.bat 2/15/2013 dwg - build all core apps using batch files
if not exist access.cpm call access.bat
if not exist cpmname.cpm call cpmname.bat
if not exist findfile.cpm call findfile.bat
if not exist findfile.cpm pause
if not exist map.cpm call map.bat
if not exist meta.cpm call meta.bat
if not exist multifmt.cpm call multifmt.bat
if not exist rem.cpm call makerem.bat
if not exist setlabel.cpm call setlabel.bat
if not exist sysgen.cpm call sysgen.bat
if not exist termtype.cpm call termtype.bat
if not exist view.cpm call view.bat
rem All Core Apps Built
dir *.cpm /w

38
branches/s100/Apps/crossdev/COREAPPS.BAT

@ -0,0 +1,38 @@
rem coreapps.bat 2/15/2013 dwg - build all core apps using batch files
if not exist access.cpm call access.bat
if not exist access.cpm pause
if not exist cpmname.cpm call cpmname.bat
if not exist cpmname.cpm pause
if not exist findfile.cpm call findfile.bat
if not exist findfile.cpm pause
if not exist map.cpm call map.bat
if not exist map.cpm pause
if not exist meta.cpm call meta.bat
if not exist meta.cpm pause
if not exist multifmt.cpm call multifmt.bat
if not exist multifmt.cpm pause
if not exist rem.cpm call makerem.bat
if not exist rem.cpm pause
if not exist setlabel.cpm call setlabel.bat
if not exist setlabel.cpm pause
if not exist sysgen.cpm call sysgen.bat
if not exist sysgen.cpm pause
if not exist termtype.cpm call termtype.bat
if not exist termtype.cpm pause
if not exist view.cpm call view.bat
if not exist view.cpm pause
rem All Core Apps Built
dir *.cpm /w

71
branches/s100/Apps/crossdev/COREAPPS.SUB

@ -0,0 +1,71 @@
e:rmac access
e:rmac banner
e:rmac findfile
e:rmac hbios
e:rmac identity
e:rmac labelib
e:rmac memory
e:rmac metadata
e:rmac printers
e:rmac rem
e:rmac setlabel
e:rmac terminal
as asmiface
as bdoscall
as bioscall
cc cbanner
as cbanner
cc clogical
as clogical
cc cmemory
as cmemory
cc cnamept1
as cnamept1
cc cnamept2
as cnamept2
cc cnamept3
as cnamept3
cc cnamept4
as cnamept4
cc cpmname
as cpmname
cc ctermcap
as ctermcap
as diagnose
cc map
as map
cc meta
as meta
cc multifmt
as multifmt
cc sectorio
as sectorio
cc sysgen
as sysgen
cc termtype
as termtype
cc view
as view
e:link access,memory,banner,printers
ln cpmname.o ctermcap.o cnamept1.o cnamept2.o cnamept3.o cnamept4.o cmemory.o diagnose.o bioscall.o bdoscall.o c.lib
e:link findfile,hbios,identity,banner,memory,printers,terminal
ln map.o asmiface.o bioscall.o bdoscall.o clogical.o diagnose.o ctermcap.o c.lib
ln meta.o asmiface.o bioscall.o bdoscall.o cbanner.o clogical.o diagnose.o ctermcap.o sectorio.o c.lib
ln multifmt.o asmiface.o bioscall.o bdoscall.o clogical.o cmemory.o sectorio.o diagnose.o ctermcap.o c.lib
e:link rem
e:link setlabel,labelib,identity,printers,banner,metadata,memory
ln sysgen.o sectorio.o ctermcap.o diagnose.o bdoscall.o bioscall.o c.lib
ln termtype.o asmiface.o ctermcap.o diagnose.o c.lib
ln view.o ctermcap.o diagnose.o bdoscall.o bioscall.o c.lib
e:access access.com
e:access cpmname.com
e:access findfile.com
e:access map.com
e:access meta.com
e:access multifmt.com
e:access rem.com
e:access setlabel.com
e:access sysgen.com
e:access termtype.com
e:access view.com


5
branches/s100/Apps/crossdev/CPM80.H

@ -63,8 +63,7 @@ struct BIOS {
char diskboot;
char bootdrive;
char devunit;
char rmj;
char rmn;
char rup;
@ -193,4 +192,4 @@ struct DPHMAP * pDPHVEC[MAXDRIVE];
/*****************/
/* eof - cpm80.h */
/*****************/



82
branches/s100/Apps/crossdev/CPMAPPL.LIB

@ -0,0 +1,82 @@
; cpmappl.lib 2/10/2012 dwg - begin 1.6 development
; cpmappl.lib 2/04/2012 dwg - fix typo mov becomes mvi
; cpmappl.lib 2/ 2/2012 dwg - initial version
;
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
;
do$start macro
start: jmp begin
public hexref
hexref db '0123456789ABCDEF'
public id$sig,id$rmj,id$rmn,id$rup,id$rtp,id$mon,id$day,id$yr
id$sig db 'ID'
id$rmj db A$RMJ
id$rmn db A$RMN
id$rup db A$RUP
id$rtp db A$RTP
id$mon db A$MONTH
id$day db A$DAY
id$yr dw A$YEAR
id$argv dw argv
db 0e5h
public pre$stk
pre$stk ds 2
public begin
begin: lxi h,0
dad sp
shld pre$stk
lxi sp,stack$top
nop
endm
;---------------------------------
do$end macro
lhld pre$stk
sphl
mvi c,13
call BDOS
ret
ds stack$size
stack$top:
endm
movfcb macro destn,source
lxi d,destn
lxi h,source
lxi b,LENFCB
ldir
endm
copyfcb macro fcbname,source
local around
jmp around
fcbname ds 32
around:
endm


3
branches/s100/Apps/crossdev/CPMBDOS.H

@ -1,4 +1,3 @@
/* cpmbdos.h 6/11/2012 dwg - */
#define TERMCPM 0
#define CONIN 1
@ -50,4 +49,4 @@ struct FCB {
char filetype[3];
char filler[24];
};



174
branches/s100/Apps/crossdev/CPMBDOS.LIB

@ -0,0 +1,174 @@
; cpmbdos.lib 1/19/2012 dwg - add READ$CON$BUF (10)
; cpmbdos.lib 1/15/2012 dwg - add more functions
;
; Copyright (C) 2011-2012 Douglas Goodall Licensed under GPL Ver 3.
;
; This file is part of NuBiosDWG and is free software: you can
; redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; either version 3 of the License, or (at your option) any later version.
; This file is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with it. If not, see <http://www.gnu.org/licenses/>.
;
; BDOS function codes
TERMCPM equ 0 ; return to command line
CREAD equ 1 ; read a character
CWRITE equ 2 ; write a character
PRINTSTR equ 9 ; print string
READ$CON$BUF equ 10 ; read console buffer
RETVERNO equ 12 ; return version number
DSKRESET equ 13 ; disk reset
SELDSK equ 14 ; select disk
FOPEN equ 15 ; open file
FCLOSE equ 16 ; close file
FDELETE equ 19 ; delete file
READSEQ equ 20 ; read sequential
WRITESEQ equ 21 ; write sequential
FMAKE equ 22 ; make file
FRENAME equ 23 ; rename file
RETCURR equ 25 ; return current disk, 0=a
SETDMA equ 26 ; set dma address
WRITERAND equ 34 ; write random record
FCOMPSIZE equ 35 ; compute file size
SETRANDREC equ 36 ; set random record
RESETDRIVE equ 37 ; reset drive
WRITERANDZF equ 40 ; write random with zero fill
OEMID equ 0E5h
; File Control Block
DR$OFS equ 0
F1$OFS equ DR$OFS+BYTESIZE
F2$OFS equ F1$OFS+BYTESIZE
F3$OFS equ F2$OFS+BYTESIZE
F4$OFS equ F3$OFS+BYTESIZE
F5$OFS equ F4$OFS+BYTESIZE
F6$OFS equ F5$OFS+BYTESIZE
F7$OFS equ F6$OFS+BYTESIZE
F8$OFS equ F7$OFS+BYTESIZE
T1$OFS equ F8$OFS+BYTESIZE
T2$OFS equ T1$OFS+BYTESIZE
T3$OFS equ T2$OFS+BYTESIZE
EX$OFS equ T3$OFS+BYTESIZE
S1$OFS equ EX$OFS+BYTESIZE
S2$OFS equ S1$OFS+BYTESIZE
RC$OFS equ S2$OFS+BYTESIZE
D0$OFS equ RC$OFS+BYTESIZE
CR$OFS equ DR$OFS+32
R0$OFS equ CR$OFS+BYTESIZE
R1$OFS equ R0$OFS+BYTESIZE
R2$OFS equ R1$OFS+BYTESIZE
FCB$LEN equ R2$OFS+BYTESIZE
; Memory Locations
BDOS equ 5 ; entry point fo BDOS function calls
PRIFCB equ 5Ch ; primary file control block address
SECFCB equ 6Ch ; secondary file control block address
LENFCB equ 32 ; length of file control block
DEFBUF equ 80h ; address of default buffer
EXIT macro
mvi c,TERMCPM
call BDOS
endm
conin macro
push b ; save context B&C
push d ; save context D&E
push h ; save context H&L
mvi c,CREAD ; set up for console input BDOS call
call BDOS ; call BDOS function entry point
pop h ; restore context H&L
pop d ; restore context D&E
pop b ; restore context B&C
endm
conout macro char
enter ; save all context regs
mvi c,CWRITE ; set for console output BDOS call
mvi e,char ; place output character in E as required
call bdos ; call BDOS function entry point
leave ; restore all context regs
endm
conouta macro
enter
mvi c,CWRITE
mov e,a
call bdos
leave
endm
PRINT macro addr
enter
mvi c,PRINTSTR
lxi d,addr
call BDOS
leave
endm
PTRPRT macro addr
enter ; save all context registers
lxi h,addr ; load the address parameter into H&L
mov e,m ; pick up LO byte of new pointer
inx h ; bump index register
mov d,m ; pick up HO byte of new pointer
mvi c,PRINTSTR ; assembled pointer used for printstring call
call BDOS
leave ; restore all context registers
endm
movfcb macro destn,source
lxi d,destn
lxi h,source
lxi b,LENFCB
ldir
endm
copyfcb macro fcbname,source
local around
jmp around
fcbname ds 32
around:
endm
printf macro parmdata
local around
local string
print string
jmp around
string db parmdata
db '$'
around:
endm
printmsg macro parmdata
enter
local around
local string
print string
jmp around
string db parmdata
db '$'
around:
leave
endm
newfcb macro fcbname,drive,filename
fcbname db drive,filename
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
endm
; eof - cpmbdos.lib


4
branches/s100/Apps/crossdev/CPMBIND.H

@ -208,6 +208,8 @@ struct BIOS {
#define DEV_PPIDE 0x40
#define DEV_SD 0x50
#define DEV_PRPSD 0x60
#define DEV_PPPSD 0x70
#define DEV_HDSK 0x80
#define PLT_N8VEM 1
#define PLT_ZETA 2
@ -679,4 +681,4 @@ TERM$VT52 equ 3
; eof - std.lib
*/



137
branches/s100/Apps/crossdev/CPMBIOS.LIB

@ -0,0 +1,137 @@
; cpmbios.lib 2/20/2012 dwg - get$off, get$drm, and get$spt need c=drvnum
; cpmbios.lib 12/26/2011 dwg -
; Copyright (C) 2011-2012 Douglas Goodall All Rights Reserved.
; For non-commercial use by N8VEM community
XLT$OFS equ 0 ; Translate Table
RV1$OFS equ XLT$OFS+WORDSIZE ; Reserved Field 1
RV2$OFS equ RV1$OFS+WORDSIZE ; Reserved Field 2
RV3$OFS equ RV2$OFS+WORDSIZE ; Reserved Field 3
DBF$OFS equ RV3$OFS+WORDSIZE ; Directory Buffer
DPB$OFS equ DBF$OFS+WORDSIZE ; Diskk Parameter Block Pointer
CSV$OFS equ DPB$OFS+WORDSIZE ; Checksum Vector
ALV$OFS equ CSV$OFS+WORDSIZE ; Allocation Vector
DPH$LEN equ ALV$OFS+WORDSIZE ; size of normal DPH
LU1$OFS equ ALV$OFS+WORDSIZE ; Logical Unit Signature Byte 1 'L'
LU2$OFS equ LU1$OFS+BYTESIZE ; Logical Unit Signature Byte 2 'U'
CUR$OFS equ LU2$OFS+BYTESIZE ; Current Logical Unit (default)
NLU$OFS equ CUR$OFS+WORDSIZE ; Number of LU's (capacity/9)
SPT$OFS equ 0 ; Sectors Per Track
BSH$OFS equ SPT$OFS+WORDSIZE ; Block Shift Factor
BLM$OFS equ BSH$OFS+BYTESIZE ; Data Allocation Block Mask
EXM$OFS equ BLM$OFS+BYTESIZE ; Extend Mask
DSM$OFS equ EXM$OFS+BYTESIZE ; Disk Size Max
DRM$OFS equ DSM$OFS+WORDSIZE ; Number of Directory Entries
AL0$OFS equ DRM$OFS+WORDSIZE ; Allocation bitmask for directories
AL1$OFS equ AL0$OFS+BYTESIZE ; Allocation bitmask for directories
CKS$OFS equ AL1$OFS+BYTESIZE ; Size of Directory Check Vector
OFF$OFS equ CKS$OFS+WORDSIZE ; Number of Reserved Tracks
DPB$LEN equ OFF$OFS+WORDSIZE ; Disk Parameter Block Length
; BIOS Memory Locations
BIBOOT equ 0E600h
BIWBOOT equ 0E603h
BICONST equ 0E606h
BICONIN equ 0E609h
BICONOUT equ 0E60Ch
BILIST equ 0E60Fh
BIPUNCH equ 0E612h
BIREADER equ 0E615h
BIHOME equ 0E618h
BISELDSK equ 0E61Bh
BISETTRK equ 0E61Eh
BISETSEC equ 0E621h
BISETDMA equ 0E624h
BIREAD equ 0E627h
BIWRITE equ 0E62Ah
BILISTST equ 0E62Dh
BISECTRN equ 0E630h
; These are rel zero drive number for talking to the BIOS
; BDOS typically uses rel one drive codes
BIDRVA equ 0
BIDRVB equ 1
BIDRVC equ 2
BIDRVD equ 3
BIDRVE equ 4
BIDRVF equ 5
BIDRVG equ 6
BIDRVH equ 7
; On entry: c=drive number
get$spt macro
push psw
push b
push d
call BISELDSK
lxi d,DPB$OFS
dad d
mov e,m
inx h
mov d,m
xchg
lxi d,SPT$OFS
dad d
mov e,m
inx h
mov d,m
xchg
pop d
pop b
pop psw
endm
; On entry: c=drive number
get$drm macro
push psw
push b
push d
call BISELDSK
lxi d,DPB$OFS
dad d
mov e,m
inx h
mov d,m
xchg
lxi d,DRM$OFS
dad d
mov e,m
inx h
mov d,m
xchg
pop d
pop b
pop psw
endm
; On entry, c=drive number
get$off macro
push psw
push b
push d
call BISELDSK
lxi d,DPB$OFS
dad d
mov e,m
inx h
mov d,m
xchg
lxi d,OFF$OFS
dad d
mov e,m
inx h
mov d,m
xchg
pop d
pop b
pop psw
endm
; eof - cpmbios.lib


164
branches/s100/Apps/crossdev/CPMNAME.ASM

@ -0,0 +1,164 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global pINFOLIS_,2
global pSYSCFG_,2
global line_,2
PUBLIC main_
main_: lxi d,.2
call csave
LXI H,5
SHLD line_
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
LXI H,-16384
SHLD pSYSCFG_
LHLD pSYSCFG_
LXI D,68
DAD D
MOV E,M
MVI D,0
PUSH D
CALL crtinit_
POP D
CALL crtclr_
LXI H,0
PUSH H
LXI H,0
PUSH H
CALL crtlc_
POP D
POP D
LXI H,0
PUSH H
LXI H,0
PUSH H
LXI H,3
PUSH H
LXI H,2
PUSH H
LXI H,2013
PUSH H
LXI H,16
PUSH H
LXI H,1
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
XCHG
LXI H,16
DAD SP
SPHL
LXI H,.1+36
PUSH H
CALL printf_
POP D
CALL pager_
CALL pager_
LXI H,-6596
SHLD ireghl_
CALL bioscall_
LHLD ireghl_
SHLD pINFOLIS_
LXI H,.1+72
PUSH H
CALL printf_
POP D
LHLD pINFOLIS_
INX H
INX H
MOV E,M
INX H
MOV D,M
XCHG
SHLD dregde_
LXI H,9
SHLD dregbc_
CALL bdoscall_
CALL pager_
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
LXI H,-16384
SHLD pSYSCFG_
LHLD pSYSCFG_
PUSH H
CALL cnamept1_
POP D
LHLD pSYSCFG_
PUSH H
CALL cnamept2_
POP D
LHLD pSYSCFG_
PUSH H
CALL cnamept3_
POP D
LHLD pSYSCFG_
PUSH H
CALL cnamept4_
POP D
RET
.2 EQU -7
.1:
DB 67,80,77,78,65,77,69,46,67,79,77,32,37,100,47
DB 37,100,47,37,100,32,118,37,100,46,37,100,46,37,100
DB 32,40,37,100,41,0,32,100,119,103,32,45,32,68,105
DB 115,112,108,97,121,32,83,121,115,116,101,109,32,67,111
DB 110,102,105,103,117,114,97,116,105,111,110,0,112,73,78
DB 70,79,76,73,83,84,45,62,98,97,110,112,116,114,32
DB 61,61,62,32,0
PUBLIC pager_
pager_: lxi d,.4
call csave
LHLD line_
INX H
SHLD line_
LXI H,.3+0
PUSH H
CALL printf_
POP D
LXI H,24
XCHG
LHLD line_
CALL .eq
JZ .5
LXI H,.3+2
PUSH H
CALL printf_
POP D
LXI H,1
SHLD dregbc_
CALL bdoscall_
LXI H,1
SHLD line_
.5:
RET
.4 EQU 0
.3:
DB 10,0,32,32,32,32,32,112,114,101,115,115,32,97,110
DB 121,32,107,101,121,32,116,111,32,99,111,110,116,105,110
DB 117,101,0
extrn printf_
extrn crtlc_
extrn crtclr_
extrn crtinit_
extrn cnamept4_
extrn cnamept3_
extrn cnamept2_
extrn cnamept1_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn bdoscall_
extrn dregde_
extrn dregbc_
extrn bioscall_
extrn ireghl_
extrn .eq
END


57
branches/s100/Apps/crossdev/CPMNAME.BAT

@ -0,0 +1,57 @@
rem cpmname.sub 9/5/2012 dwg - build cpmname from sources
if not exist cpmname.asm erase cpmname.cpm
if not exist cpmname.asm erase cpmname.o
if not exist cpmname.asm z80mu cc cpmname
if not exist cpmname.o erase cpmname.cpm
if not exist cpmname.o z80mu as cpmname
if not exist cnamept1.asm erase cpmname.cpm
if not exist cnamept1.asm erase cnamept1.o
if not exist cnamept1.asm z80mu cc cnamept1
if not exist cnamept1.o erase cpmname.cpm
if not exist cnamept1.o z80mu as cnamept1
if not exist cnamept2.asm erase cpmname.cpm
if not exist cnamept2.asm erase cnamept2.o
if not exist cnamept2.asm z80mu cc cnamept2
if not exist cnamept2.o erase cpmname.cpm
if not exist cnamept2.o z80mu as cnamept2
if not exist cnamept3.asm erase cpmname.cpm
if not exist cnamept3.asm erase cnamept3.o
if not exist cnamept3.asm z80mu cc cnamept3
if not exist cnamept3.o erase cpmname.cpm
if not exist cnamept3.o z80mu as cnamept3
if not exist cnamept4.asm erase cpmname.cpm
if not exist cnamept4.asm erase cnamept4.o
if not exist cnamept4.asm z80mu cc cnamept4
if not exist cnamept4.o erase cpmname.cpm
if not exist cnamept4.o z80mu as cnamept4
if not exist bdoscall.o erase cpmname.cpm
if not exist bdoscall.o z80mu as bdoscall
if not exist bioscall.o erase cpmname.cpm
if not exist bioscall.o z80mu as bioscall
if not exist cmemory.asm erase cpmname.cpm
if not exist cmemory.asm erase cmemory.o
if not exist cmemory.asm z80mu cc cmemory
if not exist cmemory.o erase cpmname.cpm
if not exist cmemory.o z80mu as cmemory
if not exist ctermcap.asm erase cpmname.cpm
if not exist ctermcap.asm erase ctermcap.o
if not exist ctermcap.asm z80mu cc ctermcap
if not exist ctermcap.o erase cpmname.cpm
if not exist ctermcap.o z80mu as ctermcap
if not exist diagnose.o erase cpmname.cpm
if not exist diagnose.o z80mu as diagnose
if not exist cpmname.cpm z80mu ln cpmname.o ctermcap.o cnamept1.o cnamept2.o cnamept3.o cnamept4.o cmemory.o diagnose.o bioscall.o bdoscall.o c.lib
if not exist cpmanme.cpm rename cpmname.com cpmname.cpm
dir cpmname.cpm

37
branches/s100/Apps/crossdev/CPMNAME.C

@ -13,6 +13,10 @@
#include "diagnose.h"
#include "std.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 */
extern cnamept1();
@ -20,7 +24,9 @@ extern cnamept2();
extern cnamept3();
extern cnamept4();
struct SYSCFG * syscfg;
struct SYSCFG * pSYSCFG;
int line;
int main(argc,argv)
@ -36,8 +42,19 @@ int main(argc,argv)
char * pC;
line = 5;
hregbc = GETSYSCFG; /* function = Get System Config */
hregde = HIGHSEG; /* addr of dest (must be high) */
diagnose(); /* invoke the NBIOS function */
pSYSCFG = HIGHSEG;
crtinit(pSYSCFG->cnfgdata.termtype);
crtclr();
crtlc(0,0);
printf("CPMNAME.COM %d/%d/%d v%d.%d.%d.%d",
printf("CPMNAME.COM %d/%d/%d v%d.%d.%d (%d)",
A_MONTH,A_DAY,A_YEAR,A_RMJ,A_RMN,A_RUP,A_RTP);
printf(" dwg - Display System Configuration");
pager();
@ -54,16 +71,18 @@ int main(argc,argv)
bdoscall();
pager();
syscfg = 0x8000;
hregbc = 0xf000;
hregde = syscfg;
hregde = HIGHSEG;
diagnose();
cnamept1(syscfg);
cnamept2(syscfg);
cnamept3(syscfg);
cnamept4(syscfg);
pSYSCFG = HIGHSEG;
cnamept1(pSYSCFG);
cnamept2(pSYSCFG);
cnamept3(pSYSCFG);
cnamept4(pSYSCFG);
}
@ -83,4 +102,4 @@ pager()
/* eof - ccpmname.c */
/********************/


BIN
branches/s100/Apps/crossdev/CPMNAME.CPM

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPMNAME.O

Binary file not shown.

20
branches/s100/Apps/crossdev/CPMNAME.SUB

@ -0,0 +1,20 @@
e:rem cpmname.sub 9/5/2012 dwg - build cpmname from sources
cc cpmname
as cpmname
cc cnamept1
as cnamept1
cc cnamept2
as cnamept2
cc cnamept3
as cnamept3
cc cnamept4
as cnamept4
as bdoscall
as bioscall
cc cmemory
as cmemory
cc ctermcap
as ctermcap
as diagnose
ln cpmname.o ctermcap.o cnamept1.o cnamept2.o cnamept3.o cnamept4.o cmemory.o diagnose.o bioscall.o bdoscall.o c.lib


334
branches/s100/Apps/crossdev/CTERMCAP.ASM

@ -0,0 +1,334 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
global termtype_,1
DSEG
public wy50row_
wy50row_:
DB 32
DB 33
DB 34
DB 35
DB 36
DB 37
DB 38
DB 39
DB 40
DB 41
DB 42
DB 43
DB 44
DB 45
DB 46
DB 47
DB 48
DB 49
DB 50
DB 51
DB 52
DB 53
DB 54
DB 55
CSEG
DSEG
public wy50col_
wy50col_:
DB 32
DB 33
DB 34
DB 35
DB 36
DB 37
DB 38
DB 39
DB 40
DB 41
DB 42
DB 43
DB 44
DB 45
DB 46
DB 47
DB 48
DB 49
DB 50
DB 51
DB 52
DB 53
DB 54
DB 55
DB 56
DB 57
DB 58
DB 59
DB 60
DB 61
DB 62
DB 63
DB 64
DB 65
DB 66
DB 67
DB 68
DB 69
DB 70
DB 71
DB 72
DB 73
DB 74
DB 75
DB 76
DB 77
DB 78
DB 79
DB 80
DB 81
DB 82
DB 83
DB 84
DB 85
DB 86
DB 87
DB 88
DB 89
DB 90
DB 91
DB 92
DB 93
DB 94
DB 95
DB 96
DB 97
DB 98
DB 99
DB 100
DB 101
DB 102
DB 103
DB 104
DB 105
DB 106
DB 107
DB 108
DB 109
DB 110
DB 111
CSEG
PUBLIC crtinit_
crtinit_: lxi d,.2
call csave
LXI H,8-.2
DAD SP
MOV E,M
XCHG
MOV A,L
STA termtype_
RET
.2 EQU 0
PUBLIC crtclr_
crtclr_: lxi d,.3
call csave
LDA termtype_
MOV L,A
MVI H,0
JMP .4
.6:
LXI H,0
XCHG
LXI H,2-.3
DAD SP
MOV M,E
INX H
MOV M,D
JMP .8
.7:
LXI H,2-.3
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.8:
LXI H,2-.3
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,43
CALL .lt
JZ .9
LXI H,10
PUSH H
LXI H,13
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
POP D
POP D
POP D
JMP .7
.9:
JMP .5
.10:
LXI H,27
PUSH H
LXI H,.1+5
PUSH H
CALL printf_
POP D
POP D
JMP .5
.11:
LXI H,27
PUSH H
LXI H,.1+11
PUSH H
CALL printf_
POP D
POP D
JMP .5
.12:
LXI H,27
PUSH H
LXI H,27
PUSH H
LXI H,.1+15
PUSH H
CALL printf_
POP D
POP D
POP D
JMP .5
.4:
CALL .swt
DW 4
DW 0,.6
DW 1,.10
DW 2,.11
DW 3,.12
DW .5
.5:
RET
.3 EQU -2
.1:
DB 37,99,37,99,0,37,99,91,50,74,0,37,99,43,0
DB 37,99,74,37,99,72,0
PUBLIC crtlc_
crtlc_: lxi d,.14
call csave
LDA termtype_
MOV L,A
MVI H,0
JMP .15
.17:
JMP .16
.18:
LXI H,102
PUSH H
LXI H,12-.14
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,12-.14
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,27
PUSH H
LXI H,.13+0
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
JMP .16
.19:
LXI H,10-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,wy50col_
DAD D
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,10-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,wy50row_
DAD D
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,27
PUSH H
LXI H,.13+11
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
JMP .16
.20:
LXI H,10-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,32
DAD D
PUSH H
LXI H,10-.14
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,32
DAD D
PUSH H
LXI H,27
PUSH H
LXI H,.13+19
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
JMP .16
.15:
CALL .swt
DW 4
DW 0,.17
DW 1,.18
DW 2,.19
DW 3,.20
DW .16
.16:
RET
.14 EQU -2
.13:
DB 37,99,91,37,100,59,37,100,37,99,0,37,99,61,37
DB 99,37,99,0,37,99,89,37,99,37,99,0
extrn printf_
extrn .lt
END


47
branches/s100/Apps/crossdev/CTERMCAP.C

@ -8,23 +8,38 @@
#include "syscfg.h"
#include "diagnose.h"
int tt;
char termtype;
crtinit()
char wy50row[24] = { ' ', '!', '"', '#', '$', '%', '&', 39,
'(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7' };
char wy50col[80] = { ' ', '!', '"', '#', '$', '%', '&', 39,
'(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?',
'@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
96, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o' };
crtinit(tt)
char tt;
{
struct SYSCFG * pSYSCFG;
hregbc = 0x0f000;
hregde = 0x0C000;
diagnose();
pSYSCFG = 0x0C000;
tt = pSYSCFG->cnfgdata.termtype;
termtype = tt;
}
crtclr()
{
int i;
switch(tt) {
switch(termtype) {
case TERM_TTY:
for(i=0;i<43;i++) {
printf("%c%c",CR,LF);
@ -48,14 +63,14 @@ int col;
{
int i;
switch(tt) {
switch(termtype) {
case TERM_TTY:
break;
case TERM_ANSI:
printf("%c[%d;%d%c",ESC,line,col,0x66);
break;
case TERM_WYSE:
printf("%c+",ESC);
printf("%c=%c%c",ESC,wy50row[line-1],wy50col[col-1]);
break;
case TERM_VT52:
printf("%cY%c%c",ESC,' '+line,' '+col);
@ -63,15 +78,8 @@ int col;
};
}
/*
SINGLEQUOTE equ 0
RIGHTQUOTE equ 0
LEFTQUOTE equ 0
wy50row db ' !"#$%&'
db 39
db '()*+,-./01234567'
@ -82,9 +90,6 @@ wy50col db ' !"#$%&'
db 96
db 'abcdefghijklmno'
templine db 0
tempcol db 0
*/

8
branches/s100/Apps/crossdev/CTERMCAP.H

@ -1,6 +1,6 @@
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */
extern crtinit();
extern crtclr();
extern crtlc();

extern crtinit(); /* void crtinit(char termtype); */
extern crtclr(); /* void crtclr(void); */
extern crtlc(); /* void crtlc(char line,char column); */


BIN
branches/s100/Apps/crossdev/CTERMCAP.O

Binary file not shown.

42
branches/s100/Apps/crossdev/CVT2H.C

@ -0,0 +1,42 @@
/* cvt2h.h 7/11/2012 dwg - Copyright (C) 2012 Douglas Goodall */
#include "stdio.h"
#include "visible.h"
cvt2h(buffer,length,name)
unsigned char * buffer;
int length;
char * name;
{
FILE * fd;
int i,j,k,l;
char szTemp[32];
fd = fopen(name,"w");
fprintf(fd,
"/* %s produced automatically by cvt2h.h */\n",name);
strcpy(szTemp,name);
szTemp[8] = 0;
fprintf(fd,
"unsigned char %s[%d] = {\n\t",
szTemp,length);
for(i=0;i<length;i++) {
fprintf(fd,"0x%02x, ",buffer[i]);
if(7 == (i&0x07)) {
fprintf(fd," /* ");
j = i && 0x07;
k = j + 8;
for(l=j;l<k;l++) {
if(1 == visible[buffer[l]]) {
fprintf(fd,"%02x ",buffer[l]);
} else {
fprintf(fd,".");
}
}
fprintf(fd,"*/");
fprintf(fd,"\n\t");
}
}
fprintf(fd,"};\n/* eof - %s */\n",name);
fclose(fd);
}


41
branches/s100/Apps/crossdev/CVT2H.H

@ -0,0 +1,41 @@
/* cvt2h.h 7/11/2012 dwg - Copyright (C) 2012 Douglas Goodall */
cvt2h(buffer,length,name)
unsigned char * buffer;
int length;
char * name;
{
FILE * fd;
int i,j,k,l;
char szTemp[32];
fd = fopen(name,"w");
fprintf(fd,
"/* %s produced automatically by cvt2h.h */\n",name);
strcpy(szTemp,name);
szTemp[8] = 0;
fprintf(fd,
"unsigned char %s[%d] = {\n\t",
szTemp,length);
for(i=0;i<length;i++) {
fprintf(fd,"0x%02x,",buffer[i]);
if(7 == (i&0x07)) {
fprintf(fd," /* ");
j = i & 0xfff8;
k = j + 8;
fprintf(fd," %04x: ",j);
for(l=j;l<k;l++) {
if(1 == visible[buffer[l]]) {
fprintf(fd,"%c ",buffer[l]);
} else {
fprintf(fd,". ");
}
}
fprintf(fd,"*/");
fprintf(fd,"\n\t");
}
}
fprintf(fd,"};\n/* eof - %s */\n",name);
fclose(fd);
}


45
branches/s100/Apps/crossdev/CVT2INC.H

@ -0,0 +1,45 @@
/* cvt2inc.h 7/23/2012 dwg - make tasm include file from binary buffer */
cvt2inc(buffer,length,name)
unsigned char * buffer;
int length;
char * name;
{
FILE * fd;
int i,j,k,l;
char szTemp[32];
fd = fopen(name,"w");
fprintf(fd,
"; %s produced automatically by cvt2inc.h \n",name);
strcpy(szTemp,name);
szTemp[8] = 0;
fprintf(fd,"%s:\n",szTemp);
fprintf(fd," .DB ");
i = 0;
for(i=0;i<length;i++) {
fprintf(fd,"%03xh",buffer[i]);
if(7 == (i&0x07)) {
fprintf(fd," ; ");
j = i & 0xfff8;
k = j + 8;
fprintf(fd," %04x: ",j);
for(l=j;l<k;l++) {
if(1 == visible[buffer[l]]) {
fprintf(fd,"%c ",buffer[l]);
} else {
fprintf(fd,". ");
}
}
if(i != length-1) fprintf(fd,"\n .DB ");
} else {
fprintf(fd,",");
}
}
fprintf(fd,"\n");
fclose(fd);
}


4
branches/s100/Apps/crossdev/DIAGNOSE.ASM

@ -5,8 +5,9 @@
global hregde_,2
global hreghl_,2
public diagnose_
diagnose_:
diagnose:
push psw
push b
push d
@ -45,3 +46,4 @@ diagnose_:
RET
END


BIN
branches/s100/Apps/crossdev/DIAGNOSE.O

Binary file not shown.

BIN
branches/s100/Apps/crossdev/DIAGNOSE.REL

Binary file not shown.

229
branches/s100/Apps/crossdev/DISKCOPY.C

@ -0,0 +1,229 @@
/* view.c 6/7/2012 dwg - */
#include "std.h"
/* #include "hbios.h" */
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#include "portab.h"
#define MAXDRIVE 8
#include "cpm80.h"
#include "cpmappl.h"
#include "applvers.h"
#include "trackio.h"
#define DSM144 0x02C6
#define DSM720 0x015E
#define DSM360 0x00AA
#define DSM120 0x024F
#define DSM111 0x0222
struct DPH * pDPH;
struct DPB * pDPB;
unsigned char buffer[72*128];
char gbFD[MAXDRIVE];
char gFDNums[MAXDRIVE];
char gNumFD; /* this value is set by the fdcount function */
/* the purpose of this function is to set the global variable
gNumFD to the number of floppy drives detected, and to set
a boolean in the vector gbFD indicating the drive is present
the drive number of each one in the vector
*/
diomed(devunit)
unsigned char devunit;
{
hregbc = 0x1300 + devunit;
diagnose();
return hrega;
}
sensefd()
{
char device;
char unit;
char devunit;
/* init local variables */
char drive;
char result;
drive = 0;
result = 0;
/* init global variables */
gNumFD = 0;
memset(&gbFD,FALSE,MAXDRIVE);
memset(&gFDNums,0,MAXDRIVE);
/* for all valid drive numbers */
while(0 == result) {
ireghl = pGETLU;
iregbc = drive;
bioscall();
result = irega;
/* return from GETLU goes to 1 if drive # invalid */
devunit = iregbc >> 8;
device = devunit & 0xf0;
unit = devunit & 0x0f;
if(DEV_FD == device) {
gFDNums[gNumFD] = drive;
gbFD[gNumFD++] = iregbc & 0xff;
}
drive++;
}
}
int main(argc,argv)
int argc;
char *argv[] ;
{
char drive;
int fd0,fd1;
int i;
int spt;
int track;
int tracks;
int bValid;
sensefd();
if(2 != gNumFD) {
printf("Sorry, this version of diskcopy only supports dual drives");
exit(FAILURE);
}
printf("The copy will be from drive %c: to drive %c:\n",
gFDNums[0]+'A',gFDNums[1]+'A');
printf("The media in FD0 is ");
fd0 = diomed(DEV_FD);
switch(fd0) {
case MID_NONE:
printf("Drive is empty");
break;
case MID_MDROM:
printf("a memory ROM drive");
break;
case MID_MDRAM:
printf("a memory RAM drive");
break;
case MID_HD:
printf("an HD drive");
break;
case MID_FD720:
printf("a 720KB floppy disk");
tracks = 80 * 2;
break;
case MID_FD144:
printf("a 1.44MB floppy disk");
tracks = 80 * 2;
break;
case MID_FD360:
printf("a 360KB floppy disk");
tracks = 40 * 2;
break;
case MID_FD120:
printf("a 120KB floppy disk");
tracks = 80 * 2;
break;
case MID_FD111:
printf("a 111KB floppy disk");
tracks = 74 * 2;
break;
default:
printf("an unknown media type");
break;
}
printf("\n");
printf("The media in FD1 is ");
fd1 = diomed(DEV_FD+1);
switch(fd1) {
case MID_NONE:
printf("Drive is empty");
break;
case MID_MDROM:
printf("a memory ROM drive");
break;
case MID_MDRAM:
printf("a memory RAM drive");
break;
case MID_HD:
printf("an HD drive");
break;
case MID_FD720:
printf("a 720KB floppy disk");
break;
case MID_FD144:
printf("a 1.44MB floppy disk");
break;
case MID_FD360:
printf("a 360KB floppy disk");
break;
case MID_FD120:
printf("a 120KB floppy disk");
break;
case MID_FD111:
printf("a 111KB floppy disk");
break;
default:
printf("an unknown media type");
break;
}
printf("\n");
if(fd0 != fd1) {
printf("Sorry, media types don't match, as required for diskcopy");
exit(1);
}
for(track=0;track<tracks;track++) {
ireghl = pSELDSK;
iregbc = gFDNums[0]; /* G: */
iregde = 0;
bioscall();
pDPH = ireghl;
pDPB = pDPH->dpb;
spt = pDPB->spt;
ireghl = pSETTRK;
iregbc = track;
bioscall();
printf("%3d ",track);
rdtrack(0,spt,buffer);
printf("%c",0x0d);
bValid = FALSE;
for(i=0;i<spt*128;i++) {
if(0xe5 != buffer[i]) {
bValid = TRUE;
break;
}
}
if(TRUE == bValid) {
ireghl = pSELDSK;
iregbc = gFDNums[1]; /* G: */
iregde = 0;
bioscall();
pDPH = ireghl;
pDPB = pDPH->dpb;
spt = pDPB->spt;
ireghl = pSETTRK;
iregbc = track; /* Track 0 */
bioscall();
printf("%3d ",track);
wrtrack(0,spt,buffer);
printf("%c",0x0d);
}
}
}


12
branches/s100/Apps/crossdev/DOIT.C

@ -0,0 +1,12 @@
#include "stdio.h"
main()
{
FILE * fd;
fd = fopen("$$$.SUB","w");
fprintf(fd,"%ca:getcfg\n",9);
fprintf(fd,"%ca:dump syscfg.bin\n",18);
fprintf(fd,"%ctype a:sect0000.h\n",17);
fclose(fd);
}


36
branches/s100/Apps/crossdev/DPHDPB.H

@ -1,4 +1,19 @@
/* dphdpb.h 6/10/2012 dwg - CP/M Disk Parameters */
struct DPH {
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
void * dpb;
void * csv;
void * alv;
/* extension */
unsigned char sigl;
unsigned char sigu;
unsigned int current;
unsigned int number;
};
struct DPB {
unsigned int spt;
@ -12,21 +27,4 @@ struct DPB {
unsigned int cks;
unsigned int off;
};
struct DPH {
unsigned int xlt;
unsigned int rv1;
unsigned int rv2;
unsigned int rv3;
unsigned int dbf;
struct DPB * dpb;
void * csv;
void * alv;
/* extension */
char sigl;
char sigu;
int current;
int number;
};



8
branches/s100/Apps/crossdev/DPHMAP.H

@ -1,3 +1,4 @@
/* dphmap.h 9/4/2012 dwg - expand to include I through L */
/* dphmap.h 5/29/2012 dwg - declaration of DPH MAP structure */
struct DPHMAP {
@ -9,6 +10,11 @@ struct DPHMAP {
struct DPH * drivef;
struct DPH * driveg;
struct DPH * driveh;
struct DPH * drivei;
struct DPH * drivej;
struct DPH * drivek;
struct DPH * drivel;
} * pDPHMAP;
struct DPHMAP * pDPHVEC[MAXDRIVE];
@ -16,4 +22,4 @@ struct DPHMAP * pDPHVEC[MAXDRIVE];
/******************/
/* eof - dphmap.h */
/******************/
/******************/

1494
branches/s100/Apps/crossdev/DUMP.ASM

File diff suppressed because it is too large

101
branches/s100/Apps/crossdev/DUMP.C

@ -0,0 +1,101 @@
/* dump.c 7/11/2012 dwg -
The purpose of this program is similar to the CP/M dump program
except that in addition to the normal hexadecimal bytes, a field
of ascii bytes to the right are displayed as well.
*/
#include "stdio.h"
char visible[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 10 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 20 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 30 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 40 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 50 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 60 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, /* 70 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 80 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 90 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* A0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* B0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* C0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* D0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* E0 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* F0 */
};
#include "cvt2h.h"
#include "cvt2inc.h"
main(argc,argv)
int argc;
char *argv[];
{
int i,j;
int offset;
int result;
unsigned char byte;
unsigned char sector[128];
char name[32];
FILE * fd;
banner("DUMP.COM");
/* cvt2h(0x0100,12*1024,"dumpcomh.h"); */
if(1 == argc) {
printf("Sorry, no input file specified");
exit(1);
}
fd = fopen(argv[1],"r");
if(NULL == fd) {
printf("Sorry, cannot open input file");
exit(1);
}
printf("Dumping %s\n\n",argv[1]);
offset = 0;
result = fread(sector,sizeof(sector),1,fd);
while(0 < result) {
sprintf(name,"sect%04x.h",offset);
cvt2h(sector,sizeof(sector),name);
sprintf(name,"sect%04x.inc",offset);
cvt2inc(sector,sizeof(sector),name);
for(i=0;i<8;i++) {
printf("%04x: ",offset);
offset += 16;
for(j=0;j<16;j++) {
printf("%02x ",sector[(i*8)+j]);
}
printf(" ");
for(j=0;j<16;j++) {
byte = sector[(i*8)+j];
if(1 == visible[byte]) {
printf("%c",byte);
} else {
printf(".");
}
}
printf("\n");
}
printf("\n");
result = fread(sector,sizeof(sector),1,fd);
}
fclose(fd);
exit(0);
}


1542
branches/s100/Apps/crossdev/DUMPCOM.H

File diff suppressed because it is too large

108
branches/s100/Apps/crossdev/DUMPMAC.ASM

@ -0,0 +1,108 @@
; dumpmac.asm 2/1/2012 dwg - dump macro, declaration and implementation
maclib portab
maclib globals
maclib hardware
maclib z80
maclib cpmbdos
maclib printers
cseg
; e=char on entry
public x$pr$vis
x$pr$vis:
enter
lxi h,x$visibool
mvi d,0
dad d
mov a,m
cpi 0
jz do$dot
mvi c,2
call BDOS
jmp x$pr$fini
do$dot:
conout '.'
x$pr$fini:
leave
ret
public x$dump
x$dump: shld x$dump$tmp
call pr$h$word
conout ':'
conout ' '
mvi b,16
x$d$lp1:
mov a,m
inx h
xchg
mov l,a
call pr$h$byte
conout ' '
xchg
dcr b
jnz x$d$lp1
conout ' '
conout ' '
mvi b,16
lhld x$dump$tmp
x$d$lp2:
mov a,m
inx h
mov e,a
call x$pr$vis
dcr b
jnz x$d$lp2
conout CR
conout LF
lhld x$dump$tmp
ret
; display a number of lines of sixteen bytes in hex with leading address
; and ascii
public x$dump$multi
x$dump$multi:
push h ; save display address in case x$dump changes it
call x$dump ; call actual dump routine for 16 bytes
pop h ; restore display address
lxi d,16 ; get ready to increment it by 16 bytes
dad d ; here we go, HL = new load address
dcr c ; decrement line counter
jnz x$dump$multi ; do more as necessary
ret
dseg
x$dump$tmp ds 2
public x$visibool
x$visibool:
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
; - - - - - - - - - - - - - - - -
vb$00 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$10 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$20 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; "#$%&'()*+,-./
vb$30 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;0123456789:;<=>?
vb$40 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;@ABCDEFGHIJKLMNO
vb$50 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;PQRSTUVWXYZ[\]^_
vb$60 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;`abcdefghijklmno
vb$70 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 ;pqrstuvwxyz{|}~
vb$80 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$90 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$a0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$b0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$c0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$d0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$e0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
vb$f0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
; eof - dumpmac.asm


367
branches/s100/Apps/crossdev/EDITOR.ASM

@ -0,0 +1,367 @@
extrn .begin,.chl,.swt
extrn csave,cret,.move
PUBLIC vdaini_
vdaini_: lxi d,.2
call csave
LXI H,8-.2
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16384
CALL .or
SHLD hregbc_
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD hregde_
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD hreghl_
CALL diagnose_
LDA hrega_
MOV L,A
MVI H,0
RET
.2 EQU 0
PUBLIC bitlook_
bitlook_: lxi d,.3
call csave
LXI H,-32768
XCHG
LXI H,2-.3
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,0-.3
DAD SP
MOV M,E
INX H
MOV M,D
JMP .5
.4:
LXI H,0-.3
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.5:
LXI H,0-.3
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,256
CALL .lt
JZ .6
LXI H,0-.3
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.1+0
PUSH H
CALL printf_
POP D
POP D
LXI H,0
XCHG
LXI H,-2-.3
DAD SP
MOV M,E
INX H
MOV M,D
JMP .8
.7:
LXI H,-2-.3
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.8:
LXI H,-2-.3
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,8
CALL .lt
JZ .9
LXI H,2-.3
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
XCHG
DCX H
MOV E,M
MVI D,0
PUSH D
LXI H,.1+16
PUSH H
CALL printf_
POP D
POP D
JMP .7
.9:
LXI H,.1+24
PUSH H
CALL printf_
POP D
JMP .4
.6:
RET
.3 EQU -6
.1:
DB 97,115,99,105,105,32,61,32,48,120,37,48,50,120,32
DB 0,48,120,37,48,50,120,32,0,10,0
PUBLIC vdaqry_
vdaqry_: lxi d,.11
call csave
LXI H,8-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16640
CALL .or
SHLD hregbc_
LXI H,10-.11
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD hreghl_
CALL diagnose_
LDA hrega_
MOV L,A
MVI H,0
RET
.11 EQU 0
PUBLIC flip_
flip_: lxi d,.12
call csave
LXI H,-32768
PUSH H
LXI H,64
PUSH H
CALL vdaqry_
POP D
POP D
XCHG
LXI H,-3-.12
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,-32768
XCHG
LXI H,2-.12
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-1-.12
DAD SP
MOV M,E
INX H
MOV M,D
JMP .14
.13:
LXI H,-1-.12
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
.14:
LXI H,-1-.12
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2048
CALL .lt
JZ .15
LXI H,2-.12
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
MOV E,M
LXI H,1-.12
DAD SP
MOV M,E
LXI H,1-.12
DAD SP
MOV E,M
MVI D,0
LXI H,255
CALL .xr
XCHG
LXI H,1-.12
DAD SP
MOV M,E
LXI H,1-.12
DAD SP
MOV E,M
PUSH D
LXI H,4-.12
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
POP D
MOV M,E
LXI H,2-.12
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
INX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
JMP .13
.15:
LXI H,-32768
PUSH H
LXI H,0
PUSH H
LXI H,64
PUSH H
CALL vdaini_
POP D
POP D
POP D
RET
.12 EQU -7
PUBLIC main_
main_: lxi d,.16
call csave
LXI H,1
XCHG
LXI H,2-.16
DAD SP
MOV M,E
INX H
MOV M,D
.17:
LXI H,1
XCHG
LXI H,2-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .18
LXI H,1
SHLD dregbc_
CALL bdoscall_
LDA drega_
MOV L,A
MVI H,0
JMP .19
.21:
CALL flip_
JMP .20
.22:
LXI H,0
XCHG
LXI H,2-.16
DAD SP
MOV M,E
INX H
MOV M,D
JMP .20
.23:
LXI H,7
PUSH H
LXI H,.10+0
PUSH H
CALL printf_
POP D
POP D
JMP .20
.19:
CALL .swt
DW 2
DW 3,.22
DW 102,.21
DW .23
.20:
JMP .17
.18:
CALL flip_
RET
.16 EQU -2
.10:
DB 37,99,0
extrn printf_
extrn bdoscall_
extrn dregbc_
extrn drega_
extrn diagnose_
extrn hreghl_
extrn hregde_
extrn hregbc_
extrn hrega_
extrn .or
extrn .xr
extrn .eq
extrn .lt
END


103
branches/s100/Apps/crossdev/EDITOR.C

@ -0,0 +1,103 @@
/* editor.c 11/18/2012 dwg - */
#include "std.h"
#include "applvers.h"
#include "diagnose.h"
#include "cpmbdos.h"
#include "cpmbios.h"
#include "bdoscall.h"
#define VDA_N8 4
#define VDAINI 0x40
#define VDAQRY 0x41
#define VDARES 0x42
#define VDASCS 0x43
int vdaini(devunit,vidmode,bitmapp)
unsigned int devunit;
unsigned int vidmode;
unsigned int bitmapp;
{
hregbc = (VDAINI << 8) | devunit;
hregde = vidmode;
hreghl = bitmapp;
diagnose();
return hrega;
}
bitlook()
{
unsigned char *p;
int ascii,row;
p = 0x8000;
for(ascii=0;ascii<256;ascii++) {
printf("ascii = 0x%02x ",ascii);
for(row=0l;row<8;row++) {
printf("0x%02x ",*p++);
}
printf("\n");
}
}
int vdaqry(devunit,bitmapp)
unsigned int devunit;
unsigned int bitmapp;
{
hregbc = (VDAQRY << 8) | devunit;
hreghl = bitmapp;
diagnose();
return hrega;
}
flip()
{
unsigned char * p;
unsigned char byte;
int offs;
int retcode;
retcode = vdaqry(VDA_N8 << 4,0x8000);
p = 0x8000;
for(offs=0;offs<256*8;offs++) {
byte = *p;
byte = byte ^ 255;
*p = byte;
p++;
}
/* bitlook(); */
vdaini(VDA_N8 << 4, 0, 0x8000);
}
int main(argc,argv)
int argc;
char *argv[];
{
int bRunning;
bRunning = 1;
while(1 == bRunning) {
crtlc (
dregbc = 1;
bdoscall();
switch(drega) {
case 'f': flip(); break;
case 3: bRunning = 0; break;
default: printf("%c",7); break;
}
}
flip();
}


6
branches/s100/Apps/crossdev/EDITOR.SUB

@ -0,0 +1,6 @@
cc editor
as editor
as bdoscall
as diagnose
ln editor.o bdoscall.o diagnose.o -lc


1
branches/s100/Apps/crossdev/EXTRACT.SUB

@ -0,0 +1 @@
nulu submits.lbr -e $1.sub -x

4
branches/s100/Apps/crossdev/FAST.SUB

@ -0,0 +1,4 @@
cc remote
as remote
ln remote.o bdoscall.o ctermcap.o n8chars.o tms9918.o diagnose.o -lc


8
branches/s100/Apps/crossdev/FCNTL.H

@ -0,0 +1,8 @@
#define O_RDONLY 0
#define O_WRONLY 1
#define O_RDWR 2
#define O_CREAT 0x0100
#define O_TRUNC 0x0200
#define O_EXCL 0x0400
#define O_APPEND 0x0800


12
branches/s100/Apps/crossdev/FFGETLU.LIB

@ -0,0 +1,12 @@
; ffsetlu.lib 1/24/2012 dwg -
ffgetlu macro
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK
lxi d,16+2
dad d
mov a,m
endm
; eof - ffsetlu


25
branches/s100/Apps/crossdev/FFHASLU.LIB

@ -0,0 +1,25 @@
; ffhaslu.lib 1/22/2012 dwg - macro to detect drive with logical unit support
ffhaslu macro
local ret$false,fini
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK
lxi d,16 ; offset to end of DPH
dad d ; calc offset of 1st signature byte
mov a,m ; pick up first sig byte which s/b 'L'
cpi 'L'
jnz ret$false ; if it wasn't, indicate to caller no LU
inx h ; bump ptr to 2nd signature byte
mov a,m ; pick up second sig byte which s/b 'U'
cpi 'U'
jnz ret$false ; if it wasn't, indicate to caller no LU
mvi a,TRUE ; otherwise indicate presence of LU support
jmp fini ; finish up macro
ret$false:
mvi a,FALSE ; prepare negative response for caller
fini:
endm


13
branches/s100/Apps/crossdev/FFNUMLU.LIB

@ -0,0 +1,13 @@
; ffnumlu.lib 1/22/2012 dwg - macro to get number of logical units
ffnumlu macro
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK
lxi d,16+2+2 ; offset to end of DPH
dad d ; calc offset of 1st signature byte
mov a,m
endm
; eof - ffnumlu.lib

22
branches/s100/Apps/crossdev/FFSETLU.LIB

@ -0,0 +1,22 @@
; ffsetlu.lib 2/12/2012 dwg - review for use in superfmt
; ffsetlu.lib 1/24/2012 dwg -
; enter with desired LU in A reg
ffsetlu macro
enter
push psw
mvi c,RETCURR
call BDOS
mov c,a
call BISELDSK ; uses c parameter (drive)
lxi d,16+2
dad d
pop psw
mov m,a ; put slice into CURRENT
mvi c,13
call BDOS
leave
endm
; eof - ffsetlu


1088
branches/s100/Apps/crossdev/FINDFILE.ASM

File diff suppressed because it is too large

12
branches/s100/Apps/crossdev/FINDFILE.BAK

@ -0,0 +1,12 @@
rem findfile.sub 9/5/2012 dwg - make findfile.com from sources
if not exist findfile.rel z80mu rmac findfile
if not exist printers.rel z80mu rmac printers
if not exist terminal.rel z80mu rmac terminal
if not exist memory.rel z80mu rmac memory
if not exist banner.rel z80mu rmac banner
if not exist identity.rel z80mu rmac identity
if not exist hbios.rel z80mu rmac hbios
if not exist findfile.cpm z80mu link findfile,hbios,identity,banner,memory,printers,terminal
if not exist findfile.cpm copy findfile.com findfile.cpm
dir findfile.cpm

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save