From dac6c91949e9109a9103e36055f6a96efd73d3af Mon Sep 17 00:00:00 2001 From: "drohne235@googlemail.com" Date: Tue, 8 Nov 2011 17:13:22 +0000 Subject: [PATCH] --- demo/matrix/gfx1.spin | 178 ------------------ demo/matrix/keyb-treiber.spin | Bin 94800 -> 0 bytes demo/matrix/matrix.spin | Bin 19992 -> 0 bytes demo/matrix/vga-treiber.spin | Bin 53224 -> 0 bytes demo/{graphics => toolbox1}/Graphics.spin | Bin demo/{graphics => toolbox1}/Mouse.spin | Bin demo/{graphics => toolbox1}/TV.spin | Bin demo/{graphics => toolbox1}/demo-1.spin | Bin .../demo-10-animation1.spin | Bin .../demo-10-animation2.spin | Bin demo/{graphics => toolbox1}/demo-10-logo.spin | Bin .../demo-10-logo2.binary | Bin .../{graphics => toolbox1}/demo-10-logo2.spin | Bin .../demo-11-matrix1.spin | Bin demo/{graphics => toolbox1}/demo-2.spin | Bin .../demo-3-objekte.spin | Bin demo/{graphics => toolbox1}/demo-4-boing.spin | Bin .../demo-5-scroller.spin | Bin demo/{graphics => toolbox1}/demo-6-mouse.spin | Bin .../demo-7-satellite.spin | Bin .../demo-7-satellite2.spin | Bin demo/{graphics => toolbox1}/demo-8-sinus.spin | Bin .../demo-9-lissajou.spin | Bin .../demo-9-lissajou2.spin | Bin .../demo-9-lissajou3.spin | Bin .../{graphics => toolbox1}/dlEngine-Test.spin | Bin demo/{graphics => toolbox1}/gra-emu.spin | Bin demo/{graphics => toolbox1}/graphics_XOR.spin | Bin demo/{graphics => toolbox1}/ios.spin | Bin .../potato-commented-graphics-color.spin | Bin 30 files changed, 178 deletions(-) delete mode 100644 demo/matrix/gfx1.spin delete mode 100644 demo/matrix/keyb-treiber.spin delete mode 100644 demo/matrix/matrix.spin delete mode 100644 demo/matrix/vga-treiber.spin rename demo/{graphics => toolbox1}/Graphics.spin (100%) rename demo/{graphics => toolbox1}/Mouse.spin (100%) rename demo/{graphics => toolbox1}/TV.spin (100%) rename demo/{graphics => toolbox1}/demo-1.spin (100%) rename demo/{graphics => toolbox1}/demo-10-animation1.spin (100%) rename demo/{graphics => toolbox1}/demo-10-animation2.spin (100%) rename demo/{graphics => toolbox1}/demo-10-logo.spin (100%) rename demo/{graphics => toolbox1}/demo-10-logo2.binary (100%) rename demo/{graphics => toolbox1}/demo-10-logo2.spin (100%) rename demo/{graphics => toolbox1}/demo-11-matrix1.spin (100%) rename demo/{graphics => toolbox1}/demo-2.spin (100%) rename demo/{graphics => toolbox1}/demo-3-objekte.spin (100%) rename demo/{graphics => toolbox1}/demo-4-boing.spin (100%) rename demo/{graphics => toolbox1}/demo-5-scroller.spin (100%) rename demo/{graphics => toolbox1}/demo-6-mouse.spin (100%) rename demo/{graphics => toolbox1}/demo-7-satellite.spin (100%) rename demo/{graphics => toolbox1}/demo-7-satellite2.spin (100%) rename demo/{graphics => toolbox1}/demo-8-sinus.spin (100%) rename demo/{graphics => toolbox1}/demo-9-lissajou.spin (100%) rename demo/{graphics => toolbox1}/demo-9-lissajou2.spin (100%) rename demo/{graphics => toolbox1}/demo-9-lissajou3.spin (100%) rename demo/{graphics => toolbox1}/dlEngine-Test.spin (100%) rename demo/{graphics => toolbox1}/gra-emu.spin (100%) rename demo/{graphics => toolbox1}/graphics_XOR.spin (100%) rename demo/{graphics => toolbox1}/ios.spin (100%) rename demo/{graphics => toolbox1}/potato-commented-graphics-color.spin (100%) diff --git a/demo/matrix/gfx1.spin b/demo/matrix/gfx1.spin deleted file mode 100644 index fc2226a..0000000 --- a/demo/matrix/gfx1.spin +++ /dev/null @@ -1,178 +0,0 @@ -DAT -{ - video-treiber-frame - - basiert auf dem tollen tutorial von bamse - -30-09-2009-dr235 driver 1 - originalcode, anpassung an hive - driver 2 - senkrechte balken - driver 3 - einfarbige fläche - driver 4 - wandernde farbbalken, 1 byte pro pixel :) - driver 5 - - - -} - -CON - _CLKMODE = xtal1 + pll16x - _XINFREQ = 5_000_000 - -PUB start - - cognew(@entry,0) ' neue cog mit video-treiber starten - -DAT org 0 -entry jmp #Start_of_driver ' Start here... - -' NTSC sync stuff. -NTSC_color_freq long 3_579_545 ' NTSC Color Frequency -NTSC_hsync_VSCL long 39 << 12 + 624 ' Used for the Horisontal Sync -NTSC_active_VSCL long 188 << 12 + 3008 ' Used for the Vertical sync -NTSC_hsync_pixels long %%11_0000_1_2222222_11 ' Horizontal sync pixels -NTSC_vsync_high_1 long %%1111111_2222222_11 ' Vertical sync signal part one for lines 1-6 and 13 to 18 -NTSC_vsync_high_2 long %%1111111111111111 ' Vertical sync signal part two for lines 1-6 and 13 to 18 -NTSC_vsync_low_1 long %%2222222222222222 ' Vertical sync signal part one for lines 7-12 -NTSC_vsync_low_2 long %%22_1111111_2222222 ' Vertical sync signal part two for lines 7-12 -NTSC_sync_signal_palette long $00_00_02_8A ' The sync Palette - -' hbeat --------+ +------------------------- /cs -' clk -------+| | -' /wr ------+|| | +---------------------- videopins -' /hs -----+||| | | -' |||| |--+ -------- d0..d7 -tvport_mask long %00000000_01110000_00000000_00000000 ' Maske für Video-Pins am Hive -vsu_cfg long %01110100_00000000_00000100_01110000 ' Wert für VCFG-Register - -NTSC_Graphic_Lines long 244 ' Anzahl der sichtbaren Zeilen -NTSC_Graphics_Pixels_VSCL long 16 << 12 + 16 ' 16 clocks per pixel, 64 clocks per frame. - - -PAL0 long $01 -PAL1 long $0E -PAL2 long $0D -PAL3 long $0C -PAL4 long $0B -DIF1 long $00_10 -CNT_ANIM long $4 - -' Loop counters. -line_loop long $0 ' Line counter... -pix_loop long $0 -anim_loop long $0 - -' General Purpose Registers -r0 long $0 ' Initialize to 0 -r1 long $0 -r2 long $0 -r3 long $0 -c1 long $0 ' colorregister -c2 long $0 -c3 long $0 - -'========================== Start of the actual driver ============================================= - -Start_of_driver - ' VCFG, setup Video Configuration register and 3-bit tv DAC pins to output - mov VCFG, vsu_cfg ' Konfiguration der VSU - or DIRA, tvport_mask ' Set DAC pins to output - - ' CTRA, setup Frequency to Drive Video - movi CTRA,#%00001_111 ' pll internal routed to Video, PHSx+=FRQx (mode 1) + pll(16x) - mov r1, NTSC_color_freq ' r1: Color frequency in Hz (3.579_545MHz) - rdlong r2, #0 ' Copy system clock from main memory location 0. (80Mhz) - ' perform r3 = 2^32 * r1 / r2 - mov r0,#32+1 -:loop cmpsub r1,r2 wc - rcl r3,#1 - shl r1,#1 - djnz r0,#:loop - mov FRQA, r3 ' Set frequency for counter A - - -'========================== Start of Frame Loop ============================================== - -frame_loop - mov anim_loop, CNT_ANIM -frame_loop2 - -'========================== Screen ============================================= - - mov line_loop, NTSC_Graphic_Lines ' anzahl der zeilen laden (244) - -user_lines - '------ zeilensynchronisation - mov VSCL, NTSC_hsync_VSCL ' Setup VSCL for horizontal sync. - waitvid NTSC_sync_signal_palette, NTSC_hsync_pixels ' Generate sync. - - - '------ sichtbarer zeileninhalt - mov VSCL, NTSC_Graphics_Pixels_VSCL ' Setup VSCL for user pixels. - - '------ verschiedenfarbige balken ausgeben - mov c1, PAL4 - add c1, c3 - mov pix_loop, #23 -bar_loop - add c1, #$10 ' 8 x pixel einzeln! ausgeben - mov c2, c1 ' also 2 tiles - waitvid c2, #0 ' 8 bit pro pixel! - add c2, #1 - waitvid c2, #0 - add c2, #1 - waitvid c2, #0 - add c2, #1 - waitvid c2, #0 - sub c2, #1 - waitvid c2, #0 - sub c2, #1 - waitvid c2, #0 - sub c2, #1 - waitvid c2, #0 - sub c2, #1 - waitvid c2, #0 - - djnz pix_loop, #bar_loop - - sub c2, #1 - waitvid c2, #0 ' 4 mal extrapixel, für das timing - sub c2, #1 ' also insgesamt 188 pixel pro zeile - waitvid c2, #0 - sub c2, #1 - waitvid c2, #0 - sub c2, #1 - waitvid c2, #0 - - djnz line_loop, #user_lines ' schleife durch alle zeilen - -'========================== The 16 lines of Horizontal sync ================================== - - mov line_loop, #6 ' Line 244, start of first high sync. -vsync_high1 mov VSCL, NTSC_hsync_VSCL - waitvid NTSC_sync_signal_palette, NTSC_vsync_high_1 - mov VSCL, NTSC_active_VSCL - waitvid NTSC_sync_signal_palette, NTSC_vsync_high_2 - djnz line_loop, #vsync_high1 - - mov line_loop, #6 ' Line 250, start of the Seration pulses. -vsync_low mov VSCL, NTSC_active_VSCL - waitvid NTSC_sync_signal_palette, NTSC_vsync_low_1 - mov VSCL,NTSC_hsync_VSCL - waitvid NTSC_sync_signal_palette, NTSC_vsync_low_2 - djnz line_loop, #vsync_low - - mov line_loop, #6 ' Line 256, start of second high sync. -vsync_high2 mov VSCL, NTSC_hsync_VSCL - waitvid NTSC_sync_signal_palette, NTSC_vsync_high_1 - mov VSCL, NTSC_active_VSCL - waitvid NTSC_sync_signal_palette, NTSC_vsync_high_2 - djnz line_loop, #vsync_high2 - -'========================== End of Frame Loop ============================================= - djnz anim_loop, #frame_loop2 - add c3, #$10 - - -'========================== Animation ================================== - - jmp #frame_loop ' And repeat for ever... -FIT - \ No newline at end of file diff --git a/demo/matrix/keyb-treiber.spin b/demo/matrix/keyb-treiber.spin deleted file mode 100644 index 5333e3a05164177a015a01f9cc70a545a0bc6284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94800 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 xrI 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 Q)iZ{_oyLVf$h(RE4}w-@ApigX diff --git a/demo/matrix/matrix.spin b/demo/matrix/matrix.spin deleted file mode 100644 index e4f1e238a1c23a41bc058e5be3ec4ef84171d22f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19992 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 diff --git a/demo/matrix/vga-treiber.spin b/demo/matrix/vga-treiber.spin deleted file mode 100644 index 9acf513d47835729f54d3be619783bcebba283d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53224 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 XIIA>c%kYY{AhBXwBAS8fsQv!|B@lBN diff --git a/demo/graphics/Graphics.spin b/demo/toolbox1/Graphics.spin similarity index 100% rename from demo/graphics/Graphics.spin rename to demo/toolbox1/Graphics.spin diff --git a/demo/graphics/Mouse.spin b/demo/toolbox1/Mouse.spin similarity index 100% rename from demo/graphics/Mouse.spin rename to demo/toolbox1/Mouse.spin diff --git a/demo/graphics/TV.spin b/demo/toolbox1/TV.spin similarity index 100% rename from demo/graphics/TV.spin rename to demo/toolbox1/TV.spin diff --git a/demo/graphics/demo-1.spin b/demo/toolbox1/demo-1.spin similarity index 100% rename from demo/graphics/demo-1.spin rename to demo/toolbox1/demo-1.spin diff --git a/demo/graphics/demo-10-animation1.spin b/demo/toolbox1/demo-10-animation1.spin similarity index 100% rename from demo/graphics/demo-10-animation1.spin rename to demo/toolbox1/demo-10-animation1.spin diff --git a/demo/graphics/demo-10-animation2.spin b/demo/toolbox1/demo-10-animation2.spin similarity index 100% rename from demo/graphics/demo-10-animation2.spin rename to demo/toolbox1/demo-10-animation2.spin diff --git a/demo/graphics/demo-10-logo.spin b/demo/toolbox1/demo-10-logo.spin similarity index 100% rename from demo/graphics/demo-10-logo.spin rename to demo/toolbox1/demo-10-logo.spin diff --git a/demo/graphics/demo-10-logo2.binary b/demo/toolbox1/demo-10-logo2.binary similarity index 100% rename from demo/graphics/demo-10-logo2.binary rename to demo/toolbox1/demo-10-logo2.binary diff --git a/demo/graphics/demo-10-logo2.spin b/demo/toolbox1/demo-10-logo2.spin similarity index 100% rename from demo/graphics/demo-10-logo2.spin rename to demo/toolbox1/demo-10-logo2.spin diff --git a/demo/graphics/demo-11-matrix1.spin b/demo/toolbox1/demo-11-matrix1.spin similarity index 100% rename from demo/graphics/demo-11-matrix1.spin rename to demo/toolbox1/demo-11-matrix1.spin diff --git a/demo/graphics/demo-2.spin b/demo/toolbox1/demo-2.spin similarity index 100% rename from demo/graphics/demo-2.spin rename to demo/toolbox1/demo-2.spin diff --git a/demo/graphics/demo-3-objekte.spin b/demo/toolbox1/demo-3-objekte.spin similarity index 100% rename from demo/graphics/demo-3-objekte.spin rename to demo/toolbox1/demo-3-objekte.spin diff --git a/demo/graphics/demo-4-boing.spin b/demo/toolbox1/demo-4-boing.spin similarity index 100% rename from demo/graphics/demo-4-boing.spin rename to demo/toolbox1/demo-4-boing.spin diff --git a/demo/graphics/demo-5-scroller.spin b/demo/toolbox1/demo-5-scroller.spin similarity index 100% rename from demo/graphics/demo-5-scroller.spin rename to demo/toolbox1/demo-5-scroller.spin diff --git a/demo/graphics/demo-6-mouse.spin b/demo/toolbox1/demo-6-mouse.spin similarity index 100% rename from demo/graphics/demo-6-mouse.spin rename to demo/toolbox1/demo-6-mouse.spin diff --git a/demo/graphics/demo-7-satellite.spin b/demo/toolbox1/demo-7-satellite.spin similarity index 100% rename from demo/graphics/demo-7-satellite.spin rename to demo/toolbox1/demo-7-satellite.spin diff --git a/demo/graphics/demo-7-satellite2.spin b/demo/toolbox1/demo-7-satellite2.spin similarity index 100% rename from demo/graphics/demo-7-satellite2.spin rename to demo/toolbox1/demo-7-satellite2.spin diff --git a/demo/graphics/demo-8-sinus.spin b/demo/toolbox1/demo-8-sinus.spin similarity index 100% rename from demo/graphics/demo-8-sinus.spin rename to demo/toolbox1/demo-8-sinus.spin diff --git a/demo/graphics/demo-9-lissajou.spin b/demo/toolbox1/demo-9-lissajou.spin similarity index 100% rename from demo/graphics/demo-9-lissajou.spin rename to demo/toolbox1/demo-9-lissajou.spin diff --git a/demo/graphics/demo-9-lissajou2.spin b/demo/toolbox1/demo-9-lissajou2.spin similarity index 100% rename from demo/graphics/demo-9-lissajou2.spin rename to demo/toolbox1/demo-9-lissajou2.spin diff --git a/demo/graphics/demo-9-lissajou3.spin b/demo/toolbox1/demo-9-lissajou3.spin similarity index 100% rename from demo/graphics/demo-9-lissajou3.spin rename to demo/toolbox1/demo-9-lissajou3.spin diff --git a/demo/graphics/dlEngine-Test.spin b/demo/toolbox1/dlEngine-Test.spin similarity index 100% rename from demo/graphics/dlEngine-Test.spin rename to demo/toolbox1/dlEngine-Test.spin diff --git a/demo/graphics/gra-emu.spin b/demo/toolbox1/gra-emu.spin similarity index 100% rename from demo/graphics/gra-emu.spin rename to demo/toolbox1/gra-emu.spin diff --git a/demo/graphics/graphics_XOR.spin b/demo/toolbox1/graphics_XOR.spin similarity index 100% rename from demo/graphics/graphics_XOR.spin rename to demo/toolbox1/graphics_XOR.spin diff --git a/demo/graphics/ios.spin b/demo/toolbox1/ios.spin similarity index 100% rename from demo/graphics/ios.spin rename to demo/toolbox1/ios.spin diff --git a/demo/graphics/potato-commented-graphics-color.spin b/demo/toolbox1/potato-commented-graphics-color.spin similarity index 100% rename from demo/graphics/potato-commented-graphics-color.spin rename to demo/toolbox1/potato-commented-graphics-color.spin