2021/12  CF-Card eingebunden wie bei P180x und P181X

Assemblieren mit GENSYS.SUB

## Quelldateien assemblieren:

GENSYS.SUB      (was ASM.SUB):
rmac bioskrnl sz pz    ; Z means zero output  
rmac boot sz pz
rmac drvtbl sz pz       ; hier CF-card 
rmac move sz pz
rmac fdprofbk sz pz     ; hier CF-Card Treiber
;rmac harddisk sz pz
rmac ramdisk sz pz
rmac scb sz pz
rmac chario sz pz
m80 =hdsyside



## BNKBIOS erstellen - REL -Dateien linken (zusammenfuegen)  
Steht in GENSYS.SUB (WAS LINK.SUB:)
link bnkbios3[b,nr]=bioskrnl,boot,drvtbl,move,fdprofbk,scb,chario,hdsyside

## CPM.SYS generieren:

GENCOM AUTO    (eine PROFILE.DAT wird benötigt)

>gencpm auto

CP/M 3.0 System Generation
Copyright (C) 1982, Digital Research

*** CP/M 3.0 SYSTEM GENERATION DONE ***

########################################
## CPMLADER erstellen:
## ldrbios.asm ist hier nicht vorhanden
;MLDR.SUB:
;rmac ldrbios sz pz
;link cpmldr[l100]=cpmldr,ldrbios
;ren cpmldr.hxc=cpmldr.com



######################################################################
RMAC

                       Syntax:

 RMAC filespec toptions)

                       Purpose:

 RMAC, a relocatable macro assembler, assembles ASM files into REL 
files that you can link to create COM files.

 RMAC options specify the destination of the output files. Replace d 
with the destination drive letter for the output files.

                       RMAC Options (d=output option parameter):

 Rd drive for REL file (A-0, Z)
 Sd drive for SYM file (A-0, X, P, Z)
 Pd drive for PRN file (A-0, X, P, Z)

                       The d parameter can have the following values:

 A-0 specifies drive A-0
 X means output to the console
 P means output to the printer
 Z means zero output

                       Example:

 A>RMAC TEST $PX SB RB

 Assembles the file TEST.ASM from drive A, sends the listing file 
(TEST.PRN) to the console, puts the symbol file (TEST.SYM) on drive B
and puts the relocatable object file (TEST.REL) on drive B.

#######################################################################

Generieren unter YAZE:

F>gensys.sub

F>rmac bioskrnl sz pz
CP/M RMAC ASSEM 1.1
023C
00BH USE FACTOR
END OF ASSEMBLY

F>rmac boot sz pz
CP/M RMAC ASSEM 1.1
00FD
02BH USE FACTOR
END OF ASSEMBLY

F>rmac drvtbl sz pz
CP/M RMAC ASSEM 1.1
0020
000H USE FACTOR
END OF ASSEMBLY

F>rmac move sz pz
CP/M RMAC ASSEM 1.1
00FB
023H USE FACTOR
END OF ASSEMBLY

F>rmac fdprofbk sz pz
CP/M RMAC ASSEM 1.1
U03CC 0000          dw  hd$write
U03CE 0000          dw  hd$read
U03D0 0000          dw  hd$login
U03D2 0000          dw  hd$init
U03EF 0000          dw  hd$write
U03F1 0000          dw  hd$read
U03F3 0000          dw  hd$login
U03F5 0000          dw  hd$init
U0412 0000          dw  hd$write
U0414 0000          dw  hd$read
U0416 0000          dw  hd$login
U0418 0000          dw  hd$init
U0435 0000          dw  hd$write
U0437 0000          dw  hd$read
U0439 0000          dw  hd$login
U043B 0000          dw  hd$init
06B1
044H USE FACTOR
END OF ASSEMBLY

#### kann raus
F>rmac ramdisk sz pz
CP/M RMAC ASSEM 1.1
U                       if      RAMDISK         ; logical, isn't it ?
0000
003H USE FACTOR
END OF ASSEMBLY
####
F>rmac scb sz pz
CP/M RMAC ASSEM 1.1
0000
001H USE FACTOR
END OF ASSEMBLY

F>rmac chario sz pz
CP/M RMAC ASSEM 1.1
0202
02AH USE FACTOR
END OF ASSEMBLY

F>m80 =hdsyside

No Fatal error(s)

F>f:link.com bnkbios3[b,nr]=bioskrnl,boot,drvtbl,move,fdprofbk,scb,chario,hdsyside
LINK 1.31

@ADRV    08F0   @RDRV    08F1   @TRK     08F2   @SECT    08F4
@DMA     08F6   @DBNK    08F9   @CNT     08F8   @CBNK    023B
@COVEC   FE24   @CIVEC   FE22   @AOVEC   FE28   @AIVEC   FE26
@LOVEC   FE2A   @MXTPA   FE62   @BNKBF   FE35   BINIT    0A17
@CTBL    067E   @DTBL    0339   @DATE    FE58   @HOUR    FE5A
@MIN     FE5B   @SEC     FE5C   MONON    06AF   MONOFF   06E1
INTSER   070C   FDSD0    0B73   FDSD1    0C66   FDSD2    0D59
FDSD3    0E4C   FDSD4    0F3F   FDSD5    0F62   FDSD6    0F85
FDSD7    0FA8   @ERMDE   FE4B   @CRDMA   FE3C   @CRDSK   FE3E
@VINFO   FE3F   @RESEL   FE41   @FX      FE43   @USRCD   FE44
@MLTIO   FE4A   @ERDSK   FE51   @MEDIA   FE54   @BFLGS   FE57
HDINIT   121B   HDLOGI   121A   HDREAD   12A3   HDWRIT   12C4

