Welcome, Guest. Please login or register.


Author Topic: How to begin assembly on Enterprise (Read 14497 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13508
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 29.0 Firefox 29.0
    • View Profile
    • http://enterprise.iko.hu/
Re: How to begin assembly on Enterprise
« Reply #30 on: 2014.June.16. 21:27:17 »
Yes the 300Hz on the CPC. On Enterprise 50Hz are the default, but if you need you can set more.
This is the Video IRQ generated by Nick. Dave also can generate interrupts, which are programable frq.

Offline ssr86

  • EP user
  • *
  • Posts: 359
  • Country: pl
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #31 on: 2014.September.30. 09:22:41 »
Is there a z80 crossassembler for use with Context that uses Maxam's assembler syntax (used by WinApe cpc emulator)?

Offline geco

  • EP addict
  • *
  • Posts: 5427
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #32 on: 2014.September.30. 10:53:22 »
Quote from: ssr86
Is there a z80 crossassembler for use with Context that uses Maxam's assembler syntax (used by WinApe cpc emulator)?
I used WinApe assembler once or twice, and if I remember well with a small modification of source you can translate the code with SJASM.

Offline ssr86

  • EP user
  • *
  • Posts: 359
  • Country: pl
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #33 on: 2014.September.30. 12:57:45 »
The thing is I'm writing a cpc image to sprite converter using the winape's compatible assembler syntax (from what I read it's maxam) and I considerer adding support for enterprise sprites (it shouldn't be that much work....). But when coding for ep I'm using Context with pasmo and changing my code from winape to pasmo is sometimes quite time consuming... ...and for now I wouldn't want to do all the work with adding pasmo compatible assembler output to the converter...

How much would there be changes with sjasm? And is there a page that shows how to setup sjasm in Context (sorry that I'm asking before starting to look for myself but previously I couldn't find too much help for sjasm and stuck with pasmo)

Offline geco

  • EP addict
  • *
  • Posts: 5427
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #34 on: 2014.September.30. 13:08:29 »
Sorry I mixed WinCPC's assembler with WinAPE's assembler, I do not know the differences between theese assemblers.
There is nothing special for setting up context for SJASM source code as I remember, you should download z80 highlight set for context, last year I started to use Notepad++
Here is the help of SJASM:
* sjasm.txt (28 kB - downloaded 246 times.)

Offline geco

  • EP addict
  • *
  • Posts: 5427
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #35 on: 2014.September.30. 13:46:14 »
And here is a sample code for SJASM: Loader of Rick Dangerous by Istvánv.

Offline ssr86

  • EP user
  • *
  • Posts: 359
  • Country: pl
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #36 on: 2014.September.30. 15:20:42 »
Well, sjasm sure looks more similar to winaape (than pasmo at least). But from what I've seen so far: '&' can't be used for hexadecimal (not really a problem), rept can't be used in macros (well...this can be somewhat a problem for me) and a few more)...But still less changes between sjasm and maxam than pasmo (macro syntax,'.' can't be used in labels etc.) ...
I wouldn't want to create too much work for myself with this "different assembler syntax" problem at the moment (I've been coding this for a year now and I've gotten tired of it but still want to finish it)) but because of how I've coded the converter it'd be a pain to make changes in that now...... 
So I think I'll give up with this asm syntax compatibility...and just leave it as is (maxam)

With setting up Context for sjasm I meant what do I write in the "environment options"/"execute keys" tab...

Thank you for your help (and sorry for stupid questions).
 
I'll see what I'll be able to make of it...

Offline geco

  • EP addict
  • *
  • Posts: 5427
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #37 on: 2014.September.30. 16:38:26 »
PYZ80 (under Python) uses & sign for hexa you can check that also, I do not prefer it, because error handling is much worse than SJASM, in Sjasm you can use $ sign instead of &. Yes, I remember that I found source with REPT, and I could not substitute it in SJASM, it is a useful command.
Unfortunately I do not remember for that option in context, possibly I never used.
There is another possibility, you attach the source, and I will try to convert to Sjasm source.

