Browse Source

eliminate s100 branch

import/raw
doug 13 years ago
parent
commit
c6332c6f5c
  1. 32
      branches/s100/Applegate/Makefile
  2. 1502
      branches/s100/Applegate/bios.asm
  3. 77
      branches/s100/Applegate/ccs2710.inc
  4. 71
      branches/s100/Applegate/convert.py
  5. 2
      branches/s100/Applegate/cpm.trans
  6. 3746
      branches/s100/Applegate/cpm22.asm
  7. 39
      branches/s100/Applegate/cpm22.inc
  8. 69
      branches/s100/Applegate/loadcpm.py
  9. 77
      branches/s100/Applegate/s100iobd.inc
  10. 19
      branches/s100/Applegate/tasm.inc
  11. 594
      branches/s100/Applegate/tasm.tab
  12. 80
      branches/s100/Applegate/zapple.asm
  13. 1940
      branches/s100/Applegate/zapple.z80
  14. BIN
      branches/s100/Apps/apps-bins/comfiles.lbr
  15. BIN
      branches/s100/Apps/apps-srcs/sources.lbr
  16. BIN
      branches/s100/Apps/core/access.com
  17. BIN
      branches/s100/Apps/core/cpmname.com
  18. BIN
      branches/s100/Apps/core/findfile.com
  19. BIN
      branches/s100/Apps/core/map.com
  20. BIN
      branches/s100/Apps/core/meta.com
  21. BIN
      branches/s100/Apps/core/multifmt.com
  22. BIN
      branches/s100/Apps/core/rem.com
  23. BIN
      branches/s100/Apps/core/setlabel.com
  24. BIN
      branches/s100/Apps/core/sysgen.com
  25. BIN
      branches/s100/Apps/core/termtype.com
  26. BIN
      branches/s100/Apps/core/view.com
  27. 106
      branches/s100/Apps/crossdev/2DRIVE.C
  28. 322
      branches/s100/Apps/crossdev/2MAP.C
  29. 106
      branches/s100/Apps/crossdev/ACCESS.ASM
  30. 18
      branches/s100/Apps/crossdev/ACCESS.BAT
  31. 7
      branches/s100/Apps/crossdev/ACCESS.SUB
  32. 8
      branches/s100/Apps/crossdev/ACCESS.SYM
  33. BIN
      branches/s100/Apps/crossdev/ANSI.H
  34. 20
      branches/s100/Apps/crossdev/APPLVERS.H
  35. 34
      branches/s100/Apps/crossdev/APPLVERS.LIB
  36. BIN
      branches/s100/Apps/crossdev/AS.COM
  37. 13
      branches/s100/Apps/crossdev/ASCII.H
  38. 67
      branches/s100/Apps/crossdev/ASMIFACE.ASM
  39. 14
      branches/s100/Apps/crossdev/ASMIFACE.H
  40. 18
      branches/s100/Apps/crossdev/AUTOEXEC.Z80
  41. 656
      branches/s100/Apps/crossdev/BANKER.ASM
  42. 153
      branches/s100/Apps/crossdev/BANKER.C
  43. 156
      branches/s100/Apps/crossdev/BANNER.ASM
  44. 4
      branches/s100/Apps/crossdev/BANNER.H
  45. 18
      branches/s100/Apps/crossdev/BANNER.LIB
  46. 29
      branches/s100/Apps/crossdev/BANNER.SYM
  47. 71
      branches/s100/Apps/crossdev/BDOSCALL.ASM
  48. 8
      branches/s100/Apps/crossdev/BDOSCALL.H
  49. BIN
      branches/s100/Apps/crossdev/BIN/AS80.EXE
  50. BIN
      branches/s100/Apps/crossdev/BIN/CCZ.EXE
  51. BIN
      branches/s100/Apps/crossdev/BIN/HEX80.EXE
  52. BIN
      branches/s100/Apps/crossdev/BIN/LIBUTIL.EXE
  53. BIN
      branches/s100/Apps/crossdev/BIN/LN80.EXE
  54. BIN
      branches/s100/Apps/crossdev/BIN/MAKE.EXE
  55. 80
      branches/s100/Apps/crossdev/BIOSCALL.ASM
  56. 8
      branches/s100/Apps/crossdev/BIOSCALL.H
  57. 385
      branches/s100/Apps/crossdev/BIOSHDR.LIB
  58. BIN
      branches/s100/Apps/crossdev/C.LIB
  59. 41
      branches/s100/Apps/crossdev/CBANNER.C
  60. 1
      branches/s100/Apps/crossdev/CBANNER.H
  61. BIN
      branches/s100/Apps/crossdev/CC.COM
  62. 333
      branches/s100/Apps/crossdev/CC.TMP
  63. 152
      branches/s100/Apps/crossdev/CHARS.C
  64. 18
      branches/s100/Apps/crossdev/CHARS.SUB
  65. 12
      branches/s100/Apps/crossdev/CHECK.SUB
  66. 118
      branches/s100/Apps/crossdev/CLEAN.BAT
  67. 27
      branches/s100/Apps/crossdev/CLEAN.SUB
  68. 48
      branches/s100/Apps/crossdev/CLEAR.C
  69. 10
      branches/s100/Apps/crossdev/CLEAR.SUB
  70. 57
      branches/s100/Apps/crossdev/CLOGICAL.C
  71. 14
      branches/s100/Apps/crossdev/CLOGICAL.H
  72. 127
      branches/s100/Apps/crossdev/CLS.C
  73. 283
      branches/s100/Apps/crossdev/CMEMORY.ASM
  74. 53
      branches/s100/Apps/crossdev/CMEMORY.C
  75. 58
      branches/s100/Apps/crossdev/CMETADAT.C
  76. 108
      branches/s100/Apps/crossdev/CNAMEPT1.C
  77. 113
      branches/s100/Apps/crossdev/CNAMEPT2.C
  78. 216
      branches/s100/Apps/crossdev/CNAMEPT3.C
  79. 198
      branches/s100/Apps/crossdev/CNAMEPT4.C
  80. 73
      branches/s100/Apps/crossdev/CNFGDATA.H
  81. 210
      branches/s100/Apps/crossdev/CNFGDATA.LIB
  82. 80
      branches/s100/Apps/crossdev/CONVERT.C
  83. 49
      branches/s100/Apps/crossdev/COREAPPS.BAK
  84. 49
      branches/s100/Apps/crossdev/COREAPPS.BAT
  85. 71
      branches/s100/Apps/crossdev/COREAPPS.SUB
  86. 195
      branches/s100/Apps/crossdev/CPM80.H
  87. BIN
      branches/s100/Apps/crossdev/CPM86/AME86.EXE
  88. BIN
      branches/s100/Apps/crossdev/CPM86/AME86DOS.EXE
  89. BIN
      branches/s100/Apps/crossdev/CPM86/ARCV.COM
  90. BIN
      branches/s100/Apps/crossdev/CPM86/AS.EXE
  91. 8
      branches/s100/Apps/crossdev/CPM86/ASSERT.H
  92. BIN
      branches/s100/Apps/crossdev/CPM86/C.LIB
  93. BIN
      branches/s100/Apps/crossdev/CPM86/CC.EXE
  94. BIN
      branches/s100/Apps/crossdev/CPM86/CCB.EXE
  95. BIN
      branches/s100/Apps/crossdev/CPM86/CNM.EXE
  96. BIN
      branches/s100/Apps/crossdev/CPM86/CPM.EXE
  97. BIN
      branches/s100/Apps/crossdev/CPM86/CRC.EXE
  98. 20
      branches/s100/Apps/crossdev/CPM86/CTYPE.H
  99. BIN
      branches/s100/Apps/crossdev/CPM86/D11.LIB
  100. BIN
      branches/s100/Apps/crossdev/CPM86/D20.LIB

32
branches/s100/Applegate/Makefile

@ -1,32 +0,0 @@
# Makefile 1/31/2013 dwg -
TASM := ../XSource/bin/TASM
TASMTABS := .
export TASMTABS
ASMOPT80 := -t$(CPU) -g3
ASMOPT85 := -t85 -g3
ASM80 := $(TASM) $(ASMOPT80)
ASM85 := $(TASM) $(ASMOPT85)
ASMIMG := $(TASM) $(ASMOPT80) -b -fE5
all: zapple.bin cpm.bin bios.bin
tasm80.tab: bin/TASM80.TAB
cp bin/TASM80.TAB tasm80.tab
tasm85.tab: bin/TASM85.TAB
cp bin/TASM85.TAB tasm85.tab
cpm.bin: cpm22.asm
$(ASMIMG) $< $@
bios.bin: bios.asm s100iobd.inc
$(ASMIMG) bios.asm $@
zapple.bin: zapple.asm zapple.z80
$(ASMIMG) zapple.asm $@
clean:
rm -f *.lst *.bin

1502
branches/s100/Applegate/bios.asm

File diff suppressed because it is too large

77
branches/s100/Applegate/ccs2710.inc

@ -1,77 +0,0 @@
.page
;********************************************************
; These are I/O functions for the CCS 2710 four-port
; serial I/O board.
;
; Bob Applegate, 02/16/2008
;
SIObase .equ 0E0H
;
SIODATA .equ SIObase
SIOBAUDL .equ SIObase ;also used for baud rate
SIOINTEN .equ SIObase+1
SIOBAUDH .equ SIObase+1 ;ditto
SIOIDENT .equ SIObase+2
SIOLCTRL .equ SIObase+3
SIOMDMCT .equ SIObase+4
SIOLSTAT .equ SIObase+5
SIOMDMST .equ SIObase+6
BAUD03 .equ 0180H ;divisor for 300 baud
BAUD12 .equ 060H ;1200 baud
BAUD_2400 .equ 030h ;2400 baud
BAUD96 .equ 00CH ;9600 baud
DATRDY .equ 01H ;rec'd data ready
TXMTY .equ 20H ;transmitter holding reg empty
HSMSK .equ 20H
BAUD_RATE .equ BAUD_2400
;
; This function initializes the main console port for the
; default baud rate.
;
initser: ld a,0fH
out (SIOMDMCT),a
ld a,083H ;enable divisor latch access
out (SIOLCTRL),a
ld a,BAUD_RATE / 256 ;get hi byte
out (SIOBAUDH),a
ld a,BAUD_RATE % 256 ;get low byte
out (SIOBAUDL),a
ld a,03H ;8 data bits, one stop bit, no parity
out (SIOLCTRL),a
xor a ;clear acc
out (SIOINTEN),a ;disable ints
out (SIOLSTAT),a ;clear status
in a,(SIODATA) ;clear out any garbage in rec'd data reg
ret
;
; TTY output of character in C. Modifies A.
;
ttyout: IN A,(SIOLSTAT) ;was A,TTS, read status port
AND TXMTY ;check buffer empty bit
JR Z,ttyout ;branch if not empty
LD A,C
OUT (SIODATA),A ;was TTO,A, send out character
RET ;thassit
;
; Check to see if a character is ready to be read from the TTY.
; Returns TRUE (0ffh) in A is there is a character waiting, or
; FALSE (0) if there is nothing.
;
ttystat: IN A,(SIOLSTAT) ;was A,TTS
AND DATRDY
LD A,TRUE ;was FALSE
RET NZ
CPL
RET
;
; This gets the next character from the TTY and returns it in A.
; This will block if there is nothing waiting.
;
ttyin: IN A,(SIOLSTAT) ;read status reg
AND DATRDY ;look for data ready
JR Z,ttyin ;wait for char
IN a,(SIODATA) ;read character
RET
.page

71
branches/s100/Applegate/convert.py