ABSOLUTE     0000
CODE SIZE    07F7 (0000-07F6)
DATA SIZE    0C0D (0800-140C)
COMMON SIZE  0000
USE FACTOR     25

F>
F>f:gencpm.com


CP/M 3.0 System Generation
Copyright (C) 1982, Digital Research

Default entries are shown in (parens).
Default base is Hex, precede entry with # for decimal

Use GENCPM.DAT for defaults (Y) ?

Create a new GENCPM.DAT file (N) ? y

Display Load Map at Cold Boot (Y) ?

Number of console columns (#80) ?
Number of lines in console page (#24) ?
Backspace echoes erased character (N) ?
Rubout echoes erased character (N) ?

Initial default drive (A:) ?

Top page of memory (FE) ?
Bank switched memory (Y) ?
Common memory base page (F0) ?

Long error messages (Y) ?

Accept new system definition (Y) ?

Setting up Allocation vector for drive F:
Setting up Checksum vector for drive F:
Setting up Allocation vector for drive G:
Setting up Checksum vector for drive G:
Setting up Allocation vector for drive H:
Setting up Checksum vector for drive H:
Setting up Allocation vector for drive I:
Setting up Checksum vector for drive I:

*** Bank 1 and Common are not included ***
*** in the memory segment table.       ***

Number of memory segments (#1) ?

CP/M 3 Base,size,bank (95,5B,00)

Enter memory segment table:
 Base,size,bank (01,94,00) ? 01,ff,00

ERROR:  Memory conflict - segment trimmed.
 Base,size,bank (01,EF,00) ?

ERROR:  Memory conflict - segment trimmed.
 Base,size,bank (01,94,00) ?

 CP/M 3 Sys    9500H 5B00H  Bank 00
 Memseg No. 00 0100H 9400H  Bank 00

Accept new memory segment table entries (Y) ?

Setting up directory hash tables:
 Enable hashing for drive A: (Y) ?
 Enable hashing for drive B: (Y) ?
 Enable hashing for drive C: (N) ?
 Enable hashing for drive D: (N) ?
 Enable hashing for drive F: (N) ?
 Enable hashing for drive G: (N) ?
 Enable hashing for drive H: (N) ?
 Enable hashing for drive I: (Y) ?

Setting up Blocking/Deblocking buffers:

The physical record size is 0400H:

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 004CH, Other banks = 0000H

               Number of directory buffers for drive A: (#8) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 002BH, Other banks = 0000H

               Number of data buffers for drive A: (#4) ? 8
               Allocate buffers outside of Common (Y) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000BH, Other banks = 0000H

               Number of directory buffers for drive B: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000BH, Other banks = 0000H

               Number of data buffers for drive B: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000BH, Other banks = 0000H

               Number of directory buffers for drive C: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000BH, Other banks = 0000H

               Number of data buffers for drive C: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000BH, Other banks = 0000H

               Number of directory buffers for drive D: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000BH, Other banks = 0000H

               Number of data buffers for drive D: (#0) ?
               Share buffer(s) with which drive (A:) ?

The physical record size is 0200H:

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000BH, Other banks = 0000H

               Number of directory buffers for drive F: (#8) ? 4

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0002H, Other banks = 0000H

               Number of data buffers for drive F: (#0) ? 8
               Allocate buffers outside of Common (N) ? y

ERROR:  Unable to allocate Data deblocking buffer space.

Setting up Blocking/Deblocking buffers:

The physical record size is 0400H:

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 004CH, Other banks = 0000H

               Number of directory buffers for drive A: (#8) ? 6

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0033H, Other banks = 0000H

               Number of data buffers for drive A: (#8) ? 4
               Allocate buffers outside of Common (Y) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0023H, Other banks = 0000H

               Number of directory buffers for drive B: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0023H, Other banks = 0000H

               Number of data buffers for drive B: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0023H, Other banks = 0000H

               Number of directory buffers for drive C: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0023H, Other banks = 0000H

               Number of data buffers for drive C: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0023H, Other banks = 0000H

               Number of directory buffers for drive D: (#0) ?
               Share buffer(s) with which drive (A:) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0023H, Other banks = 0000H

               Number of data buffers for drive D: (#0) ?
               Share buffer(s) with which drive (A:) ?

The physical record size is 0200H:

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0023H, Other banks = 0000H

               Number of directory buffers for drive F: (#4) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 001BH, Other banks = 0000H

               Number of data buffers for drive F: (#8) ?
               Allocate buffers outside of Common (Y) ?

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 000AH, Other banks = 0000H

               Number of directory buffers for drive G: (#0) ? 4

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0002H, Other banks = 0000H

               Number of data buffers for drive G: (#0) ?
               Share buffer(s) with which drive (E:) ? f

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0002H, Other banks = 0000H

               Number of directory buffers for drive H: (#0) ?
               Share buffer(s) with which drive (E:) ? f

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0002H, Other banks = 0000H

               Number of data buffers for drive H: (#0) ?
               Share buffer(s) with which drive (E:) ? f

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0002H, Other banks = 0000H

               Number of directory buffers for drive I: (#1) ? 0
               Share buffer(s) with which drive (A:) ? f

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0002H, Other banks = 0000H

               Number of data buffers for drive I: (#1) ? 0
               Share buffer(s) with which drive (A:) ? f

     Available space in 256 byte pages:
     TPA = 00F1H, Bank 0 = 0002H, Other banks = 0000H


Accept new buffer definitions (Y) ?

 BNKBIOS3 SPR  F700H  0800H
 BNKBIOS3 SPR  C200H  2E00H
 RESBDOS3 SPR  F100H  0600H
 BNKBDOS3 SPR  9400H  2E00H

*** CP/M 3.0 SYSTEM GENERATION DONE ***