Offline geco

  • EP addict
  • *
  • Posts: 5427
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #38 on: 2014.September.30. 16:41:41 »
In the newest verion of Sjasm 0.42 I found REPEAT statement, please check it, I did not have time to take closer look.
SJASM help

Offline ssr86

  • EP user
  • *
  • Posts: 359
  • Country: pl
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #39 on: 2014.October.07. 18:21:39 »
I've implemented the enterprise modes in my program... For now I'm leaving everything in the Maxam assembler syntax, because It'd be too much work for the moment and I want to release the converter untill the end of this month and I'm left with a lot of debugging to do... But I hope it'll work after manualy converting the syntax (sorry)... It works for the cpc and I'm using screen line addresses lookup table for the getting the next line address which should be universal... But haven't tested it all yet... stuck with finding errors and trying to fix them (or just giving up on them)

I'm writing because I have a problem with LPT generation... Say I want to have L (1<=L<=288) lines high and C chars wide, vertically centered display - how to code the border and vblank lines so it will work properly?...

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13508
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://enterprise.iko.hu/
Re: How to begin assembly on Enterprise
« Reply #40 on: 2014.October.07. 20:15:40 »
Quote from: ssr86
I'm writing because I have a problem with LPT generation... Say I want to have L (1<=L<=288) lines high and C chars wide, vertically centered display - how to code the border and vblank lines so it will work properly?...
Do you want a separate LPT lines for each pixel lines, or a shortest LPT (then two lines needed for the max 288 lines, plus the sync block)?

Offline ssr86

  • EP user
  • *
  • Posts: 359
  • Country: pl
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #41 on: 2014.October.08. 09:56:28 »
I have roblems with the sync block.

Offline geco

  • EP addict
  • *
  • Posts: 5427
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #42 on: 2014.October.08. 10:17:35 »
Quote from: ssr86
I have roblems with the sync block.
As I remember, the sysnc block should be left untouched, you can put an LPB line before sync block, and there the number of lines can be varied as you want.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13508
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
    • http://enterprise.iko.hu/
Re: How to begin assembly on Enterprise
« Reply #43 on: 2014.October.08. 10:21:10 »
Quote from: ssr86
I have roblems with the sync block.
My sync block from the IVIEW, can be used up to 301 lines screen.
Code: ZiLOG Z80 Assembler
  1. SYNC
  2. BOTTM       DEFB 105,12H,63,0,0,0,0,0,0,0,0,0,0,0,0,0
  3.                                ;151 lines, size of the bottom border
  4.  
  5.             DEFB 252,16,6,63,0,0,0,0,0,0,0,0,0,0,0,0
  6.                                ;4 lines, sync on
  7.  
  8.             DEFB 255,90H,63,32,0,0,0,0,0,0,0,0,0,0,0,0
  9.                                ;1 line, sync switch of at half line
  10.                                ;Nick generate IRQ here
  11.  
  12.             DEFB 252,12H,6,63,0,0,0,0,0,0,0,0,0,0,0,0
  13.                                ;4 empty lines (VBLANK)
  14.  
  15. TOPM        DEFB 104,13H,63,0,0,0,0,0,0,0,0,0,0,0,0,0
  16.                                ;152 lines, size of top border
  17.  
  18. SYNCH       EQU $-SYNC ;size of sync block

At default this block contain the whole screen, displaying 303 (152+151) lines of border.
You define your lines before this block. Divide the number of your lines, and add one half+remaining to the (TOPM), another half to (BOTTM). This reduce the top and bottom border section.

For example you want to display 200 lines, then add 100 to (TOPM) it is will be 204, another 100 to (BOTTM) it is will be 205.
For a 201 lines, add 101 to (TOPM)=205, add 100 to (BOTTM)=205.
« Last Edit: 2014.October.08. 10:26:10 by Zozosoft »

Offline ssr86

  • EP user
  • *
  • Posts: 359
  • Country: pl
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 32.0 Firefox 32.0
    • View Profile
Re: How to begin assembly on Enterprise
« Reply #44 on: 2014.October.08. 12:39:22 »
Oh, thank you very much. Previously I just changed the values for the number of border lines in the code found in the sample for setting the lpt, but without understanding what and why in the sync part.