diff --git a/branches/wbw/Apps/core/multifmt.com b/branches/wbw/Apps/core/multifmt.com index 1612bd5f..276adb69 100644 Binary files a/branches/wbw/Apps/core/multifmt.com and b/branches/wbw/Apps/core/multifmt.com differ diff --git a/branches/wbw/Doc/Ecma-035.pdf b/branches/wbw/Doc/Ecma-035.pdf new file mode 100644 index 00000000..b7913cf5 Binary files /dev/null and b/branches/wbw/Doc/Ecma-035.pdf differ diff --git a/branches/wbw/Doc/Ecma-048.pdf b/branches/wbw/Doc/Ecma-048.pdf new file mode 100644 index 00000000..e1441c5e Binary files /dev/null and b/branches/wbw/Doc/Ecma-048.pdf differ diff --git a/branches/wbw/Source/ansi.asm b/branches/wbw/Source/ansi.asm index 97678a43..144a03fb 100644 --- a/branches/wbw/Source/ansi.asm +++ b/branches/wbw/Source/ansi.asm @@ -1,10 +1,7 @@ -; WBW: BOGUS EQUATE TO GET MODULE TO BUILD FOR NON-N8 HARDWARE -; NEEDS TO BE FIXED BEFORE IT WILL WORK!!! -#IF (PLATFORM != PLT_N8) -N8V_OFFSET .EQU $FFFF -#ENDIF +; ansi.asm 12/3/2012 dwg - changed polarity of conditional jump for normal processing -; +; Status: Still very experimental, either doesn't work or is buggy + ;================================================================================================== ; ANSI EMULATION MODULE ;================================================================================================== @@ -153,7 +150,6 @@ ANSI_STATE2_NOT_SEMI: JP ANSI_CMD_DISP ANSI_INIT: - PRTS("ANSI:$") JR ANSI_INI ; REUSE THE INI FUNCTION BELOW ; @@ -288,7 +284,7 @@ ANSI_STATE0: JR Z,ANSI_LF CP 27 ; ESCAPE ; This is the hook into the escape handler - JR Z,ANSI_NOT_ESC ; go around if not CSI + JR NZ,ANSI_NOT_ESC ; go around if not CSI LD HL,ANSI_STATE1 LD (ANSI_STATE),HL XOR A ; setup SUCCESS as return status @@ -297,8 +293,11 @@ ANSI_NOT_ESC: CP 32 ; COMPARE TO SPACE (FIRST PRINTABLE CHARACTER) RET C ; SWALLOW OTHER CONTROL CHARACTERS + + ; A reg has next character from BIOS CONOUT LD B,BF_VDAWRC CALL EMU_VDADISP ; SPIT OUT THE RAW CHARACTER + LD A,(ANSI_COL) ; GET CUR COL INC A ; INCREMENT LD (ANSI_COL),A ; SAVE IT @@ -370,4 +369,4 @@ ANSI_ROW .DB 0 ; CURRENT ROW - 0 BASED ; ANSI_DIM: ANSI_COLS .DB 80 ; NUMBER OF COLUMNS ON SCREEN -ANSI_ROWS .DB 24 ; NUMBER OF ROWS ON SCREEN \ No newline at end of file +ANSI_ROWS .DB 24 ; NUMBER OF ROWS ON SCREEN diff --git a/branches/wbw/Source/config_n8_2312.asm b/branches/wbw/Source/config_n8_2312.asm index 55feac91..3d79e23d 100644 --- a/branches/wbw/Source/config_n8_2312.asm +++ b/branches/wbw/Source/config_n8_2312.asm @@ -3,21 +3,34 @@ ; ROMWBW 2.X CONFIGURATION FOR N8 5/8/2012 ;================================================================================================== ; +; About Doug's configuration +; +; The CPU Frequency is specified as 18 (MHz) +; The Platform is PLT_N8 +; The default VDA is the TMS9918 (N8V) +; The default emulation is ANSI +; The DSKMAP is DM_PPIDE +; The N8VENABLE is TRUE +; The PPIDEENABLE is TRUE +; The PPIDECAPACITY is 200*9 +; The TTYENABLE AND ANSIENABLE ARE TRUE + + ; BUILD CONFIGURATION OPTIONS ; -CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS +CPUFREQ .EQU 18 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; PLATFORM .EQU PLT_N8 ; PLT_N8VEM, PLT_ZETA, PLT_N8 ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, CIODEV_VDU, DIODEV_PRPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) DEFVDA .EQU VDADEV_N8V ; DEFAULT VDA (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_7220, VDADEV_N8V) -DEFEMU .EQU EMUTYP_TTY ; DEFAULT EMULATION TYPE (EMUTYP_TTY, EMUTYP_ANSI, ...) +DEFEMU .EQU EMUTYP_ANSI ; EMUTYP_TTY ; DEFAULT EMULATION TYPE (EMUTYP_TTY, EMUTYP_ANSI, ...) ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) ; -DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD +DSKMAP .EQU DM_PPIDE ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD ; DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; @@ -48,16 +61,16 @@ IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE IDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!) IDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; -PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE) +PPIDEENABLE .EQU TRUE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE) PPIDEMODE .EQU PPIDEMODE_STD ; PPIDEMODE_STD, PPIDEMODE_DIO3 PPIDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPIDEENABLE = TRUE) PPIDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!) -PPIDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +PPIDECAPACITY .EQU 200*9 ; CAPACITY OF DEVICE (IN MB) PPIDESLOW .EQU FALSE ; ADD DELAYS TO HELP PROBLEMATIC HARDWARE (TRY THIS IF PPIDE IS UNRELIABLE) ; SDENABLE .EQU TRUE ; TRUE FOR SD SUPPORT -SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) -SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +SDTRACE .EQU 2 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) +SDCAPACITY .EQU 200*9 ; CAPACITY OF DEVICE (IN MB) SDCSIO .EQU TRUE ; TRUE IF USING THE CSIO PORT (N8 ONLY) SDCSIOFAST .EQU FALSE ; TRUE IF USING THE LOOKUP TABLE RATHER THAN SHIFTS AND ROTATES (N8 ONLY) PPISD .EQU FALSE ; TRUE IF USING PPISD MINI-BOARD (DO NOT COMBINE WITH PPIDE) diff --git a/branches/wbw/Source/n8v.asm b/branches/wbw/Source/n8v.asm index c1f61b4e..91b8f068 100644 --- a/branches/wbw/Source/n8v.asm +++ b/branches/wbw/Source/n8v.asm @@ -509,11 +509,10 @@ N8V_OFFSET: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; N8V_VDAWRC: - LD (VDP_POS),HL ; accept curpos from caller in HL +;;; LD (VDP_POS),HL ; accept curpos from caller in HL PUSH DE - LD hl,row_offs ; hl -> row offset table LD A,(VDP_ROW) ; pick up cursor row LD E,A ; place in LO byte of DE LD d,0 ; make 16 bits @@ -534,25 +533,7 @@ N8V_VDAWRC: LD C,DATAP ; I/O address for subsequent VRAM write OUT (C),a ; prime the auto incrementer OUT (C),a ; output the data byte into the name table - -; LD A,(VDP_COL) -; INC A -; LD (VDP_COL),A -; CP 40 -; JR NZ,N8V_VDAWRC2 -; LD A,0 -; LD (VDP_COL),A -; LD A,(VDP_ROW) -; INC A -; LD (VDP_ROW),A -; CP 24 -; JR NZ, N8V_VDAWRC2 -; ; need to scroll up one line -; LD A,1 ; SCROLL ONE LINE -; LD E,A ; NEEDS TO BE IN A -; CALL N8V_VDASCR ; USE SCROLLING FUNCTION -;N8V_VDAWRC2: - + XOR A ; set SUCCESS return code RET ; return from HBIOS call @@ -734,6 +715,14 @@ RECOVER: VDP_DEVUNIT .DB 0 + +; The following data items, VDP_COL and VDP_ROW area +; data bytes that can be retrieved together with a +; word fetch using the VDP_POS label. It is generally +; set by a call to VDASCP from the emulation layer. +; It is used by VDAFIL specifically to denote the beginning +; of the fill area not specified in the API of VDAFIL. + VDP_POS: VDP_COL .DB 0 ; col number 0-39 VDP_ROW .DB 0 ; row number 0-23 diff --git a/branches/wbw/Source/tty.asm b/branches/wbw/Source/tty.asm index 2709c472..fe54879e 100644 --- a/branches/wbw/Source/tty.asm +++ b/branches/wbw/Source/tty.asm @@ -96,7 +96,7 @@ TTY_DOCHAR: CP 32 ; COMPARE TO SPACE (FIRST PRINTABLE CHARACTER) RET C ; SWALLOW OTHER CONTROL CHARACTERS - LD HL,(TTY_POS) ; physical driver needs pos data to write +;;; LD HL,(TTY_POS) ; physical driver needs pos data to write LD B,BF_VDAWRC CALL EMU_VDADISP ; SPIT OUT THE RAW CHARACTER diff --git a/branches/wbw/XSource/Makefile b/branches/wbw/XSource/Makefile index 8127394c..52e26db7 100644 --- a/branches/wbw/XSource/Makefile +++ b/branches/wbw/XSource/Makefile @@ -147,6 +147,10 @@ endif endif all: tasm80.tab tasm85.tab $(OUTDIR)/$(ROMNAME).rom $(OUTDIR)/$(ROMNAME).sys $(OUTDIR)/$(ROMNAME).com + rm -f *.asm + rm -f *.bin + rm -f *.inc *.tab *.tmp + rm -f diskdefs *.exp tasm80.tab: bin/TASM80.TAB cp bin/TASM80.TAB tasm80.tab