Browse Source

Merge pull request #87 from wwarthen/master

Resync
pull/93/head
b1ackmai1er 6 years ago
committed by GitHub
parent
commit
41989e1151
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 25
      .github/workflows/build.yml
  2. 2
      ReadMe.txt
  3. 89
      Source/CBIOS/cbios.asm
  4. 2
      Source/CBIOS/ver.inc
  5. 2
      Source/CPM22/ver.inc
  6. 2
      Source/CPM3/ver.inc
  7. 9
      Source/HBIOS/romldr.asm
  8. 2
      Source/HBIOS/ver.inc
  9. 2
      Source/ZSDOS/ver.inc

25
.github/workflows/build.yml

@ -0,0 +1,25 @@
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: rlespinasse/github-slug-action@1.1.0
- name: Install Dependencies
run: |
sudo apt-get install libncurses-dev
- name: Build
run: |
make
rm -rf .git
- name: Upload Archive
uses: actions/upload-artifact@v1
with:
name: RomWBW-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
path: .

2
ReadMe.txt

@ -7,7 +7,7 @@
***********************************************************************
Wayne Warthen (wwarthen@gmail.com)
Version 2.9.2-pre.32, 2020-02-20
Version 2.9.2-pre.33, 2020-02-28
https://www.retrobrewcomputers.org/
RomWBW is a ROM-based implementation of CP/M-80 2.2 and Z-System for

89
Source/CBIOS/cbios.asm