@ -1,71 +0,0 @@
#!/usr/bin/python
# Written by Douglas Goodall 17:25 Wed, Jan 30, 2013
# load cpm.bin and bios.bin then jump
import sys
import os
import serial
# passing in a string either "12" or "0x12"
# return value is string of hex digits only (no 0x)
def safebyte(parm):
xyz = parm
myord = ord(xyz)
hexdata = hex(myord)
newstr = hexdata
if (hexdata[0] == '0'):
if(hexdata[1] == 'x'):
newstr = hexdata[2]
if(len(hexdata)>3):
newstr = newstr + hexdata[3]
return newstr
# passing in a string either "1234" of "0x1234"
# return value is string of hex digits only (1234) (no 0x)
def safeword(parm):
xyz = parm
myint = int(xyz)
hexdata = hex(myint)
newstr = hexdata
if (hexdata[0] == '0'):
if(hexdata[1] == 'x'):
newstr = hexdata[2]
if(len(hexdata)>3):
newstr = newstr + hexdata[3]
if(len(hexdata)>4):
newstr = newstr + hexdata[4]
if(len(hexdata)>5):
newstr = newstr + hexdata[5]
return newstr
def loadngo(filename):
statinfo = os.stat(filename)
filelen = statinfo.st_size
infile = open(filename,'rb')
filedata = infile.read()
infile.close()
outfile = open("cpm.trans","w")
# ser = serial.Serial('/dev/cu.PL2303-0000201D', 19200, timeout=10)
# ser.write("\n\n")
outfile.write("sa400\n")
# print ser.read(12);
for x in range(1,filelen):
outfile.write(safebyte(filedata[x-1]))
outfile.write(" ")
outfile.write("\n")
outfile.close()
# print ser.read(12)
# ser.close()
print "*******************************************************************"
print "loadcpm.py 1/30/2013 dwg - load&go S-100 CP/M using master-yoda ROM"
print "*******************************************************************"
#loadngo("cpm.bin")
ser = serial.Serial('/dev/cu.PL2303-0000201D', 19200, timeout=1)
ser.read(128)
ser.read(128)
ser.write("\n")
ser.close()
loadngo("cpm.bin")

2
branches/s100/Applegate/cpm.trans

File diff suppressed because one or more lines are too long

3746
branches/s100/Applegate/cpm22.asm

File diff suppressed because it is too large

39
branches/s100/Applegate/cpm22.inc

@ -1,39 +0,0 @@
;********************************************************
; This file contains bits of information that are common
; between the CCP, BDOS and BIOS. Since the CCP and
; BDOS are built as one unit and the BIOS as another, it
; is handy to have common things in a common file rather
; that constantly needing to keep things in sync between
; two different files.
;
; 02/16/2013 - Bob Applegate
;
; This is the TOTAL RAM in the system. Ie, starts at 64
; but then gets decreased due to ROM monitors at top of
; memory. This can be set artificially low to allow
; more room for BIOS debugging code.
;
; This is the amount of contiguous RAM from 0000.
;
RAMSIZE EQU 48 ;expressed in K
;
; Low memory locations
;
IOBYTE EQU 3 ;i/o definition byte.
TDRIVE EQU 4 ;current drive name and user number.
ENTRY EQU 5 ;entry point for the cp/m bdos.
CCPSIZE EQU 0800H ;I hate hard-coding things!
BDOSSIZE EQU 0E00H
;
; Where CP/M things are located
;
CCPBASE equ (RAMSIZE-7)*1024
BDOSBASE equ (CCPBASE+CCPSIZE)
BIOSBASE equ (BDOSBASE+BDOSSIZE)

69
branches/s100/Applegate/loadcpm.py

@ -1,69 +0,0 @@
#!/usr/bin/python
# Written by Douglas Goodall 17:25 Wed, Jan 30, 2013
# load cpm.bin and bios.bin then jump
import sys
import os
import serial
# passing in a string either "12" or "0x12"
# return value is string of hex digits only (no 0x)
def safebyte(parm):
xyz = parm
myord = ord(xyz)
hexdata = hex(myord)
newstr = hexdata
if (hexdata[0] == '0'):
if(hexdata[1] == 'x'):
newstr = hexdata[2]
if(len(hexdata)>3):
newstr = newstr + hexdata[3]
return newstr
# passing in a string either "1234" of "0x1234"
# return value is string of hex digits only (1234) (no 0x)
def safeword(parm):
xyz = parm
myint = int(xyz)
hexdata = hex(myint)
newstr = hexdata
if (hexdata[0] == '0'):
if(hexdata[1] == 'x'):
newstr = hexdata[2]
if(len(hexdata)>3):
newstr = newstr + hexdata[3]
if(len(hexdata)>4):
newstr = newstr + hexdata[4]
if(len(hexdata)>5):
newstr = newstr + hexdata[5]
return newstr
def loadngo(filename):
statinfo = os.stat(filename)
filelen = statinfo.st_size
infile = open(filename,'rb')
filedata = infile.read()
infile.close()
ser = serial.Serial('/dev/cu.PL2303-0000201D', 19200, timeout=10)
ser.write("\n\n")
ser.write("sa400\n")
print ser.read(12);
for x in range(1,filelen):
ser.write(safebyte(filedata[x-1]))
ser.write(" ")
print ser.read(12)
ser.write("\n")
print ser.read(12)
ser.close()
print "*******************************************************************"
print "loadcpm.py 1/30/2013 dwg - load&go S-100 CP/M using master-yoda ROM"
print "*******************************************************************"
#loadngo("cpm.bin")
ser = serial.Serial('/dev/cu.PL2303-0000201D', 19200, timeout=1)
ser.read(128)
ser.read(128)
ser.write("\n")
ser.close()
loadngo("cpm.bin")

77
branches/s100/Applegate/s100iobd.inc

@ -1,77 +0,0 @@
.page
;********************************************************
; These are I/O functions for the CCS 2710 four-port
; serial I/O board.
;
; Bob Applegate, 02/16/2008
;
SIObase .equ 0E0H
;
SIODATA .equ SIObase
SIOBAUDL .equ SIObase ;also used for baud rate
SIOINTEN .equ SIObase+1
SIOBAUDH .equ SIObase+1 ;ditto
SIOIDENT .equ SIObase+2
SIOLCTRL .equ SIObase+3
SIOMDMCT .equ SIObase+4
SIOLSTAT .equ SIObase+5
SIOMDMST .equ SIObase+6
BAUD03 .equ 0180H ;divisor for 300 baud
BAUD12 .equ 060H ;1200 baud
BAUD_2400 .equ 030h ;2400 baud
BAUD96 .equ 00CH ;9600 baud
DATRDY .equ 01H ;rec'd data ready
TXMTY .equ 20H ;transmitter holding reg empty
HSMSK .equ 20H
BAUD_RATE .equ BAUD_2400
;
; This function initializes the main console port for the
; default baud rate.
;
initser: ld a,0fH
out (SIOMDMCT),a
ld a,083H ;enable divisor latch access
out (SIOLCTRL),a
ld a,BAUD_RATE / 256 ;get hi byte
out (SIOBAUDH),a
ld a,BAUD_RATE % 256 ;get low byte
out (SIOBAUDL),a
ld a,03H ;8 data bits, one stop bit, no parity
out (SIOLCTRL),a
xor a ;clear acc
out (SIOINTEN),a ;disable ints
out (SIOLSTAT),a ;clear status
in a,(SIODATA) ;clear out any garbage in rec'd data reg
ret
;
; TTY output of character in C. Modifies A.
;
ttyout: IN A,(SIOLSTAT) ;was A,TTS, read status port
AND TXMTY ;check buffer empty bit
JR Z,ttyout ;branch if not empty
LD A,C
OUT (SIODATA),A ;was TTO,A, send out character
RET ;thassit
;
; Check to see if a character is ready to be read from the TTY.
; Returns TRUE (0ffh) in A is there is a character waiting, or
; FALSE (0) if there is nothing.
;
ttystat: IN A,(SIOLSTAT) ;was A,TTS
AND DATRDY
LD A,TRUE ;was FALSE
RET NZ
CPL
RET
;
; This gets the next character from the TTY and returns it in A.
; This will block if there is nothing waiting.
;
ttyin: IN A,(SIOLSTAT) ;read status reg
AND DATRDY ;look for data ready
JR Z,ttyin ;wait for char
IN a,(SIODATA) ;read character
RET
.page

19
branches/s100/Applegate/tasm.inc

@ -1,19 +0,0 @@
;
; To make it easier to port code from other assemblers,
; this maps some common psuedo-ops into TASM versions.
;
#define EQU .equ
#define equ .equ
#define END .end
#define end .end
#define DEFB .db
#define DB .db
#define db .db
#define DEFW .dw
#define DW .dw
#define dw .dw
#define DS .ds
#define ds .ds
#define ORG .org
#define org .org
#define TEXT .text

594
branches/s100/Applegate/tasm.tab

