• Re: Short ML Program

    From wwww.leser@gmail.com@3:770/3 to All on Fri Mar 2 10:02:03 2018
    This newsgroup used to be entertaining! Where's all the fun gone?
    Let me try some:

    Try to imagine you didn't already have an idea as to how fast machine language can be as compared to BASIC. Would Jim Butterfield's demonstration have convinced you that it is worth the while learning how to do computer programming in assembly language?
    He assures us that BASIC could never fill the screen at the same rate as his assembly program does, and that's certainly true. But is the difference really as great as it appears from the video?

    10 print chr$(19);
    20 get a$
    30 for i=1 to 7
    40 a$=a$+a$
    60 next
    70 a$=left$(a$,111)
    80 print a$;a$;a$;a$;a$;a$;a$;a$;a$;
    90 if left$(a$,1)<>":" then 10

    Can you improve upon my program above, or rewrite it, to make it run faster? Would you take a different approach, like the following?

    10 printchr$(147)
    20 co=53248:ca=8448:ir=56334
    30 fori=0to7:poke8192+32*8+i,0:next
    40 poke53272,24
    50 poke198,0:wait198,1:get a$
    60 pb=co+8*(asc(a$)-64)
    70 pokeir,peek(ir)and254:poke1,peek(1)and251
    80 fori=0to7:pokeca+i,peek(pb+i):next
    90 poke1,peek(1)or4:pokeir,peek(ir)or1
    100 if a$<>":"then 50
    110 poke53272,21

    (Line 60 needs some work.)

    Besides that, did you notice that Jim Butterfield's assembly program, too, can be improved upon, speed-wise? Here's a hint: Most monitors' mnemonic-to-opcode translators won't even let you not do the improvement (but VICE's monitor will.)

    Another oddity that's apparent from the video hasn't been mentioned yet: Jim Butterfield's machine does not exhibit the Commodore 64's standard character set. It looks more like the VIC-20(or PET?)'s character set to me. Did Jim Butterfield use a
    modified machine? Could that account somehow for the curious fact that the very
    last character on screen remains blank?

    Chris

    --- SoupGate-Win32 v1.05
    * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)