From 2e4eb2fb1bd36995cb12091af32d20c4873b665b Mon Sep 17 00:00:00 2001 From: wwarthen Date: Sun, 2 Mar 2014 02:37:34 +0000 Subject: [PATCH] Reintegrate wbw -> trunk --- Apps/Source/applvers.h | 10 +- Apps/Source/applvers.lib | 12 +- Doc/ChangeLog.txt | 5 + ReadMe.txt | 4 +- Source/cbios.asm | 26 +- Source/diskdefs | 74 +- Source/ver.inc | 8 +- Support/PropIO/PropIO.eeprom | Bin 32768 -> 32768 bytes Support/PropIO/Spin/PropIO.spin | Bin 30814 -> 30874 bytes Support/PropIO/Spin/VGA_1024.spin | 2 +- Support/PropIO2/PropIO2.eeprom | Bin 0 -> 32768 bytes Support/PropIO2/Spin/E555_SPKEngine.spin | 1 + Support/PropIO2/Spin/Keyboard.spin | Bin 0 -> 60650 bytes .../Spin/Parallax Serial Terminal.spin | Bin 0 -> 39544 bytes Support/PropIO2/Spin/PropIO2.spin | Bin 0 -> 30028 bytes Support/PropIO2/Spin/VGA_1024.spin | 704 ++++++++++++++ Support/PropIO2/Spin/VGA_HiRes_Text.spin | Bin 0 -> 54408 bytes Support/PropIO2/Spin/safe_spi.spin | 920 ++++++++++++++++++ Support/ReadMe.txt | 4 +- Tools/cpmtools/diskdefs | 74 +- Tools/zx/bios.bin | Bin 480 -> 384 bytes Tools/zx/zx.exe | Bin 147308 -> 158208 bytes Tools/zx/zx.html | 6 +- Tools/zx/zxdbg.exe | Bin 0 -> 158208 bytes 24 files changed, 1794 insertions(+), 56 deletions(-) create mode 100644 Support/PropIO2/PropIO2.eeprom create mode 100644 Support/PropIO2/Spin/E555_SPKEngine.spin create mode 100644 Support/PropIO2/Spin/Keyboard.spin create mode 100644 Support/PropIO2/Spin/Parallax Serial Terminal.spin create mode 100644 Support/PropIO2/Spin/PropIO2.spin create mode 100644 Support/PropIO2/Spin/VGA_1024.spin create mode 100644 Support/PropIO2/Spin/VGA_HiRes_Text.spin create mode 100644 Support/PropIO2/Spin/safe_spi.spin create mode 100644 Tools/zx/zxdbg.exe diff --git a/Apps/Source/applvers.h b/Apps/Source/applvers.h index a6184bcd..2e3f88af 100644 --- a/Apps/Source/applvers.h +++ b/Apps/Source/applvers.h @@ -1,14 +1,14 @@ /************************************/ -/* applvers.h dwg - 2.5.3.19 */ +/* applvers.h dwg - 2.5.4.20 */ /************************************/ #define A_RMJ 2 #define A_RMN 5 -#define A_RUP 3 -#define A_RTP 19 +#define A_RUP 4 +#define A_RTP 20 -#define A_MONTH 1 -#define A_DAY 20 +#define A_MONTH 3 +#define A_DAY 1 #define A_YEAR 2014 #define A_YR 14 diff --git a/Apps/Source/applvers.lib b/Apps/Source/applvers.lib index c37f1454..46c3d81b 100644 --- a/Apps/Source/applvers.lib +++ b/Apps/Source/applvers.lib @@ -1,16 +1,16 @@ -; applvers.lib 3/31/2012 dwg - For RomWBW 2.5.0.14 Release +; applvers.lib 3/31/2012 dwg - For RomWBW 2.5.4.20 Release A$RMJ equ 2 A$RMN equ 5 -A$RUP equ 3 -A$RTP equ 19 +A$RUP equ 4 +A$RTP equ 20 -A$MONTH equ 1 -A$DAY equ 20 +A$MONTH equ 3 +A$DAY equ 1 A$YEAR equ 2014 date macro -dat db ' 1/20/2014$' +dat db ' 3/1/2014$' endm serial macro diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index f5ffff1c..0148c3c0 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -1,3 +1,8 @@ +Version 2.5.4 +------------- +- WBW: Fixed IOBYTE handling +- WBW: Added Propeller firmware support for PropIO V2 + Version 2.5.3 ------------- - WBW: Fixed EXM in DPB for 360K floppy definition (credit to Martin for finding this error) diff --git a/ReadMe.txt b/ReadMe.txt index b33ba6c3..1c191555 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -8,8 +8,8 @@ Builders: Wayne Warthen (wwarthen@gmail.com) Douglas Goodall (douglas_goodall@mac.com) David Giles (vk5dg@internode.on.net) -Updated: 2014-01-20 -Version: 2.5.3 +Updated: 2014-03-01 +Version: 2.5.4 This is an adaptation of CP/M-80 2.2 and ZSDOS/ZCPR targeting ROMs for all N8VEM Z80 hardware variations diff --git a/Source/cbios.asm b/Source/cbios.asm index 8c1b7188..874916d7 100644 --- a/Source/cbios.asm +++ b/Source/cbios.asm @@ -1792,18 +1792,24 @@ DSK_CNT .EQU DPH_CNT ; ; MAP LOGICAL TO PHYSICAL DEVICES ; -LD_TTY .EQU DEFCON +#IF (PLATFORM == PLT_N8) +TTYDEV .EQU CIODEV_ASCI +#ELSE +TTYDEV .EQU CIODEV_UART +#ENDIF +; +LD_TTY .EQU TTYDEV LD_CRT .EQU CIODEV_CRT LD_BAT .EQU CIODEV_BAT -LD_UC1 .EQU DEFCON -LD_PTR .EQU DEFCON -LD_UR1 .EQU DEFCON -LD_UR2 .EQU DEFCON -LD_PTP .EQU DEFCON -LD_UP1 .EQU DEFCON -LD_UP2 .EQU DEFCON -LD_LPT .EQU DEFCON -LD_UL1 .EQU DEFCON +LD_UC1 .EQU TTYDEV +LD_PTR .EQU TTYDEV +LD_UR1 .EQU TTYDEV +LD_UR2 .EQU TTYDEV +LD_PTP .EQU TTYDEV +LD_UP1 .EQU TTYDEV +LD_UP2 .EQU TTYDEV +LD_LPT .EQU TTYDEV +LD_UL1 .EQU TTYDEV ; #IF (PLATFORM == PLT_N8) LD_UC1 .SET CIODEV_ASCI + 1 diff --git a/Source/diskdefs b/Source/diskdefs index 2e1f5725..b196ace7 100644 --- a/Source/diskdefs +++ b/Source/diskdefs @@ -266,24 +266,24 @@ diskdef interak sectrk 20 blocksize 4096 maxdir 256 - skew 1 + skew 0 boottrk 2 os 2.2 end -# For 512KB ROM, less 32K for system image +# For 512KB ROM, less 64K reserved for system diskdef rom512KB seclen 128 tracks 14 sectrk 256 blocksize 2048 maxdir 256 - skew 1 + skew 0 boottrk 0 os 2.2 end -# For 1024KB ROM, less 32K for system image +# For 1024KB ROM, less 64K reserved for system diskdef rom1024KB seclen 128 tracks 30 @@ -295,47 +295,95 @@ diskdef rom1024KB os 2.2 end -# For N8VEM mass storage (4 raw partitions) -diskdef hd0 +# N8VEM Hard Disks, hd0 - hd3 are first 4 slices of disk +diskdef n8vem_hd0 seclen 512 tracks 65 sectrk 256 blocksize 4096 maxdir 512 - skew 1 + skew 0 boottrk 1 os 2.2 end -diskdef hd1 +diskdef n8vem_hd1 seclen 512 tracks 130 sectrk 256 blocksize 4096 maxdir 512 - skew 1 + skew 0 boottrk 66 os 2.2 end -diskdef hd2 +diskdef n8vem_hd2 seclen 512 tracks 195 sectrk 256 blocksize 4096 maxdir 512 - skew 1 + skew 0 boottrk 131 os 2.2 end -diskdef hd3 +diskdef n8vem_hd3 seclen 512 tracks 260 sectrk 256 blocksize 4096 maxdir 512 - skew 1 + skew 0 boottrk 196 os 2.2 end + +# N8VEM 720K floppy media +diskdef n8vem_fd720 + seclen 512 + tracks 160 + sectrk 9 + blocksize 2048 + maxdir 128 + skew 0 + boottrk 4 + os 2.2 +end + +# N8VEM 1.44M floppy media +diskdef n8vem_fd144 + seclen 512 + tracks 160 + sectrk 18 + blocksize 2048 + maxdir 256 + skew 0 + boottrk 2 + os 2.2 +end + +# N8VEM 360K floppy media +diskdef n8vem_fd360 + seclen 512 + tracks 80 + sectrk 9 + blocksize 2048 + maxdir 128 + skew 0 + boottrk 4 + os 2.2 +end + +# N8VEM 1.20M floppy media +diskdef n8vem_fd120 + seclen 512 + tracks 160 + sectrk 15 + blocksize 2048 + maxdir 256 + skew 0 + boottrk 2 + os 2.2 +end diff --git a/Source/ver.inc b/Source/ver.inc index cdb4441e..eda7a5eb 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -1,7 +1,7 @@ #DEFINE RMJ 2 #DEFINE RMN 5 -#DEFINE RUP 3 -#DEFINE RTP 19 -#DEFINE BIOSVER "2.5.3" -#DEFINE BIOSBLD "Build 19" +#DEFINE RUP 4 +#DEFINE RTP 20 +#DEFINE BIOSVER "2.5.4" +#DEFINE BIOSBLD "Build 20" #DEFINE REVISION 500 diff --git a/Support/PropIO/PropIO.eeprom b/Support/PropIO/PropIO.eeprom index f872a15e1d53f6bf927b883403d558451f77906f..f789241ab5336d04b22a44eb5f3466d513916cee 100644 GIT binary patch delta 63 zcmZo@U}|V!Vq@5HgeCvRMz&OTJ_Q9oi!fJTg@B^`0#Eu_5c6p;5~NMy)kCGf~80^Crf1tefYs|0@6hr+N~p diff --git a/Support/PropIO/Spin/VGA_1024.spin b/Support/PropIO/Spin/VGA_1024.spin index 96ea49a7..82d12261 100644 --- a/Support/PropIO/Spin/VGA_1024.spin +++ b/Support/PropIO/Spin/VGA_1024.spin @@ -131,7 +131,7 @@ PUB cls1(c,screencolor,pcport,ascii,CR) | i,x,y inverse := 1 - statprint(36,0, string(" N8VEM ParPortProp | RomWBW v0.93")) + statprint(36,0, string(" N8VEM PropIO | RomWBW v0.94")) inverse := 0 statprint(37,0, string(" ")) statprint(38,0, string(" ")) diff --git a/Support/PropIO2/PropIO2.eeprom b/Support/PropIO2/PropIO2.eeprom new file mode 100644 index 0000000000000000000000000000000000000000..1d53697757723e3c88bbafd01fdf6e09f4531ae3 GIT binary patch literal 32768 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 Z0Sy5S0Sy5S0Sy5S0Sy5Sf&U5!{2$V8r{Vwr literal 0 HcmV?d00001 diff --git a/Support/PropIO2/Spin/E555_SPKEngine.spin b/Support/PropIO2/Spin/E555_SPKEngine.spin new file mode 100644 index 00000000..02e55e87 --- /dev/null +++ b/Support/PropIO2/Spin/E555_SPKEngine.spin @@ -0,0 +1 @@ +{{ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // E555 Speaker Engine // // Author: Kwabena W. Agyeman // Updated: 7/27/2010 // Designed For: P8X32A // Version: 1.1 // // Copyright (c) 2010 Kwabena W. Agyeman // See end of file for terms of use. // // Update History: // // v1.0 - Original release - 8/26/2009. // v1.1 - Added support for variable pin assignments - 7/27/2010. // // For each included copy of this object only one spin interpreter should access it at a time. // // Nyamekye, /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Speaker Circuit: // // SpeakerPinNumber --- Speaker Driver (Active High). // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }} PUB speakerFrequency(newFrequency, speakerPinNumber) '' 10 Stack Longs '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// '' // Changes the speaker frequency using the SPIN interpreter's counter modules. '' // '' // NewFrequency - The new frequency. Between 0 Hz and 80MHz @ 80MHz. -1 to reset the pin and counter modules. '' // SpeakerPinNumber - Pin to use to drive the speaker circuit. Between 0 and 31. '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// speakerSetup((newFrequency <> -1), speakerPinNumber) newFrequency := ((newFrequency <# clkfreq) #> 0) result := 1 repeat 32 newFrequency <<= 1 result <-= 1 if(newFrequency => clkfreq) newFrequency -= clkfreq result += 1 frqa := result~ phsb := 0 PUB speakerVolume(newVolume, speakerPinNumber) '' 10 Stack Longs '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// '' // Changes the speaker volume using the SPIN interpreter's counter modules. '' // '' // NewVolume - The new volume. Between 0% and 100%. -1 to reset the pin and counter modules. '' // SpeakerPinNumber - Pin to use to drive the speaker circuit. Between 0 and 31. '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// speakerSetup((newVolume <> -1), speakerPinNumber) frqb := (((100 - ((newVolume <# 100) #> 0)) * constant(posx / 50)) | $7) PRI speakerSetup(activeOrInactive, speakerPinNumber) ' 5 Stack Longs speakerPinNumber := ((speakerPinNumber <# 31) #> 0) dira[speakerPinNumber] := activeOrInactive outa[speakerPinNumber] := false ctra := ((constant(%0_0100 << 26) + speakerPinNumber) & activeOrInactive) ctrb := ((constant(%0_0110 << 26) + speakerPinNumber) & activeOrInactive) {{ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TERMS OF USE: MIT License /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation // files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, // modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the // Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE // WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }} \ No newline at end of file diff --git a/Support/PropIO2/Spin/Keyboard.spin b/Support/PropIO2/Spin/Keyboard.spin new file mode 100644 index 0000000000000000000000000000000000000000..67d8b081420b4ff8f1890b2b721120b893fabcbc GIT binary patch literal 60650 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 kIXxtW-Xlkqht