@ -1,594 +0,0 @@
"TASM Z80 Assembler. "
/****************************************************************************
/* $Id: tasm80.tab 1.2 1998/02/28 14:31:22 toma Exp $
/****************************************************************************
/* This is the instruction set definition table
/* for the Z80 version of TASM.
/* Thomas N. Anderson, Speech Technology Incorporated
/* This table authored and submitted by Carl A. Wall, VE3APY.
/*
/* Class bits assigned as follows:
/* Bit-0 = Z80 (base instruction set)
/* Bit-1 = HD64180 (extended instructions)
/* See TASM manual for info on table structure.
/*
/*INSTR ARGS OP BYTES RULE CLASS SHIFT OR */
/*-------------------------------------------*/
ADC A,(HL) 8E 1 NOP 1
ADC A,(IX*) 8EDD 3 ZIX 1
ADC A,(IY*) 8EFD 3 ZIX 1
ADC A,A 8F 1 NOP 1
ADC A,B 88 1 NOP 1
ADC A,C 89 1 NOP 1
ADC A,D 8A 1 NOP 1
ADC A,E 8B 1 NOP 1
ADC A,H 8C 1 NOP 1
ADC A,L 8D 1 NOP 1
ADC A,* CE 2 NOP 1
ADC HL,BC 4AED 2 NOP 1
ADC HL,DE 5AED 2 NOP 1
ADC HL,HL 6AED 2 NOP 1
ADC HL,SP 7AED 2 NOP 1
ADD A,(HL) 86 1 NOP 1
ADD A,(IX*) 86DD 3 ZIX 1
ADD A,(IY*) 86FD 3 ZIX 1
ADD A,A 87 1 NOP 1
ADD A,B 80 1 NOP 1
ADD A,C 81 1 NOP 1
ADD A,D 82 1 NOP 1
ADD A,E 83 1 NOP 1
ADD A,H 84 1 NOP 1
ADD A,L 85 1 NOP 1
ADD A,* C6 2 NOP 1
ADD HL,BC 09 1 NOP 1
ADD HL,DE 19 1 NOP 1
ADD HL,HL 29 1 NOP 1
ADD HL,SP 39 1 NOP 1
ADD IX,BC 09DD 2 NOP 1
ADD IX,DE 19DD 2 NOP 1
ADD IX,IX 29DD 2 NOP 1
ADD IX,SP 39DD 2 NOP 1
ADD IY,BC 09FD 2 NOP 1
ADD IY,DE 19FD 2 NOP 1
ADD IY,IY 29FD 2 NOP 1
ADD IY,SP 39FD 2 NOP 1
AND (HL) A6 1 NOP 1
AND (IX*) A6DD 3 ZIX 1
AND (IY*) A6FD 3 ZIX 1
AND A A7 1 NOP 1
AND B A0 1 NOP 1
AND C A1 1 NOP 1
AND D A2 1 NOP 1
AND E A3 1 NOP 1
AND H A4 1 NOP 1
AND L A5 1 NOP 1
AND * E6 2 NOP 1
BIT *,(HL) 46CB 2 ZBIT 1
BIT *,(IX*) CBDD 4 ZBIT 1 0 4600
BIT *,(IY*) CBFD 4 ZBIT 1 0 4600
BIT *,A 47CB 2 ZBIT 1
BIT *,B 40CB 2 ZBIT 1
BIT *,C 41CB 2 ZBIT 1
BIT *,D 42CB 2 ZBIT 1
BIT *,E 43CB 2 ZBIT 1
BIT *,H 44CB 2 ZBIT 1
BIT *,L 45CB 2 ZBIT 1
CALL C,* DC 3 NOP 1
CALL M,* FC 3 NOP 1
CALL NC,* D4 3 NOP 1
CALL NZ,* C4 3 NOP 1
CALL P,* F4 3 NOP 1
CALL PE,* EC 3 NOP 1
CALL PO,* E4 3 NOP 1
CALL Z,* CC 3 NOP 1
CALL * CD 3 NOP 1
CCF "" 3F 1 NOP 1
CP (HL) BE 1 NOP 1
CP (IX*) BEDD 3 ZIX 1
CP (IY*) BEFD 3 ZIX 1
CP A BF 1 NOP 1
CP B B8 1 NOP 1
CP C B9 1 NOP 1
CP D BA 1 NOP 1
CP E BB 1 NOP 1
CP H BC 1 NOP 1
CP L BD 1 NOP 1
CP * FE 2 NOP 1
CPD "" A9ED 2 NOP 1
CPDR "" B9ED 2 NOP 1
CPIR "" B1ED 2 NOP 1
CPI "" A1ED 2 NOP 1
CPL "" 2F 1 NOP 1
DAA "" 27 1 NOP 1
DEC (HL) 35 1 NOP 1
DEC (IX*) 35DD 3 ZIX 1
DEC (IY*) 35FD 3 ZIX 1
DEC A 3D 1 NOP 1
DEC B 05 1 NOP 1
DEC BC 0B 1 NOP 1
DEC C 0D 1 NOP 1
DEC D 15 1 NOP 1
DEC DE 1B 1 NOP 1
DEC E 1D 1 NOP 1
DEC H 25 1 NOP 1
DEC HL 2B 1 NOP 1
DEC IX 2BDD 2 NOP 1
DEC IY 2BFD 2 NOP 1
DEC L 2D 1 NOP 1
DEC SP 3B 1 NOP 1
DI "" F3 1 NOP 1
DJNZ * 10 2 R1 1
EI "" FB 1 NOP 1
EX (SP),HL E3 1 NOP 1
EX (SP),IX E3DD 2 NOP 1
EX (SP),IY E3FD 2 NOP 1
EX AF,AF' 08 1 NOP 1
EX DE,HL EB 1 NOP 1
EXX "" D9 1 NOP 1
HALT "" 76 1 NOP 1
IM 0 46ED 2 NOP 1
IM 1 56ED 2 NOP 1
IM 2 5EED 2 NOP 1
/* Alternate form of above
IM0 46ED 2 NOP 1
IM1 56ED 2 NOP 1
IM2 5EED 2 NOP 1
IN A,(C) 78ED 2 NOP 1
IN B,(C) 40ED 2 NOP 1
IN C,(C) 48ED 2 NOP 1
IN D,(C) 50ED 2 NOP 1
IN E,(C) 58ED 2 NOP 1
IN H,(C) 60ED 2 NOP 1
IN L,(C) 68ED 2 NOP 1
IN A,(*) DB 2 NOP 1
IN0 A,(*) 38ED 3 NOP 2
IN0 B,(*) 00ED 3 NOP 2
IN0 C,(*) 08ED 3 NOP 2
IN0 D,(*) 10ED 3 NOP 2
IN0 E,(*) 18ED 3 NOP 2
IN0 H,(*) 20ED 3 NOP 2
IN0 L,(*) 28ED 3 NOP 2
INC (HL) 34 1 NOP 1
INC (IX*) 34DD 3 ZIX 1
INC (IY*) 34FD 3 ZIX 1
INC A 3C 1 NOP 1
INC B 04 1 NOP 1
INC BC 03 1 NOP 1
INC C 0C 1 NOP 1
INC D 14 1 NOP 1
INC DE 13 1 NOP 1
INC E 1C 1 NOP 1
INC H 24 1 NOP 1
INC HL 23 1 NOP 1
INC IX 23DD 2 NOP 1
INC IY 23FD 2 NOP 1
INC L 2C 1 NOP 1
INC SP 33 1 NOP 1
IND "" AAED 2 NOP 1
INDR "" BAED 2 NOP 1
INI "" A2ED 2 NOP 1
INIR "" B2ED 2 NOP 1
JP (HL) E9 1 NOP 1
JP (IX) E9DD 2 NOP 1
JP (IY) E9FD 2 NOP 1
JP C,* DA 3 NOP 1
JP M,* FA 3 NOP 1
JP NC,* D2 3 NOP 1
JP NZ,* C2 3 NOP 1
JP P,* F2 3 NOP 1
JP PE,* EA 3 NOP 1
JP PO,* E2 3 NOP 1
JP Z,* CA 3 NOP 1
JP * C3 3 NOP 1
JR C,* 38 2 R1 1
JR NC,* 30 2 R1 1
JR NZ,* 20 2 R1 1
JR Z,* 28 2 R1 1
JR * 18 2 R1 1
LD (BC),A 02 1 NOP 1
LD (DE),A 12 1 NOP 1
LD (HL),A 77 1 NOP 1
LD (HL),B 70 1 NOP 1
LD (HL),C 71 1 NOP 1
LD (HL),D 72 1 NOP 1
LD (HL),E 73 1 NOP 1
LD (HL),H 74 1 NOP 1
LD (HL),L 75 1 NOP 1
LD (HL),* 36 2 NOP 1
LD (IX*),A 77DD 3 ZIX 1
LD (IX*),B 70DD 3 ZIX 1
LD (IX*),C 71DD 3 ZIX 1
LD (IX*),D 72DD 3 ZIX 1
LD (IX*),E 73DD 3 ZIX 1
LD (IX*),H 74DD 3 ZIX 1
LD (IX*),L 75DD 3 ZIX 1
LD (IX*),* 36DD 4 ZIX 1
LD (IY*),A 77FD 3 ZIX 1
LD (IY*),B 70FD 3 ZIX 1
LD (IY*),C 71FD 3 ZIX 1
LD (IY*),D 72FD 3 ZIX 1
LD (IY*),E 73FD 3 ZIX 1
LD (IY*),H 74FD 3 ZIX 1
LD (IY*),L 75FD 3 ZIX 1
LD (IY*),* 36FD 4 ZIX 1
LD (*),A 32 3 NOP 1
LD (*),BC 43ED 4 NOP 1
LD (*),DE 53ED 4 NOP 1
LD (*),HL 22 3 NOP 1
LD (*),IX 22DD 4 NOP 1
LD (*),IY 22FD 4 NOP 1
LD (*),SP 73ED 4 NOP 1
LD A,(BC) 0A 1 NOP 1
LD A,(DE) 1A 1 NOP 1
LD A,(HL) 7E 1 NOP 1
LD A,(IX*) 7EDD 3 ZIX 1
LD A,(IY*) 7EFD 3 ZIX 1
LD A,A 7F 1 NOP 1
LD A,B 78 1 NOP 1
LD A,C 79 1 NOP 1
LD A,D 7A 1 NOP 1
LD A,E 7B 1 NOP 1
LD A,H 7C 1 NOP 1
LD A,I 57ED 2 NOP 1
LD A,L 7D 1 NOP 1
LD A,R 5FED 2 NOP 1
LD A,(*) 3A 3 NOP 1
LD A,* 3E 2 NOP 1
LD B,(HL) 46 1 NOP 1
LD B,(IX*) 46DD 3 ZIX 1
LD B,(IY*) 46FD 3 ZIX 1
LD B,A 47 1 NOP 1
LD B,B 40 1 NOP 1
LD B,C 41 1 NOP 1
LD B,D 42 1 NOP 1
LD B,E 43 1 NOP 1
LD B,H 44 1 NOP 1
LD B,L 45 1 NOP 1
LD B,* 06 2 NOP 1
LD BC,(*) 4BED 4 NOP 1
LD BC,* 01 3 NOP 1
LD C,(HL) 4E 1 NOP 1
LD C,(IX*) 4EDD 3 ZIX 1
LD C,(IY*) 4EFD 3 ZIX 1
LD C,A 4F 1 NOP 1
LD C,B 48 1 NOP 1
LD C,C 49 1 NOP 1
LD C,D 4A 1 NOP 1
LD C,E 4B 1 NOP 1
LD C,H 4C 1 NOP 1
LD C,L 4D 1 NOP 1
LD C,* 0E 2 NOP 1
LD D,(HL) 56 1 NOP 1
LD D,(IX*) 56DD 3 ZIX 1
LD D,(IY*) 56FD 3 ZIX 1
LD D,A 57 1 NOP 1
LD D,B 50 1 NOP 1
LD D,C 51 1 NOP 1
LD D,D 52 1 NOP 1
LD D,E 53 1 NOP 1
LD D,H 54 1 NOP 1
LD D,L 55 1 NOP 1
LD D,* 16 2 NOP 1
LD DE,(*) 5BED 4 NOP 1
LD DE,* 11 3 NOP 1
LD E,(HL) 5E 1 NOP 1
LD E,(IX*) 5EDD 3 ZIX 1
LD E,(IY*) 5EFD 3 ZIX 1
LD E,A 5F 1 NOP 1
LD E,B 58 1 NOP 1
LD E,C 59 1 NOP 1
LD E,D 5A 1 NOP 1
LD E,E 5B 1 NOP 1
LD E,H 5C 1 NOP 1
LD E,L 5D 1 NOP 1
LD E,* 1E 2 NOP 1
LD H,(HL) 66 1 NOP 1
LD H,(IX*) 66DD 3 ZIX 1
LD H,(IY*) 66FD 3 ZIX 1
LD H,A 67 1 NOP 1
LD H,B 60 1 NOP 1
LD H,C 61 1 NOP 1
LD H,D 62 1 NOP 1
LD H,E 63 1 NOP 1
LD H,H 64 1 NOP 1
LD H,L 65 1 NOP 1
LD H,* 26 2 NOP 1
LD HL,(*) 2A 3 NOP 1
LD HL,* 21 3 NOP 1
LD I,A 47ED 2 NOP 1
LD IX,(*) 2ADD 4 NOP 1
LD IX,* 21DD 4 NOP 1
LD IY,(*) 2AFD 4 NOP 1
LD IY,* 21FD 4 NOP 1
LD L,(HL) 6E 1 NOP 1
LD L,(IX*) 6EDD 3 ZIX 1
LD L,(IY*) 6EFD 3 ZIX 1
LD L,A 6F 1 NOP 1
LD L,B 68 1 NOP 1
LD L,C 69 1 NOP 1
LD L,D 6A 1 NOP 1
LD L,E 6B 1 NOP 1
LD L,H 6C 1 NOP 1
LD L,L 6D 1 NOP 1
LD L,* 2E 2 NOP 1
LD R,A 4FED 2 NOP 1
LD SP,(*) 7BED 4 NOP 1
LD SP,HL F9 1 NOP 1
LD SP,IX F9DD 2 NOP 1
LD SP,IY F9FD 2 NOP 1
LD SP,* 31 3 NOP 1
LDD "" A8ED 2 NOP 1
LDDR "" B8ED 2 NOP 1
LDI "" A0ED 2 NOP 1
LDIR "" B0ED 2 NOP 1
NEG "" 44ED 2 NOP 1
NOP "" 00 1 NOP 1
MLT BC 4CED 2 NOP 2
MLT DE 5CED 2 NOP 2
MLT HL 6CED 2 NOP 2
MLT SP 7CED 2 NOP 2
OR (HL) B6 1 NOP 1
OR (IX*) B6DD 3 ZIX 1
OR (IY*) B6FD 3 ZIX 1
OR A B7 1 NOP 1
OR B B0 1 NOP 1
OR C B1 1 NOP 1
OR D B2 1 NOP 1
OR E B3 1 NOP 1
OR H B4 1 NOP 1
OR L B5 1 NOP 1
OR * F6 2 NOP 1
OTDM "" 8BED 2 NOP 2
OTDMR "" 9BED 2 NOP 2
OTDR "" BBED 2 NOP 1
OTIM "" 83ED 2 NOP 2
OTIMR "" 93ED 2 NOP 2
OTIR "" B3ED 2 NOP 1
OUT (C),A 79ED 2 NOP 1
OUT (C),B 41ED 2 NOP 1
OUT (C),C 49ED 2 NOP 1
OUT (C),D 51ED 2 NOP 1
OUT (C),E 59ED 2 NOP 1
OUT (C),H 61ED 2 NOP 1
OUT (C),L 69ED 2 NOP 1
OUT (*),A D3 2 NOP 1
OUT0 (*),A 39ED 3 NOP 2
OUT0 (*),B 01ED 3 NOP 2
OUT0 (*),C 09ED 3 NOP 2
OUT0 (*),D 11ED 3 NOP 2
OUT0 (*),E 19ED 3 NOP 2
OUT0 (*),H 21ED 3 NOP 2
OUT0 (*),L 29ED 3 NOP 2
OUTD "" ABED 2 NOP 1
OUTI "" A3ED 2 NOP 1
POP AF F1 1 NOP 1
POP BC C1 1 NOP 1
POP DE D1 1 NOP 1
POP HL E1 1 NOP 1
POP IX E1DD 2 NOP 1
POP IY E1FD 2 NOP 1
PUSH AF F5 1 NOP 1
PUSH BC C5 1 NOP 1
PUSH DE D5 1 NOP 1
PUSH HL E5 1 NOP 1
PUSH IX E5DD 2 NOP 1
PUSH IY E5FD 2 NOP 1
RES *,(HL) 86CB 2 ZBIT 1
RES *,(IX*) CBDD 4 ZBIT 1 0 8600
RES *,(IY*) CBFD 4 ZBIT 1 0 8600
RES *,A 87CB 2 ZBIT 1
RES *,B 80CB 2 ZBIT 1
RES *,C 81CB 2 ZBIT 1
RES *,D 82CB 2 ZBIT 1
RES *,E 83CB 2 ZBIT 1
RES *,H 84CB 2 ZBIT 1
RES *,L 85CB 2 ZBIT 1
RET "" C9 1 NOP 1
RET C D8 1 NOP 1
RET M F8 1 NOP 1
RET NC D0 1 NOP 1
RET NZ C0 1 NOP 1
RET P F0 1 NOP 1
RET PE E8 1 NOP 1
RET PO E0 1 NOP 1
RET Z C8 1 NOP 1
RETI "" 4DED 2 NOP 1
RETN "" 45ED 2 NOP 1
RL (HL) 16CB 2 NOP 1
RL (IX*) CBDD 4 ZIX 1 0 1600
RL (IY*) CBFD 4 ZIX 1 0 1600
RL A 17CB 2 NOP 1
RL B 10CB 2 NOP 1
RL C 11CB 2 NOP 1
RL D 12CB 2 NOP 1
RL E 13CB 2 NOP 1
RL H 14CB 2 NOP 1
RL L 15CB 2 NOP 1
RLA "" 17 1 NOP 1
RLC (HL) 06CB 2 NOP 1
RLC (IX*) CBDD 4 ZIX 1 0 0600
RLC (IY*) CBFD 4 ZIX 1 0 0600
RLC A 07CB 2 NOP 1
RLC B 00CB 2 NOP 1
RLC C 01CB 2 NOP 1
RLC D 02CB 2 NOP 1
RLC E 03CB 2 NOP 1
RLC H 04CB 2 NOP 1
RLC L 05CB 2 NOP 1
RLCA "" 07 1 NOP 1
RLD "" 6FED 2 NOP 1
RR (HL) 1ECB 2 NOP 1
RR (IX*) CBDD 4 ZIX 1 0 1E00
RR (IY*) CBFD 4 ZIX 1 0 1E00
RR A 1FCB 2 NOP 1
RR B 18CB 2 NOP 1
RR C 19CB 2 NOP 1
RR D 1ACB 2 NOP 1
RR E 1BCB 2 NOP 1
RR H 1CCB 2 NOP 1
RR L 1DCB 2 NOP 1
RRA "" 1F 1 NOP 1
RRC (HL) 0ECB 2 NOP 1
RRC (IX*) CBDD 4 ZIX 1 0 0E00
RRC (IY*) CBFD 4 ZIX 1 0 0E00
RRC A 0FCB 2 NOP 1
RRC B 08CB 2 NOP 1
RRC C 09CB 2 NOP 1
RRC D 0ACB 2 NOP 1
RRC E 0BCB 2 NOP 1
RRC H 0CCB 2 NOP 1
RRC L 0DCB 2 NOP 1
RRCA "" 0F 1 NOP 1
RRD "" 67ED 2 NOP 1
RST 00H C7 1 NOP 1
RST 08H CF 1 NOP 1
RST 10H D7 1 NOP 1
RST 18H DF 1 NOP 1
RST 20H E7 1 NOP 1
RST 28H EF 1 NOP 1
RST 30H F7 1 NOP 1
RST 38H FF 1 NOP 1
/* Alternate form of above
RST 00 C7 1 NOP 1
RST 08 CF 1 NOP 1
RST 10 D7 1 NOP 1
RST 18 DF 1 NOP 1
RST 20 E7 1 NOP 1
RST 28 EF 1 NOP 1
RST 30 F7 1 NOP 1
RST 38 FF 1 NOP 1
SBC A,(HL) 9E 1 NOP 1
SBC A,(IX*) 9EDD 3 ZIX 1
SBC A,(IY*) 9EFD 3 ZIX 1
SBC A,A 9F 1 NOP 1
SBC A,B 98 1 NOP 1
SBC A,C 99 1 NOP 1
SBC A,D 9A 1 NOP 1
SBC A,E 9B 1 NOP 1
SBC A,H 9C 1 NOP 1
SBC A,L 9D 1 NOP 1
SBC HL,BC 42ED 2 NOP 1
SBC HL,DE 52ED 2 NOP 1
SBC HL,HL 62ED 2 NOP 1
SBC HL,SP 72ED 2 NOP 1
SBC A,* DE 2 NOP 1
SCF "" 37 1 NOP 1
SET *,(HL) C6CB 2 ZBIT 1
SET *,(IX*) CBDD 4 ZBIT 1 0 C600
SET *,(IY*) CBFD 4 ZBIT 1 0 C600
SET *,A C7CB 2 ZBIT 1
SET *,B C0CB 2 ZBIT 1
SET *,C C1CB 2 ZBIT 1
SET *,D C2CB 2 ZBIT 1
SET *,E C3CB 2 ZBIT 1
SET *,H C4CB 2 ZBIT 1
SET *,L C5CB 2 ZBIT 1
SLA (HL) 26CB 2 NOP 1
SLA (IX*) CBDD 4 ZIX 1 0 2600
SLA (IY*) CBFD 4 ZIX 1 0 2600
SLA A 27CB 2 NOP 1
SLA B 20CB 2 NOP 1
SLA C 21CB 2 NOP 1
SLA D 22CB 2 NOP 1
SLA E 23CB 2 NOP 1
SLA H 24CB 2 NOP 1
SLA L 25CB 2 NOP 1
SLP "" 76ED 2 NOP 2
SRA (HL) 2ECB 2 NOP 1
SRA (IX*) CBDD 4 ZIX 1 0 2E00
SRA (IY*) CBFD 4 ZIX 1 0 2E00
SRA A 2FCB 2 NOP 1
SRA B 28CB 2 NOP 1
SRA C 29CB 2 NOP 1
SRA D 2ACB 2 NOP 1
SRA E 2BCB 2 NOP 1
SRA H 2CCB 2 NOP 1
SRA L 2DCB 2 NOP 1
SRL (HL) 3ECB 2 NOP 1
SRL (IX*) CBDD 4 ZIX 1 0 3E00
SRL (IY*) CBFD 4 ZIX 1 0 3E00
SRL A 3FCB 2 NOP 1
SRL B 38CB 2 NOP 1
SRL C 39CB 2 NOP 1
SRL D 3ACB 2 NOP 1
SRL E 3BCB 2 NOP 1
SRL H 3CCB 2 NOP 1
SRL L 3DCB 2 NOP 1
SUB (HL) 96 1 NOP 1
SUB (IX*) 96DD 3 ZIX 1
SUB (IY*) 96FD 3 ZIX 1
SUB A 97 1 NOP 1
SUB B 90 1 NOP 1
SUB C 91 1 NOP 1
SUB D 92 1 NOP 1
SUB E 93 1 NOP 1
SUB H 94 1 NOP 1
SUB L 95 1 NOP 1
SUB * D6 2 NOP 1
TST A 3CED 2 NOP 2
TST B 04ED 2 NOP 2
TST C 0CED 2 NOP 2
TST D 14ED 2 NOP 2
TST E 1CED 2 NOP 2
TST H 24ED 2 NOP 2
TST L 2CED 2 NOP 2
TST (HL) 34ED 2 NOP 2
TST * 64ED 3 NOP 2
TSTIO * 74ED 3 NOP 2
XOR (HL) AE 1 NOP 1
XOR (IX*) AEDD 3 ZIX 1
XOR (IY*) AEFD 3 ZIX 1
XOR A AF 1 NOP 1
XOR B A8 1 NOP 1
XOR C A9 1 NOP 1
XOR D AA 1 NOP 1
XOR E AB 1 NOP 1
XOR H AC 1 NOP 1
XOR L AD 1 NOP 1
XOR * EE 2 NOP 1

80
branches/s100/Applegate/zapple.asm

@ -1,80 +0,0 @@
;
;==================================================================================================
; WRAPPER FOR ZAPPLE MONITOR FOR N8VEM PROJECT
; WAYNE WARTHEN - 2012-11-26
;==================================================================================================
;
; THE FOLLOWING MACROS DO THE HEAVY LIFTING TO MAKE THE ZAPPLE SOURCE
; COMPATIBLE WITH TASM
;
#DEFINE EQU .EQU
#DEFINE NAME \;
#DEFINE PAGE .PAGE
#DEFINE CSEG .CSEG
#DEFINE DSEG .DSEG
#DEFINE ORG .ORG
#DEFINE END .END
#DEFINE IF .IF
#DEFINE ELSE .ELSE
#DEFINE ENDIF .ENDIF
#DEFINE DEFB .DB
#DEFINE DB .DB
#DEFINE DEFW .DW
#DEFINE DW .DW
#DEFINE . _
#DEFINE TITLE .TITLE
#DEFINE EXT \;
#DEFINE NOT ~
;
#ADDINSTR IN A,* DB 2 NOP 1
#ADDINSTR OUT *,A D3 2 NOP 1
#ADDINSTR ADD A 87 1 NOP 1
#ADDINSTR ADD D 82 1 NOP 1
#ADDINSTR ADD * C6 2 NOP 1
#ADDINSTR ADC A 8F 1 NOP 1
#ADDINSTR ADC * CE 2 NOP 1
#ADDINSTR SBC H 9C 1 NOP 1
;
;
;
COLOC .EQU 0
LNLOC .EQU 0
LULOC .EQU 0
PTPL .EQU 0
PULOC .EQU 0
CSLOC .EQU 0
CILOC .EQU 0
RPTPL .EQU 0
RULOC .EQU 0
;
; 16C550 SERIAL LINE UART
;
SIO_BASE .EQU 90H
SIO_RBR .EQU SIO_BASE + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY)
SIO_THR .EQU SIO_BASE + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY)
SIO_IER .EQU SIO_BASE + 1 ; DLAB=0: INT ENABLE REG
SIO_IIR .EQU SIO_BASE + 2 ; INT IDENT REGISTER (READ ONLY)
SIO_FCR .EQU SIO_BASE + 2 ; FIFO CONTROL REG (WRITE ONLY)
SIO_LCR .EQU SIO_BASE + 3 ; LINE CONTROL REG
SIO_MCR .EQU SIO_BASE + 4 ; MODEM CONTROL REG
SIO_LSR .EQU SIO_BASE + 5 ; LINE STATUS REG
SIO_MSR .EQU SIO_BASE + 6 ; MODEM STATUS REG
SIO_SCR .EQU SIO_BASE + 7 ; SCRATCH REGISTER
SIO_DLL .EQU SIO_BASE + 0 ; DLAB=1: DIVISOR LATCH (LS)
SIO_DLM .EQU SIO_BASE + 1 ; DLAB=1: DIVISOR LATCH (MS)
;
BAUDRATE .EQU 38400
UART_DIV .EQU (1843200 / (16 * BAUDRATE))
;
;
;
BASE .EQU $6000
;
; NOW INCLUDE THE MAIN SOURCE
;
#INCLUDE "zapple.z80"
;
.FILL $7000 - $
;
.END

1940
branches/s100/Applegate/zapple.z80

File diff suppressed because it is too large

BIN
branches/s100/Apps/apps-bins/comfiles.lbr

Binary file not shown.

BIN
branches/s100/Apps/apps-srcs/sources.lbr

Binary file not shown.

BIN
branches/s100/Apps/core/access.com

Binary file not shown.

BIN
branches/s100/Apps/core/cpmname.com

Binary file not shown.

BIN
branches/s100/Apps/core/findfile.com

Binary file not shown.

BIN
branches/s100/Apps/core/map.com

Binary file not shown.

BIN
branches/s100/Apps/core/meta.com

Binary file not shown.

BIN
branches/s100/Apps/core/multifmt.com

Binary file not shown.

BIN
branches/s100/Apps/core/rem.com

Binary file not shown.

BIN
branches/s100/Apps/core/setlabel.com

Binary file not shown.

BIN
branches/s100/Apps/core/sysgen.com

Binary file not shown.

BIN
branches/s100/Apps/core/termtype.com

Binary file not shown.

BIN
branches/s100/Apps/core/view.com

Binary file not shown.

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

@ -1,106 +0,0 @@
/* 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. */
/*
This code is in the crossdev folder because it is part of
my development environment, and I said I would make everything
available.
The purpose of this code is to dynamically alter the BIOS
data associated with PPIDE (or PPISD) drives. The default
configuration is that mass storage devices get four drives.
Each of the four drives can be remapped using the logical
unit utility MAP.
The purpose of this code is to alter the runtime data so that
instead of the PPIDE having four drives for the primary IDE
device, it then has two for the primary and two for the secondary.
The MAP command will properly display the status after this is
run, but you must keep in mind that having two sets of logical
units at the same time is twice as complicated to keep straight
in your mind, and you have to be more careful you know exactly
how the drives are mapped so you don't accidentally destroy your
data.
This utility is unsupported, and not recommended for general use.
The reason this utility wasn't generally published is that it
is very difficult to give support about this remotely.
If you are brave, and talented, and you can figure out what I did
with pointers in this program, then you get the prize, which is
to be able to copy from one CF chip to another in a dual adapter.
It has only been tested on my PPIDE, and I don't know what will
happen if you try it. You could wipe out your CF chip, so make
sure you are backed up if you try this.
*/
#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

