mirror of https://github.com/wwarthen/RomWBW.git
Browse Source
- Improved ASSIGN operation under CP/M 3 to better handle BIOS function invocations - Added 2PIOTST for testing the DUALPIO MBC board - Increased default RAM drive size for ZRCpull/283/head v3.1.1-pre.159
22 changed files with 701 additions and 48 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,567 @@ |
|||
; 24.9.2018 PMS (b1ackmai1er) |
|||
; Modified version for ECB-ZILOG PERIPHERALS BOARD - TEST 2 PIO's |
|||
; 01.11.2011 WKA |
|||
; Assembler M80 |
|||
; ECB-4PIO |
|||
; Testprogramm f�r die I/O-Karte ECB-4PIO in Z80-Mnemonics |
|||
|
|||
PAGE 72 |
|||
.Z80 |
|||
ASEG |
|||
ORG 100H |
|||
; |
|||
;CP/M-ADDRESSES |
|||
;* * * * * * * |
|||
; |
|||
BOOT EQU 0 ;WARMBOOT CP/M |
|||
BDOS EQU 5 ;ENTRY BDOS |
|||
NMI EQU 66H ;Error-ROUTINE |
|||
; |
|||
;CONSOLE-CODES |
|||
;* * * * * * * |
|||
; |
|||
EOT EQU 4 ;END OF TEXT |
|||
BS EQU 8 ;BACKSPACE |
|||
TAB EQU 9 ;TABULATOR |
|||
LF EQU 0AH ;LINE-FEED |
|||
CR EQU 0DH ;CARRIAGE-RETURN |
|||
FF EQU 0CH ;FORM-FEED |
|||
ESC EQU 1BH ;ESCAPE |
|||
CTRLC EQU 'C'-40H ;CONTROL-C |
|||
CTRLW EQU 'W'-40H ;CONTROL-W |
|||
CTRLX EQU 'X'-40H ;CONTROL-X |
|||
CTRLY EQU 'Y'-40H ;CONTROL-Y |
|||
CTRLZ EQU 'Z'-40H ;CONTROL-Z |
|||
; |
|||
BASE EQU 0B8H ; 4 DIL-SCHALTER |
|||
; |
|||
PIO0AD EQU BASE+0 ; PIO 0 A DATEN |
|||
PIO0AC EQU BASE+2 ; PIO 0 A CONTROL |
|||
PIO0BD EQU BASE+1 ; PIO 0 B DATEN |
|||
PIO0BC EQU BASE+3 ; PIO 0 B CONTROL |
|||
; |
|||
PIO1AD EQU BASE+4 ; PIO 1 A DATEN |
|||
PIO1AC EQU BASE+6 ; PIO 1 A CONTROL |
|||
PIO1BD EQU BASE+5 ; PIO 1 B DATEN |
|||
PIO1BC EQU BASE+7 ; PIO 1 B CONTROL |
|||
; |
|||
MAIN: LD DE,PIO_SRTMSG |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,INI_MSG |
|||
CALL PSTRIN |
|||
CALL INIT |
|||
; |
|||
LD DE,PIO0ADW ;PIO0 A |
|||
CALL PSTRIN |
|||
LD A,55H |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO0AD),A |
|||
IN A,(PIO0AD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO0ADR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO0ADW |
|||
CALL PSTRIN |
|||
LD A,0AAH |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO0AD),A |
|||
IN A,(PIO0AD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO0ADR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO0BDW ;PIO0 B |
|||
CALL PSTRIN |
|||
LD A,55H |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO0BD),A |
|||
IN A,(PIO0BD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO0BDR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO0BDW |
|||
CALL PSTRIN |
|||
LD A,0AAH |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO0BD),A |
|||
IN A,(PIO0BD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO0BDR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO1ADW ;PIO1 A |
|||
CALL PSTRIN |
|||
LD A,55H |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO1AD),A |
|||
IN A,(PIO1AD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO1ADR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO1ADW |
|||
CALL PSTRIN |
|||
LD A,0AAH |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO1AD),A |
|||
IN A,(PIO1AD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO1ADR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO1BDW ;PIO1 B |
|||
CALL PSTRIN |
|||
LD A,55H |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO1BD),A |
|||
IN A,(PIO1BD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO1BDR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO1BDW |
|||
CALL PSTRIN |
|||
LD A,0AAH |
|||
PUSH AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
POP AF |
|||
OUT (PIO1BD),A |
|||
IN A,(PIO1BD) |
|||
PUSH AF |
|||
; |
|||
LD DE,PIO1BDR |
|||
CALL PSTRIN |
|||
POP AF |
|||
CALL OUTB |
|||
LD DE,LINE_E |
|||
CALL PSTRIN |
|||
; |
|||
LD DE,PIO_ENDMSG |
|||
CALL PSTRIN |
|||
JP BOOT |
|||
; |
|||
;========================================================================== |
|||
INIT: LD HL,PIO0T ; PIO0 INITITALISIEREN |
|||
CALL INITX |
|||
LD HL,PIO1T ; PIO1 INITITALISIEREN |
|||
CALL INITX |
|||
RET |
|||
; |
|||
INITX: LD A,(HL) ; BYTE-ANZAHL |
|||
OR A |
|||
RET Z |
|||
LD B,A ; Port-Adresse nach C |
|||
INC HL |
|||
LD C,(HL) |
|||
INC HL |
|||
OTIR |
|||
JR INITX |
|||
; |
|||
PIO0T: DEFB 05 ; 5 BYTE ZUM PIO 0 A CONTROL |
|||
DEFB PIO0AC |
|||
DEFB 00000011B ; DIS-INT |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG. |
|||
DEFB 00000000B ; ALLES AUSG. |
|||
DEFB 01 ; 1 BYTE ZUM PIO 0 A DATEN |
|||
DEFB PIO0AD |
|||
DEFB 00000000B ; DATEN "LOW" |
|||
; |
|||
DEFB 05 ; 5 BYTE ZUM PIO 0 B CONTROL |
|||
DEFB PIO0BC |
|||
DEFB 00000011B ; DIS-INT |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG. |
|||
DEFB 00000000B ; ALLES AUSG. |
|||
DEFB 01 ; 1 BYTE ZUM PIO 0 B DATEN |
|||
DEFB PIO0BD |
|||
DEFB 00000000B ; DATEN "LOW" |
|||
DEFB 0 ; ENDE PIO 0 B -TABELLE |
|||
; |
|||
PIO1T: DEFB 05 ; 5 BYTE ZUM PIO 1 A CONTROL |
|||
DEFB PIO1AC |
|||
DEFB 00000011B ; DIS-INT |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG. |
|||
DEFB 00000000B ; ALLES AUSG. |
|||
DEFB 01 ; 1 BYTE ZUM PIO 1 A DATEN |
|||
DEFB PIO1AD |
|||
DEFB 00000000B ; DATEN "LOW" |
|||
; |
|||
DEFB 05 ; 5 BYTE ZUM PIO 1 B CONTROL |
|||
DEFB PIO1BC |
|||
DEFB 00000011B ; DIS-INT |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 01001111B ; BETR.ART BYTE EINGABE |
|||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG. |
|||
DEFB 00000000B ; ALLES AUSG. |
|||
DEFB 01 ; 1 BYTE ZUM PIO 1 B DATEN |
|||
DEFB PIO1BD |
|||
DEFB 00000000B ; DATEN "LOW" |
|||
DEFB 0 ; ENDE PIO 1 B -TABELLE |
|||
; |
|||
;========================================================================== |
|||
; |
|||
;Output on Screen |
|||
;**************** |
|||
; |
|||
PRBS: LD E,BS |
|||
CALL PCHAR |
|||
RET |
|||
; |
|||
;Output CR+LF on Screen |
|||
;********************** |
|||
; |
|||
CRLF: LD E,CR |
|||
CALL PCHAR |
|||
LD E,LF |
|||
CALL PCHAR |
|||
RET |
|||
; |
|||
;Output ASCII-Character |
|||
;********************** |
|||
; |
|||
PRINP: PUSH AF |
|||
LD E,A |
|||
CALL PCHAR |
|||
POP AF |
|||
RET; |
|||
; |
|||
;CALL BDOS with Register Save |
|||
;**************************** |
|||
; |
|||
INCHA: LD C,1 ;INPUT CHARACTER TO A |
|||
JR BDO |
|||
PCHAR: LD C,2 ;PRINT CHARACTER IN E |
|||
JR BDO |
|||
PSTRIN: LD C,9 ;PRINT STRING |
|||
JR BDO |
|||
INBUFF: LD C,10 ;READ CONSOLE-BUFFER |
|||
JR BDO |
|||
CSTS: LD C,11 ;CONSOLE-STATUS |
|||
JR BDO |
|||
OPEN: LD C,15 ;OPEN FILE |
|||
JR BDO |
|||
CLOSE: LD C,16 ;CLOSE FILE |
|||
JR BDO |
|||
DELETE: LD C,19 ;DELETE FILE |
|||
JR BDO |
|||
READS: LD C,20 ;READ SEEK |
|||
JR BDO |
|||
WRITES: LD C,21 ;WRITE SEEK |
|||
JR BDO |
|||
MAKE: LD C,22 ;MAKE FILE |
|||
JR BDO |
|||
SETDMA: LD C,26 ;SET DMA-ADDRESS |
|||
BDO: PUSH HL |
|||
PUSH DE |
|||
PUSH BC |
|||
PUSH IX |
|||
PUSH IY |
|||
CALL BDOS |
|||
POP IY |
|||
POP IX |
|||
POP BC |
|||
POP DE |
|||
POP HL |
|||
RET |
|||
; |
|||
;DIRECT CONSOLE INPUT |
|||
;******************** |
|||
; |
|||
INDCON: CALL INDCOX |
|||
CP 0 |
|||
JR Z,INDCON |
|||
RET |
|||
; |
|||
INDCOX: LD C,6 ;Code for Direct Console Input |
|||
LD E,0FFH ;Code for Input |
|||
PUSH HL |
|||
PUSH DE |
|||
PUSH BC |
|||
PUSH IX |
|||
PUSH IY |
|||
CALL BDOS |
|||
POP IY |
|||
POP IX |
|||
POP BC |
|||
POP DE |
|||
POP HL |
|||
RET |
|||
; |
|||
; |
|||
;Output WORD |
|||
;*********** |
|||
; |
|||
;PARAMETER: Entry WORD IN HL |
|||
;********* |
|||
; |
|||
OUTW: LD A,H |
|||
CALL OUTB |
|||
LD A,L |
|||
CALL OUTB |
|||
RET |
|||
; |
|||
;Output BYTE |
|||
;*********** |
|||
; |
|||
;PARAMETER: Entry BYTE IN A |
|||
;********* |
|||
; |
|||
OUTB: PUSH AF |
|||
RRCA |
|||
RRCA |
|||
RRCA |
|||
RRCA |
|||
AND 0FH |
|||
CALL HBTHE ;Change Half-BYTE |
|||
POP AF |
|||
AND 0FH |
|||
CALL HBTHE |
|||
RET |
|||
; |
|||
;Output HALF-BYTE |
|||
;**************** |
|||
; |
|||
;PARAMETER: Entry Half-BYTE IN A (BIT 0 - 3) |
|||
;********* |
|||
; |
|||
HBTHE: CP 0AH |
|||
JR C,HBTHE1 |
|||
ADD A,7 ;Character to Letter |
|||
HBTHE1: ADD A,30H |
|||
LD E,A |
|||
CALL PCHAR |
|||
RET |
|||
; |
|||
;Input ADDRESS |
|||
;************* |
|||
; |
|||
;PARAMETER: Exit with ADDRESS IN HL |
|||
;********* |
|||
; |
|||
INADR: LD HL,0 |
|||
INADR1: CALL INCHAR ;Input TETRADE |
|||
LD D,A |
|||
CALL INBYT1 ;IN HEXA |
|||
RET C ;END OF Input |
|||
ADD HL,HL |
|||
ADD HL,HL |
|||
ADD HL,HL |
|||
ADD HL,HL |
|||
OR L |
|||
LD L,A |
|||
JR INADR1 ;New Key |
|||
; |
|||
; |
|||
;Input BYTE |
|||
;********** |
|||
; |
|||
;PARAMTER: Exit with BYTE IN A |
|||
;******** |
|||
; |
|||
INBYT: CALL INADR |
|||
LD A,L |
|||
RET |
|||
; |
|||
;Input of one TETRADE to A (BIT 0-3) |
|||
;************************************ |
|||
; |
|||
INBYT1: SUB '0' |
|||
RET C |
|||
CP 'G'-30H |
|||
JR NC,INBYT3 ;Error |
|||
CP ':'-30H |
|||
JR C,INBYT2 |
|||
CP 'A'-30H |
|||
JR C,INBYT3 ;Error |
|||
SUB 7 |
|||
INBYT2: OR A |
|||
RET |
|||
; |
|||
INBYT3: SCF |
|||
RET |
|||
; |
|||
;Input ASCII-Character to A |
|||
;************************** |
|||
; |
|||
INCON: CALL INDCON ;Input ASCII-Character to A |
|||
CP CTRLC ;TEST CONTROL-C |
|||
JP Z,QUIT |
|||
CP CTRLX ;TEST CONTROL-X |
|||
JR Z,INCHA1 |
|||
CP CTRLW ;TEST CONTROL-W |
|||
JR Z,INCHA3 |
|||
CP CTRLY ;TEST CONTROL-Y |
|||
JR Z,INCHA2 |
|||
CP BS |
|||
RET Z |
|||
CP CR |
|||
RET Z |
|||
CP ' ' |
|||
JR C,INCON |
|||
JR INCH1 |
|||
; |
|||
INCHAR: CALL INCHA ;Input ASCII-Character to A |
|||
CP CTRLC ;TEST CONTROL-C |
|||
JR Z,QUIT |
|||
CP CTRLX ;TEST CONTROL-X |
|||
JR Z,INCHA1 |
|||
CP CTRLW ;TEST CONTROL-W |
|||
JR Z,INCHA3 |
|||
CP CTRLY ;TEST CONTROL-Y |
|||
JR Z,INCHA2 |
|||
CP BS |
|||
RET Z |
|||
CP CR |
|||
RET Z |
|||
CP ' ' |
|||
JR C,INCHAR ;Input invalied |
|||
; |
|||
INCH1: CP 'A' |
|||
RET C ;Character ok |
|||
; |
|||
RES 5,A ;lower case -> upper case |
|||
RET |
|||
INCHA1: POP HL |
|||
LD E,FF |
|||
CALL PCHAR ;Clear screen |
|||
JP GOON |
|||
INCHA2: POP HL |
|||
LD E,FF |
|||
CALL PCHAR ;Clear screen |
|||
JP GOON |
|||
INCHA3: LD E,FF |
|||
CALL PCHAR |
|||
RET |
|||
; |
|||
;ABBRUCH DER BEARBEITUNG |
|||
;*********************** |
|||
; |
|||
COMPLT: LD DE,TCOMP |
|||
CALL PSTRIN |
|||
JP GOON |
|||
QUIT: CALL CRLF |
|||
LD DE,TQUIT |
|||
JR FINIS |
|||
INTTIM: POP DE ;STACK OK |
|||
; CALL DESAK |
|||
LD DE,TNMIAB |
|||
CALL PSTRIN |
|||
LD DE,MAIN ;NEW ADDRESS |
|||
PUSH DE |
|||
RETN |
|||
FINIS: CALL PSTRIN ;AT BDOS-ERROR |
|||
GOON: |
|||
JP BOOT |
|||
; |
|||
; |
|||
;TEXT-Messages |
|||
;************* |
|||
; |
|||
TCOMP: DEFB ESC,21,0,14H,ESC,23,0 |
|||
DEFM 'Function complete !!$' |
|||
TQUIT: DEFB ESC,23,0,14H,7 |
|||
DEFM 'End Run RAMFTEST$' |
|||
TNMIAB: DEFB ESC,23,0,14H |
|||
DEFM 'Time Out !!$' |
|||
; |
|||
; |
|||
INI_MSG:DEFM 'ECB-4PIO Init all PIO Bit-Mode ',CR,LF,'$' |
|||
PIO0ADW:DEFM 'ECB-4PIO Write to PIO0AD ','$' |
|||
PIO0ADR:DEFM 'ECB-4PIO Read from PIO0AD ','$' |
|||
PIO0BDW:DEFM 'ECB-4PIO Write to PIO0BD ','$' |
|||
PIO0BDR:DEFM 'ECB-4PIO Read from PIO0BD ','$' |
|||
PIO1ADW:DEFM 'ECB-4PIO Write to PIO1AD ','$' |
|||
PIO1ADR:DEFM 'ECB-4PIO Read from PIO1AD ','$' |
|||
PIO1BDW:DEFM 'ECB-4PIO Write to PIO1BD ','$' |
|||
PIO1BDR:DEFM 'ECB-4PIO Read from PIO1BD ','$' |
|||
|
|||
PIO_SRTMSG: |
|||
DEFM 'ECB-ZILOG PERIPHERALS start test 1.0',CR,LF,'$' |
|||
PIO_ENDMSG: |
|||
DEFM 'ECB-ZILOG PERIPHERALS end test 1.0',CR,LF,'$' |
|||
LINE_E: DEFM 'H',CR,LF,'$' |
|||
; |
|||
IF1 |
|||
.PRINTX 'Pass 1 complete' |
|||
ENDIF |
|||
; |
|||
IF2 |
|||
.PRINTX 'Pass 2 complete' |
|||
.PRINTX 'Assembly complete' |
|||
ENDIF |
|||
; |
|||
END |
|||
|
|||
@ -0,0 +1,13 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
set TOOLS=..\..\..\..\Tools |
|||
|
|||
set PATH=%TOOLS%\zxcc;%PATH% |
|||
|
|||
set CPMDIR80=%TOOLS%/cpm/ |
|||
|
|||
zxcc M80 -=2piotst/l || exit /b |
|||
zxcc L80 -2piotst,2piotst.com/n/e || exit /b |
|||
|
|||
copy /Y 2piotst.com ..\..\..\..\Binary\Apps\Test\ || exit /b |
|||
@ -0,0 +1,8 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
if exist *.com del *.com |
|||
if exist *.lst del *.lst |
|||
if exist *.bin del *.bin |
|||
if exist *.rel del *.rel |
|||
if exist *.prn del *.prn |
|||
@ -0,0 +1,8 @@ |
|||
OBJECTS = 2piotst.com |
|||
DEST = ../../../../Binary/Apps/Test |
|||
TOOLS =../../../../Tools |
|||
OTHERS = *.rel |
|||
|
|||
include $(TOOLS)/Makefile.inc |
|||
|
|||
2piotst.com : 2piotst.rel |
|||
@ -1,5 +1,5 @@ |
|||
OBJECTS = |
|||
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz vdctest kbdtest ps2info |
|||
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz vdctest kbdtest ps2info 2piotst |
|||
DEST = ../../../Binary/Apps/Test |
|||
TOOLS =../../../Tools |
|||
|
|||
|
|||
Loading…
Reference in new issue