qbW!Is0{w)S3P3**WefaDl<<12Z%2?{r~^~ literal 0 HcmV?d00001 diff --git a/Support/PropIO2/Spin/Parallax Serial Terminal.spin b/Support/PropIO2/Spin/Parallax Serial Terminal.spin new file mode 100644 index 0000000000000000000000000000000000000000..a525a4be6de09fc6484285ea6379be29e945dfd2 GIT binary patch literal 39544 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 PuT_ueUsCUa{ayYK!)rep literal 0 HcmV?d00001 diff --git a/Support/PropIO2/Spin/PropIO2.spin b/Support/PropIO2/Spin/PropIO2.spin new file mode 100644 index 0000000000000000000000000000000000000000..9c180f14171e8678943bfb2fb632f91869809971 GIT binary patch literal 30028 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 F`F}ornAHFP literal 0 HcmV?d00001 diff --git a/Support/PropIO2/Spin/VGA_1024.spin b/Support/PropIO2/Spin/VGA_1024.spin new file mode 100644 index 00000000..9f3c2851 --- /dev/null +++ b/Support/PropIO2/Spin/VGA_1024.spin @@ -0,0 +1,704 @@ +'' VGA_1024.spin +'' +'' MODIFIED BY VINCE BRIEL FOR POCKETERM FEATURES +'' MODIIFED BY JEFF LEDGER / AKA OLDBITCOLLECTOR +'' + +CON + cols = 80 '128 ' number of screen columns + lcols = cols / 4 ' number of long in columns + rows = 40 '64 ' number of screen rows + chars = rows*cols ' number of screen characters + esc = $CB ' keyboard esc char + rowsnow = 36 ' adjusted for split screen effect + maxChars = rowsnow*cols ' adjusted value for split screen effect + lastChar = maxChars / 4 ' last screen position in longs adjusted for split + lastLine = (rowsnow - 1) * cols ' character position of last row + cols1 = 81 ' adjusted value for 80th character + TURQUOISE = $29 + +OBJ + vga : "vga_Hires_Text" + +VAR + byte screen[chars] ' screen character buffer + byte tmpl[cols] ' temporary line buffer + word colors[rows] ' color specs for each screen row (see ColorPtr description above) + byte cursor[6] ' cursor info array (see CursorPtr description above) + long sync, loc, xloc, yloc ' sync used by VGA routine, others are local screen pointers + long kbdreq ' global val of kbdflag + long BR[8] + long Brate + byte inverse + byte invs + byte state ' Current state of state machine + word pos ' Current Position on the screen + word oldpos ' Previous location of cursor before update + word regionTop, regionBot ' Scroll region top/bottom + long arg0 ' First argument of escape sequence + long arg1 ' Second argument of escape sequence + byte lastc ' Last displayed char + word statpos + long vgabasepin + +PUB start(BasePin) | i, char + vgabasepin := BasePin + +''init screen colors to gold on blue + repeat i from 0 to rows - 1 + colors[i] := $08F0 '$2804 (if you want cyan on blue) + +''init cursor attributes + cursor[2] := %110 ' init cursor to underscore with slow blink + BR[0]:=300 + BR[1]:=1200 + BR[2]:=2400 + BR[3]:=4800 + BR[4]:=9600 + BR[5]:=19200 + BR[6]:=38400 + BR[7]:=57600 + BR[8]:=115200 + xloc := cursor[0] := 0 + yloc := cursor[1] := 0 + loc := xloc + yloc*cols + + pos := 0 + regionTop := 0 + regionBot := 35 * cols + state := 0 + statpos := 37 * cols + +PUB vidon + if (!vga.start(vgabasepin, @screen, @colors, @cursor, @sync)) + return false + + waitcnt(clkfreq * 1 + cnt) 'wait 1 second for cogs to start + + +PUB vidoff + vga.stop + + +PUB inv(c) + inverse:=c + +PUB color(colorVal) | i + repeat i from 0 to rows - 1 + colors[i] := $0000 | colorVal + +PUB cursorset(c) | i + i:=%000 + if c == 1 + i:= %001 + if c == 2 + i:= %010 + if c == 3 + i:= %011 + if c == 4 + i:= %101 + if c == 5 + i:= %110 + if c == 6 + i:= %111 + if c == 7 + i:= %000 + cursor[2] := i + +PUB bin(value, digits) + +'' Print a binary number, specify number of digits + + repeat while digits > 32 + outc("0") + digits-- + + value <<= 32 - digits + + repeat digits + outc((value <-= 1) & 1 + "0") + + +PUB clrbtm(ColorVal) | i + repeat i from 36 to rows - 1 'was 35 + colors[i] := $0000 + ColorVal + +PUB cls1(c,screencolor,pcport,ascii,CR) | i,x,y + + longfill(@screen[0], $20202020, chars / 4) + + clrbtm(TURQUOISE) + + inverse := 1 + + statprint(36,0, string(" N8VEM PropIO V2 | RomWBW v0.94")) + inverse := 0 + statprint(37,0, string(" ")) + statprint(38,0, string(" ")) + statprint(39,0, string(" ")) + + +{{ + x :=xloc + y := yloc + invs := inverse + ''clrbtm(TURQUOISE) + longfill(@screen, $20202020, chars/4) + xloc := 0 + yloc :=0 + loc := xloc + yloc*cols + repeat 80 + outc(32) + xloc := 0 + yloc :=36 + loc := xloc + yloc*cols + inverse := 1 + str(string(" propIO V 0.91 ")) + inverse := 0 + str(string("Baud Rate: ")) + i:= BR[6] + dec(i) + str(string(" ")) + xloc := 18 + loc := xloc + yloc*cols + str(string("Color ")) + str(string("PC Port: ")) + if pcport == 1 + str(string("OFF ")) + if pcport == 0 + str(string("ON ")) + str(string(" Force 7 bit: ")) + if ascii == 0 + str(string("NO ")) + if ascii == 1 + str(string("YES ")) + str(string(" Cursor CR W/LF: ")) + if CR == 1 + str(string("YES")) + if CR == 0 + str(string("NO ")) + outc(13) + outc(10) + + inverse:=1 + xloc := 6 + loc := xloc + yloc*cols + str(string("F1")) + xloc := 19 + loc := xloc + yloc*cols + str(string("F2")) + xloc := 30 + loc := xloc + yloc*cols + str(string("F3")) + xloc := 46 + loc := xloc + yloc*cols + str(string("F4")) + xloc := 58 + loc := xloc + yloc*cols + str(string("F5")) + xloc := 70 + loc := xloc + yloc*cols + str(string("F6")) + inverse := invs + xloc := cursor[0] := x 'right & left was 0 + yloc := cursor[1] := y 'from top was 1 + loc := xloc + yloc*cols +}} + +PUB clsupdate(c,screencolor,PCPORT,ascii,CR) | i,x,y,locold + + invs := inverse + locold := loc + x := xloc + y := yloc + ''(TURQUOISE) + xloc := 0 + yloc :=36 + loc := xloc + yloc*cols + inverse := 1 + str(string(" propIO V 0.81 ")) + inverse := 0 + xloc := 0 + yloc :=37 + loc := xloc + yloc*cols + str(string("Baud Rate: ")) + i:= BR[6] + dec(i) + str(string(" ")) + xloc := 18 + loc := xloc + yloc*cols + + str(string("Color ")) + str(string("PC Port: ")) + if pcport == 1 + str(string("OFF ")) + if pcport == 0 + str(string("ON ")) + str(string(" Force 7 bit: ")) + if ascii == 0 + str(string("NO ")) + if ascii == 1 + str(string("YES ")) + str(string(" Cursor CR W/LF: ")) + if CR == 1 + str(string("YES")) + if CR == 0 + str(string("NO ")) + xloc := 0 + yloc :=38 + loc := xloc + yloc*cols + inverse:=1 + xloc := 6 + loc := xloc + yloc*cols + str(string("F1")) + xloc := 19 + loc := xloc + yloc*cols + str(string("F2")) + xloc := 30 + loc := xloc + yloc*cols + str(string("F3")) + xloc := 46 + loc := xloc + yloc*cols + str(string("F4")) + xloc := 58 + loc := xloc + yloc*cols + str(string("F5")) + xloc := 70 + loc := xloc + yloc*cols + str(string("F6")) + inverse := invs + xloc := cursor[0] := x + yloc := cursor[1] := y +' loc := xloc + yloc*cols + loc := locold + +PUB dec(value) | i + +'' Print a decimal number + + if value < 0 + -value + outc("-") + + i := 1_000_000_000 + + repeat 10 + if value => i + outc(value/i + "0") + value //= i + result~~ + elseif result or i == 1 + outc("0") + i /= 10 + +PUB hex(value, digits) + +'' Print a hexadecimal number, specify number of digits + + repeat while digits > 8 + outc("0") + digits-- + + value <<= (8 - digits) << 2 + + repeat digits + outc(lookupz((value <-= 4) & $f : "0".."9", "A".."F")) + + +PUB str(string_ptr) + +'' Print a zero terminated string + + repeat strsize(string_ptr) + process_char(byte[string_ptr++]) + +PUB statprint(r, c, str1) | x, ptr + + ptr := r * cols + c + repeat x from 0 to STRSIZE(str1) - 1 + putc(ptr++, BYTE[str1 + x]) + +PUB statnum(r, c, num1) | i, ptr + + ptr := r * cols + c + + if num1 < 0 + -num1 + putc(ptr++,"-") + + i := 1_000_000_000 + + repeat 10 + if num1 => i + putc(ptr++, (num1/i +"0")) + num1 //= i + result~~ + elseif result or i == 1 + putc(ptr++, "0") + i /= 10 + +PUB putc(position, c) + if inverse + c |= $80 + screen[position] := c + +PUB cls + longfill (@screen, $20202020, lastChar) + +PUB fullcls + longfill(@screen, $20202020, 800) + +PUB setInverse(val) + inverse := val + +PUB setInv(c) + if c == 7 + setInverse(1) + else + setInverse(0) + +PUB clEOL(position) | count + count := cols - (position // cols) + bytefill(@screen + position, $20, count) + +PUB clBOL(position) | count + count := position // cols + bytefill(@screen + position - count, $20, count) + +PUB delLine(position) | src, count + position -= position // cols + + src := position + cols + + count := (maxChars - src) / 4 + + if count > 0 + longmove(@screen + position, @screen + src, count) + + longfill(@screen + lastLine, $20202020, lcols) + +PUB clEOS(position) + cleol(position) + position += cols - (position // cols) + repeat while position < maxChars + longfill(@screen + position, $20202020, lcols) + pos += cols + +PUB setCursorPos(position) + cursor[0] := position // cols + cursor[1] := position / cols + +PUB insLine(position) | base, nxt + base := position - (position // cols) + position := lastLine + repeat while position > base + nxt := position - cols + longmove(@screen + position, @screen + nxt, lcols) + position := nxt + clEOL(base) + +PUB insChar(position) | count + count := (cols - (position // cols)) - 1 + bytemove(@tmpl, @screen + position, count) + screen[position] := " " + bytemove(@screen + position + 1, @tmpl, count) + +PUB delChar(position) | count + count := (cols - (position // cols)) - 1 + bytemove(@screen + position, @screen + position + 1, count) + screen[position + count] := " " + +PRI inRegion : answer + answer := (pos => regionTop) AND (pos < regionBot) + +PRI scrollUp + delLine(regionTop) + if regionBot < maxChars + insLine(regionBot) + +PRI scrollDown + if regionBot < maxChars + delLine(regionBot) + insLine(regionTop) + +PRI ansi(c) | x, defVal + + state := 0 + + if (c <> "r") AND (c <> "J") AND (c <> "m") AND (c <> "K") + if arg0 == -1 + arg0 := 1 + if arg1 == -1 + arg1 := 1 + + case c + "@": + repeat while arg0-- > 0 + insChar(pos) + + "b": + repeat while arg0-- > 0 + outc(lastc) + + "d": + if (arg0 < 1) OR (arg0 > rows) + arg0 := rows + pos := ((arg0 - 1) * cols) + (pos // cols) + + "m": + setInv(arg0) + if arg1 <> -1 + setInv(arg1) + + "r": + if arg0 < 1 + arg0 := 1 + elseif arg0 > cols + arg0 := cols + if arg1 < 1 + arg1 := 1 + elseif arg1 > cols + arg1 := cols + if arg1 < arg0 + arg1 := arg0 + + regionTop := (arg0 - 1) * cols + regionBot := arg1 * cols + pos := 0 + + "A": + repeat while arg0-- > 0 + pos -= cols + if pos < 0 + pos += cols + return + + "B": + repeat while arg0-- > 0 + pos += cols + if pos => maxChars + pos -= cols + return + + "C": + repeat while arg0-- > 0 + pos += 1 + if pos => maxChars + pos -= 1 + return + + "D": + repeat while arg0-- > 0 + pos -= 1 + if pos < 0 + pos := 0 + return + + "G": + if (arg0 < 1) OR (arg0 > cols) + arg0 := cols + pos := (pos - (pos // cols)) + (arg0 - 1) + + "H", "f": + if arg0 =< 0 + arg0 := 1 + if arg1 =< 0 + arg1 := 1 + pos := (cols * (arg0 - 1)) + (arg1 - 1) + if pos < 0 + pos := 0 + if pos => maxChars + pos := maxChars - 1 + + "J": + if arg0 == 1 + clBOL(pos) + x := pos - cols + x -= x // cols + repeat while x => 0 + clEOL(x) + x -= cols + return + + if arg0 == 2 + pos := 0 + + clEOL(pos) + x := pos + cols + x -= (x // cols) + repeat while x < maxChars + clEOL(x) + x += cols + + "K": + if arg0 == -1 + clEOL(pos) + elseif arg0 == 1 + clBOL(pos) + else + clEOL(pos - (pos // cols)) + + "L": + if inRegion + repeat while arg0-- > 0 + if regionBot < maxChars + delLine(regionBot) + insLine(pos) + + "M": + if inRegion + repeat while arg0-- > 0 + delLine(pos) + if regionBot < maxChars + insLine(regionBot) + + "P": + repeat while arg0-- + delChar(pos) + +PRI outc(c) + + putc(pos++, lastc := c) + if pos == regionBot + scrollUp + pos -= cols + elseif pos == maxChars + pos := lastLine + +PUB process_char(c) + + case state + + 0: + if c > 127 + c := $20 + + if c => $20 + outc(c) + setCursorPos(pos) + return + + if c == $1B + state := 1 + return + + if c == $0D + pos := pos - (pos // cols) + setCursorPos(pos) + return + + if c == $0A + if inRegion + pos += cols + if pos => regionBot + scrollUp + pos -= cols + else + pos += cols + if pos => maxChars + pos -= cols + setCursorPos(pos) + return + + if c == 9 + pos += (8 - (pos // 8)) + + if pos => maxChars + pos := lastLine + delLine(0) + + setCursorPos(pos) + return + + if c == 8 + if pos > 0 + pos -= 1 + setCursorPos(pos) + return + + 1: + case c + "[": + arg0 := arg1 := -1 + state := 2 + return + + "P": + pos += cols + if pos => maxChars + pos -= cols + + "K": + if pos > 0 + pos -= 1 + + "H": + pos -= cols + if pos < 0 + pos += cols + + "D": + if inRegion + scrollUp + + "M": + if inRegion + scrollDown + + "G": + pos := 0 + + "(": + state := 5 + return + + state := 0 + return + + 2: + if (c => "0") AND (c =< "9") + if arg0 == -1 + arg0 := c - "0" + else + arg0 := (arg0 * 10) + (c - "0") + return + + if c == ";" + state := 3 + return + + ansi(c) + setCursorPos(pos) + return + + 3: + if (c => "0") AND (c =< "9") + if arg1 == -1 + arg1 := c - "0" + else + arg1 := (arg1 * 10) + (c - "0") + return + + if c == ";" + state := 4 + return + + ansi(c) + setCursorPos(pos) + return + + 4: + if (c => "0") AND (c =< "9") + return + + if c == ";" + return + ansi(c) + setCursorPos(pos) + return + + 5: + state := 0 + return + + return \ No newline at end of file diff --git a/Support/PropIO2/Spin/VGA_HiRes_Text.spin b/Support/PropIO2/Spin/VGA_HiRes_Text.spin new file mode 100644 index 0000000000000000000000000000000000000000..5b892316533d01d855cf1bf08be8a9513fc1775b GIT binary patch literal 54408 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, <0 => error | pin mask + long SPI_block_index ' which 512-byte block to read/write | cnt at init + long SPI_buffer_address ' where to get/put the data in Hub RAM | unused +'} +DAT +'' I'm placing these variables in a DAT section to make this driver a singleton. +'' If for some reason you really need more than one driver (e.g. if you have more +'' than a single SD socket), move these back into VAR. +SPI_engine_cog long 0 +' these are used for interfacing with the assembly engine | temporary initialization usage +SPI_command long 0 ' "t", "r", "w", 0 =>done, <0 => error | unused +SPI_block_index long 0 ' which 512-byte block to read/write | cnt at init +SPI_buffer_address long 0 ' where to get/put the data in Hub RAM | unused + +{ +VAR + ' for debug ONLY + byte log_cmd_resp[LOG_SIZE+1] +PUB get_log_pointer + return @log_cmd_resp +'} + +PUB start( basepin ) +{{ + This is a compatibility wrapper, and requires that the pins be + both consecutive, and in the order DO CLK DI CS. +}} + return start_explicit( basepin, basepin+1, basepin+2, basepin+3 ) + +PUB readblock( block_index, buffer_address ) + if SPI_engine_cog == 0 + abort ERR_SPI_ENGINE_NOT_RUNNING + if (buffer_address & 3) + abort ERR_BLOCK_NOT_LONG_ALIGNED + SPI_block_index := block_index + SPI_buffer_address := buffer_address + SPI_command := "r" + repeat while SPI_command == "r" + if SPI_command < 0 + abort SPI_command + +PUB writeblock( block_index, buffer_address ) + if SPI_engine_cog == 0 + abort ERR_SPI_ENGINE_NOT_RUNNING + if (buffer_address & 3) + abort ERR_BLOCK_NOT_LONG_ALIGNED + SPI_block_index := block_index + SPI_buffer_address := buffer_address + SPI_command := "w" + repeat while SPI_command == "w" + if SPI_command < 0 + abort SPI_command + +PUB get_seconds + if SPI_engine_cog == 0 + abort ERR_SPI_ENGINE_NOT_RUNNING + SPI_command := "t" + repeat while SPI_command == "t" + ' secods are in SPI_block_index, remainder is in SPI_buffer_address + return SPI_block_index + +PUB get_milliseconds : ms + if SPI_engine_cog == 0 + abort ERR_SPI_ENGINE_NOT_RUNNING + SPI_command := "t" + repeat while SPI_command == "t" + ' secods are in SPI_block_index, remainder is in SPI_buffer_address + ms := SPI_block_index * 1000 + ms += SPI_buffer_address * 1000 / clkfreq + +PUB start_explicit( DO, CLK, DI, CS ) : card_type | tmp, i +{{ + Do all of the card initialization in SPIN, then hand off the pin + information to the assembly cog for hot SPI block R/W action! +}} + ' Start from scratch + stop + ' clear my log buffer + { + bytefill( @log_cmd_resp, 0, LOG_SIZE+1 ) + dbg_ptr := @log_cmd_resp + dbg_end := dbg_ptr + LOG_SIZE + '} + ' wait ~4 milliseconds + waitcnt( 500 + (clkfreq>>8) + cnt ) + ' (start with cog variables, _BEFORE_ loading the cog) + pinDO := DO + maskDO := |< DO + pinCLK := CLK + pinDI := DI + maskDI := |< DI + maskCS := |< CS + adrShift := 9 ' block = 512 * index, and 512 = 1<<9 + ' pass the output pin mask via the command register + maskAll := maskCS | (| 74 clocks + outa |= maskAll + repeat 4096 + outa[CLK]~~ + outa[CLK]~ + ' time-hack + SPI_block_index := cnt + ' reset the card + tmp~ + repeat i from 0 to 9 + if tmp <> 1 + tmp := send_cmd_slow( CMD0, 0, $95 ) + if (tmp & 4) + ' the card said CMD0 ("go idle") was invalid, so we're possibly stuck in read or write mode + if i & 1 + ' exit multiblock read mode + repeat 4 + read_32_slow ' these extra clocks are required for some MMC cards + send_slow( $FD, 8 ) ' stop token + read_32_slow + repeat while read_slow <> $FF + else + ' exit multiblock read mode + send_cmd_slow( CMD12, 0, $61 ) + if tmp <> 1 + ' the reset command failed! + crash( ERR_CARD_NOT_RESET ) + ' Is this a SD type 2 card? + if send_cmd_slow( CMD8, $1AA, $87 ) == 1 + ' Type2 SD, check to see if it's a SDHC card + tmp := read_32_slow + ' check the supported voltage + if (tmp & $1FF) <> $1AA + crash( ERR_3v3_NOT_SUPPORTED ) + ' try to initialize the type 2 card with the High Capacity bit + repeat while send_cmd_slow( ACMD41, |<30, $77 ) + ' the card is initialized, let's read back the High Capacity bit + if send_cmd_slow( CMD58, 0, $FD ) <> 0 + crash( ERR_OCR_FAILED ) + ' get back the data + tmp := read_32_slow + ' check the bit + if tmp & |<30 + card_type := type_SDHC + adrShift := 0 + else + card_type := type_SD + else + ' Either a type 1 SD card, or it's MMC, try SD 1st + if send_cmd_slow( ACMD41, 0, $E5 ) < 2 + ' this is a type 1 SD card (1 means busy, 0 means done initializing) + card_type := type_SD + repeat while send_cmd_slow( ACMD41, 0, $E5 ) + else + ' mark that it's MMC, and try to initialize + card_type := type_MMC + repeat while send_cmd_slow( CMD1, 0, $F9 ) + ' some SD or MMC cards may have the wrong block size, set it here + send_cmd_slow( CMD16, 512, $15 ) + ' card is mounted, make sure the CRC is turned off + send_cmd_slow( CMD59, 0, $91 ) + ' check the status + 'send_cmd_slow( CMD13, 0, $0D ) + ' done with the SPI bus for now + outa |= maskCS + ' set my counter modes for super fast SPI operation + ' writing: NCO single-ended mode, output on DI + writeMode := (%00100 << 26) | (DI << 0) + ' reading + 'readMode := (%11000 << 26) | (DO << 0) | (CLK << 9) + ' clock + 'clockLineMode := (%00110 << 26) | (CLK << 0) ' DUTY, 25% duty cycle + ' clock + clockLineMode := (%00100 << 26) | (CLK << 0) ' NCO, 50% duty cycle + ' how many bytes (8 clocks, >>3) fit into 1/2 of a second (>>1), 4 clocks per instruction (>>2)? + N_in8_500ms := clkfreq >> constant(1+2+3) + ' how long should we wait before auto-exiting any multiblock mode? + idle_limit := 125 ' ms, NEVER make this > 1000 + idle_limit := clkfreq / (1000 / idle_limit) ' convert to counts + ' Hand off control to the assembly engine's cog + bufAdr := @SPI_buffer_address + sdAdr := @SPI_block_index + SPI_command := 0 ' just make sure it's not 1 + ' start my driver cog and wait till I hear back that it's done + SPI_engine_cog := cognew( @SPI_engine_entry, @SPI_command ) + 1 + if( SPI_engine_cog == 0 ) + crash( ERR_SPI_ENGINE_NOT_RUNNING ) + repeat while SPI_command <> -1 + ' and we no longer need to control any pins from here + dira &= !maskAll + ' the return variable is card_type + +PUB release +{{ + I do not want to abort if the cog is not + running, as this is called from stop, which + is called from start/ [8^) +}} + if SPI_engine_cog + SPI_command := "z" + repeat while SPI_command == "z" + +PUB stop +{{ + kill the assembly driver cog. +}} + release + if SPI_engine_cog + cogstop( SPI_engine_cog~ - 1 ) + +PRI crash( abort_code ) +{{ + In case of Bad Things(TM) happening, + exit as gracefully as possible. +}} + ' and we no longer need to control any pins from here + dira &= !maskAll + ' and report our error + abort abort_code + +PRI send_cmd_slow( cmd, val, crc ) : reply | time_stamp +{{ + Send down a command and return the reply. + Note: slow is an understatement! + Note: this uses the assembly DAT variables for pin IDs, + which means that if you run this multiple times (say for + multiple SD cards), these values will change for each one. + But this is OK as all of these functions will be called + during the initialization only, before the PASM engine is + running. +}} + ' if this is an application specific command, handle it + if (cmd & $80) + ' ACMD is the command sequense of CMD55-CMD + cmd &= $7F + reply := send_cmd_slow( CMD55, 0, $65 ) + if (reply > 1) + return reply + ' the CS line needs to go low during this operation + outa |= maskCS + outa &= !maskCS + ' give the card a few cocks to finish whatever it was doing + read_32_slow + ' send the command byte + send_slow( cmd, 8 ) + ' send the value long + send_slow( val, 32 ) + ' send the CRC byte + send_slow( crc, 8 ) + ' is this a CMD12?, if so, stuff byte + if cmd == CMD12 + read_slow + ' read back the response (spec declares 1-8 reads max for SD, MMC is 0-8) + time_stamp := 9 + repeat + reply := read_slow + while( reply & $80 ) and ( time_stamp-- ) + ' done, and 'reply' is already pre-loaded + { + if dbg_ptr < (dbg_end-1) + byte[dbg_ptr++] := cmd + byte[dbg_ptr++] := reply + if (cmd&63) == 13 + ' get the second byte + byte[dbg_ptr++] := cmd + byte[dbg_ptr++] := read_slow + '} + +PRI send_slow( value, bits_to_send ) + value ><= bits_to_send + repeat bits_to_send + outa[pinCLK]~ + outa[pinDI] := value + value >>= 1 + outa[pinCLK]~~ + +PRI read_32_slow : r + repeat 4 + r <<= 8 + r |= read_slow + +PRI read_slow : r +{{ + Read back 8 bits from the card +}} + ' we need the DI line high so a read can occur + outa[pinDI]~~ + ' get 8 bits (remember, r is initialized to 0 by SPIN) + repeat 8 + outa[pinCLK]~ + outa[pinCLK]~~ + r += r + ina[pinDO] + ' error check + if( (cnt - SPI_block_index) > (clkfreq << 2) ) + crash( ERR_CARD_BUSY_TIMEOUT ) + +DAT +{{ + This is the assembly engine for doing fast block + reads and writes. This is *ALL* it does! +}} +ORG 0 +SPI_engine_entry + ' Counter A drives data out + mov ctra,writeMode + ' Counter B will always drive my clock line + mov ctrb,clockLineMode + ' set our output pins to match the pin mask + mov dira,maskAll + ' handshake that we now control the pins + neg user_request,#1 + wrlong user_request,par + ' start my seconds' counter here + mov last_time,cnt + +waiting_for_command + ' update my seconds counter, but also track the idle + ' time so we can to release the card after timeout. + call #handle_time + ' read the command, and make sure it's from the user (> 0) + rdlong user_request,par + cmps user_request,#0 wz,wc +if_be jmp #waiting_for_command + ' handle our card based commands + cmp user_request,#"r" wz +if_z jmp #read_ahead + cmp user_request,#"w" wz +if_z jmp #write_behind + cmp user_request,#"z" wz +if_z jmp #release_card + ' time requests are handled differently + cmp user_request,#"t" wz ' time +if_z wrlong seconds,sdAdr ' seconds goes into the SD index register +if_z wrlong dtime,bufAdr ' the remainder goes into the buffer address register + ' in all other cases, clear the user's request + mov user_request,#0 + wrlong user_request,par + jmp #waiting_for_command + + +release_card + mov user_cmd,#"z" ' request a release + neg lastIndexPlus,#1 ' reset the last block index + neg user_idx,#1 ' and make this match it + call #handle_command + mov user_request,user_cmd + wrlong user_request,par + jmp #waiting_for_command + +read_ahead + rdlong user_idx,sdAdr + ' if the correct block is not already loaded, load it + mov tmp1,user_idx + add tmp1,#1 + cmp tmp1,lastIndexPlus wz +if_z cmp lastCommand,#"r" wz +if_z jmp #:get_on_with_it + mov user_cmd,#"r" + call #handle_command +:get_on_with_it + ' copy the data up into Hub RAM + movi transfer_long,#%000010_000 'set to wrlong + call #hub_cog_transfer + ' signify that the data is ready, Spin can continue + mov user_request,user_cmd + wrlong user_request,par + ' request the next block + mov user_cmd,#"r" + add user_idx,#1 + call #handle_command + ' done + jmp #waiting_for_command + +write_behind + rdlong user_idx,sdAdr + ' copy data in from Hub RAM + movi transfer_long,#%000010_001 'set to rdlong + call #hub_cog_transfer + ' signify that we have the data, Spin can continue + mov user_request,user_cmd + wrlong user_request,par + ' write out the block + mov user_cmd,#"w" + call #handle_command + ' done + jmp #waiting_for_command + +{{ + Set user_cmd and user_idx before calling this +}} +handle_command + ' Can we stay in the old mode? (address = old_address+1) && (old mode == new_mode) + cmp lastIndexPlus,user_idx wz +if_z cmp user_cmd,lastCommand wz +if_z jmp #:execute_block_command + ' we fell through, must exit the old mode! (except if the old mode was "release") + cmp lastCommand,#"w" wz +if_z call #stop_mb_write + cmp lastCommand,#"r" wz +if_z call #stop_mb_read + ' and start up the new mode! + cmp user_cmd,#"w" wz +if_z call #start_mb_write + cmp user_cmd,#"r" wz +if_z call #start_mb_read + cmp user_cmd,#"z" wz +if_z call #release_DO +:execute_block_command + ' track the (new) last index and command + mov lastIndexPlus,user_idx + add lastIndexPlus,#1 + mov lastCommand,user_cmd + ' do the block read or write or terminate! + cmp user_cmd,#"w" wz +if_z call #write_single_block + cmp user_cmd,#"r" wz +if_z call #read_single_block + cmp user_cmd,#"z" wz +if_z mov user_cmd,#0 + ' done +handle_command_ret + ret + +{=== these PASM functions get me in and out of multiblock mode ===} +release_DO + ' we're already out of multiblock mode, so + ' deselect the card and send out some clocks + or outa,maskCS + call #in8 + call #in8 + ' if you are using pull-up resistors, and need all + ' lines tristated, then uncomment the following line. + ' for Cluso99 + 'mov dira,#0 +release_DO_ret + ret + +start_mb_read + movi block_cmd,#CMD18<<1 + call #send_SPI_command_fast +start_mb_read_ret + ret + +stop_mb_read + movi block_cmd,#CMD12<<1 + call #send_SPI_command_fast + call #busy_fast +stop_mb_read_ret + ret + +start_mb_write + movi block_cmd,#CMD25<<1 + call #send_SPI_command_fast +start_mb_write_ret + ret + +stop_mb_write + call #busy_fast + ' only some cards need these extra clocks + mov tmp1,#16 +:loopity + call #in8 + djnz tmp1,#:loopity + ' done with hack + movi phsa,#$FD<<1 + call #out8 + call #in8 ' stuff byte + call #busy_fast +stop_mb_write_ret + ret + +send_SPI_command_fast + ' make sure we have control of the output lines + mov dira,maskAll + ' make sure the CS line transitions low + or outa,maskCS + andn outa,maskCS + ' 8 clocks + call #in8 + ' send the data + mov phsa,block_cmd ' do which ever block command this is (already in the top 8 bits) + call #out8 ' write the byte + mov phsa,user_idx ' read in the desired block index + shl phsa,adrShift ' this will multiply by 512 (bytes/sector) for MMC and SD + call #out8 ' move out the 1st MSB ' + rol phsa,#1 + call #out8 ' move out the 1st MSB ' + rol phsa,#1 + call #out8 ' move out the 1st MSB ' + rol phsa,#1 + call #out8 ' move out the 1st MSB ' + ' bogus CRC value + call #in8 ' in8 looks like out8 with $FF + ' CMD12 requires a stuff byte + shr block_cmd,#24 + cmp block_cmd,#CMD12 wz +if_z call #in8 ' 8 clocks + ' get the response + mov tmp1,#9 +:cmd_response + call #in8 + test readback,#$80 wc,wz +if_c djnz tmp1,#:cmd_response +if_nz neg user_cmd,readback + ' done +send_SPI_command_fast_ret + ret + + +busy_fast + mov tmp1,N_in8_500ms +:still_busy + call #in8 + cmp readback,#$FF wz +if_nz djnz tmp1,#:still_busy +busy_fast_ret + ret + + +out8 + andn outa,maskDI + 'movi phsb,#%11_0000000 + mov phsb,#0 + movi frqb,#%01_0000000 + rol phsa,#1 + rol phsa,#1 + rol phsa,#1 + rol phsa,#1 + rol phsa,#1 + rol phsa,#1 + rol phsa,#1 + mov frqb,#0 + ' don't shift out the final bit...already sent, but be aware + ' of this when sending consecutive bytes (send_cmd, for e.g.) +out8_ret + ret + +{ +in8 + or outa,maskDI + mov ctra,readMode + ' Start my clock + mov frqa,#1<<7 + mov phsa,#0 + movi phsb,#%11_0000000 + movi frqb,#%01_0000000 + ' keep reading in my value, one bit at a time! (Kuneko - "Wh) + shr frqa,#1 + shr frqa,#1 + shr frqa,#1 + shr frqa,#1 + shr frqa,#1 + shr frqa,#1 + shr frqa,#1 + mov frqb,#0 ' stop the clock + mov readback,phsa + mov frqa,#0 + mov ctra,writeMode +in8_ret + ret +} +in8 + neg phsa,#1' DI high + mov readback,#0 + ' set up my clock, and start it + movi phsb,#%011_000000 + movi frqb,#%001_000000 + ' keep reading in my value + test maskDO,ina wc + rcl readback,#1 + test maskDO,ina wc + rcl readback,#1 + test maskDO,ina wc + rcl readback,#1 + test maskDO,ina wc + rcl readback,#1 + test maskDO,ina wc + rcl readback,#1 + test maskDO,ina wc + rcl readback,#1 + test maskDO,ina wc + rcl readback,#1 + test maskDO,ina wc + mov frqb,#0 ' stop the clock + rcl readback,#1 + mov phsa,#0 'DI low +in8_ret + ret + + +' this is called more frequently than 1 Hz, and +' is only called when the user command is 0. +handle_time + mov tmp1,cnt ' get the current timestamp + add idle_time,tmp1 ' add the current time to my idle time counter + sub idle_time,last_time ' subtract the last time from my idle counter (hence delta) + add dtime,tmp1 ' add to my accumulator, + sub dtime,last_time ' and subtract the old (adding delta) + mov last_time,tmp1 ' update my "last timestamp" + rdlong tmp1,#0 ' what is the clock frequency? + cmpsub dtime,tmp1 wc ' if I have more than a second in my accumulator + addx seconds,#0 ' then add it to "seconds" + ' this part is to auto-release the card after a timeout + cmp idle_time,idle_limit wz,wc +if_b jmp #handle_time_ret ' don't clear if we haven't hit the limit + mov user_cmd,#"z" ' we can't overdo it, the command handler makes sure + neg lastIndexPlus,#1 ' reset the last block index + neg user_idx,#1 ' and make this match it + call #handle_command ' release the card, but don't mess with the user's request register +handle_time_ret + ret + +hub_cog_transfer +' setup for all 4 passes + mov ctrb,clockXferMode + mov frqb,#1 + rdlong buf_ptr,bufAdr + mov ops_left,#4 + movd transfer_long,#speed_buf +four_transfer_passes + ' sync to the Hub RAM access + rdlong tmp1,tmp1 + ' how many long to move on this pass? (512 bytes / 4)longs / 4 passes + mov tmp1,#(512 / 4 / 4) + ' get my starting address right (phsb is incremented 1 per clock, so 16 each Hub access) + mov phsb,buf_ptr + ' write the longs, stride 4...low 2 bits of phsb are ignored +transfer_long + rdlong 0-0,phsb + add transfer_long,incDest4 + djnz tmp1,#transfer_long + ' go back to where I started, but advanced 1 long + sub transfer_long,decDestNminus1 + ' offset my Hub pointer by one long per pass + add buf_ptr,#4 + ' do all 4 passes + djnz ops_left,#four_transfer_passes + ' restore the counter mode + mov frqb,#0 + mov phsb,#0 + mov ctrb,clockLineMode +hub_cog_transfer_ret + ret + + +read_single_block + ' where am I sending the data? + movd :store_read_long,#speed_buf + mov ops_left,#128 + ' wait until the card is ready + mov tmp1,N_in8_500ms +:get_resp + call #in8 + cmp readback,#$FE wz +if_nz djnz tmp1,#:get_resp +if_nz neg user_cmd,#ERR_ASM_NO_READ_TOKEN +if_nz jmp #read_single_block_ret + ' set DI high + neg phsa,#1 + ' read the data + mov ops_left,#128 +:read_loop + mov tmp1,#4 + movi phsb,#%011_000000 +:in_byte + ' Start my clock + movi frqb,#%001_000000 + ' keep reading in my value, BACKWARDS! (Brilliant idea by Tom Rokicki!) + test maskDO,ina wc + rcl readback,#8 + test maskDO,ina wc + muxc readback,#2 + test maskDO,ina wc + muxc readback,#4 + test maskDO,ina wc + muxc readback,#8 + test maskDO,ina wc + muxc readback,#16 + test maskDO,ina wc + muxc readback,#32 + test maskDO,ina wc + muxc readback,#64 + test maskDO,ina wc + mov frqb,#0 ' stop the clock + muxc readback,#128 + ' go back for more + djnz tmp1,#:in_byte + ' make it...NOT backwards [8^) + rev readback,#0 +:store_read_long + mov 0-0,readback ' due to some counter weirdness, we need this mov + add :store_read_long,const512 + djnz ops_left,#:read_loop + + ' set DI low + mov phsa,#0 + + ' now read 2 trailing bytes (CRC) + call #in8 ' out8 is 2x faster than in8 + call #in8 ' and I'm not using the CRC anyway + ' give an extra 8 clocks in case we pause for a long time + call #in8 ' in8 looks like out8($FF) + + ' all done successfully + mov idle_time,#0 + mov user_cmd,#0 +read_single_block_ret + ret + +write_single_block + ' where am I getting the data? (all 512 bytes / 128 longs of it?) + movs :write_loop,#speed_buf + ' read in 512 bytes (128 longs) from Hub RAM and write it to the card + mov ops_left,#128 + ' just hold your horses + call #busy_fast + ' $FC for multiblock, $FE for single block + movi phsa,#$FC<<1 + call #out8 + mov phsb,#0 ' make sure my clock accumulator is right + 'movi phsb,#%11_0000000 +:write_loop + ' read 4 bytes + mov phsa,speed_buf + add :write_loop,#1 + ' a long in LE order is DCBA + rol phsa,#24 ' move A7 into position, so I can do the swizzled version + movi frqb,#%010000000 ' start the clock (remember A7 is already in place) + rol phsa,#1 ' A7 is going out, at the end of this instr, A6 is in place + rol phsa,#1 ' A5 + rol phsa,#1 ' A4 + rol phsa,#1 ' A3 + rol phsa,#1 ' A2 + rol phsa,#1 ' A1 + rol phsa,#1 ' A0 + rol phsa,#17 ' B7 + rol phsa,#1 ' B6 + rol phsa,#1 ' B5 + rol phsa,#1 ' B4 + rol phsa,#1 ' B3 + rol phsa,#1 ' B2 + rol phsa,#1 ' B1 + rol phsa,#1 ' B0 + rol phsa,#17 ' C7 + rol phsa,#1 ' C6 + rol phsa,#1 ' C5 + rol phsa,#1 ' C4 + rol phsa,#1 ' C3 + rol phsa,#1 ' C2 + rol phsa,#1 ' C1 + rol phsa,#1 ' C0 + rol phsa,#17 ' D7 + rol phsa,#1 ' D6 + rol phsa,#1 ' D5 + rol phsa,#1 ' D4 + rol phsa,#1 ' D3 + rol phsa,#1 ' D2 + rol phsa,#1 ' D1 + rol phsa,#1 ' D0 will be in place _after_ this instruction + mov frqb,#0 ' shuts the clock off, _after_ this instruction + djnz ops_left,#:write_loop + ' write out my two (bogus, using $FF) CRC bytes + call #in8 + call #in8 + ' now read response (I need this response, so can't spoof using out8) + call #in8 + and readback,#$1F + cmp readback,#5 wz +if_z mov user_cmd,#0 ' great +if_nz neg user_cmd,#ERR_ASM_BLOCK_NOT_WRITTEN ' oops + ' send out another 8 clocks + call #in8 + ' all done + mov idle_time,#0 +write_single_block_ret + ret + + +{=== Assembly Interface Variables ===} +pinDO long 0 ' pin is controlled by a counter +pinCLK long 0 ' pin is controlled by a counter +pinDI long 0 ' pin is controlled by a counter +maskDO long 0 ' mask for reading the DO line from the card +maskDI long 0 ' mask for setting the pin high while reading +maskCS long 0 ' mask = (1<oAJ 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

2prXs#=YEwM8 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

q!^ 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

p-3JSz39t<8$9I7z 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 UEGOy(cijd~SVz4q9hXLb0B#MSK>z>% diff --git a/Tools/zx/zx.html b/Tools/zx/zx.html index e7658b8e..1fca001f 100644 --- a/Tools/zx/zx.html +++ b/Tools/zx/zx.html @@ -145,7 +145,7 @@ computers;

Syntax for zx is:

- zx comfile.com arg1 arg2 ... + zx comfile.com [-stdio] arg1 arg2 ...

The comfile is the program to run; zx searches the current @@ -153,6 +153,10 @@ directory and BINDIR80 for it.

The arguments are parsed in this way:

    +
  • If -stdio appears as one of the arguments, zx will use buffered DOS I/O + which is useful if you want to pipe data in or out of zx. Otherwise + zx will use raw console I/O which works better when the application + is being used interactively.
  • Any argument starting with a - sign is passed to the CP/M program as-is, minus the leading - sign.
  • Any argument starting with a + sign is parsed as a filename (see below) diff --git a/Tools/zx/zxdbg.exe b/Tools/zx/zxdbg.exe new file mode 100644 index 0000000000000000000000000000000000000000..5f13ad596dd65e17959bc192231c83a9e59d0367 GIT binary patch literal 158208 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

    W7@fjv}{8uYJ@)RP9XnlzHNqzS#