@ -1,322 +0,0 @@
/* 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

@ -1,106 +0,0 @@
; 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

@ -1,18 +0,0 @@
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

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

@ -1,7 +0,0 @@
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

@ -1,8 +0,0 @@
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.

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

@ -1,20 +0,0 @@
/************************************/
/* applvers.h dwg - 2.2.0.3 Beta */
/************************************/
#define A_RMJ 2
#define A_RMN 3
#define A_RUP 0
#define A_RTP 0
#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

@ -1,34 +0,0 @@
; 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

@ -1,13 +0,0 @@
/* 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 */


67
branches/s100/Apps/crossdev/ASMIFACE.ASM

@ -1,67 +0,0 @@
; asmiface.asm 6/4/2012 dwg -
extrn .begin,.chl,.swt
extrn csave,cret,.move
global xrega_,1
global xregbc_,2
global xregde_,2
global xreghl_,2
PUBLIC asmif_
asmif_: lxi d,.2
call csave
LXI H,8-.2 ; pick up 1st parm "function address"
DAD SP
MOV E,M
INX H
MOV D,M
xchg
shld callad+1
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M ; DE = parm
xchg
shld xregbc_
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
xchg
shld xregde_
LXI H,14-.2
DAD SP
MOV E,M
INX H
MOV D,M
xchg
shld xreghl_
lhld xregbc_
mov b,h
mov c,l ; setup B&C
lhld xregde_
xchg ; setup D&E
lhld xreghl_ ; setup H&L
callad: call 0e639h ; setlu
sta xrega_
shld xreghl_
xchg
shld xregde_
mov l,c
mov h,b
shld xregbc_
RET ; HL has return value
.2 EQU 0
END


