Jump to content

pearsoe

New Members
  • Content Count

    18
  • Joined

  • Last visited

Posts posted by pearsoe


  1. I think you are trying to do this:

     

    ld    hl,MUSIC_TIMER    ;load hl with the address of the value for MUSIC_TIMER
    inc    (hl)        ;increment the MUSIC_TIMER value at location hl
    ld    a,(hl)        ;load A with the incremented value at location hl


  2. There is a recent discussion about EOS9 on the Coleco ADAM Facebook page where James Walters is a member.  EOS9 was used in a number of Walter's Software titles and was a custom, enhanced version of the EOS operating system.  I don't know of any titles beyond Walter's that used it.  Walter's also released the EOS Programming kit which included EOS9.  The programming kit manual has reemerged and is available (on the Facebook page files section) but the media for the kit has not.  I suppose the media could be reconstructed since EOS9 is built in to those other Walter's titles.


  3. There are instructions on replacing the Colecovision BIOS in the ADAM on the ADAM Facebook page by John Lundy.

     

    The ROMs on the Gamma Board are for Smartwriter and EOS.

     

    You might get more traction on these posts if they were in the main Colecovision/ADAM forum instead of in Colecovision Programming.

     


  4. I've been trying load Pitfall 1 on the ADAM by loading the ROM image in to ADAM memory space starting at $8000, banking in OS7 and then jumping to $0000 to start the game but all I get is a black screen. Now this will work for most Coleco ROMs, ironically even Pitfall 2 will work, but not Pitfall 1. So I guess I am looking for some ideas on why it will work fine from the cartridge but not if loaded as described.


  5. I posted this on Facebook for Milli but thought I would also add it here for reference. Below is the source for the attached example that demonstrates the VDP NMI interrupt on the default Coleco ADAM memory configuration (32k RAM lower/32k RAM upper with EOS). It also happens to be my first Z80 assembler program so there's that. The program basically sets up the VDP and wedges the 66H address with the NMI routine which cycles the background color endlessly. A portion of the NMI code was taken from a template example but I can't recall the author so 'Thanks'. It was asssembled with tniasm and copied to block 0 on a DSK image.

     

    INTERRUPT.DSK

     

    FNAME "erictest4.bin"
    CPU Z80
    ORG $c800
    di
    jp nextord
    color: db 0h
    nextord: ld a,0c3h
    ld (066h),a
    ld hl,&nmi
    ld a,l
    ld (067h),a
    ld a,h
    ld (068h),a
    ld a,00h
    ld hl,$0000
    ld de,$4000
    call 0fd26h ;fill vram
    ld b,00h
    ld c,02h
    call 0fd20h ;write vdp register 0
    ld b,01h
    ld c,0e0h
    call 0fd20h ;write vdp register 1
    ld hl,0000h ;Pattern Generator Address (the font data)
    ld a,03h
    call 0fd29h ;initialize vram table 3
    ld hl,0800h ;Pattern Name Table Address (the screen data)
    ld a,02h
    call 0fd29h ;initialize vram table 2
    ld hl,1f80h ;Sprite Attribute Table
    ld a,00h
    call 0fd29h ;initialize vram table 0
    ld hl,3800h ;Sprite Generator Table
    ld a,01h
    call 0fd29h ;initialize vram table 1
    ld hl,2000h ;Pattern color table address
    ld a,04h
    call 0fd29h ;initialize vram table 4
    ld b,07h
    ld c,09h
    call 0fd20h ;write vdp register 7
    ei
    in a,(0bfh)
    loop: jp loop
    nmi: PUSH AF
    PUSH BC
    PUSH DE
    PUSH HL
    PUSH IX
    PUSH IY
    EX AF,AF'
    PUSH AF
    EXX
    PUSH BC
    PUSH DE
    PUSH HL
    ld hl,$c804
    ld a,(hl)
    inc a
    ld (hl),a
    cp 15
    jr nz,skip
    ld a,0h
    ld (hl),a
    skip: ld c,a
    ld b,07h
    call 0fd20h ;write vdp register 7
    ;Now restore everything
    POP HL
    POP DE
    POP BC
    EXX
    POP AF
    EX AF,AF'
    POP IY
    POP IX
    POP HL
    POP DE
    POP BC
    ;
    in a,(0bfh)
    ;
    POP AF
    retn

    • Like 1

  6. Thanks Dr. D and NIAD for your quick responses!

     

    @Dr. D - I've been enjoying reading your TWMCA articles. Your description of the boot block and how it is used with ADAM IDE HDs answered a lot of questions for me. The pattern data you mention, is there a document that describes how it is used/deciphered? Would it be in the CV Programmers Manual? http://www.colecovisionzone.com/page/coleco%20industries/programmers.html

     

    Regarding the LOGOS file, if the boot screen as described by NIAD for Electronic Flashcard Maker is contained solely in the Block 0 boot block, is the purpose of the LOGOS file in SmartFiler to generate the other image of the papers being filed that is shown when SmartFiler starts?

     

    Also, in 2017 what would be the easiest way to extract a boot block and transfer it to a PC for disassembly/analysis?


  7. I have this question that has been bugging me. Is there a ROM routine that prints the ADAM logo on the screen when you start an ADAM program or is it drawn on the screen by a routine in the boot block of each ADAM program?

     

    I was looking at the SmartFiler boot block disassembly here http://ww.theadamresource.com/articles/misc/sfboot.asm and the routine starting at $C85C seems to display the initial boot screen. Is it using the data at $C900 to draw the ADAM logo? Maybe a newbie question but I'd like to know.

     

    Is there some kind of template that one would use to create their own boot screen?

     

×
×
  • Create New...