@ -76,17 +76,6 @@ MEMTOP .EQU $10000
;
#IFDEF PLTUNA
#INCLUDE "../UBIOS/ubios.inc"
;
; EQUATES BELOW SHOULD BE REPLACED WITH RUNTIME CALLS TO UNA GET BIOS INFO FUNCS
;
RAMSIZE .EQU 512
;
BID_RAM0 .EQU $8000
BID_RAMN .EQU (BID_RAM0 + ((RAMSIZE / 32) - 1))
;
BID_RAMD0 .EQU BID_RAM0 ; FIRST RAM DRIVE BANK
BID_BIOS .EQU BID_RAMN - 2 ; BIOS BANK
BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.)
#ENDIF
;
.ORG CBIOS_LOC ; DEFINED IN STD.ASM
@ -311,7 +300,6 @@ DPBCNT .EQU ($ - DPBMAP) / 2
BOOT:
; STANDARD BOOT INVOCATION
LD SP,STACK ; STACK FOR INITIALIZATION
;
; COPY INITIALIZATION CODE TO RUNNING LOCATION $8000
LD HL,BUFPOOL
@ -362,7 +350,7 @@ WBOOT:
#IFDEF PLTUNA
; RESTORE COMMAND PROCESSOR FROM UNA BIOS CACHE
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_BIOS ; UBIOS_PAGE (SEE PAGES.INC)
LD DE,(BNKBIOS) ; UBIOS_PAGE (SEE PAGES.INC)
RST 08 ; DO IT
PUSH DE ; SAVE PREVIOUS BANK
@ -1525,6 +1513,11 @@ BNKBIOS .DB 0 ; BIOS BANK ID
BNKUSER .DB 0 ; USER BANK ID
#ENDIF
;
#IFDEF PLTUNA
BNKBIOS .DW 0 ; BIOS BANK ID
BNKUSER .DW 0 ; USER BANK ID
#ENDIF
;
; DOS DISK VARIABLES
;
DSKOP .DB 0 ; DISK OPERATION (DOP_READ/DOP_WRITE)
@ -1833,14 +1826,24 @@ INIT:
LD (CBIOS_LOC + 1),HL ; STORE IT IN FIRST ENTRY OF CBIOS JUMP TABLE
#IFDEF PLTUNA
; GET CRITICAL BANK ID'S
LD BC,$03FA ; UNA FUNC = GET CUR EXEC ENV
CALL $FFFD ; DE = CUR EXEC PAGE, HL = UBIOS PAGE
LD (BNKBIOS),HL ; SAVE UBIOS PAGE
LD BC,$05FA ; UNA FUNC = GET USER EXEC ENV
CALL $FFFD ; DE = USER LOW PAGE, HL = USER HIGH PAGE (COMMMON)
LD (BNKUSER),DE ; SAVE USER PAGE
LD DE,$8000 ; RAM DRIVE STARTS AT FIRST RAM BANK
LD (BNKRAMD),DE ; SAVE STARTING RAM DRIVE BANK
; MAKE SURE UNA EXEC PAGE IS ACTIVE
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_USR ; SWITCH BACK TO EXEC BANK
LD DE,(BNKUSER) ; SWITCH BACK TO EXEC BANK
CALL $FFFD ; DO IT (RST 08 NOT YET INSTALLED)
; COPY BIOS PAGE ZERO TO USER BANK
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_BIOS ; UBIOS_PAGE (SEE PAGES.INC)
LD DE,(BNKBIOS) ; UBIOS_PAGE (SEE PAGES.INC)
CALL $FFFD ; DO IT (RST 08 NOT YET INSTALLED)
PUSH DE ; SAVE PREVIOUS BANK
@ -1863,6 +1866,7 @@ INIT:
LD (8),A ; STORE AT 0x0008
LD HL,($FFFE) ; UNA ENTRY VECTOR
LD (9),HL ; STORE AT 0x0009
#ELSE
; GET CRITICAL BANK ID'S
LD B,BF_SYSGET ; HBIOS FUNC=GET SYS INFO
@ -1911,7 +1915,7 @@ INIT:
LD (CCPBUF),HL ; SAVE THE ADDRESS (IN BIOS MEM)
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_BIOS ; UBIOS_PAGE (SEE PAGES.INC)
LD DE,(BNKBIOS) ; UBIOS_PAGE (SEE PAGES.INC)
RST 08 ; DO IT
PUSH DE ; SAVE PREVIOUS BANK
@ -2201,7 +2205,7 @@ MD_INIT4:
#IF (CLRRAMDISK != CLR_NEVER)
DI ; NO INTERRUPTS
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_RAMD0 ; FIRST BANK OF RAM DISK
LD DE,(BNKRAMD) ; FIRST BANK OF RAM DISK
CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE)
#IF (CLRRAMDISK == CLR_AUTO)
@ -2226,7 +2230,7 @@ CLRRAM1:
CLRRAM2:
#ENDIF
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_USR ; SWITCH BACK TO EXEC BANK FOR WRITESTR
LD DE,(BNKUSER) ; SWITCH BACK TO EXEC BANK FOR WRITESTR
CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE)
CALL NEWLINE2 ; FORMATTING
@ -2234,7 +2238,7 @@ CLRRAM2:
CALL WRITESTR ; DISPLAY IT
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_RAMD0 ; FIRST BANK OF RAM DISK
LD DE,(BNKRAMD) ; FIRST BANK OF RAM DISK
CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE)
LD HL,0 ; SOURCE ADR FOR FILL
@ -2243,7 +2247,7 @@ CLRRAM2:
CALL FILL ; DO IT
CLRRAM3:
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,BID_USR ; SWITCH BACK TO EXEC BANK
LD DE,(BNKUSER) ; SWITCH BACK TO EXEC BANK
CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE)
EI ; RESUME INTERRUPTS
@ -2306,9 +2310,6 @@ CLRRAM3:
#IFDEF PLTUNA
;
DRV_INIT:
; INIT DEFAULT DRIVE TO A: FOR NOW
XOR A ; ZERO
LD (DEFDRIVE),A ; STORE IT
;
; PERFORM UBIOS SPECIFIC INITIALIZATION
; BUILD DRVMAP BASED ON AVAILABLE UBIOS DISK DEVICE LIST
@ -2319,6 +2320,14 @@ DRV_INIT:
LD D,L ; SAVE L AS UNIT
LD E,0 ; SLICE IS ZERO
LD (BOOTVOL),DE ; D -> UNIT, E -> SLICE
;
; INIT DEFAULT
LD A,D ; BOOT UNIT?
CP 1 ; IF ROM BOOT, DEF DRIVE SHOULD BE B:
JR Z,DRV_INIT1 ; ... SO LEAVE AS IS AND SKIP AHEAD
XOR A ; ELSE FORCE TO DRIVE A:
DRV_INIT1:
LD (DEFDRIVE),A ; STORE IT
;
; SETUP THE DRVMAP STRUCTURE
LD HL,(HEAPTOP) ; GET CURRENT HEAP TOP
@ -2366,6 +2375,14 @@ DRV_INIT5:
LD A,E ; SLICES PER VOLUME VALUE TO ACCUM
LD (HDSPV),A ; SAVE IT
;
LD DE,(BOOTVOL) ; BOOT VOLUME (UNIT, SLICE)
LD A,1 ; ROM DISK UNIT?
CP D ; CHECK IT
JR Z,DRV_INIT5A ; IF SO, SKIP BOOT DRIVE
LD B,1 ; JUST ONE SLICE PLEASE
CALL DRV_INIT8A ; DO THE BOOT DEVICE
;
DRV_INIT5A:
; SETUP TO ENUMERATE DEVICES TO BUILD DRVMAP
LD B,0 ; START WITH UNIT 0
;
@ -2394,7 +2411,21 @@ DRV_INIT7: ; PROCESS CURRENT UNIT (SEE UNA PROTOIDS.INC)
LD A,(HDSPV) ; GET SLICES PER VOLUME TO ACCUM
LD B,A ; MOVE TO B FOR LOOP COUNTER
;
DRV_INIT8: ; SLICE CREATION LOOP
DRV_INIT8:
; SLICE CREATION LOOP
; DE=UNIT/SLICE, B=SLICE CNT
LD A,(BOOTVOL + 1) ; GET BOOT UNIT
CP 1 ; ROM BOOT?
JR Z,DRV_INIT8A ; IF SO, OK TO CONTINUE
CP D ; COMPARE TO CUR UNIT
JR NZ,DRV_INIT8A ; IF NE, OK TO CONTINUE
LD A,(BOOTVOL) ; GET BOOT SLICE
CP E ; COMPARE TO CUR SLICE
JR NZ,DRV_INIT8A ; IF NE, OK TO CONTINUE
INC E ; IS BOOT DU/SLICE, SKIP IT
JR DRV_INIT8 ; AND RESTART LOOP
;
DRV_INIT8A: ; ENTRY POINT TO SKIP BOOT DISK/LU CHECK
;
; INC DRVMAP ENTRY COUNT AND CHECK FOR 16 ENTRY MAXIMUM
LD HL,(DRVMAPADR) ; POINT TO DRIVE MAP
@ -2546,7 +2577,7 @@ DRV_INIT5:
; LD B,E ; COUNT TO B
; LD C,0 ; USE C AS DEVICE LIST INDEX
;
LD DE,(HCB + HCB_BOOTVOL) ; BOOT VOLUME (UNIT, SLICE)
LD DE,(BOOTVOL) ; BOOT VOLUME (UNIT, SLICE)
LD A,1 ; ROM DISK UNIT?
CP D ; CHECK IT
JR Z,DRV_INIT5A ; IF SO, SKIP BOOT DRIVE
@ -3001,11 +3032,17 @@ DPHTOP .DW 0 ; CURRENT TOP OF DPH POOL
DIRBUF .DW 0 ; DIR BUF POINTER
HEAPTOP .DW BUFPOOL ; CURRENT TOP OF HEAP
BOOTVOL .DW 0 ; BOOT VOLUME, MSB=BOOT UNIT, LSB=BOOT SLICE
BNKRAMD .DB 0 ; STARTING BANK ID FOR RAM DRIVE
HDSPV .DB 2 ; SLICES PER VOLUME FOR HARD DISKS (MUST BE >= 1)
DRVLST .FILL 32 ; ACTIVE DRIVE LIST USED DURINT DRV_INIT
DRVLSTC .DB 0 ; ENTRY COUNT FOR ACTIVE DRIVE LIST
;
#IFDEF PLTWBW
BNKRAMD .DB 0 ; STARTING BANK ID FOR RAM DRIVE (WBW)
#ENDIF
#IFDEF PLTUNA
BNKRAMD .DW 0 ; STARTING BANK ID FOR RAM DRIVE (UNA)
#ENDIF
;
CMD .DB CMDLEN - 2
.TEXT "SUBMIT PROFILE"
.DB 0