14
branches/s100/Apps/crossdev/ASMIFACE.H

@ -1,14 +0,0 @@
/*****************************/
/* asmiface.H 6/4/2012 dwg - */
/*****************************/
extern char xrega;
extern unsigned int xregbc;
extern unsigned int xregde;
extern unsigned int xreghl;
extern asmif(); /* asmif(0xe60,bc,de,hl); */
/********************/
/* eof - asmiface.h */
/********************/


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

@ -1,18 +0,0 @@
;
; 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

@ -1,656 +0,0 @@
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

@ -1,153 +0,0 @@
/* 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

@ -1,156 +0,0 @@
; 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


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

@ -1,4 +0,0 @@
/* banner.h */
extern sbanner();
extern banner();


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

@ -1,18 +0,0 @@
; 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


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

@ -1,29 +0,0 @@
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


71
branches/s100/Apps/crossdev/BDOSCALL.ASM

@ -1,71 +0,0 @@
; bdoscall.asm 3/10/2012 dwg - bdos binding for Aztec C
global drega_,1
global dregbc_,2
global dregde_,2
global dreghl_,2
PUBLIC lurst_
lurst_:
push b
push d
push h
push psw
mvi c,37
lxi d,127
lxi b,127
call 5
pop psw
pop h
pop d
pop b
RET
PUBLIC bdoscall_
bdoscall_:
push b
push d
push h
push psw
lhld dregbc_
mov b,h
mov c,l
lhld dregde_
mov d,h
mov e,l
lhld dreghl_
lda drega_
call 5
sta drega_
shld dreghl_
mov l,e
mov h,d
shld dregde_
mov l,c
mov h,b
shld dregbc_
pop psw
pop h
pop d
pop b
RET
END


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

@ -1,8 +0,0 @@
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */
extern char drega;
extern unsigned int dregbc;
extern unsigned int dregde;
extern unsigned int dreghl;
extern bdoscall();


BIN
branches/s100/Apps/crossdev/BIN/AS80.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BIN/CCZ.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BIN/HEX80.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BIN/LIBUTIL.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BIN/LN80.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/BIN/MAKE.EXE

Binary file not shown.

80
branches/s100/Apps/crossdev/BIOSCALL.ASM

@ -1,80 +0,0 @@
; bioscall.asm 3/10/2012 dwg - bios binding for Aztec C
global irega_,1
global iregbc_,2
global iregde_,2
global ireghl_,2
public getmeta_
getmeta_:
push psw
push b
push d
push h
lxi b,4
lxi d,0
call 0e61bh
lxi d,0
call 0e61eh
lxi d,11
call 0e621h
lxi d,80h
call 0e624h
call 0e627h
pop h
pop d
pop b
pop psw
ret
PUBLIC bioscall_
bioscall_:
push b
push d
push h
push psw
lhld iregbc_
mov b,h
mov c,l
lhld iregde_
mov d,h
mov e,l
lhld ireghl_
shld mycall+1
lda irega_
mycall: call 5
sta irega_
shld ireghl_
mov l,e
mov h,d
shld iregde_
mov l,c
mov h,b
shld iregbc_
pop psw
pop h
pop d
pop b
RET
END


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

@ -1,8 +0,0 @@
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */
extern char irega;
extern unsigned int iregbc;
extern unsigned int iregde;
extern unsigned int ireghl;
extern bioscall();


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

@ -1,385 +0,0 @@
; 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


BIN
branches/s100/Apps/crossdev/C.LIB

Binary file not shown.

41
branches/s100/Apps/crossdev/CBANNER.C

@ -1,41 +0,0 @@
/* cbanner.c 3/12/2012 dwg - */
#include "portab.h"
#include "globals.h"
#include "applvers.h"
char * lines = "----------------------------------------";
char * line1 = "12345678.123 mm/dd/yyyy Version x.x.x.x";
char * line2 = "S/N CPM80-DWG-654321 Licensed under GPL3";
char * line3 = "Copyright (C) 2011-12 Douglas W. Goodall";
sbanner(program)
char *program;
{
char szTemp[128];
printf("%s ",program);
printf("%2d/%2d/%4d ",A_MONTH,A_DAY,A_YEAR);
printf("Version %d.%d.%d.%d ",A_RMJ,A_RMN,A_RUP,A_RTP);
printf("COPR Douglas Goodall Licensed w/GPLv3\n");
}
banner(program)
char *program;
{
char szTemp[128];
printf("%s\n",lines);
strcpy(szTemp,program);
while(12 > strlen(szTemp)) {
strcat(szTemp," ");
}
printf("%s ",szTemp);
printf("%2d/%2d/%4d ",A_MONTH,A_DAY,A_YEAR);
printf("Version %d.%d.%d.%d\n",A_RMJ,A_RMN,A_RUP,A_RTP);
printf("%s\n",line2);
printf("%s\n",line3);
printf("%s\n",lines);
}


1
branches/s100/Apps/crossdev/CBANNER.H

@ -1 +0,0 @@

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

Binary file not shown.

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

@ -1,333 +0,0 @@
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

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

