oky2000 Posted June 14, 2011 Author Share Posted June 14, 2011 Sinclair computers= pregnant calculators. I'm sure if you replace the engine in a car with a rubber band you can make them cheaper Yeah, pregnant calculators that dominated the UK (and a good chunk of mainland Europe) home computer market in the mid 80s. C64 took the lead when it got cheaper, but Speccy still got massive support trailing off into the early 90s. It was a good, simple, cheap, but effective machine at a very good value (value was about equal to the C64, but price was lower ). With a bit of tweaking it probably would have lasted even better and catered to a broader market. They also did that with lack of vertical integration and relatively limited funds, not that much unlike the Atari ST. For that matter, both the Spectrum and the ST had pretty open potential for enhancement of the architecture that wasn't really acted upon. (the TS2068 features alone would have moved the Speccy to compete almost directly with the CPC at a much lower price, and be capable of things the C64 simply couldn't do -512x192 monochrome with 64 or 80 column text capabilities . . . with slightly higher end models with CPC quality keboards, it probably could have become the de-facto low-end business computing option . . . well focusing more on disks and not on the funky microdrive would have helped that too) The TS2068 features also made it better for games, not C64 level obviously, but better than Spectrum 128 and better in some ways than the CPC. (better in pretty much every way than the oddly common use of mode 1 fir games on the CPC) Plus, it would have still kept the base hardware quite simple and cheap, meaning tacked-on (embedded) compatibility for something like Loki would have been quite realistic. (given what happened with the Flare 1's development, and assuming Loki was progressing along similar lines, it should have been ready for production by 1987 at least, in time to run up against the Amiga 500 -which it definitely would have been much cheaper than, while also significantly more capable in some areas and roughly on-par in others -the eventual Flare 1/Slipstream design shares striking similarities with the -albeit somewhat vague- promoted specs of the Loki, with the exception that there would be no 64 color mode -just 16 and 256 modes- and the CPU was to be 6 and not 7 MHz -though had it been based around the Spectrum's clock rate, 7 MHz might have made sense . . . though actual enhanced speccy clones existed in both 6 and 7 MHz forms -for example SAM was 6, Pentagon was 7) Of course, in the US, there was much less of a market for super low-end machines in the long run (though one could argue Timex could have managed that much better), and the C64 ended up as the de-factor low-end computer in the mid 80s. (closest thing to the spectrum was probably the CoCo, though that had a very limited market compared to the C64 it still lasted quite a long time and saw a much better upgrade than the speccy ever got in the CoCo III -only thing lacking was a sound chip) Again not quite right, the point is whilst most computers bar the Amiga 1000 were some sort of compromise for the time the ZX80/81/Spectrum was ALL compromise to a point where the final design is completely hampered by those compromises in its ability to entertain its owner. No sound chip, no joystick ports, gaudy colour clashing graphics of nuclear looking illuminant, no scrolling, no sprites, no real keyboard, no disk drive....the list is endless of what is missing on the ZX Spectrum. It may have sold well in 82-84 on price but by the time the C64 was down to £199/£225 in mid 80s it was game over for Sinclair as far as sales of new machines went. ZX Spectrum was the first 8bit to fall off the conversion formats of ST/Amiga games. Was just too shit even in mid 80s despite what some fanboys may have you believe. ZX Spectrum is just a colour version of the ZX81 with the ability to process program code on the CPU AT THE SAME TIME as displaying the bitmapped graphics (a big deal for poor ZX81 upgraders lol) They made LED watches that could barely have enough power to display the time, calculators that could barely calculate etc etc and the classic C5 electric bike with a pedal assisted top speed of 15mph (I can peddle 20-25mph myself lol) And then the Sinclair QL.....another piece of crap too 68000 CPU running on 8bit bus with zero custom chips and an ASCII graphics looking OS wooooo what a fantastic idea.....NOT. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 14, 2011 Share Posted June 14, 2011 Speccy... well... is there any custom chip inside? or is it pure CPU driven machine? does it have interrupts? Quote Link to comment Share on other sites More sharing options...
popmilo Posted June 14, 2011 Share Posted June 14, 2011 Speccy... well... is there any custom chip inside? or is it pure CPU driven machine? does it have interrupts? It had one custom chip - ULA - memory, address decoding and screen drawing.... And it does have Vertical blank interrupt... It was really simple machine... But we should look at effects of those limitations and low price. First of all - low price made possible what Sinclair wanted - computer in million homes. Commodore, Acorn, Atari and even IBM - wouldn't lower their prices if Sinclair didn't do it first. Those limits forced coders to rely on their own coding skills, and if you look at the later games like Savage, Target Renegade, R-type, Carrier Command - those are brilliant games. And those coders that got their skills ironed at that rubber -shitty - 1 bit per pixel machine - they are the ones who later made 16bit consoles and computers shine. WHen you look at that concept of CPU+ram+bitmap screen+beeper what do you get ? PC. Yeah we all had our hopes in Amiga and AtariST - but who won ? That KeepItSimpleStupid principle won. We all have PCs now at home... And what ever new graphics chip was invented (no matter how many sprites, blitters, planes) - at the end it was always the software based simple tech that survived... So, my kudos go to Sinclair and Spectrum - without them, who knows how would history look like now ? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 14, 2011 Share Posted June 14, 2011 Speccy was a good learning machine as it forced you to code... no help due to hardware. maybe similar to Apple II maybe. no custom chips. Maybe little bit like VIC-20 but with Z80 instead. I am sure that Speccy coders were "overhelmd" by pure hardware power an Amiga or Atari ST gave them... Quote Link to comment Share on other sites More sharing options...
oky2000 Posted June 14, 2011 Author Share Posted June 14, 2011 (edited) Speccy... well... is there any custom chip inside? or is it pure CPU driven machine? does it have interrupts? It had one custom chip - ULA - memory, address decoding and screen drawing.... And it does have Vertical blank interrupt... It was really simple machine... But we should look at effects of those limitations and low price. First of all - low price made possible what Sinclair wanted - computer in million homes. Commodore, Acorn, Atari and even IBM - wouldn't lower their prices if Sinclair didn't do it first. Those limits forced coders to rely on their own coding skills, and if you look at the later games like Savage, Target Renegade, R-type, Carrier Command - those are brilliant games. And those coders that got their skills ironed at that rubber -shitty - 1 bit per pixel machine - they are the ones who later made 16bit consoles and computers shine. WHen you look at that concept of CPU+ram+bitmap screen+beeper what do you get ? PC. Yeah we all had our hopes in Amiga and AtariST - but who won ? That KeepItSimpleStupid principle won. We all have PCs now at home... And what ever new graphics chip was invented (no matter how many sprites, blitters, planes) - at the end it was always the software based simple tech that survived... So, my kudos go to Sinclair and Spectrum - without them, who knows how would history look like now ? PC won because all it needed was VGA graphics support in games. ST/Amiga500 Street Fighter was still rubbish on Falcon/Amiga1200. Choppy EGA 286-16mhz running the game badly suddenly became arcade quality on your shiny new VGA 386-40 PC WITHOUT NEEDING TO BUY A NEW VERSION OF THAT SAME GAME GATHERING DUST Also PC sales in the UK before death of C= were nothing spectacular, CD32 games outsold PC-CD games 10:1 in early 94 too My videos prove arcade games 9.9/10 on ZX were inferior to C64. Outrun was crap on every home computer, and Chase HQ on Amstrad far superior to ZX too. As for coding.....C64 BASIC made machine code easy to progress to, was all bloody pokes haha but hey I learned binary before any other kid in my math class Only TCB did astonishing ST scrolling game, maybe only 15 games ever got close to maxing out original Amiga chipset. Disgusting really. BACK ON TOPIC..... If I display a new colour raster on every C16 scanline (160x200 mode) how much CPU time is used. Ditto for 192 colour DLI on A8 in 160x192(?) mode? Could you do A8 Attack of the Mutant Camel's graphics identical on Commodore 16? A8 version is the best by far vs C64 rubbish version! Edited June 14, 2011 by oky2000 Quote Link to comment Share on other sites More sharing options...
oky2000 Posted June 18, 2011 Author Share Posted June 18, 2011 Nobody with C16/+4 technical experience to answer the above? I know there are A8 coders here. Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 18, 2011 Share Posted June 18, 2011 (edited) You might need to repeat the unanswered questions if there's any more. The thread was supposed to be a simple tech comparison but went off on a big tangent and TBH I kinda dropped out. Anyhow, the immediate one: If I display a new colour raster on every C16 scanline (160x200 mode) how much CPU time is used. Ditto for 192 colour DLI on A8 in 160x192(?) mode? Could you do A8 Attack of the Mutant Camel's graphics identical on Commodore 16? A8 version is the best by far vs C64 rubbish version! Like the C64 there's Raster IRQs and you've also got Timer IRQs, but there's no WSYNC. But, you do have a Horizontal Raster position register which is quite useful and you can even write to it to fool TED into thinking a scanline should end early (this is used to generate a software-driven Interlace Mode). Additionally there's the advantage over the C64 in that you have 114 cycles per scanline, identical to Atari. Of course the DMA steals are in similar fashion to the Atari, although only 5 Refresh cycles most scanlines (3 on badlines ? ) but also remember the Plus4 has the 2 consecutive badlines per character row due to the non-parallel attribute fetches. Could you do AMC ? Possibly - but remembering again the Plus4 has no HW sprites, so you can't really afford to just burn away lots of CPU cycles doing pretty effects like on the Atari or C64. But on the other hand, you can get away without the need for colour-register changes in many situations due to the attribute system. Plus4 has an Extended Background mode like C64, but it's also of little use due to being hires only and reducing the number of characters available. Edited June 18, 2011 by Rybags Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 18, 2011 Share Posted June 18, 2011 A really handy spreadsheet for quick Plus4 reference - this has register maps, and overviews of all the graphics modes and other hardware features. http://plus4world.powweb.com/dl/tools/rommap/download.php 1 Quote Link to comment Share on other sites More sharing options...
popmilo Posted June 18, 2011 Share Posted June 18, 2011 A really handy spreadsheet for quick Plus4 reference - this has register maps, and overviews of all the graphics modes and other hardware features. http://plus4world.powweb.com/dl/tools/rommap/download.php Nice find! Quote Link to comment Share on other sites More sharing options...
oky2000 Posted June 19, 2011 Author Share Posted June 19, 2011 I've got the original A8 camel sprite somewhere both in original size and resized to match two C64 sized sprites etc if anyone wants to try animating it on a C16/+4. Was there ever a programmers reference guide from Commodore for the C16 series? Any game orientated BASIC packages as the C64/Amstrad/Spectrum had too like Basic Lightning and Laser Basic etc? Quote Link to comment Share on other sites More sharing options...
popmilo Posted June 19, 2011 Share Posted June 19, 2011 I've got the original A8 camel sprite somewhere both in original size and resized to match two C64 sized sprites etc if anyone wants to try animating it on a C16/+4. Was there ever a programmers reference guide from Commodore for the C16 series? Any game orientated BASIC packages as the C64/Amstrad/Spectrum had too like Basic Lightning and Laser Basic etc? I only saw original manual (in hungarian ), but it was great compared to C64s... It even had steps for detecting hardware failures and detailed schematics with electrical signal diagrams and such... Best info for you would be Plu4World: http://plus4world.powweb.com/plus4encyclopedia Quote Link to comment Share on other sites More sharing options...
JamesD Posted June 19, 2011 Share Posted June 19, 2011 http://plus4world.powweb.com/software/Attack_Of_The_Mutant_Camels Quote Link to comment Share on other sites More sharing options...
oky2000 Posted June 19, 2011 Author Share Posted June 19, 2011 For some reason Hesware decided to call Gridrunner/Matrix other names. Attack of the Mutant Camels is this..... Quote Link to comment Share on other sites More sharing options...
JamesD Posted June 20, 2011 Share Posted June 20, 2011 (edited) For some reason Hesware decided to call Gridrunner/Matrix other names. Attack of the Mutant Camels is this..... It might just have the wrong picture on the website, I haven't tried it. <edit> I ran across an explanation with this video: Read the comments on the Youtube page. It was originally called Attack of the Mutant Camels. Edited June 20, 2011 by JamesD Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 20, 2011 Share Posted June 20, 2011 James... read Jeff's website? www.llamasoft.co.uk Quote Link to comment Share on other sites More sharing options...
oky2000 Posted June 20, 2011 Author Share Posted June 20, 2011 Hesware licensed two(?) games from Jeff Minter of Llamasoft and called them something else when released. Quote Link to comment Share on other sites More sharing options...
JamesD Posted June 20, 2011 Share Posted June 20, 2011 James... read Jeff's website? www.llamasoft.co.uk Nope, not really interested. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 20, 2011 Share Posted June 20, 2011 James... simply because there are the correct names of the games... Quote Link to comment Share on other sites More sharing options...
barnieg Posted June 20, 2011 Share Posted June 20, 2011 (edited) A quick glance of this book and it seems to have a quite handy section on C64 to C16 memory location comparison Plus 4 reference Barnie Edited June 20, 2011 by barnieg 1 Quote Link to comment Share on other sites More sharing options...
JamesD Posted June 21, 2011 Share Posted June 21, 2011 James... simply because there are the correct names of the games... Ah... I kinda decided to ignore his site when he was crying about the poor sales of a recent game. Space Giraffe I believe. I thought the demo was horrible. Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 21, 2011 Share Posted June 21, 2011 The problem I have with some of JM's later stuff... he's got so much distracting irrelevant stuff going on with the psychodelic colours and such that it makes the games harder to play. But he's not the only one, plenty of modern-day homebrew on the PC is spoilt because the writer didn't know whether they were doing a game or a demo. 1 Quote Link to comment Share on other sites More sharing options...
oky2000 Posted June 21, 2011 Author Share Posted June 21, 2011 The problem I have with some of JM's later stuff... he's got so much distracting irrelevant stuff going on with the psychodelic colours and such that it makes the games harder to play. But he's not the only one, plenty of modern-day homebrew on the PC is spoilt because the writer didn't know whether they were doing a game or a demo. None of his 16 or 32bit computer games where that great I think. He got fixated with Tempest and light synths in the lte 80s. 2 Quote Link to comment Share on other sites More sharing options...
JamesD Posted June 22, 2011 Share Posted June 22, 2011 (edited) I wanted to play with the Plus/4 bitmap mode so I typed in a disassembly from the previously mentioned book. I turned it back into something more readable but I probably need to fix/add some comments and I may have dropped a few lines. <edit> And I see I need to format the text better. (mostly because I need to create a 6502 language description for my editor) ; ; based on disassembly published it 'C16 Plus 4 REFERENC BOOK' by Anco, page 12-16 GETIN equ $FFE4 ;Routine to Read Char from Keyboard Buffer TED equ $FF00 ;base of TED registers VMR equ 20 ;Video Matrix Register (address = TED+VMR) ;VM4 VM3 VM2 VM1 VM0 XX XX XX ;page zero variables ; $D0 - joystick X adjustment (-1,0,1) ; $D1 - joystick Y adjustment (-1,0,1) ; $D3 - temp storage location ; $D4 - current X coordinate? ; $D5 - current Y coordinate? ; $D7 $D8 - screen ROW pointer ; org #$1000 ;garbage data from disasembly ;_1000 rmb $00,$0B,$10,$00,$00,$9E,$34,$31 ; rmb $31,$32,$00,$00,$00,$00,$00,$00 org #$1010 ;set up our screen _1010 lda #$36 ;%00110110 ;from bit 7 down to bit 0 ;0 - test bit, always 0 ;0 - Extended Color Mode off ;1 - Bitmap Mode On ;1 - Screen On ;0 - 24 Rows ;110 - Vertical Scroll Position sta $FF06 ;set it lda #$C8 ;%11001000 ;from bit 7 down to bit 0 ;11 - Don't Care, Not Used ;001 - Address of Bitmap RAM ;000 - Frequency Voice 1 sta $FF12 ;set it jsr _10EA ;clear the screen ; set up color RAM ldx #$00 ;clear X _101F lda #$33 ;%00110011 sta $0800,x sta $0900,x sta $0A00,x sta $0B00,x lda #$05 ;%00001001 sta $0C00,x sta $0D00,x sta $0E00,x sta $0F00,x dex bne _101F ;set up page 0 pointer at $D5 $D6 to $00A0 stx $D6 ;clear $D6 lda #$A0 ;set $D5 to $A0 sta $D5 ;set up what???? lda #$64 ;set $D4 to #$64 sta $D4 inx stx $D2 ;set $D2 to 1 ;start of main loop _104B jsr GETIN ;check keyboard cmp #$20 ;was the spacebar hit? bne _1055 ;branch if not jsr _10EA ;clear the screen _1055 jsr _10C5 ;read the joystick bne _105C inc $D2 ; X coordinate _105C lda $D0 ;get change in X beq _1093 ;branch if no change bmi _107E ;branch if negative ;Add 1 to X (joystick held Right) ;increment 16 bit page 0 pointer at $D5-$D6 ;increment $D5 (LSB) lda $D5 clc adc #$01 sta $D5 tax ;add the carry bit to $D6 (MSB) lda $D6 adc #$00 sta $D6 beq _1093 ;branch if zero ;wrap around? cpx #$40 ;check LSB < #$40 (64) bcc _1093 ;branch if not ;we wrap around ;clear the page 0 pointer at $D5-$D6 lda #$00 sta $D5 sta $D6 beq _1093 ;branch ;subtract 1 from X (Joystick held Left) ;decrement 16 bit page 0 pointer at $D5-$D6 _107E sec ; subtract 1 from $D5 (LSB) lda $D5 sbc #$01 sta $D5 lda $D6 ; now subtract carry from $D6 (MSB) sdc #$00 bcs _1091 ;branch if we haven't gone too low lda #$3F ;wrap around the pointer to $013F sta $D5 lda #$01 _1091 sta $D6 ; Y coordinate _1093 lda $D1 beq _10B2 ;branch if no change bmi _10A7 ;branch if up ;(Joystick held down) ldy $D4 iny cpy #$C8 bne _10A2 ldy #$00 _10A2 sty $D4 jmp _10B2 ;(Joystick held down) _10A7 lda $D4 sec sbc #$01 bcs _10B0 lda #$C7 _10B0 sta $D4 _10B2 lda $D2 lsr jsr _1102 ; draw ;delay loop ldx #$0F _10BA ldy #$FF _10BC dey bne _10BC dex bne _10BA jmp _104B ;end of main loop ;read joystick _10C5 sei ;disable interrupts lda #$FD ;%11111101 sta $FF08 lda $FF08 ldy #$00 ldx #$00 lsr bcs _10D6 dey ;up? _10D6 lsr bcs _10DA iny ;down? _10DA lsr bcs _10DE dex ;left? _10DE lsr bcs _10E2 inx ;right? _10E2 stx $D0 sty $D1 and #$08 ;fire? cli ;enable interrupts rts ;clear screen RAM? ; clear memory at $2000 _10EA lda #$00 ;clear a sta $D7 ;set LSB of pointer to zero lda #$20 ;set MSB of pointer to 32 sta $D8 ; (page 0 screen pointer is now #$2000) ldx #$20 ;do outer loop 32 times. (Why not tax? ) ldy #$00 ;clear Y (LSB), do inner loop 255 times? Should use tay above tya ;clear a ;same as above with more single byte instructions, saves 2 clock cycles? ; lda #$00 ;clear a ; tay ;clear y ; sta $D7 ;clear LSB of pointer ; lda #$20 ;set a to #$20 ; tax ;set X to #$20 ; sta $D8 ; (page 0 pointer is now #$2000... the screen memory address) ; tya ;clear a _10F7 sta ($D7),Y ;clear screen memory byte dey ;decrement counter bne _10F7 ;loop if y != 0 inc $D8 ;increment MSB of pointer dex ;decrement counter bne _10F7 ;loop if x != 0 rts ;return ;draw to screen _1102 bcs _110F ;branch if button pressed (draw mode) ;AND to screen (erase bit) ;(screen),Y and= _1164,X jsr _111A ;calculate X, Y and $D7 $D8 pointer lda _1164,X ;get bit to reset and ($D7),Y ;AND it with current screen data sta ($D7),Y rts ;OR to screen (set bit) ; (screen),Y or= _115C,X _110F jsr _111A ;get bit and address to draw at lda _115C,X ;get bit to draw ora ($D7),Y ;OR byte with current screen data sta ($D7),Y rts ; (screen) or= A _1115 ora ($D7),Y ; OR A with current screen data sta ($D7),Y ; update the screen with the new data rts ; return ;(X,Y) to address and bit conversion _111A lda $D4 ;Get X and #$07 ;Get bottom 3 bits (bit mask -> 0000 0111) tay ;going to use it as screen pointer offset (6502 doesn't support -> ORA ($D7);STA ($D7)) ;calculate screen ROW address lda $D4 ;Get X and #$F8 ;Get top 5 bits (bit mask -> 11111000) sta $D7 ;save it in $D7 lda #$00 ;clear A asl $D7 ;left shift rol ;get carry bit shifted out asl $D7 ;do it again rol asl $D7 ;and again rol sta $D8 ;save top 3 bits grabbed from $D7 sta $D3 ;so we can ROL more bits in below lda $D7 ;lets keep grabbing bits from data in $D7 without altering it asl ;shift rol $D3 ;get carry bit asl ;one more time rol $D3 adc $D7 ;and put these 2 bits back on $D7 at the right sta $D7 lda $D8 ;get the three bits we grabbed from $D7 earlier adc $D3 ;add $D3 to $D8 sta $D8 ;calculate offset into bit table lda $D5 ;grab $D5 and #$07 ;grab the bottom bits (bit mask -> 0000 0111) tax ;put that in x lda $D5 ;grab top bits from $D5 and #$F8 ;(bit mask -> 11111000) adc $D7 ;add it to $D7 sta $D7 ;update $D7 lda $D6 ;add $D6 to $D8 adc $D8 adc #$20 ;add 32 to $D8 sta $D8 ;update $D8 (MSB of pointer) rts ;return ;y to bit conversion table for setting bits _115C dcb %10000000 ;$80 dcb %01000000 ;$40 dcb %00100000 ;$20 dcb %00010000 ;$10 dcb %00001000 ;$08 dcb %00000100 ;$04 dcb %00000010 ;$02 dcb %00000001 ;$01 ;y to bit conversion table for clearing bits _1164 dcb %01111111 ;$7F dcb %10111111 ;$BF dcb %11011111 ;$DF dcb %11101111 ;$EF dcb %11110111 ;$F7 dcb %11111011 ;$FB dcb %11111101 ;$FD dcb %11111110 ;$FE end ;********************************* Edited June 22, 2011 by JamesD Quote Link to comment Share on other sites More sharing options...
oky2000 Posted June 23, 2011 Author Share Posted June 23, 2011 (edited) A8 and C= 234 series are two machines I would definitely like to mess about with more. Both are really alien architecture to me though and so maybe one day when I have a part time job or something etc. The C16/+4 especially were quite badly served with software of low budget quality even when the price was not budget. The Speccy and C64 were probably the only 8bit machines ever to have anything like their maximum potential realised. Edited June 23, 2011 by oky2000 Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 23, 2011 Share Posted June 23, 2011 It's worth a look at the C= hacking notes and the plus4.com site to find out about the hardware tricks. Stuff like FLI to greatly increase colours, TED tricks to give more horizontal and vertical pixels, interlace, etc. YAPE supports most of the hardware tricks so you can do it in emulation. Some of the 64K games are pretty impressive but for 32K and less, the talent is pitifully thin. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.