Ten Great Commodore 128 BASIC Improvements Over The C64

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น • 244

  • @The8BitGuy
    @The8BitGuy 2 ปีที่แล้ว +104

    Neat video, as always. I learned a few things I didn't know about C128 Basic!

    • @comchia4306
      @comchia4306 2 ปีที่แล้ว +9

      Hi 8-Bit Guy! Fun fact: first time I played a C128 IRL was with PETSCII Robots, at Free Play Florida. :)

    • @bsvenss2
      @bsvenss2 2 ปีที่แล้ว +5

      He forgot some...
      *DREMEL speed[,deep][,impact][,damage]*
      _Example,_
      DREMEL 1024,128,,9999
      *PAPER command [deep][,force]*
      _Example,_
      PAPER CLIP 19,9999

    • @gile849
      @gile849 2 ปีที่แล้ว +1

      :)

    • @DJChol
      @DJChol 2 ปีที่แล้ว +2

      @@bsvenss2 roasted. like david's PSU.

    • @NuntiusLegis
      @NuntiusLegis 2 ปีที่แล้ว +3

      Some things are nice, like the fast sprite-movements, but most of the stuff is not essential. I am rather glad they put a more streamlined and faster BASIC in the C64, also resulting in more free address space; the result of a bigger BASIC ROM in the C64 would be less BASIC bytes free, and/or less upper RAM available for BASIC to use for machine code, screen or music data, etc.

  • @BilHerd
    @BilHerd 2 ปีที่แล้ว +2

    Terry Ryan w/ Fred Bowen are responsible for the advanced features in Basic, Terry got in trouble for adding the structured basic commands.

  • @jdmresearch
    @jdmresearch 2 ปีที่แล้ว +20

    I watched the first 10 seconds and saw the Ultima V box there. I smiled. Yes, having C128 allowed you to listen to the amazing U5 music (not in C64). I'll watch now the rest.

  • @jeffzebert4982
    @jeffzebert4982 2 ปีที่แล้ว +1

    In BASICA (IBM BASIC), as well as GW-BASIC for PC clones, your cursor, as well as the text that you'd write, would be visible in the bitmap screens (probably because even CGA cards had more video RAM than the C-128's VIC II Chip had). Albeit, the cursor in BASICA/GW-BASIC's bitmap screens was in the form of an unblinking block. If you had an EGA card, then you had several additional bitmap "screens", including an 80-column screen that could display 16 colors at once.

  • @jeffzebert4982
    @jeffzebert4982 2 ปีที่แล้ว +1

    Making simply a constant tone sound on a C-64 requires the following commands:
    POKE 54296,15 (sets the volume to maximum)
    POKE 54278,128 (sets your Sustain to maximum)
    POKE 54273,80 (sets your tone's frequency)
    POKE 54276,17 (activates your tone on Voice 1, using the Triangle waveform)
    And if you want to turn off the tone, then:
    POKE 54276,16
    Some optional sound POKEs: 54272 (minimum frequency) and 54277 (sets your Attack/Decay)

  • @GreatNorthWeb
    @GreatNorthWeb 2 ปีที่แล้ว +3

    SHIFT-RETURN to exit quote mode???? Why did it take me decades to learn that? I've wasted thousands of keystrokes over the years.

    • @8_Bit
      @8_Bit  2 ปีที่แล้ว +2

      It even works on the C64 and VIC-20! And probably the PET though I don't remember if I've tried it...

  • @choppergirl
    @choppergirl 2 ปีที่แล้ว +1

    Wish I had has a 128 back then instead of a 20 and 64, but on the other hand, if I had, I would of stuck with the platform longer. My platform becoming hopelessly outdated forced me to jump ship. Now I have a PET, 128, 128D, 64, 20, in multiples... but in 30 years haven't turned a single one on save for the PET once (because there was nothing to wire up.. you just flip the switch). That must of been back in 1995. I don't dare now or I'll probably blow a cap.
    I went from 20 to 64 Basic to PET Basic to Microsoft Quickbasic on a PC AT to Quickbasic on a Mac to FutureBasic on a Mac and that was the end of it.

  • @carmagnola3000
    @carmagnola3000 ปีที่แล้ว +1

    Yeah, basic 7.0 was great! But I wished, the c128 had the 127 colours of the plus4, which I had lend a few months from a friend

  • @giuseppe74921
    @giuseppe74921 2 ปีที่แล้ว +12

    I quite often used the c128 new basic features, the sprite editor was useful, but what i liked most was playing with the command circle, it has got a pair of parameters that i didnt find in other basics even on amiga various basics i always missed it The first parameter was the angle of rotation of the ellipse and the second parameter was the angle between segments of the circle (an angle of 1 is a perfect circle, and an angle of 90 is a box). So with a for next i enjoyed a lot to draw some sort of abstract figures:
    5 Graphic 1,1
    10 For n=1 to 180 step 5
    20 Circle 1,160.100,160,50, , ,n,45
    30 Next n
    Something like this ("n" is the rotating angle and 45 is the angle between segments, 45 would give an optagon of an ellipse, try to give 36 for a decagon: to obtain a polygon of x sides, just use an n=360/x).
    If u change line 20 with:
    20 Circle1,160,100,100,100, , ,n, 90 then it would draw a rotating diamond (like u did with the box command)
    Another feature not very well known is that u can even use sort of vector as cohordinates, using a ; (semicolon) as in
    L ; r
    where L is the lenght of the segment and r is the angle, so:
    5 graphic 1,1
    10 for n =1 to 360 step 5
    20 draw 1,160,100 to 100 ; n
    30 next
    Would draw a star.
    You can use this way of writing cohordinates using vectors with other graphics commands like box, circle etc.
    A nice combination:
    5 graphic 1,1
    10 for n=1 to 180 step 5
    20 circle 1,160,100,160,50, , ,n,15
    30 next
    40 for n=1 to 360 step 5
    50 draw 1,160,100 to 100 ; n
    60 next
    70 sleep 10
    80 graphic 0

  • @ElfinaAshfield
    @ElfinaAshfield 2 ปีที่แล้ว +1

    27:24 They made try and catch clause back in the 80s! How cool is that!
    38:36 The P is probably for "position".

    • @Diotallevi73
      @Diotallevi73 8 หลายเดือนก่อน

      try/catch: Exactly! And the garbage collection known from languages like Java was there already, too, even if it only had to handle strings in Commodore BASIC.😊

  • @bozimmerman
    @bozimmerman 2 ปีที่แล้ว +12

    BASIC 7 was a big reason I got very excited about the C128 in '85. I think I memorized them all from COMPUTE's Gazette articles before I even got one. :)

    • @sunnykhan5451
      @sunnykhan5451 ปีที่แล้ว +1

      I NEVER HAD THE OpPORTUNITY TO HAVE THAT MAGAZINE had the complimentary RUN magazine lol

  • @phlogicali
    @phlogicali 2 ปีที่แล้ว +12

    Great video!
    The ELSE command can be in a different line if a BEGIN … BEND block is used:
    10 IF I=0 THEN BEGIN
    20 : PRINT "THEN BLOCk“
    25 : PRINT "STILL THEN BLOCK“
    30 BEND : ELSE BEGIN
    40 : PRINT "ELSE BLOCK"
    45 : PRINT "STILL ELSE BLOCK“
    60 BEND

    • @markboulton954
      @markboulton954 2 ปีที่แล้ว +5

      Yes indeed... I'd forgotten about that one, but I did use it a lot at the time!

  • @CRCO1975
    @CRCO1975 2 ปีที่แล้ว +4

    The C-128 was my first (and only) Commodore computer. There were so many tricks it had that no other Commodore 8-bit machine could do. BASIC 7.0 was great - though much of what it brought to the table in terms of graphical commands were from BASIC 3.5, but even before that - the Super Expender cartridges for the VIC 20 and C-64 had most of those same commands. The function keys with their predefined definitions (F3 = DIRECTORY) were very useful.
    But what I loved most, and perhaps Robin may go into this if he continues down the 128 path a bit - were all the tricks it had that weren't quite so obvious. Things like redefining what SHIFT-RUN/STOP and HELP did, like an F9 and F10, or programs that would boot and load quickly in C-128 mode and then reboot into C-64 mode and run to take advantage of the burst mode on the 1571 drives. Or, how you could enable the numeric keypad and use it in C-64 mode. Lots of tricks it had hidden. Loved it!

  • @QualityModelRailroad
    @QualityModelRailroad ปีที่แล้ว +1

    Love the 128 vids keep them coming !!!

  • @32Bits
    @32Bits 2 ปีที่แล้ว +7

    Another great video. Nice to see the 128 getting some love. Basic 7 was such an improvement over Basic 2. So many fond memories of hours spent coding in Basic on my 128.

  • @iridium130m
    @iridium130m 2 ปีที่แล้ว +7

    I loved my 128. I remember starting programming tutorial books in C64 mode because that was the first book off my parents bookshelf I grabbed and remember being totally frustrated with the pokes and peeks of trying to do graphics and sound.
    Then I found the C128 manual that came with the system and never turned back to the C64 mode for programming. I wrote several graphical demos for middle school projects leveraging the sprite editor and graphics commands along with the super easy play command for music. It really was the apex of commodore basic.

    • @judgegroovyman
      @judgegroovyman 2 ปีที่แล้ว +2

      That c128 manual was fantastic. Its how I learned basic

  • @TastyBusiness
    @TastyBusiness 2 ปีที่แล้ว +3

    See now I want to fire up my 128D again and play with the special features of its BASIC. Also, HUUJH

  • @markjreed
    @markjreed 2 ปีที่แล้ว +8

    When you were talking about IF/THEN was expecting that to lead into a mention of BEGIN/BEND, which allow you to have multiple lines inside both the THEN and ELSE parts of an IF statement. (You would think that they would let you have unconditional statements after a conditional on the same line, but sadly that doesn't work.)

  • @edoardobarolo4680
    @edoardobarolo4680 2 ปีที่แล้ว +1

    Question: are you going to buy a MEGA65 in the future? It could be great to see many video on that retro/modern computer !! It’s a little buggy so you could help them out !

  • @Lofote
    @Lofote 2 ปีที่แล้ว +3

    Trivia: The reason why c128 editor allows 4 lines of basic as one row is because they wanted to give 2 lines of code in 80 col mode, because people are used to 2 lines 😊 the side effect is that the new 160char buffer then of course allows 4 lines in old 40col mode 😊

  • @vwestlife
    @vwestlife 2 ปีที่แล้ว +14

    My first Commodore was a C16, and when I got a C64 I was disappointed that despite being a more powerful machine, I had to use POKEs and PEEKs to do graphics and sound, rather than having actual commands for it -- and also how it lacked any direct command to do a disk directory.

    • @jack002tuber
      @jack002tuber 2 ปีที่แล้ว +2

      Ah yes, I dealt with that a lot. The 1541 drive comes with a disk, test 1541 or something. It came with a "DOS WEDGE" program, you load that and get a few new commands $ for dir, / for load, like that. Super nice to have

    • @tylisirn
      @tylisirn 2 ปีที่แล้ว +1

      The C64 was really done dirty by Commodore's cheapness to not pay proper license for the version of Basic they included, so they included an ancient version on their most advanced machine at the time.

  • @WalterFrancis
    @WalterFrancis 2 ปีที่แล้ว +9

    I've never in my life touched a 128, a few friends had one, I was always a little jealous that they could BBS in 80 columns. They were a neat little machine, but the price was pretty high and I held onto the C64 until the Amiga 500 came out and had dropped in price a bit. Funny story; I really wanted a 1581, saved up for it, but it wound up being SO CLOSE to the Amiga price, I got the Amiga instead :)

    • @davidg1830
      @davidg1830 2 ปีที่แล้ว +2

      Best part of Commodore 128 was being a C64, so you, without a C128, had the best part of C128.
      The other best part of C128 was including a good machine language monitor on ROM, so you can play with it directly.

  • @MrDDawson
    @MrDDawson 2 ปีที่แล้ว +2

    Commodore was big in my house and not just the computers. We had commodore labeled file cabinet and all as well.

  • @abodabalo
    @abodabalo 2 ปีที่แล้ว +7

    I absolutely loved the drawing commands and had memorized a couple of cool pattern drawing loops. Thank you for the memories :)

  • @MegaTubert
    @MegaTubert 2 ปีที่แล้ว +1

    Nice video as always! I wonder if the RENUMBER command can handle GOTO statements?

    • @Diotallevi73
      @Diotallevi73 8 หลายเดือนก่อน +1

      Yes all the referenced line numbers (GOTO, GOSUB, TRAP) are converted 👍

  • @fluffycritter
    @fluffycritter 2 ปีที่แล้ว +2

    The C128 BASIC improvements were what got me started in game development. It was so much easier to learn than endless PEEK/POKEs or having to go into full-on assembly code.
    I had no idea about the Esc codes. All this time I thought Esc was basically unused on the C128!

  • @elnebuloso9391
    @elnebuloso9391 2 ปีที่แล้ว +3

    Sniff, I'm missing my old 128D that I stupidly traded for a PC-AT once. 😪

  • @MaxQ10001
    @MaxQ10001 2 ปีที่แล้ว +1

    Why do you put the machine the wrong way? It has such a beautiful front bezel 😊
    Nice video btw 👍

  • @Lofote
    @Lofote 2 ปีที่แล้ว +2

    36:00 or even better just press F3 for DIRECTORY ;)... I believe you didn't list that.
    By the way you can also customize F keys with the KEY command.
    41:30 I am pretty that checking a LOT more opcodes also makes the BASIC much slower, not just banking.

  • @Electronics-Rocks
    @Electronics-Rocks 2 ปีที่แล้ว +1

    Brings back memories of using my c128 I have dragged it out but still not powered it up since the 90,s as I was still supporting some legacy CPM system. Even though I had Amiga by then to play games and office applications.

  • @magnustveten492
    @magnustveten492 2 ปีที่แล้ว +3

    17:56 aweee….why list and not run to show scroll..I was hoping to see the maze in the little window, that would be neat.. :)

  • @slashtiger1
    @slashtiger1 2 ปีที่แล้ว +3

    @16:18
    Robin: "Maybe I should make more videos in C128 mode"
    Me: *"Yes, please!"*

    • @NuntiusLegis
      @NuntiusLegis 2 ปีที่แล้ว +1

      I would like to see two monitors in action.

  • @SteveGuidi
    @SteveGuidi 2 ปีที่แล้ว +10

    Some of these BASIC commands are inherited from BASIC 3.5, which is featured in the 264-series machines (C16, C116, Plus/4, etc...). The WINDOW, TRAP, GRAPHIC, BOX, CIRCLE (and of course MONITOR) are present there too.
    I was goofing around with the CIRCLE command a few months ago and it turns out that in addition to ellipses, you can draw any N-gon like triangles, squares, pentagons, all the way up to the limits of the screen resolution and integer overflow. It seems that after about 25-sides, the polygon becomes indistinguishable from a circle :)

    • @rigues
      @rigues 2 ปีที่แล้ว

      How can you draw a triangle with a Circle command? 🤔

    • @SteveGuidi
      @SteveGuidi 2 ปีที่แล้ว +3

      @@rigues I used the following in BASIC 3.5:
      10 GRAPHIC 1,1
      20 CIRCLE 1,160,100,88,88,,,,120
      This is from my notes, and I forget the proper definition of the last parameter for CIRCLE. It controls the length and angle between adjacent sides in the shape, and I think it is supposed to be used to draw arcs. If you omit it and just specify the co-ordinates, a proper circle is drawn.

  • @tiger1x
    @tiger1x 2 ปีที่แล้ว +3

    This is really awesome! Some commands reminds me of the BASIC 3.5 of the C16 which I started to program with in the 80s! It's a wonderful flashback into the 80s including some AH!-effects! Great job, Robin!

  • @andre0000000007
    @andre0000000007 2 ปีที่แล้ว +2

    thank you so much, loved the trip down memory lane!! you mention the 2mhz mode, was that the FAST/SLOW basic command? i thought i used it in normal 40columns, the screen used to go off but it drew my picture at twice the speed. 😀

  • @markboulton954
    @markboulton954 2 ปีที่แล้ว +7

    The C128's extra features still didn't include my favourite feature from the VIC20's SuperExpander: being able to scroll up and down through a BASIC listing using CTRL+A and CTRL-Z.

  • @SYS280870
    @SYS280870 2 ปีที่แล้ว +1

    I had a C128, loved its BASIC, I made a lot of BASIC programs using sprites and graphics commands for 3D applications and trigonometric functions or 2D graphics functions too. Used a lot escapes sequences for screen editor and new commands for structured programming. The SOUND command for making sounds and of course PLAY for music. Thanks to the Monitor I started to programming in assembler, another cool thing that I discovered playing games in C64 mode was after reset to C128 some of the game code still kept in memory so using Monitor I could discover in some games where the lives were drecemented then changed the instructions for NOPs with some POKES after the game was loaded in C64 mode so that way I had infinites lives lol

  • @casaderobison2718
    @casaderobison2718 2 ปีที่แล้ว +6

    1: WATFOR77, an enhanced FORTRAN compiler I used in the 80s, had the double ended WHILE / UNTIL loop construct.
    2: I would imagine the P parameter to BSAVE is intended to be a mnemonic for Pointer.

    • @what-uc
      @what-uc 2 ปีที่แล้ว +2

      Or Position maybe

    • @GeoffSeeley
      @GeoffSeeley 2 ปีที่แล้ว

      I'm guessing P for pointless 🙂

    • @barryon8706
      @barryon8706 2 ปีที่แล้ว +2

      or "P" for "Ponder what P stands for"

  • @vcv6560
    @vcv6560 2 ปีที่แล้ว +2

    This video just reminds me again of the achievements of Commodore post Tramiel. Its unlikely he would have approved such a lavish final 8-bit treatment. Nearly everything else went wrong but this product they got right. Even if its development killed the LCD project (ref: Bill Herd).

  • @markboulton954
    @markboulton954 2 ปีที่แล้ว +4

    Wow, I had a C128 for years and I never knew about those ESC codes!

    • @matthiasstppuhn514
      @matthiasstppuhn514 2 ปีที่แล้ว +2

      A good amount of the ESC stuff also works on C16/Plus4

    • @davidg1830
      @davidg1830 2 ปีที่แล้ว +1

      Nor do I when I was teenager. When I was adult I discovered C128 ESC codes and I appreciate their power.

  • @OscarSommerbo
    @OscarSommerbo 2 ปีที่แล้ว +3

    Most of the disk commands feels like just new labels on existing commands. I only had a 1541 for my c64 and quickly learned the few "OPEN" commands you really needed in every day use.

  • @mechaform
    @mechaform ปีที่แล้ว

    Very enjoyable. Amazed to still be learning new stuff about the 128 after all these years. Now I’ll have to binge the other videos of yours I’ve missed.

  • @bsvenss2
    @bsvenss2 2 ปีที่แล้ว +2

    I loved my Commodore 128 and even used it in CP/M mode a lot, BUT I did hate the color scheme and always changed that.

  • @judgegroovyman
    @judgegroovyman 2 ปีที่แล้ว +2

    Could you use the 128 as a renumbering system for your c64 programs?

  • @quantass
    @quantass 2 ปีที่แล้ว +1

    @24:15 you mentioned RENUMBERING. What happens if you have a GOTO ##? Does it renumber that too? For instance: 50 GOTO 10.

  • @yorgle
    @yorgle 2 ปีที่แล้ว +1

    With the sprite, once you edit it, how would you save it? Like i could see writing a basic program, and using that to edit my sprites, but how would i go about saving/restoring the sprite bitmaps to disk? (Nevermind. you cover this at 38:00)

  • @CityXen
    @CityXen 2 ปีที่แล้ว +7

    Love the C128. It was 3 computers in one, and it had 80 column mode built in. Amazing for it's time.

  • @akira808state4
    @akira808state4 2 ปีที่แล้ว +1

    I have a Commodore 128. I have JiffyDOS installed. JiffyDOS adds faster disk routines also included the latest patches. You can also lock the Commodore 128 in 64 mode by typing the following statements:
    BANK 1: POKE 65529,255:POKE 65528,77
    Then type SYS 65341. You will be in 64 mode. Now when you reset, it stays in 64 mode, which eliminates the annoyance of having to type GO64 or SYS 65357. The only way to completely exit is to shut down the computer. BASIC 7.0 is a cut above BASIC 2.0. Much easier to program without all those annoying POKE statements.

  • @bblevins
    @bblevins 2 ปีที่แล้ว +3

    Woooooot!! Robin! Thank you so much! This episode is Fantastico. So much info to learn and start playing with, I loved every minute!

  • @kumsuk77777
    @kumsuk77777 2 ปีที่แล้ว +1

    I find myself wanting 128 Basic on my c64
    Is that possible?

  • @MichaelDoornbos
    @MichaelDoornbos 2 ปีที่แล้ว +2

    12:52 Interesting that yours starts cleared here. My flat 128 always starts with the top full of initialized memory junk so I'd developed a habit of clearing the screen automatically.

  • @Lofote
    @Lofote 18 วันที่ผ่านมา

    21:00 the reason why the input buffer is now double as much (4 rows) is because they want to also enable 2 rows in 80col mode. The side effect is then that in 40col mode you can go up to 4 rows, but that was not what they made it implement it.

  • @snakefriesia6808
    @snakefriesia6808 2 ปีที่แล้ว +2

    great video, i love that you used Ultima V as a boot example 🙂

  • @c128stuff
    @c128stuff 2 ปีที่แล้ว +2

    Heh.. VDC and being slow.. screen editor is rather optimized for the cpu addressable video ram setup you get with a vic2. If an implementation had been written optimized for VDC, it would have been much faster than it is now, and for as far as text mode is concerned, also faster than vic2 in many cases, especially things like scrolling. It has some very rudimentary but quite usefull acceleration features, which let it do vram to vram copies and vram fills in parallel to the 8502, but those can also be used as a hardware assisted rle decoder for transferring data from system ram to vram faster.

  • @projectartichoke
    @projectartichoke 2 ปีที่แล้ว +1

    With the BSAVE command, I'm pretty sure the letters D,U,B, and P stand for Drive#, Unit# (device#), Bank#, and Position# (address#).

  • @bloodmapedit
    @bloodmapedit 2 ปีที่แล้ว +1

    I remember there was even the possibility to use the numpad in C64 mode with a small piece of code.

  • @merykjenkins3274
    @merykjenkins3274 2 ปีที่แล้ว +1

    There are some great additions to the BASIC I grew up with! Some the VZ machines already had like auto line numbers and the else command but the screen editor commands would have been so handy, especially inserting blank rows and the sprite editor would have saved a small forest of grid paper! Thanks Robin!

    • @NuntiusLegis
      @NuntiusLegis 2 ปีที่แล้ว

      It's not difficult to write a simple sprite editor in C64 BASIC, like that neat listing in the Programmer's Reference Guide at 6:20. :-)

  • @TheUtuber999
    @TheUtuber999 ปีที่แล้ว

    43:00 Regarding the slower BASIC processing on the C-128, for situations where video output isn't critical, there is always the FAST command which blanks the screen and doubles the CPU speed to 2 MHz.

  • @markjreed
    @markjreed 2 ปีที่แล้ว +1

    I always assumed that the P stands for "Position" (in memory). As good an explanation as any, at least!

  • @ChristmasEve777
    @ChristmasEve777 2 ปีที่แล้ว

    You just happened to bring up my all-time favorite Commodore game, Ultima V!! haha. And I did run it on a 128 as well. Gosh, I loved that game. It was weird how you had to level your characters. You had to encamp and hope an "apparition" appeared, which was Lord British (whom was missing) and he would grant you new levels!

  • @TamasKalman
    @TamasKalman 2 ปีที่แล้ว +1

    amazing. fantastic usability improvements over the c64 indeed.

  • @awilliams1701
    @awilliams1701 2 ปีที่แล้ว +1

    OMG renumber alone would have made me so happy when I was a kid. I wrote long programs and they constantly turned into a mess. But yeah there is a lot of stuff I would have loved. I didn't know about any of this.

  • @NotaWizard
    @NotaWizard 2 ปีที่แล้ว +1

    Glad to hear you're feeling better.
    Never had much experience with 128s, but this is cool stuff. Thanks for showing us.
    "Oh great... another mouth to feed"
    haha poor Bit.

  • @metalfoot7
    @metalfoot7 2 ปีที่แล้ว +1

    You have convinced me to get the C128 back out and set it up soon!

  • @chromosundrift
    @chromosundrift 2 ปีที่แล้ว +3

    Amazing as usual Robin! Would love some more assembly coding content in case you’re so inclined. Or music! I know you’re a musician, do you make c64 music or mostly guitar stuff?

    • @8_Bit
      @8_Bit  2 ปีที่แล้ว +1

      I mostly just do guitar-based stuff. I find trying to make C64 and other sequenced music really tedious and I just don't have the patience for it.

  • @Eightbitswide
    @Eightbitswide 2 ปีที่แล้ว +8

    I remember being so excited when I got my 128 back in the day, until I figured out that the extended BASIC 7.0 was slower than BASIC 2.0.

    • @c128stuff
      @c128stuff 2 ปีที่แล้ว +4

      The interpreter has more overhead due to the bankswitching it has to do, but you do get a lot of powerfull commands in return which can make at least some programs more efficient (and hence spending less time in the interpreter loop)

    • @Lofote
      @Lofote 2 ปีที่แล้ว +2

      Yeah but if you don't need the screen for some time you can go FAST, in 80col mode even permanently.
      Plus it is much easier to add an assembler routine for things you need to go real fast using MONITOR, and to load and save those routines BLOAD and BSAVE 😊

    • @Lofote
      @Lofote 2 ปีที่แล้ว +2

      @@c128stuff not just banking. It has to go through more possible basic command possibilities, and the irq routine does more like that sprite move routine and the split graphic mode.

    • @c128stuff
      @c128stuff 2 ปีที่แล้ว +1

      @@Lofote that irq routine does more, but that isn't that expensive really.
      More commands matters somewhat, but more during tokenizing.
      The overhead of reading data from bank 1 and code from bank 0 however is quite significant. Just consider the difference in cycles between an lda (zp),y versus the indirect fetch which the basic interpreter has to use everytime it needs another byte of data or code.
      I write a fair bit of 128 mode code, and if you can write your code to avoid that indirect fetching scheme, there are significant gains to be had. This is especially true when having to copy around data (screen updates etc).

    • @c128stuff
      @c128stuff 2 ปีที่แล้ว +2

      ​@@Lofote many serious c64 users would have a utility cart with a ml monitor :-)

  • @gklinger
    @gklinger 2 ปีที่แล้ว

    That was really interesting. I think it's one of the best videos you've ever done.

  • @quantass
    @quantass 2 ปีที่แล้ว +2

    YAY, Robin is back!!

  • @3D-PHASE
    @3D-PHASE ปีที่แล้ว

    Wow. I'm surprised how cool the 128 is. Never knew it. Love it! Thx for this video - you are a good explainer! A big like!!!

  • @AlynnaTrypnotk
    @AlynnaTrypnotk 11 วันที่ผ่านมา

    this works:
    10 if then begin
    20
    30 bend: else begin
    40
    50 bend

  • @c128stuff
    @c128stuff 2 ปีที่แล้ว +1

    The way those text windows are implemented is quite nice, happily stole the approach it uses for my own projects.

  • @AnnatarTheMaia
    @AnnatarTheMaia 2 ปีที่แล้ว

    Getting the C=128D with BASIC 7.0 after having the C=Plus/4 with BASIC 3.5, I had a leg up on most of the enhancements, since 3.5 has a lot of the 7.0 commands, like for example: AUTO, RENUMBER, DRAW, CIRCLE, DIR, DLOAD, DSAVE, et cetera.

  • @richarddeese1991
    @richarddeese1991 2 ปีที่แล้ว

    Thanks. Pretty cool. Also: you played the first chord of Kraftwerk's "Neon Lights". Good one! ;) tavi.

  • @HelloKittyFanMan
    @HelloKittyFanMan ปีที่แล้ว

    Wow! How come I don''t remember ever learning these additional screen editor tools (at least the esc-codes) when we got our 128 in 1988?

  • @adamburgess1287
    @adamburgess1287 2 ปีที่แล้ว +1

    Commodore and BBC BASIC were indeed the best.
    Thank you, Robin!

    • @davidg1830
      @davidg1830 2 ปีที่แล้ว

      There is no comparison: BBC BASIC was best 8 bit BASIC I know of, it has procedures/functions (for real structured programming like in Pascal). On C128 v7.0 BASIC you have no procedures nor functions (program functions) and even worse: they maintain original limitation from Microsoft 6502 BASIC: variable names only take 2 characters (the other are ignored, so AA, AA1 and AA2 variables are the same variable).
      I had a C128, and no BBC computer.

    • @albertcontreras76
      @albertcontreras76 2 ปีที่แล้ว

      Locomotive BASIC (in the Amstrad CPC series) was extremely powerful as well.

  • @joolzg
    @joolzg 2 ปีที่แล้ว

    Most of these command where in my "Turbo Basic" which i wrote in '81. Was sold in the UK by Aztec Software.

  • @petteriheino9856
    @petteriheino9856 2 ปีที่แล้ว +2

    I used the 128 disk commands even with the C64 disks to the extend that I never really learned the 64 disk commands.

    • @NuntiusLegis
      @NuntiusLegis 2 ปีที่แล้ว +1

      The C64 OPEN command works closely along the KERNAL routines, so when stepping up to assembly, file handling falls into place quite naturally.

  • @sandmanxo
    @sandmanxo 2 ปีที่แล้ว +1

    I never had a c128 but these are interesting. I wonder why they didn't stick with the same letter combos as vi, as some of these codes match up but maybe that's just coincidence.

  • @vvvorlds
    @vvvorlds 2 ปีที่แล้ว

    Oh, it's almost like vi 😅
    Would be crazy to have this on my spectrum back in the day.
    Unfortunately it's like reading some amazing news in the newspaper from 30 years before.
    Today you would program in the modern environment anyways and compile in to the virtual machine.

  • @grymmjack
    @grymmjack ปีที่แล้ว +1

    This is awesome. Going to have to use vice 128 now :D

  • @granitepenguin
    @granitepenguin 2 ปีที่แล้ว +1

    does the renumber command understand goto statements and renumber them correctly as well?

    • @gosammy1971
      @gosammy1971 2 ปีที่แล้ว +2

      Yes, there was even an extra error message for unresolved references

  • @64jcl
    @64jcl 2 ปีที่แล้ว +2

    The sprdef seems to just store it in memory somewhere? How do you know which VIC bank it is in and it surely can overwrite your basic program if its in same memory? Seems a bit dangerous. Also a programmer would have to get that sprite data out somehow into their program. Is there a command for making e.g. data statements or was it perhaps expected he would know where in memory that was and do a BSAVE onto a disk and just do a BLOAD in the start of your program I guess ? Same with the graphics command, can you control where the bitmap is created?

    • @aquiderossi7366
      @aquiderossi7366 2 ปีที่แล้ว +1

      This is from memory--might not all be accurate... There's a set of eight predefined memory slots for sprite graphics so they won't be disturbed. The main thing the sprite commands by themselves can''t do is "cel animation". From the commands' perspective, the sprites are hardwired to those memory slots; but you can always change the sprite pointers manually. You can BLOAD and BSAVE sprite data to/from that part of memory no problem; also there's "rubber stamp" get/put commands that, if I recall correctly, can go from bitmap to sprites and vice versa. The grabbed graphics data are stored in a string so there''s a limit on size.
      Whenever you first use a GRAPHIC 1 through 6 command, it moves the BASIC program and start of memory up 9K and there's a predefined space for the bitmap screen (8192-16191) and a second screen memory block in addition to the usual 1024-2023 (allows for independent splitscreens). The VIC chip always uses the first 16KB "bank". It'll stay allocated from then on so you can do something like GRAPHIC 1: GRAPHIC 0 first thing in your program. GRAPHIC CLR deallocates it. But doing either of these after DEF FNs breaks them--whoops. Also there are two 1K color memory blocks (both at 55296 like usual), and the 128-specific memory manager has two settings, one for which the VIC chip sees, and the other what the CPU sees. This allows for fully independent splitscreens with multicolor bitmap mode.

  • @bob19611000
    @bob19611000 2 ปีที่แล้ว +1

    Did the renumber utility also update "Go to" statements?

  • @VernesMisadventures
    @VernesMisadventures 2 ปีที่แล้ว

    Gotta love the 128! Thanks for another great video!

  • @napomania
    @napomania 2 ปีที่แล้ว +1

    excellent final tune. as always

  • @pklausspk
    @pklausspk 2 ปีที่แล้ว

    Great! I owe a C128D but did not know much of it's capabilities.

  • @denismilic1878
    @denismilic1878 ปีที่แล้ว

    I'm glad that I got C=64, POKE, PEEK, INPUT, and DATA forced me to teach myself Assembler.

  • @ragsixracing
    @ragsixracing ปีที่แล้ว +1

    I miss my c64... I miss programming in basic. Now I want a c128 lol

  • @brucekempf4648
    @brucekempf4648 2 ปีที่แล้ว +1

    Hi Robin- Do you think you would be able to do a mod on The C64 maxi to add a C128 ROM emulation?

  • @iekuieku1665
    @iekuieku1665 ปีที่แล้ว

    Thank you for this video.I had a C128 from 1986 to 1989 and did not know some things.
    When booting from floppy disk, how does the computer know which CPU (MOS 8502 or Z80A) should execute the code?

    • @8_Bit
      @8_Bit  ปีที่แล้ว +1

      Apparently every time the C128 is started it's in Z80 mode. It then checks the disk drive for a CP/M disk (it has a special signature on it) and boots it if found. If not, the C128 switches to using the 8502 and boots into regular C128 BASIC mode. I haven't actually examined this for myself ever, I've just read about it a bit.

  • @MoosesValley
    @MoosesValley 2 ปีที่แล้ว

    Great video. Can you "re-compile" C128 Basic progs to work on C64 Basic ? Or better yet, compile them to machine code to work on C64 ?

    • @8_Bit
      @8_Bit  2 ปีที่แล้ว

      I'm not aware of any way to get C128 BASIC programs to run on the C64. I imagine it'd be possible with a LOT of work to port C128 BASIC to the C64, but you'd end up with very little RAM free. Probably better to use one of the C64 add-on language cartridges such as Simons' BASIC or Super Expander 64 that provide some (but not all) of these features.

  • @HelloKittyFanMan
    @HelloKittyFanMan ปีที่แล้ว

    That's one thing I've never understood: Why does inserting spaces turn on quote mode outside of quotes?

  • @personalidol
    @personalidol 2 ปีที่แล้ว +2

    Does RENUMBER change GOTO statements (so they point to new line numbers) or you need to remember about changing those manually?

    • @gosammy1971
      @gosammy1971 2 ปีที่แล้ว +2

      Yes, there was even an extra error message for unresolved references

    • @personalidol
      @personalidol 2 ปีที่แล้ว +1

      @@gosammy1971 wow, honestly I did not expect that. I think that this is really impressive for a machine from that era, because it's a good refactoring tool then.

  • @mjs28s
    @mjs28s 5 หลายเดือนก่อน

    Love making games on it in basic then using the C-128s basic compiler. Not pure machine language speed, but for most games it worked out pretty great!
    Of course the sprites were also the shiz for games.

  • @shawnj4545
    @shawnj4545 2 ปีที่แล้ว +1

    The Atari 800 had a very good full screen editor in 1979, with pretty much all these features being shown.

    • @shanebell1
      @shanebell1 ปีที่แล้ว +1

      Don't forget Atari Basic would compile code into P-Code and thus didn't need to be interpreted when running. It would check the syntax and would use abbreviations to cut down on typing (pos. = position , etc.).

  • @aresaurelian
    @aresaurelian 2 ปีที่แล้ว +1

    This is so interesting. Familiar memories.

  • @mosaton
    @mosaton 2 ปีที่แล้ว

    Great video. I wish I knew these commands as a kid.

  • @basicforge
    @basicforge 2 ปีที่แล้ว

    Fun. I might actually try to program my C128. So far I've only used it in C64 mode. Can you also BSAVE and BLOAD using the datasette?

  • @robertlock5501
    @robertlock5501 2 ปีที่แล้ว +1

    Outro song? (kinda catchy that)

    • @robertlock5501
      @robertlock5501 2 ปีที่แล้ว

      Ahhh, I see... it's Bit Pair ;) (watch?v=Appmg64tZB0)

  • @project1984
    @project1984 2 ปีที่แล้ว +1

    What happens to goto commands if you renumber a program? Do they change automatically?