@ -1,152 +0,0 @@
/* chars.c 6/7/2012 dwg - test command line arguments */
#include "stdio.h"
#include "portab.h"
#include "globals.h"
#include "std.h"
#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 */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0 */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 1 */
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 2 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 3 0 - 9 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 4 A - O */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 5 P - Z */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 6 a - o */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 7 p - z */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 8 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 9 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* A */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* B 0 - 9 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* C A - O */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* D P - Z */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* E a - o */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* F p - z */
};
char attroff[] = { 27, '[', 'm', 0 };
char attrbold[] = { 27, '[', '1', 'm', 0 };
char attrlow[] = { 27, '[', '2', 'm', 0 };
char attrundr[] = { 27, '[', '4', 'm', 0 };
char attrblnk[] = { 27, '[', '5', 'm', 0 };
char attrrevs[] = { 27, '[', '7', 'm', 0 };
char attrinvs[] = { 27, '[', '8', 'm', 0 };
char graphon[] = { 27, 'F', 0 };
char graphoff[] = { 27, 'G', 0 };
char atreset[] = "0";
char atbold[] = "1";
char atdim[] = "2";
char atundrscr[] = "4";
char atblink[] = "5";
char atrevs[] = "7";
char athidden[] = "8";
char fgblack[] = "30";
char fgred[] = "31";
char fggreen[] = "32";
char fgyellow[] = "33";
char fgblue[] = "34";
char fgmagenta[] = "35";
char fgcyan[] = "36";
char fgwhite[] = "37";
char bgblack[] = "40";
char bgred[] = "41";
char bggreen[] = "42";
char bgyellow[] = "43";
char bgblue[] = "44";
char bgmagenta[] = "45";
char bgcyan[] = "46";
char bgwhite[] = "47";
dispattr(attr,fg,bg)
char * attr;
char * fg;
char * bg;
{
printf("%c[%s;%s;%sm",27,attr,fg,bg);
}
int main(argc,argv)
int argc;
char *argv[];
{
int i,j,k;
int x,y;
if(1 < argc) {
for(i=1;i<argc;i++) {
printf("%c",atoi(argv[i]));
}
} else {
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);
dispattr(atbold,fggreen,bgblack);
banner("CHARS");
printf("%s",attroff);
dispattr(atbold,fgcyan,bgblack);
for(x=0;x<16;x++) {
crtlc(TOP+6,LEFT+(x*4)+5);
printf("[%x]",x);
}
printf("%s",attroff);
for(y=0;y<16;y++) {
crtlc(TOP+y+7,LEFT+0);
dispattr(atbold,fgcyan,bgblack);
printf("[%x]",y);
printf("%s",attroff);
for(x=0;x<16;x++) {
crtlc(TOP+y+7,LEFT+(x*4)+6);
if(1 == map[(y*16)+x]) {
printf(".");
} else {
printf("%c",(y*16)+x);
}
}
dispattr(atbold,fgcyan,bgblack);
printf(" [%x]",y);
printf("%s",attroff);
}
}
return 0;
}


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

@ -1,18 +0,0 @@
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

@ -1,12 +0,0 @@
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


118
branches/s100/Apps/crossdev/CLEAN.BAT

@ -1,118 +0,0 @@
if exist *.bak erase *.bak
if exist *.prn erase *.prn
if exist *.o erase *.o
if exist *.rel erase *.rel
if exist *.cpm erase *.cpm
if exist 2drive.asm erase 2drive.asm
if exist 2map.asm erase 2map.asm
if exist banker.asm erase banker.asm
if exist cbanner.asm erase cbanner.asm
if exist chars.asm erase chars.asm
if exist clear.asm erase clear.asm
if exist clogical.asm erase clogical.asm
if exist cls.asm erase cls.asm
if exist cmemory.asm erase cmemory.asm
if exist cnamept*.asm erase cnamept*.asm
if exist convert.asm erase convert.asm
if exist cpmname.asm erase cpmname.asm
if exist ctermcap.asm erase ctermcap.asm
if exist cvt2h.asm erase cvt2h.asm
if exist diskcopy.asm erase diskcopy.asm
if exist doit.asm erase doit.asm
if exist dump.asm erase dump.asm
if exist editor.asm erase editor.asm
if exist flip.asm erase flip.asm
if exist form.asm erase form.asm
if exist formfeed.asm erase formfeed.asm
if exist getcfg.asm erase getcfg.asm
if exist hello.asm erase hello.asm
if exist help.asm erase help.asm
if exist label.asm erase label.asm
if exist map.asm erase map.asm
if exist menu.asm erase menu.asm
if exist menu1.asm erase menu1.asm
if exist menucol.asm erase menucol.asm
if exist meta.asm erase meta.asm
if exist mkrasm80.asm erase mkrasm80.asm
if exist monitor.asm erase monitor.asm
if exist multifmt.asm erase multifmt.asm
if exist n8chars.asm erase n8chars.asm
if exist n8vidtst.asm erase n8vidtst.asm
if exist portio.asm erase portio.asm
if exist psecio.asm erase psecio.asm
if exist putc.asm erase putc.asm
if exist reconv.asm erase reconv.asm
if exist remote.asm erase remote.asm
if exist sectorio.asm erase sectorio.asm
if exist stat9918.asm erase stat9918.asm
if exist sysgen.asm erase sysgen.asm
if exist termtype.asm erase termtype.asm
if exist test.asm ertase test.asm
if exist tester.asm erase tester.asm
if exist testn8.asm erase testn8.asm
if exist testv5.asm erase testv5.asm
if exist testv6.asm erase testv6.asm
if exist tms9918.asm erase tms9918.asm
if exist tms9918x.asm erase tms9918x.asm
if exist tmsbind.asm erase tmsbind.asm
if exist tmsstat.asm erase tmsstat.asm
if exist trackio.asm erase trackio.asm
if exist video.asm erase video.asm
if exist view.asm erase view.asm
if exist 2drive.o erase 2drive.o
if exist 2map.o erase 2map.o
if exist banker.o erase banker.o
if exist cbanner.o erase cbanner.o
if exist chars.o erase chars.o
if exist clear.o erase clear.o
if exist clogical.o erase clogical.o
if exist cls.o erase cls.o
if exist cmemory.o erase cmemory.o
if exist cnamept*.o erase cnamept*.o
if exist convert.o erase convert.o
if exist cpmname.o erase cpmname.o
if exist ctermcap.o erase ctermcap.o
if exist cvt2h.o erase cvt2h.o
if exist diskcopy.o erase diskcopy.o
if exist doit.o erase doit.o
if exist dump.o erase dump.o
if exist editor.o erase editor.o
if exist flip.o erase flip.o
if exist form.o erase form.o
if exist formfeed.o erase formfeed.o
if exist getcfg.o erase getcfg.o
if exist hello.o erase hello.o
if exist help.o erase help.o
if exist label.o erase label.o
if exist map.o erase map.o
if exist menu.o erase menu.o
if exist menu1.o erase menu1.o
if exist menucol.o erase menucol.o
if exist meta.o erase meta.o
if exist metadata.o erase metadata.o
if exist mkrasm80.o erase mkrasm80.o
if exist monitor.o erase monitor.o
if exist multifmt.o erase multifmt.o
if exist n8chars.o erase n8chars.o
if exist n8vidtst.o erase n8vidtst.o
if exist portio.o erase portio.o
if exist psecio.o erase psecio.o
if exist putc.o erase putc.o
if exist reconv.o erase reconv.o
if exist remote.o erase remote.o
if exist sectorio.o erase sectorio.o
if exist stat9918.o erase stat9918.o
if exist sysgen.o erase sysgen.o
if exist termtype.o erase termtype.o
if exist test.o ertase test.o
if exist tester.o erase tester.o
if exist testn8.o erase testn8.o
if exist testv5.o erase testv5.o
if exist testv6.o erase testv6.o
if exist tms9918.o erase tms9918.o
if exist tms9918x.o erase tms9918x.o
if exist tmsbind.o erase tmsbind.o
if exist tmsstat.o erase tmsstat.o
if exist trackio.o erase trackio.o
if exist video.o erase video.o
if exist view.o erase view.o

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

@ -1,27 +0,0 @@
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


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

@ -1,48 +0,0 @@
/* 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

@ -1,10 +0,0 @@
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


57
branches/s100/Apps/crossdev/CLOGICAL.C

@ -1,57 +0,0 @@
/* clogical.c 6/4/2012 dwg - */
#include "portab.h"
#include "cpmbios.h"
#include "asmiface.h"
lugcur(drive)
{
asmif(pGETLU,drive,0,0);
return xregde;
}
lugnum(drive)
{
asmif(pGETLU,drive,0,0);
return xreghl;
}
lugdu(drive)
{
asmif(pGETLU,drive,0,0);
return xregbc>>8;
}
luscur(drive,lunum)
{
asmif(pGETLU,drive,0,0);
/* A = Result 0=OK */
/* B = devunit */
/* DE = current */
/* HL = numlu */
/* BC = devunit*256+drive */
/* DE = current */
/* HL = numlu */
asmif(pSETLU,xregbc,lunum,xreghl);
}
lusnum(drive,numlu)
{
asmif(pGETLU,drive,0,0);
/* A = Result 0=OK */
/* B = devunit */
/* DE = current */
/* HL = numlu */
/* BC = devunit*256+drive */
/* DE = current */
/* HL = numlu */
asmif(pSETLU,xregbc,xregde,numlu);
}
/********************/
/* eof - clogical.c */
/********************/


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

@ -1,14 +0,0 @@
/*****************************/
/* clogical.H 6/4/2012 dwg - */
/*****************************/
extern lugdu();
extern lugcur();
extern luscur();
extern lugnum();
extern lusnum();
/********************/
/* eof - clogical.h */
/********************/


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

@ -1,127 +0,0 @@
/* 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

@ -1,283 +0,0 @@
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


53
branches/s100/Apps/crossdev/CMEMORY.C

@ -1,53 +0,0 @@
/* cmemory.c 3/13/2012 dwg - */
#include "portab.h"
/* #include "cpmbind.h" */
memcmp(xptr,yptr,count)
u8 * xptr;
u8 * yptr;
int count;
{
u8 * x;
u8 * y;
int i;
x = xptr;
y = yptr;
for(i=0;i<count;i++) {
if(*x++ != *y++) return FALSE;
}
return TRUE;
}
memcpy(dstptr,srcptr,count)
u8 * dstptr;
u8 * srcptr;
int count;
{
u8 * s;
u8 * d;
int i;
s = srcptr;
d = dstptr;
for(i=0;i<count;i++) {
*d++ = *s++;
}
}
memset(dstptr,data,count)
u8 * dstptr;
u8 data;
u16 count;
{
u8 * p;
int i;
p = dstptr;
for(i=0;i<count;i++) {
*p++ = data;
}
}


58
branches/s100/Apps/crossdev/CMETADAT.C

@ -1,58 +0,0 @@
/* metadata.c 6/10/2012 dwg - functions for manipulating a drive's metadata */
#include "portab.h"
#include "globals.h"
#include "cpmbios.h"
#include "bioscall.h"
#include "sectorio.h"
#include "infolist.h"
#include "dphmap.h"
int hasmeta(drive)
int drive;
{
ireghl = pGETINFO;
bioscall();
pINFOLIST = ireghl;
pDPHVEC = pINFOLIST->dphmap;
pDPH = pDPHVEC[drive]
pDPB = pDPH->dpb;
if(0 < pDPB->off) {
return TRUE;
} else {
return FALSE;
}
}
int getmeta(drive,buffer)
int drive;
struct METADATA * buffer;
{
if(TRUE == hasmeta(drive)) {
rdsector(drive,track,sector,buffer,0);
return SUCCESS;
} else {
return FAILURE;
}
}
int putmeta(drive,buffer)
int drive;
struct METADATA * buffer;
{
if(TRUE == hasmeta(drive)) {
wrsector(drive,track,sector,buffer,0);
return SUCCESS;
} else {
return FAILURE;
}
}
/********************/
/* eof - metadata.c */
/********************/


108
branches/s100/Apps/crossdev/CNAMEPT1.C