2
Source/CBIOS/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 9
#DEFINE RUP 2
#DEFINE RTP 0
#DEFINE BIOSVER "2.9.2-pre.32"
#DEFINE BIOSVER "2.9.2-pre.33"

2
Source/CPM22/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 9
#DEFINE RUP 2
#DEFINE RTP 0
#DEFINE BIOSVER "2.9.2-pre.32"
#DEFINE BIOSVER "2.9.2-pre.33"

2
Source/CPM3/ver.inc

@ -3,5 +3,5 @@ rmn equ 9
rup equ 2
rtp equ 0
biosver macro
db "2.9.2-pre.32"
db "2.9.2-pre.33"
endm

9
Source/HBIOS/romldr.asm

@ -737,6 +737,15 @@ GOBOOTDISK1:
LD (BL_COUNT),A ; ... AND SAVE IT
;
#IF (BIOS == BIOS_UNA)
;
; START OS LOAD AT SECTOR 3
LD C,$41 ; UNA FUNC: SET LBA
LD A,(BL_BOOTID) ; GET BOOT DEVICE ID
LD B,A ; MOVE TO B
LD DE,0 ; HI WORD OF LBA IS ALWAYS ZERO
LD HL,3 ; LOAD STARTING INFO SECTOR 2
RST 08 ; SET LBA
JP NZ,DB_ERR ; HANDLE ERROR
;
; READ OS IMAGE INTO MEMORY
LD C,$42 ; UNA FUNC: READ SECTORS

2
Source/HBIOS/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 9
#DEFINE RUP 2
#DEFINE RTP 0
#DEFINE BIOSVER "2.9.2-pre.32"
#DEFINE BIOSVER "2.9.2-pre.33"

2
Source/ZSDOS/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 9
#DEFINE RUP 2
#DEFINE RTP 0
#DEFINE BIOSVER "2.9.2-pre.32"
#DEFINE BIOSVER "2.9.2-pre.33"

Loading…
Cancel
Save