Jump to content

Gibstov

Members
  • Posts

    305
  • Joined

  • Last visited

Everything posted by Gibstov

  1. One small thing. You don't have to use THEN GOTO...you can just use THEN. For instance: Instead of: 90 IF GUESS<LOW THEN GOTO 2 You could just: 90 IF GUESS<LOW THEN 2
  2. I would have went with the XEGS...but that's me. Always dug the look of the XEGS even when others didn't. (I also really love the look of the Atari 800 as well).
  3. I noticed one of the authors of that book is Brian Harvey. He created UCBLogo an open source version of Logo for modern systems. He also wrote the Computer Science Logo Style books which are a great examples of the stuff Logo can do.
  4. As far as adding Speech to Adventure Ponies...no...I think I crammed in as much in that game as I could. I ran into other issues when I tried to start working on it again...so it was a rabbit hole
  5. Here is a list of the error codes Error Codes: 0 None 1 File Error 2 Command/Syntax Error 3 Out of Memory 4 Out of Databank IDs 5 Attribute/Syntax Error 6 Value Error 7 Format Errors 8 Overrun margin bottom (#MB)
  6. You can use any extension you want for compiled documents, just not ADF.
  7. OK...I've updated NEON to support dynamic ADF files. It will all be handled from the NEON program on the Atari without needing a separate compiler on the webserver. Basically the way it works now, if you choose "R" to READ, and the file extension end with .ADF it will compile the file on the fly and display it, if the file extension is .DOC (or anything else) it assume it is a precompiled file and load it that way (as it did before). I don't have webserver, if anyone here has a webserver and would like to help test it out, that would be great. Please share the URL in this thread. Here is some sample ADF code to get you started: (I guess the only caveat for the file is it will have to be Atari formatted: specifically replace CRLF with the Atari CR (ATASCII 155) if that make sense). :head :page :text Server time is now 00:00:00 :fill I am attaching the the XEX file with new version of NEON....and also ATR file that has NEON and the N-Device so ready to run out the box on your Fuji enabled Atari. neon-ndevice.atr neon.xex
  8. Actually you are partially correct. Originally the NEON application read the ADF markup language and created the output in real time, like a web browser. However I never released this version, because it was pretty slow. The way the released NEON application works is that compiles the markup language to a binary format. (Not like an executable....think of it more as all the data and display list/DLI are all in a chunk of memory...And then as you navigate the pages, it jumps from one Display List pointer, to another). I haven't worked on NEON for a while...I did convert the NEON Make (compiler) part to run in C# so it could be run from a webserver and generate the documents dynamically. Then I started to try and convert from the Atari CC65 application to a modern C application...but then it ran into a bunch of issues and kind of burned myself out. I am thinking about taking another shot at it, if people are interested.
  9. I tried most of those links and they appear to be deprecated and don't work anymore. I was able to get the URL you listed to work.
  10. Awesome job on this...I'm glad you included the map.
  11. I agree...I like to use LOGO (mostly FMSLogo) to quickly prototype ideas. There are probably better languages..but I like how you can immediately test ideas in Logo without having to build or compile a whole program.
  12. Thanks with your help with this. I'll try the changes and see if I can get it working, but if it seems like I am going down a rabbit hole, I may just try using the older version of CC65 I found.
  13. Thanks for the suggestion I tried removing it/commenting it out, but I still received the same error. I did find a previous version of CC65 on one of my flash drives. I may just use the older version.
  14. I have question about an error I am receiving in CC65. I thought I might try to add speech via FujiNet, to my game Adventure Ponies if I can squeeze enough memory to add it. However I am running into a problem. Adventure Ponies was created in an older version of CC65. I just downloaded the latest version of CC65 and now the game will no longer compile. I get the following error: atari/exehdr.s:10: Error: Unresolved external '__MAIN_START__' The __MAIN_START__ is not in any of my files, I did a quick search, nor can I find atari/exehdr.s in any of the directories under C:\CC65 I figure it is legacy related to an earlier version of CC65, maybe something deprecated in my config file: Here is my current config file, if any one has any suggestions: FEATURES { STARTADDRESS: default = $4000; } SYMBOLS { __EXEHDR__: type = import; __SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk __AUTOSTART__: type = import; # force inclusion of autostart "trailer" __STACKSIZE__: type = weak, value = $0800; # 2k stack __STARTADDRESS__: type = export, value = %S; __RESERVED_MEMORY__: type = weak, value = $0000; } MEMORY { ZP: file = "", define = yes, start = $0082, size = $007E; # file header, just $FFFF HEADER: file = %O, start = $0000, size = $0002; # Disable Basic DISBASHDR: file = %O, start = $0000, size = $0004; DISBASIC: file = %O, start = $0400, size = $0048; # Disable Basic INIT DISBASINITHDR: file = %O, start = $0000, size = $0004; DISBASINIT: file = %O, start = $02E2, size = $0002; # Splash Screen SPLASHHDR: file = %O, start = $0000, size = $0004; SPLASHDATA: file = %O, start = $3100, size = $1460; # Splash INIT SPINITHDR: file = %O, start = $0000, size = $0004; SPINIT: file = %O, start = $02E2, size = $0002; # High RAM Data PREHDR: file = %O, start = $0000, size = $0004; HIRAM: file = %O, start = $2000, size = $37CD; # High RAM INIT INITHDR: file = %O, start = $0000, size = $0006; HINIT: file = %O, start = $02E2, size = $0002; # "system check" load chunk SYSCHKHDR: file = %O, start = $0000, size = $0004; SYSCHKCHNK: file = %O, start = $2E00, size = $0300; SYSCHKTRL: file = %O, start = $0000, size = $0006; # "main program" load chunk FSTHDR: file = %O, start = $0000, size = $0004; RAM: file = %O, define = yes, start = %S, size = $BC20 - __STACKSIZE__ - __RESERVED_MEMORY__ - %S; # DISCARD is set to page 6 for now, because we don't care if that is written to but then again since it goes to file="" it shouldn't matter where it goes DISCARD: start = $0600, size = $0006, file = ""; # Char area SECHDR: file = %O, start = $0000, size = $0004; CHAR: file = %O, start = $2400, size = $0600; # Media area THRHDR: file = %O, start = $0000, size = $0004; MEDIA: file = %O, start = $2000, size = $0300; # Display List Data FORHDR: file = %O, start = $0000, size = $0004; DL: file = %O, start = $2300, size = $00FF; # Level Data (LVL must start at page boundry (00) or causes screen tearing due to how the course scroll is implemented) FIVHDR: file = %O, start = $0000, size = $0004; SETUP: file = %O, start = $2A00, size = $0700; TRAILER: file = %O, start = $0000, size = $0006; } SEGMENTS { EXEHDR: load = HEADER, type = ro; SYSCHKHDR: load = SYSCHKHDR, type = ro, optional = yes; SYSCHK: load = SYSCHKCHNK, type = rw, define = yes, optional = yes; SYSCHKTRL: load = SYSCHKTRL, type = ro, optional = yes; MAINHDR: load = DISCARD, type = ro; NEXEHDR: load = FSTHDR, type = ro; # first load chunk DLICODE: load = RAM, type = ro, align = $100, define = yes; STARTUP: load = RAM, type = ro, define = yes; LOWCODE: load = RAM, type = ro, define = yes, optional = yes; INIT: load = RAM, type = ro, optional = yes; CODE: load = RAM, type = ro, define = yes; RODATA: load = RAM, type = ro; DATA: load = RAM, type = rw; BSS: load = RAM, type = bss, define = yes; ZEROPAGE: load = ZP, type = zp; EXTZP: load = ZP, type = zp, optional = yes; CHARHDR: load = SECHDR, type = ro; # second load chunk CHARDATA: load = CHAR, type = rw, define = yes; MEDIAHDR: load = THRHDR, type = ro; # third load chunk MEDIADATA: load = MEDIA, type = rw, define = yes; DLHDR: load = FORHDR, type = ro; # fourth load chunk DLDATA: load = DL, type = rw, define = yes; SETUPHDR: load = FIVHDR, type = ro; # five load chunk SETUPDATA: load = SETUP, type = rw, define = yes; HIRAMHDR: load = PREHDR, type = ro; # five load chunk HIRAMDATA: load = HIRAM, type = rw, define = yes; HINITHDR: load = INITHDR, type = ro; # five load chunk HINITDATA: load = HINIT, type = rw, define = yes; SPLASHHDR: load = SPLASHHDR, type = ro; #Splash load chunk SPLASHDATA: load = SPLASHDATA, type = rw, define = yes; #Splash Data SPINITHDR: load = SPINITHDR, type = ro; # five load chunk SPINITDATA: load = SPINIT, type = rw, define=yes; #splash init DISBASHDR: load = DISBASHDR, type = ro; #Splash load chunk DISBASIC: load = DISBASIC, type = rw, define = yes; #Splash Data DISBASINITHDR: load = DISBASINITHDR, type = ro; # five load chunk DISBASINIT: load = DISBASINIT, type = rw, define=yes; #splash init AUTOSTRT: load = TRAILER, type = ro; } FEATURES { CONDES: type = constructor, label = __CONSTRUCTOR_TABLE__, count = __CONSTRUCTOR_COUNT__, segment = INIT; CONDES: type = destructor, label = __DESTRUCTOR_TABLE__, count = __DESTRUCTOR_COUNT__, segment = RODATA; CONDES: type = interruptor, label = __INTERRUPTOR_TABLE__, count = __INTERRUPTOR_COUNT__, segment = RODATA, import = __CALLI; } Thanks for any suggestions.
  15. Have you tried any of these...sorry I couldn't confirm whether they are working at this time: N:HTTP://fujinet.diller.org/neon/s1/index.doc N:HTTPS://fujinet.pl/index.ahd N:HTTP://www.retrokorner/pl/index.ahd
  16. I think it may also pull the number of parameters that the Template(Procedure) takes not sure...I am just guessing here...but that seems logical
  17. I thought I would post the implementation of Cascade in FMSLogo. It is a library function and you can find it in the "logolib" folder in FMSLogo. (If you already know this, then sorry for the redundancy). to cascade :cascade.limit [:cascade.inputs] 3 if numberp :cascade.limit [if lessp :cascade.limit 0 [(throw "error 4 :cascade.limit)] make "cascade.limit `[greaterp :template.number ,[int :cascade.limit]]] local [cascade.templates template.vars cascade.final] make "cascade.templates [] make "template.vars [] make "cascade.final [?1] cascade.setup :cascade.inputs op cascade1 1 :template.vars end to cascade.setup :inputs if emptyp :inputs [stop] if emptyp bf :inputs [make "cascade.final first :inputs stop] make "cascade.templates lput first :inputs :cascade.templates make "template.vars lput first bf :inputs :template.vars cascade.setup bf bf :inputs end to cascade1 :template.number :template.vars if apply :cascade.limit :template.vars [op apply :cascade.final :template.vars] op cascade1 (:template.number+1) (cascade.eval :cascade.templates) end to cascade.eval :cascade.templates if emptyp :cascade.templates [op []] op fput (apply first :cascade.templates :template.vars) ~ (cascade.eval bf :cascade.templates) end bury [cascade cascade.setup cascade1 cascade.eval] Somethings that may be an issue: to cascade :cascade.limit [:cascade.inputs] 3 This is a special form of TO that allows optional parameters, which I don't think it implemented in Atari LOGO. From the help. For example: TO PROC :in1 [:in2 "foo] [:in3] 3 This procedure has a minimum of one input, a default of three inputs, and an infinite maximum The other thing I noticed is it used Apply, which I think you would have to implement. Again from the FMSLogo Help: Synopsis APPLY template inputlist Description Command or operation that runs the template, filling its slots with the members of inputlist. The number of members in inputlist must be an acceptable number of slots for template. It is illegal to apply the primitive TO as a template, but anything else is okay. APPLY outputs what template outputs, if anything. Example SHOW APPLY "SUM [1 2 3] 6 Hopefully this was helpful.
  18. Hmmm...I think REPLACE "x [ab] [v x w] should return [v [a b] w]....it is replacing x with the list [a b]. Just my two cents.
  19. The only console I regretted buying was the WiiU...that's because Nintendo stopped supporting it
  20. There is an older book called Advanced Logo: A Language for Learning by Michael Friendly that used Atari LOGO throughout. Also some more books on LOGO in general are the Computer Science Logo Style by Brian Harvey. (You can find them for free on Brian's homepage for anyone interested.)
  21. Don't forget about Adventure Ponies for the Atari 8-bit.
  22. Stop. Collaborate. And listen.
×
×
  • Create New...