@ -1,108 +0,0 @@
/* cnamept1.c 5/24/2012 dwg - added bootlu */
#include "stdio.h"
#include "stdlib.h"
#include "portab.h"
#include "std.h"
#include "cnfgdata.h"
#include "syscfg.h"
extern pager();
char cache[17];
cnamept1(syscfg)
struct SYSCFG * syscfg;
{
strcpy(cache,"syscfg->cnfgdata");
printf("syscfg->jmp jp 0%04xh",syscfg->jmp.address);
pager();
printf("syscfg->cnfloc .dw 0%04xh",syscfg->cnfloc);
pager();
printf("syscfg->tstloc .dw 0%04xh",syscfg->tstloc);
pager();
printf("syscfg->varloc .dw 0%04xh",syscfg->varloc);
pager();
printf("%s.rmj = %d",cache,syscfg->cnfgdata.rmj);
pager();
printf("%s.rmn = %d",cache,syscfg->cnfgdata.rmn);
pager();
printf("%s.rup = %d",cache,syscfg->cnfgdata.rup);
pager();
printf("%s.rtp = %d",cache,syscfg->cnfgdata.rtp);
pager();
printf("%s.diskboot = ",cache);
switch(syscfg->cnfgdata.diskboot) {
case TRUE: printf("TRUE"); break;
case FALSE: printf("FALSE"); break;
}
pager();
printf("%s.devunit = 0x%02x",cache,
syscfg->cnfgdata.devunit);
pager();
printf("%s.bootlu = 0x%04x",cache,
syscfg->cnfgdata.bootlu);
pager();
printf("%s.freq = %dMHz",cache,syscfg->cnfgdata.freq);
pager();
printf("%s.platform = ",cache);
switch(syscfg->cnfgdata.platform) {
case PLT_N8VEM: printf("N8VEM"); break;
case PLT_ZETA: printf("ZETA"); break;
case PLT_N8: printf("N8"); break;
}
pager();
printf("%s.dioplat = ",cache);
switch(syscfg->cnfgdata.dioplat) {
case DPNONE: printf("DIOPLT_NONE"); break;
case DPDIO: printf("DIOPLT_DISKIO"); break;
case DPZETA: printf("DIOPLT_ZETA"); break;
case DPDIDE: printf("DIOPLT_DIDE"); break;
case DPN8: printf("DIOPLT_N8"); break;
case DPDIO3: printf("DIOPLT_DISKIO3"); break;
default: printf("Unknown"); break;
}
pager();
printf("%s.vdumode = ",cache);
switch(syscfg->cnfgdata.vdumode) {
case VPNONE: printf("VDUPLT_NONE"); break;
case VPVDU: printf("VDUPLT_VDU"); break;
case VPVDUC: printf("VDUPLT_VDUC"); break;
case VPPROPIO: printf("VDUPLT_PROPIO"); break;
case VPN8: printf("VDUPLT_VPN8"); break;
default: printf("Unknown!!"); break;
}
pager();
printf("%s.romsize = %d",cache,
syscfg->cnfgdata.romsize);
pager();
printf("%s.ramsize = %d",cache,
syscfg->cnfgdata.ramsize);
pager();
}
/********************/
/* eof - cnamecp1.c */
/********************/


113
branches/s100/Apps/crossdev/CNAMEPT2.C

@ -1,113 +0,0 @@
/* cnamept2.c 5/24/2012 dwg - */
#include "stdio.h"
#include "stdlib.h"
#include "portab.h"
#include "std.h"
#include "cnfgdata.h"
#include "syscfg.h"
extern pager();
char cache[17];
cnamept2(syscfg)
struct SYSCFG * syscfg;
{
strcpy(cache,"syscfg->cnfgdata");
printf("%s.clrramdk = ",cache);
switch(syscfg->cnfgdata.clrramdk) {
case CLRNEV: printf("CLR_NEVER"); break;
case CLRAUTO: printf("CLR_AUTO"); break;
case CLRALLW: printf("CLR_ALLWAYS"); break;
}
pager();
printf("%s.dskyenable = ",cache);
switch(syscfg->cnfgdata.dskyenable) {
case TRUE: printf("TRUE"); break;
case FALSE: printf("FALSE"); break;
}
pager();
printf("%s.uartenable = ",cache);
switch(syscfg->cnfgdata.uartenable) {
case TRUE: printf("TRUE"); break;
case FALSE: printf("FALSE"); break;
}
pager();
printf("%s.vduenable = ",cache);
switch(syscfg->cnfgdata.vduenable) {
case TRUE: printf("TRUE"); break;
case FALSE: printf("FALSE"); break;
}
pager();
printf("%s.fdenable = ",cache);
switch(syscfg->cnfgdata.fdenable) {
case TRUE: printf("TRUE"); break;
case FALSE: printf("FALSE"); break;
}
pager();
if(TRUE == syscfg->cnfgdata.fdenable) {
printf("%s.fdtrace = ",cache);
switch(syscfg->cnfgdata.fdtrace) {
case 0: printf("Silent"); break;
case 1: printf("Fatal Errors"); break;
case 2: printf("All Errors"); break;
case 3: printf("Everything"); break;
default: printf("Unknown!!"); break;
}
pager();
printf("%s.fdmedia = ",cache);
switch(syscfg->cnfgdata.fdmedia) {
case FDM720: printf("FDM720");
printf(" 3.5 720KB 2-sided 80 Trks 9 Sectors");
break;
case FDM144: printf("FDM144");
printf(" 3.5 1.44MB 2-sided 80 Trks 18 Sectors");
break;
case FDM360: printf("FDM360");
printf(" 5.25 360KB 2-sided 40 Trks 9 Sectors");
break;
case FDM120: printf("FDM120");
printf(" 3.5 1.2MB 2-sided 80 Trks 15 Sectors");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.fdmediaalt = ",cache);
switch(syscfg->cnfgdata.fdmediaalt) {
case FDM720: printf("FDM720");
printf(" 3.5 720KB 2-sided 80 Trks 9 Sectors");
break;
case FDM144: printf("FDM144");
printf(" 3.5 1.44MB 2-sided 80 Trks 18 Sectors");
break;
case FDM360: printf("FDM360");
printf(" 5.25 360KB 2-sided 40 Trks 9 Sectors");
break;
case FDM120: printf("FDM120");
printf(" 3.5 1.2MB 2-sided 80 Trks 15 Sectors");
break;
}
pager();
}
}
/********************/
/* eof - cnamept2.c */
/********************/


216
branches/s100/Apps/crossdev/CNAMEPT3.C

@ -1,216 +0,0 @@
/* cnamept2.c 5/24/2012 dwg - */
#include "stdio.h"
#include "stdlib.h"
#include "portab.h"
#include "std.h"
#include "cnfgdata.h"
#include "syscfg.h"
extern pager();
char cache[17];
cnamept3(syscfg)
struct SYSCFG * syscfg;
{
strcpy(cache,"syscfg->cnfgdata");
printf("%s.fdmauto = ",cache);
switch(syscfg->cnfgdata.fdmauto) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
}
pager();
printf("%s.ideenable = ",cache);
switch(syscfg->cnfgdata.ideenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
}
pager();
if(TRUE == syscfg->cnfgdata.ideenable) {
printf("%s.idetrace = ",cache);
switch(syscfg->cnfgdata.idetrace) {
case 0: printf("SILENT");
break;
case 1: printf("ERRORS");
break;
case 2: printf("EVERYTHING");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.de8bit = ",cache);
switch(syscfg->cnfgdata.ide8bit) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.idecapacity = %dMB",cache,
syscfg->cnfgdata.idecapacity);
pager();
}
printf("%s.ppideenable = ",cache);
switch(syscfg->cnfgdata.ppideenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
}
pager();
if(TRUE == syscfg->cnfgdata.ppideenable) {
printf("%s.ppidetrace = ",cache);
switch(syscfg->cnfgdata.ppidetrace) {
case 0: printf("SILENT");
break;
case 1: printf("ERRORS");
break;
case 2: printf("EVERYTHING");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.ppide8bit = ",cache);
switch(syscfg->cnfgdata.ppide8bit) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.ppidecapacity = %dKB",cache,
syscfg->cnfgdata.ppidecapacity);
pager();
printf("%s.ppideslow = ",cache);
switch(syscfg->cnfgdata.ppideslow) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
}
printf("%s.boottype = ",cache);
switch(syscfg->cnfgdata.boottype) {
case BTMENU: printf("BT_MENU");
break;
case BTAUTO: printf("BT_AUTO");
break;
}
pager();
printf("%s.boottimeout = %d seconds",cache,
syscfg->cnfgdata.boottimeout);
pager();
printf("%s.bootdefault = %c:",cache,
syscfg->cnfgdata.bootdefault);
pager();
printf("%s.baudrate = %u (0x%04x) Baud",cache,
syscfg->cnfgdata.baudrate,syscfg->cnfgdata.baudrate);
pager();
if(PLT_N8 == syscfg->cnfgdata.platform) {
printf("%s.ckdiv = %d",cache,
syscfg->cnfgdata.ckdiv);
pager();
printf("%s.memwait = 0x%02x",cache,
syscfg->cnfgdata.memwait);
pager();
printf("%s.iowait = 0x%02x",cache,syscfg->cnfgdata.iowait);
pager();
printf("%s.cntlb0 = 0x%02x",cache,syscfg->cnfgdata.cntlb0);
pager();
printf("%s.cntlb1 = 0x%02x",cache,syscfg->cnfgdata.cntlb1);
pager();
printf("%s.sdenable = ",cache);
switch(syscfg->cnfgdata.sdenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.sdtrace = ",cache);
switch(syscfg->cnfgdata.sdtrace) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
}
}
/********************/
/* eof - cnamept3.c */
/********************/
/*
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;
*/


198
branches/s100/Apps/crossdev/CNAMEPT4.C

@ -1,198 +0,0 @@
/* cnamept2.c 5/24/2012 dwg - */
#include "stdio.h"
#include "stdlib.h"
#include "portab.h"
#include "std.h"
#include "cnfgdata.h"
#include "syscfg.h"
extern pager();
char cache[17];
cnamept4(syscfg)
struct SYSCFG * syscfg;
{
strcpy(cache,"syscfg->cnfgdata");
if(PLT_N8 == syscfg->cnfgdata.platform) {
printf("%s.sdcapacity = %uKB",cache,
syscfg->cnfgdata.sdcapacity);
pager();
printf("%s.sdcsio = ",cache);
switch(syscfg->cnfgdata.sdcsio) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default:
printf("Unknown!!");
break;
}
pager();
printf("%s.sdcsiofast = ",cache);
switch(syscfg->cnfgdata.sdcsiofast) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
}
printf("%s.defiobyte = 0x%02x",cache,
syscfg->cnfgdata.defiobyte);
pager();
printf("%s.termtype = ",cache);
switch(syscfg->cnfgdata.termtype) {
case TERM_TTY: printf("TERM_TTY");
break;
case TERM_ANSI: printf("TERM_ANSI");
break;
case TERM_WYSE: printf("TERM_WYSE");
break;
case TERM_VT52: printf("TERM_VT52");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.revision = %d",cache,
syscfg->cnfgdata.revision);
pager();
printf("%s.prpenable = ",cache);
switch(syscfg->cnfgdata.prpenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
if(TRUE == syscfg->cnfgdata.prpenable) {
printf("%s.prpsdenable = ");
switch(syscfg->cnfgdata.prpsdenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
if(TRUE == syscfg->cnfgdata.prpsdenable) {
printf("%s.prpsdtrace = ",cache);
switch(syscfg->cnfgdata.prpsdtrace) {
case 0: printf("SILENT");
break;
case 1: printf("ERRORS");
break;
case 2: printf("EVERYTHING");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.prpsdcapacity = ",cache);
pager();
printf("%s.prpconenable = ",cache);
switch(syscfg->cnfgdata.prpconenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
}
}
printf("%s.biossize = %d",cache,
syscfg->cnfgdata.biossize);
pager();
printf("%s.pppenable = ",cache);
switch(syscfg->cnfgdata.pppenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
if(TRUE == syscfg->cnfgdata.pppenable) {
printf("%s.pppsdenable = ",cache);
switch(syscfg->cnfgdata.pppsdenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.pppsdtrace = ",cache);
switch(syscfg->cnfgdata.pppsdtrace) {
case 0: printf("SILENT");
break;
case 1: printf("ERRORS");
break;
case 2: printf("EVERYTHING");
break;
default: printf("Unknown!!");
break;
}
pager();
printf("%s.pppcapacity = %d",cache,
syscfg->cnfgdata.prpsdcapacity);
pager();
printf("%s.pppconenable = ",cache);
switch(syscfg->cnfgdata.pppconenable) {
case TRUE: printf("TRUE");
break;
case FALSE: printf("FALSE");
break;
default: printf("Unknown!!");
break;
}
pager();
}
}
/********************/
/* eof - cnamept4.c */
/********************/


73
branches/s100/Apps/crossdev/CNFGDATA.H

@ -1,73 +0,0 @@
/* cnfgdata.h 6/04/2012 dwg - */
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;
};
/********************/
/* eof - cnfgdata.h */
/********************/

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

@ -1,210 +0,0 @@
; 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

@ -1,80 +0,0 @@
/* 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);
}


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

@ -1,49 +0,0 @@
@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 echo WARNING ACCESS DIDN'T BUILD
@@if not exist access.cpm pause
@@if not exist cpmname.cpm call cpmname.bat
@@if not exist cpmname.cpm echo WARNING CPMNAME DIDN'T BUILD
@@if not exist cpmname.cpm pause
@if not exist findfile.cpm call findfile.bat
@if not exist findfile.cpm echo WARNING FINDFILE DIDN'T BUILD
@if not exist findfile.cpm pause
@if not exist map.cpm call map.bat
@if not exist map.cpm echo WARNING MAP DIDN'T BUILD
@if not exist map.cpm pause
@if not exist meta.cpm call meta.bat
@if not exist meta.cpm echo WARNING META DIDN'T BUILD
@if not exist meta.cpm pause
@if not exist multifmt.cpm call multifmt.bat
@if not exist multifmt.cpm echo WARNING MULTIFMT DIDN'T BUILD
@if not exist multifmt.cpm pause
@if not exist rem.cpm call makerem.bat
@if not exist rem.cpm echo WARNING REM DIDN'T BUILD
@if not exist rem.cpm pause
@if not exist setlabel.cpm call setlabel.bat
@if not exist setlabel.cpm echo WARNING SETLABEL DIDN'T BUILD
@if not exist setlabel.cpm pause
@if not exist sysgen.cpm call sysgen.bat
@if not exist sysgen.cpm echo WARNING SYSGEN DIDN'T BUILD
@if not exist sysgen.cpm pause
@if not exist termtype.cpm call termtype.bat
@if not exist termtype.cpm echo WARNING TERMTYPE DIDN'T BUILD
@if not exist termtype.cpm pause
@if not exist view.cpm call view.bat
@if not exist view.cpm echo WARNING VIEW DIDN'T BUILD
@if not exist view.cpm pause
@echo All Core Apps Built
@dir *.cpm /w

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

@ -1,49 +0,0 @@
@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 echo WARNING ACCESS DIDN'T BUILD
@@if not exist access.cpm pause
@@if not exist cpmname.cpm call cpmname.bat
@@if not exist cpmname.cpm echo WARNING CPMNAME DIDN'T BUILD
@@if not exist cpmname.cpm pause
@if not exist findfile.cpm call findfile.bat
@if not exist findfile.cpm echo WARNING FINDFILE DIDN'T BUILD
@if not exist findfile.cpm pause
@if not exist map.cpm call map.bat
@if not exist map.cpm echo WARNING MAP DIDN'T BUILD
@if not exist map.cpm pause
@if not exist meta.cpm call meta.bat
@if not exist meta.cpm echo WARNING META DIDN'T BUILD
@if not exist meta.cpm pause
@if not exist multifmt.cpm call multifmt.bat
@if not exist multifmt.cpm echo WARNING MULTIFMT DIDN'T BUILD
@if not exist multifmt.cpm pause
@if not exist rem.cpm call makerem.bat
@if not exist rem.cpm echo WARNING REM DIDN'T BUILD
@if not exist rem.cpm pause
@if not exist setlabel.cpm call setlabel.bat
@if not exist setlabel.cpm echo WARNING SETLABEL DIDN'T BUILD
@if not exist setlabel.cpm pause
@if not exist sysgen.cpm call sysgen.bat
@if not exist sysgen.cpm echo WARNING SYSGEN DIDN'T BUILD
@if not exist sysgen.cpm pause
@if not exist termtype.cpm call termtype.bat
@if not exist termtype.cpm echo WARNING TERMTYPE DIDN'T BUILD
@if not exist termtype.cpm pause
@if not exist view.cpm call view.bat
@if not exist view.cpm echo WARNING VIEW DIDN'T BUILD
@if not exist view.cpm pause
@echo All Core Apps Built
@dir *.cpm

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

@ -1,71 +0,0 @@
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


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

@ -1,195 +0,0 @@
/* cpmbios.h 3/11/2012 dwg - added CURDRV */
/*************************/
/* BIOS Memory Locations */
/*************************/
#define CURDRV 0x00004
#define BIOSAD 0x0e600
#define pBOOT 0x0E600
#define pWBOOT 0x0E603
#define pCONST 0x0E606
#define pCONIN 0x0E609
#define pCONOUT 0x0E60C
#define pLIST 0x0E60F
#define pPUNCH 0x0E612
#define pREADER 0x0E615
#define pHOME 0x0E618
#define pSELDSK 0x0E61B
#define pSETTRK 0x0E61E
#define pSETSEC 0x0E621
#define pSETDMA 0x0E624
#define pREAD 0x0E627
#define pWRITE 0x0E62A
#define pLISTST 0x0E62D
#define pSECTRN 0x0E630
#define pBNKSEL 0x0E633
#define pGETLU 0x0E636
#define pSETLU 0x0E639
#define pGETINFO 0x0E63C
struct JMP {
unsigned char opcode;
unsigned int address;
};
struct BIOS {
struct JMP boot;
struct JMP wboot;
struct JMP const;
struct JMP conin;
struct JMP conout;
struct JMP list;
struct JMP punch;
struct JMP reader;
struct JMP home;
struct JMP seldsk;
struct JMP settrk;
struct JMP setsec;
struct JMP setdma;
struct JMP read;
struct JMP write;
struct JMP listst;
struct JMP sectrn;
struct JMP bnksel;
struct JMP getlu;
struct JMP setlu;
struct JMP getinfo;
struct JMP rsvd1;
struct JMP rsvd2;
struct JMP rsvd3;
struct JMP rsvd4;
char diskboot;
char bootdrive;
char rmj;
char rmn;
char rup;
char rtp;
};
struct DPH {
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;
};
struct DPB {
unsigned int spt;
unsigned char bsh;
unsigned char blm;
unsigned char exm;
unsigned int dsm;
unsigned int drm;
unsigned char al0;
unsigned char al1;
unsigned int cks;
unsigned int off;
};
/* bioscall.h 3/10/2012 dwg - header file for bdoscall */
extern char irega;
extern unsigned int iregbc;
extern unsigned int iregde;
extern unsigned int ireghl;
extern bioscall();
/* bdoscall.h 3/10/2012 dwg - header file for bdoscall */
extern char drega;
extern unsigned int dregbc;
extern unsigned int dregde;
extern unsigned int dreghl;
extern bdoscall();
/* diagnose.h 5/23/2012 dwg - */
extern char hrega;
extern unsigned int hregbc;
extern unsigned int hregde;
extern unsigned int hreghl;
extern diagnose();
/* ctermcap.h 3/11/2012 dwg - declarations for termal capability */
extern crtinit();
extern crtclr();
extern crtlc();
/* cpmbdos.h */
#define TERMCPM 0
#define CONIN 1
#define CWRITE 2
#define DIRCONIO 6
#define PRINTSTR 9
#define RDCONBUF 10
#define GETCONST 11
#define RETVERNUM 12
#define RESDISKSYS 13
#define SELECTDISK 14
#define FOPEN 15
#define FCLOSE 16
#define SEARCHFIRST 17
#define SEARCHNEXT 18
#define FDELETE 19
#define FREADSEQ 20
#define FWRITESEQ 21
#define FMAKEFILE 22
#define FRENAME 23
#define RETLOGINVEC 24
#define RETCURRDISK 25
#define SETDMAADDR 26
#define GETALLOCVEC 27
#define WRPROTDISK 28
#define GETROVECTOR 29
#define FSETATTRIB 30
#define GETDPBADDR 31
#define SETGETUSER 32
#define FREADRANDOM 33
#define FWRITERAND 34
#define FCOMPSIZE 35
#define SETRANDREC 36
#define RESETDRIVE 37
#define WRRANDFILL 38
#define DRIVEA 0
/* dphmap.h 5/29/2012 dwg - declaration of DPH MAP structure */
struct DPHMAP {
struct DPH * drivea;
struct DPH * driveb;
struct DPH * drivec;
struct DPH * drived;
struct DPH * drivee;
struct DPH * drivef;
struct DPH * driveg;
struct DPH * driveh;
} * pDPHMAP;
struct DPHMAP * pDPHVEC[MAXDRIVE];
/******************/
/* eof - dphmap.h */
/******************/
/*****************/
/* eof - cpm80.h */
/*****************/


BIN
branches/s100/Apps/crossdev/CPM86/AME86.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/AME86DOS.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/ARCV.COM

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/AS.EXE

Binary file not shown.

8
branches/s100/Apps/crossdev/CPM86/ASSERT.H

@ -1,8 +0,0 @@
#ifndef NDEBUG
#ifndef stderr
#include <stdio.h>
#endif
#define assert(x) if (!(x)) {fprintf(stderr,"Assertion failed: x, file %s, line %d\n",__FILE__,__LINE__); exit(1);}
#else
#define assert(x)
#endif

BIN
branches/s100/Apps/crossdev/CPM86/C.LIB

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/CC.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/CCB.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/CNM.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/CPM.EXE

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/CRC.EXE

Binary file not shown.

20
branches/s100/Apps/crossdev/CPM86/CTYPE.H

@ -1,20 +0,0 @@
/* Copyright (C) 1984 by Manx Software Systems */
extern char ctp_[];
#define isalpha(x) (ctp_[(x)+1]&0x03)
#define isupper(x) (ctp_[(x)+1]&0x01)
#define islower(x) (ctp_[(x)+1]&0x02)
#define isdigit(x) (ctp_[(x)+1]&0x04)
#define isxdigit(x) (ctp_[(x)+1]&0x08)
#define isalnum(x) (ctp_[(x)+1]&0x07)
#define isspace(x) (ctp_[(x)+1]&0x10)
#define ispunct(x) (ctp_[(x)+1]&0x40)
#define iscntrl(x) (ctp_[(x)+1]&0x20)
#define isprint(x) (ctp_[(x)+1]&0xc7)
#define isgraph(x) (ctp_[(x)+1]&0x47)
#define isascii(x) (((x)&0x80)==0)
#define toascii(x) ((x)&127)
#define _tolower(x) ((x)|0x20)
#define _toupper(x) ((x)&0x5f)

BIN
branches/s100/Apps/crossdev/CPM86/D11.LIB

Binary file not shown.

BIN
branches/s100/Apps/crossdev/CPM86/D20.LIB

Binary file not shown.

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

Loading…
Cancel
Save