Moria I64 and problems with macro - VMS

This is a discussion on Moria I64 and problems with macro - VMS ; Whilst I know very few folks are [anymore] interested in good ole' games like moria, I still seem to get a kick out of them and am trying to bring some of them over to I64. Unfortunately, I'm having trouble ...

+ Reply to Thread
Results 1 to 13 of 13

Thread: Moria I64 and problems with macro

  1. Moria I64 and problems with macro

    Whilst I know very few folks are [anymore] interested in good ole'
    games like moria, I still seem to get a kick out of them and am trying
    to bring some of them over to I64. Unfortunately, I'm having trouble
    with macro, and reading what little bit of online lit. I've found,
    isn't helping me out :-/....

    Any help or a point in the right direction would be much appreciated
    (or if anyone knows where I can get the binaries - though I'd still
    love to see the correct source code here)...

    Regards,

    Joe

    ~~

    $ macro putqio.mar

    .word 0 ;
    ^
    %IMAC-E-DATINCODE, data in code stream
    at line number 75 in file WOPR_USER:
    [USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9

    PUT_QIO::
    ^
    %IMAC-E-GLOBENTRY, global entry point PUT_QIO must be declared
    at line number 74 in file WOPR_USER:
    [USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9

    .end
    ^
    %IMAC-E-PREVERROR, previous errors prevent further analysis
    at line number 86 in file WOPR_USER:
    [USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9


    ~~~ putqio.mar

    ; PUTQIO - contains two related functions, PUT_BUFFER and
    PUT_QIO.
    ; PUT_BUFFER accepts an (row,col) cursor address, and
    a
    ; string. Cursor positioning characters are added
    into
    ; the buffer in front of the string. Buffer dumps if
    it
    ; becomes too full.
    ; PUT_QIO performs the buffer dump operation. It can
    be
    ; called externally, or by PUT_BUFFER.
    ;
    ;
    ; Globals used: (Declared in MORIA pascal code)
    ; cursor_r: array of 24 strings (6 bytes)
    ; curlen_r: length of each row string
    ; cursor_c: array of 80 strings (6 bytes)
    ; curlen_c: length of each col string
    ; cursor_l: Total length of row and col
    ; row_first: Boolean (1,0)
    ; 1 - Row,Col format
    ; 0 - Col,Row format
    ;
    ; Registers:
    ; R0 Used by MOVC
    ; R1 Used by MOVC
    ; R2 Used by MOVC
    ; R3 Used by MOVC
    ; R4 Used by MOVC
    ; R5 Used by MOVC
    ;
    ; This IO routine does no index checking.
    ;
    .title PUT_QIO Build and dump IO buffer\
    .ident /put_qio/
    .psect IOBUF$DATA
    ;
    IO$_WRITEVBLK: .long 48 ; See STARLET ($IODEF)
    out_buf: .blkb 1024 ; Size in bytes of buffer
    out_len: .long 0 ; Current length of buffer
    ;
    ;
    .psect IO$CODE,pic,con,rel,lcl,shr,exe,rd,nowrt,2
    .entry PUT_BUFFER,^M
    ;
    movab out_buf,r3 ; Address of output buffer.
    addl2 out_len,r3 ; Buffer may be partially
    full.
    cmpl row_first,#0 ; Test for row first
    bgtr 1$ ; Branch to row,col format
    ; Col,Row format
    mull3 #12,12(ap),r1 ; (8 bytes * index) for col.
    movab cursor_c-10[r1],r1 ; Address of needed col coord.
    movc3 curlen_c,(r1),(r3) ; Move col cursor characters.
    mull3 #12,8(ap),r1 ; (8 bytes * index) for row.
    movab cursor_r-10[r1],r1 ; Address of needed row coord.
    movc3 curlen_r,(r1),(r3) ; Move row cursor characters.
    brb 2$ ; Branch to copy string
    1$: ; Row,Col format
    mull3 #12,8(ap),r1 ; (8 bytes * index) for row.
    movab cursor_r-10[r1],r1 ; Address of needed row coord.
    movc3 curlen_r,(r1),(r3) ; Move row cursor characters.
    mull3 #12,12(ap),r1 ; (8 bytes * index) for col.
    movab cursor_c-10[r1],r1 ; Address of needed col coord.
    movc3 curlen_c,(r1),(r3) ; Move col cursor characters.
    2$: ; Copy String
    tstw @4(ap) ; No string?
    beql 3$ ; No move needed.
    movl 4(ap),r1 ; Move address of string arg.
    movc3 @4(ap),2(r1),(r3) ; Move string arg into output
    buff.
    3$:
    addw3 cursor_l,@4(ap),r1 ; Total length of new output
    addw2 r1,out_len ; Total length of saved output
    cmpw out_len,#900 ; Buffer getting full?
    bgtr DUMP_QIO ; Output the buffer...
    ret ; return from PUT_BUFFER
    ;
    ; PUT_QIO entry point
    PUT_QIO::
    .word 0 ;
    DUMP_QIO:
    $QIOW_S EFN=#6, - ; Unique event flag
    CHAN=channel, - ; Output the buffer
    FUNC=IO$_WRITEVBLK, - ; Write virtual block
    P1=out_buf, - ; Address of buffer
    P2=out_len ; Buffers current length
    ;
    movw #0,out_len ; Clear buffer;
    ret ; Return from PUT_QIO
    ;
    .end

  2. Re: Moria I64 and problems with macro

    In article , jferraro writes:
    >Whilst I know very few folks are [anymore] interested in good ole'
    >games like moria, I still seem to get a kick out of them and am trying
    >to bring some of them over to I64. Unfortunately, I'm having trouble
    >with macro, and reading what little bit of online lit. I've found,
    >isn't helping me out :-/....
    >
    >Any help or a point in the right direction would be much appreciated
    >(or if anyone knows where I can get the binaries - though I'd still
    >love to see the correct source code here)...
    >
    >Regards,
    >
    >Joe
    >
    >~~
    >
    >$ macro putqio.mar
    >
    > .word 0 ;
    >^
    >%IMAC-E-DATINCODE, data in code stream
    >at line number 75 in file WOPR_USER:
    >[USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9
    >
    >PUT_QIO::
    >^
    >%IMAC-E-GLOBENTRY, global entry point PUT_QIO must be declared
    >at line number 74 in file WOPR_USER:
    >[USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9
    >
    > .end
    >^
    >%IMAC-E-PREVERROR, previous errors prevent further analysis
    >at line number 86 in file WOPR_USER:
    >[USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9
    >
    >
    >~~~ putqio.mar
    >
    > ; PUTQIO - contains two related functions, PUT_BUFFER and
    >PUT_QIO.
    > ; PUT_BUFFER accepts an (row,col) cursor address, and
    >a
    > ; string. Cursor positioning characters are added
    >into
    > ; the buffer in front of the string. Buffer dumps if
    >it
    > ; becomes too full.
    > ; PUT_QIO performs the buffer dump operation. It can
    >be
    > ; called externally, or by PUT_BUFFER.
    > ;
    > ;
    > ; Globals used: (Declared in MORIA pascal code)
    > ; cursor_r: array of 24 strings (6 bytes)
    > ; curlen_r: length of each row string
    > ; cursor_c: array of 80 strings (6 bytes)
    > ; curlen_c: length of each col string
    > ; cursor_l: Total length of row and col
    > ; row_first: Boolean (1,0)
    > ; 1 - Row,Col format
    > ; 0 - Col,Row format
    > ;
    > ; Registers:
    > ; R0 Used by MOVC
    > ; R1 Used by MOVC
    > ; R2 Used by MOVC
    > ; R3 Used by MOVC
    > ; R4 Used by MOVC
    > ; R5 Used by MOVC
    > ;
    > ; This IO routine does no index checking.
    > ;
    > .title PUT_QIO Build and dump IO buffer\
    > .ident /put_qio/
    > .psect IOBUF$DATA
    > ;
    > IO$_WRITEVBLK: .long 48 ; See STARLET ($IODEF)
    > out_buf: .blkb 1024 ; Size in bytes of buffer
    > out_len: .long 0 ; Current length of buffer
    > ;
    > ;
    > .psect IO$CODE,pic,con,rel,lcl,shr,exe,rd,nowrt,2
    > .entry PUT_BUFFER,^M
    > ;
    > movab out_buf,r3 ; Address of output buffer.
    > addl2 out_len,r3 ; Buffer may be partially
    >full.
    > cmpl row_first,#0 ; Test for row first
    > bgtr 1$ ; Branch to row,col format
    > ; Col,Row format
    > mull3 #12,12(ap),r1 ; (8 bytes * index) for col.
    > movab cursor_c-10[r1],r1 ; Address of needed col coord.
    > movc3 curlen_c,(r1),(r3) ; Move col cursor characters.
    > mull3 #12,8(ap),r1 ; (8 bytes * index) for row.
    > movab cursor_r-10[r1],r1 ; Address of needed row coord.
    > movc3 curlen_r,(r1),(r3) ; Move row cursor characters.
    > brb 2$ ; Branch to copy string
    >1$: ; Row,Col format
    > mull3 #12,8(ap),r1 ; (8 bytes * index) for row.
    > movab cursor_r-10[r1],r1 ; Address of needed row coord.
    > movc3 curlen_r,(r1),(r3) ; Move row cursor characters.
    > mull3 #12,12(ap),r1 ; (8 bytes * index) for col.
    > movab cursor_c-10[r1],r1 ; Address of needed col coord.
    > movc3 curlen_c,(r1),(r3) ; Move col cursor characters.
    >2$: ; Copy String
    > tstw @4(ap) ; No string?
    > beql 3$ ; No move needed.
    > movl 4(ap),r1 ; Move address of string arg.
    > movc3 @4(ap),2(r1),(r3) ; Move string arg into output
    >buff.
    >3$:
    > addw3 cursor_l,@4(ap),r1 ; Total length of new output
    > addw2 r1,out_len ; Total length of saved output
    > cmpw out_len,#900 ; Buffer getting full?
    > bgtr DUMP_QIO ; Output the buffer...
    > ret ; return from PUT_BUFFER
    > ;
    > ; PUT_QIO entry point
    >PUT_QIO::
    > .word 0 ;


    delete: .word 0
    insert: .call_entry

    >DUMP_QIO:
    > $QIOW_S EFN=#6, - ; Unique event flag
    > CHAN=channel, - ; Output the buffer
    > FUNC=IO$_WRITEVBLK, - ; Write virtual block
    > P1=out_buf, - ; Address of buffer
    > P2=out_len ; Buffers current length
    > ;
    > movw #0,out_len ; Clear buffer;
    > ret ; Return from PUT_QIO
    > ;
    > .end

    --
    VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)COM

    .... pejorative statements of opinion are entitled to constitutional protection
    no matter how extreme, vituperous, or vigorously expressed they may be. (NJSC)

    Copr. 2008 Brian Schenkenberger. Publication of _this_ usenet article outside
    of usenet _must_ include its contents in its entirety including this copyright
    notice, disclaimer and quotations.

  3. Re: Moria I64 and problems with macro

    jferraro writes:

    >Whilst I know very few folks are [anymore] interested in good ole'
    >games like moria, I still seem to get a kick out of them and am trying
    >to bring some of them over to I64. Unfortunately, I'm having trouble
    >with macro, and reading what little bit of online lit. I've found,
    >isn't helping me out :-/....


    >Any help or a point in the right direction would be much appreciated
    >(or if anyone knows where I can get the binaries - though I'd still
    >love to see the correct source code here)...


    The macro assembler (really compiler) on Alpha and Itanic is real picky
    about some things the VAX assembler has no problem with. One is that
    entry points must be properly defined. Use a .entry statement for the
    putqio and that should take care of the problem. That's really the only
    problem.

    .entry putqio,^M<>


  4. Re: Moria I64 and problems with macro

    When you get it working, be sure to post a link to the binaries on
    comp.os.vms.
    Alternatively, I'll upload them to my VMS stuff page.

    Good job!

    Regards, Mark

  5. Re: Moria I64 and problems with macro

    On Sep 19, 6:01*pm, jferraro wrote:
    > Whilst I know very few folks are [anymore] interested in good ole'
    > games like moria, I still seem to get a kick out of them and am trying
    > to bring some of them over to I64. Unfortunately, I'm having trouble
    > with macro, and reading what little bit of online lit. I've found,
    > isn't helping me out :-/....
    >
    > Any help or a point in the right direction would be much appreciated
    > (or if anyone knows where I can get the binaries - though I'd still
    > love to see the correct source code here)...
    >
    > Regards,
    >
    > Joe
    >
    > ~~
    >
    > $ macro putqio.mar
    >
    > * * * * .word * 0 * * * * * * * * * * * * * * * ;
    > ^
    > %IMAC-E-DATINCODE, data in code stream
    > at line number 75 in file WOPR_USER:
    > [USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9
    >
    > PUT_QIO::
    > ^
    > %IMAC-E-GLOBENTRY, global entry point PUT_QIO must be declared
    > at line number 74 in file WOPR_USER:
    > [USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9
    >
    > * * * * .end
    > ^
    > %IMAC-E-PREVERROR, previous errors prevent further analysis
    > at line number 86 in file WOPR_USER:
    > [USER.JFERRARO.MORIA.SOURCE.MACRO]PUTQIO.MAR;9
    >
    > ~~~ putqio.mar
    >
    > * * * * ; PUTQIO - contains two related functions, PUT_BUFFER and
    > PUT_QIO.
    > * * * * ; * * * * *PUT_BUFFER accepts an (row,col) cursor address, and
    > a
    > * * * * ; * * * * *string. *Cursor positioning characters are added
    > into
    > * * * * ; * * * * *the buffer in front of the string. *Buffer dumps if
    > it
    > * * * * ; * * * * *becomes too full.
    > * * * * ; * * * * *PUT_QIO performs the buffer dump operation. *It can
    > be
    > * * * * ; * * * * *called externally, or by PUT_BUFFER.
    > * * * * ;
    > * * * * ;
    > * * * * ; * * * Globals used: * (Declared in MORIA pascalcode)
    > * * * * ; * * * * * * * cursor_r: * * * arrayof 24 strings (6 bytes)
    > * * * * ; * * * * * * * curlen_r: * * * length of each row string
    > * * * * ; * * * * * * * cursor_c: * * * arrayof 80 strings (6 bytes)
    > * * * * ; * * * * * * * curlen_c: * * * length of each col string
    > * * * * ; * * * * * * * cursor_l: * * * Totallength of row and col
    > * * * * ; * * * * * * * row_first: * * *Boolean (1,0)
    > * * * * ; * * * * * * * * * * * * * ** 1 - Row,Col format
    > * * * * ; * * * * * * * * * * * * * ** 0 - Col,Row format
    > * * * * ;
    > * * * * ; * * * Registers:
    > * * * * ; * * * * * * * R0 * * *Used by MOVC
    > * * * * ; * * * * * * * R1 * * *Used by MOVC
    > * * * * ; * * * * * * * R2 * * *Used by MOVC
    > * * * * ; * * * * * * * R3 * * *Used by MOVC
    > * * * * ; * * * * * * * R4 * * *Used by MOVC
    > * * * * ; * * * * * * * R5 * * *Used by MOVC
    > * * * * ;
    > * * * * ; * * * This IO routine does no index checking.
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * .title *PUT_QIO * * * * Build and dump IO buffer\
    > * * * * .ident */put_qio/
    > * * * * .psect *IOBUF$DATA
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * IO$_WRITEVBLK: *.long * 48 * * *; See STARLET ($IODEF)
    > * * * * out_buf: * * * *.blkb * 1024 * *; Size in bytes of buffer
    > * * * * out_len: * * * *.long * 0 * * * ; Currentlength of buffer
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * .psect *IO$CODE,pic,con,rel,lcl,shr,exe,rd,nowrt,2
    > * * * * .entry *PUT_BUFFER,^M
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * movab * out_buf,r3 * * * * * * *; Addressof output buffer.
    > * * * * addl2 * out_len,r3 * * * * * * *; Buffer may be partially
    > full.
    > * * * * cmpl * *row_first,#0 * * * * * *; Test for row first
    > * * * * bgtr * *1$ * * * * * * * * * * *; Branch to row,col format
    > * * * * * * * * * * * * * * * * * * * * ; Col,Row format
    > * * * * mull3 * #12,12(ap),r1 * * * * * ; (8 bytes * index) for col.
    > * * * * movab * cursor_c-10[r1],r1 * * *; Address of needed col coord.
    > * * * * movc3 * curlen_c,(r1),(r3) * * *; Move col cursorcharacters.
    > * * * * mull3 * #12,8(ap),r1 * * * * * *; (8 bytes * index) for row.
    > * * * * movab * cursor_r-10[r1],r1 * * *; Address of needed row coord.
    > * * * * movc3 * curlen_r,(r1),(r3) * * *; Move row cursorcharacters.
    > * * * * brb * * 2$ * * * * * * * * * * *; Branch to copy string
    > 1$: * * * * * * * * * * * * * * * * * * ; Row,Col format
    > * * * * mull3 * #12,8(ap),r1 * * * * * *; (8 bytes * index) for row.
    > * * * * movab * cursor_r-10[r1],r1 * * *; Address of needed row coord.
    > * * * * movc3 * curlen_r,(r1),(r3) * * *; Move row cursorcharacters.
    > * * * * mull3 * #12,12(ap),r1 * * * * * ; (8 bytes * index) for col.
    > * * * * movab * cursor_c-10[r1],r1 * * *; Address of needed col coord.
    > * * * * movc3 * curlen_c,(r1),(r3) * * *; Move col cursorcharacters.
    > 2$: * * * * * * * * * * * * * * * * * * ; Copy String
    > * * * * tstw * *@4(ap) * * * * * * * * *; No string?
    > * * * * beql * *3$ * * * * * * * * * * *; No move needed.
    > * * * * movl * *4(ap),r1 * * * * * * * *; Move address of string arg.
    > * * * * movc3 * @4(ap),2(r1),(r3) * * * ; Move string arginto output
    > buff.
    > 3$:
    > * * * * addw3 * cursor_l,@4(ap),r1 * * *; Total length ofnew output
    > * * * * addw2 * r1,out_len * * * * * * *; Total length of saved output
    > * * * * cmpw * *out_len,#900 * * * * * *; Buffer getting full?
    > * * * * bgtr * *DUMP_QIO * * * * * * * *; Output the buffer...
    > * * * * ret * * * * * * * * * * * * * * ; return from PUT_BUFFER
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * * * * * * * * * * * * * * * * * ; PUT_QIO entry point
    > PUT_QIO::
    > * * * * .word * 0 * * * * * * * * * * * * * * * ;
    > DUMP_QIO:
    > * * * * $QIOW_S EFN=#6, - * * * * * * * ; Unique event flag
    > * * * * * * * * CHAN=channel, - * * * * ; Output the buffer
    > * * * * * * * * FUNC=IO$_WRITEVBLK, - * ; Write virtual block
    > * * * * * * * * P1=out_buf, - * * * * * ; Address of buffer
    > * * * * * * * * P2=out_len * * * * * * *;Buffers current length
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * movw * *#0,out_len * * * * * * *; Clearbuffer;
    > * * * * ret * * * * * * * * * * * * * * ; Return from PUT_QIO
    > * * * * * * * * * * * * * * * * * * * * ;
    > * * * * .end


    Joe,

    The MACRO-32 Assembler on the VAX (MACRO32) just converts lines into
    binary and writes an object deck.

    As has been noted, the task of the MACRO32 Compiler on Alpha and
    Itanium is a bit more complex. On VAX, all that is necessary is that
    the bits are in memory as defined by the architecture. On the other
    architectures, the MACRO32 compiler compiles the code. Using the
    example of the .WORD directive, that is a data directive. While it
    generates the correct bits, it is ambiguous as to how those bits are
    actually used (e.g., executable or data).

    There is a MACRO32 porting guide in the documentation set on the
    OpenVMS www site at http://h71000.www7.hp.com/doc/82final/5601/5601PRO.HTML

    - Bob Gezelter, http://www.rlgsc.com

  6. Re: Moria I64 and problems with macro

    In article <1a59b7ac-0abb-41fe-bd84-d8570a4caf0a@z66g2000hsc.googlegroups.com>, Bob Gezelter writes:
    >{...snip...}
    >There is a MACRO32 porting guide in the documentation set on the
    >OpenVMS www site at http://h71000.www7.hp.com/doc/82final/5601/5601PRO.HTML


    The only problem was the stupid .WORD 0 declaring the procedure entry
    point. I hated to see this in VAX code too!

    Bob, please, please, please fix your newsreader settings. The enitre
    portion of the original posting which you quoted was q-p'ed the news-
    reader you used to post your reply.


    --
    VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)COM

    .... pejorative statements of opinion are entitled to constitutional protection
    no matter how extreme, vituperous, or vigorously expressed they may be. (NJSC)

    Copr. 2008 Brian Schenkenberger. Publication of _this_ usenet article outside
    of usenet _must_ include its contents in its entirety including this copyright
    notice, disclaimer and quotations.

  7. Re: Moria I64 and problems with macro

    On Sep 20, 6:54*am, urbancamo wrote:
    > When you get it working, be sure to post a link to the binaries on
    > comp.os.vms.
    > Alternatively, I'll upload them to my VMS stuff page.
    >
    > Good job!
    >
    > Regards, Mark


    Thanks VAXman, that took care of it - darn it, I was very close ;-).

    The binaries, should anyone desire, can be pulled from:

    http://wopr.adelphos.org/~jpf/src/

    (you're also welcome to login and try em out -- telnet to the above
    host... login info displayed in the banner)

    Thanks again for the help!

    Joe

  8. Re: Moria I64 and problems with macro

    VAXman- @SendSpamHere.ORG wrote:
    > In article <1a59b7ac-0abb-41fe-bd84-d8570a4caf0a@z66g2000hsc.googlegroups.com>, Bob Gezelter writes:
    >
    >>{...snip...}
    >>There is a MACRO32 porting guide in the documentation set on the
    >>OpenVMS www site at http://h71000.www7.hp.com/doc/82final/5601/5601PRO.HTML

    >
    >
    > The only problem was the stupid .WORD 0 declaring the procedure entry
    > point. I hated to see this in VAX code too!
    >
    > Bob, please, please, please fix your newsreader settings. The enitre
    > portion of the original posting which you quoted was q-p'ed the news-
    > reader you used to post your reply.
    >
    >


    I read this and my first thought was "What the heck is a .word 0 doing
    in the middle of code? Doesn't it HALT on the VAX when it gets there?"

    Then I realized it was a CALL entry mask, telling it to save nothing.

    IIRC, .MASK and .ENTRY have existed from day 1 (at least in field test
    months before the release of VAX/VMS V1.0) and would have solved this.
    You wouldn't have got the "Data in a code .PSECT" error, and if the code
    had used .MASK, the compiler *might* have done the right thing by
    assuming a .ENTRY because of the .MASK and compiled okay with just
    an informational, though putting in the .ENTRY is (or better, a
    ..CALL_ENTRY with an appropriate set of hints to the compiler) the
    correct fix, as VAXman says. BTW, .CALL_ENTRY is backwards-
    compatible with the VAX MACRO-32 Assembler, at least from V6.0 on.
    and .ENTRY all the way back to the dawn of time.

    Where did the horrendous programming style of using .WORD instead of
    ..ENTRY come from? (I just checked and discovered it was the VAX
    Architecture book. Both the 1979-1980 edition and the 1981 edition
    use it in their programming examples, the version in the 1981 edition
    being horribly mangled by spurious line wraps.) I'm sure the V1.0
    Macro and Procedure Calling Standards Manuals did it right, though,
    because I would have found it totally intolerable to have to construct
    register masks in binary :-)

    --
    John Santos
    Evans Griffiths & Hart, Inc.
    781-861-0670 ext 539

  9. Re: Moria I64 and problems with macro

    In article ,
    jferraro wrote:
    [...]
    >The binaries, should anyone desire, can be pulled from:
    >
    > http://wopr.adelphos.org/~jpf/src/
    >
    >(you're also welcome to login and try em out -- telnet to the above
    >host... login info displayed in the banner)
    >
    >Thanks again for the help!
    >
    >Joe


    Thanks for the new resource; however, when I log in and attempt to run Moria, I
    always get a message:

    GAMES


    1. The Dungeons of Moria v4.8 - (1985)

    2. The Dungeons of Moria v5 / U. Buffalo - (1989)

    x. eXit


    Choice: 2
    *** ERROR : Terminal not supported ***
    See TERMDEF.PAS for definning new terminals.
    *** Terminals supported:
    VT52 Set Terminal/VT52
    VT100 Set Terminal/VT100
    VT200 Set Terminal/VT200
    VT300 Set Terminal/VT300
    Teleray 10 Set Terminal/FT1
    ADM-3A Set Terminal/FT2
    ADDS100 Set Terminal/FT3
    IBM3101 Set Terminal/FT4

    This happens even if I set my terminal type to VT100 before I TELNET into your
    machine. There seems to be no way to reset the terminal type in your menu
    system; can you provide a way to do so?

    Otherwise, a nice, fast machine (rx2600?).

  10. Re: Moria I64 and problems with macro


    >
    > Choice: 2
    > *** ERROR : Terminal not supported ***
    > See TERMDEF.PAS for definning new terminals.
    > *** Terminals supported:
    > * * VT52 * * * * Set Terminal/VT52
    > * * VT100 * * * *Set Terminal/VT100
    > * * VT200 * * * *Set Terminal/VT200
    > * * VT300 * * * *Set Terminal/VT300
    > * * Teleray 10 * Set Terminal/FT1
    > * * ADM-3A * * * Set Terminal/FT2
    > * * ADDS100 * * *Set Terminal/FT3
    > * * IBM3101 * * *Set Terminal/FT4
    >
    > This happens even if I set my terminal type to VT100 before I TELNET intoyour
    > machine. *There seems to be no way to reset the terminal type in your menu
    > system; can you provide a way to do so?
    >
    > Otherwise, a nice, fast machine (rx2600?).


    It's actually a zx6, though I haven't seen many differences between it
    at the rx26s (MP, dual P/S, etc..)

    With regards to term... I've not seen the issue elsewhere... I'll have
    a look at the menu...

    GEIN $ set term/vt100
    GEIN $ telnet wopr.adelphos.org
    Trying... Connected to WOPR.ADELPHOS.ORG
    <.snip>

    GAMES


    1. The Dungeons of Moria v4.8 - (1985)

    2. The Dungeons of Moria v5 / U. Buffalo - (1989)

    x. eXit


    Choice: 2


    *************************
    ** Moria UB 5.00 **
    *************************
    COPYRIGHT (c) Robert Alan Koeneke

    Programers : Robert Alan Koeneke / University of Oklahoma
    Jimmey Wayne Todd / University of Oklahoma


    Modified by: Bill Palter / State University of New York
    Nick B Triantos / State University of New York


    Dungeon Master: This file may contain updates and news

  11. Re: Moria I64 and problems with macro

    If you are using linux, set TERM=vt220 before issuing the telnet
    command.

  12. Re: Moria I64 and problems with macro

    In article , jferraro writes:
    > Whilst I know very few folks are [anymore] interested in good ole'
    > games like moria, I still seem to get a kick out of them and am trying
    > to bring some of them over to I64. Unfortunately, I'm having trouble
    > with macro, and reading what little bit of online lit. I've found,
    > isn't helping me out :-/....


    Judging by the listing you showed, this code was never ported from
    VAX to Alpha. The guide to porting Macro-32 from VAX to Alpha
    should give all the steps that will make this code compatable
    with the Macr-32 compilers and both Alpha and I64. And the VAX
    Macro assembler has been updated to be pretty happy with the new
    code, too.


  13. Re: Moria I64 and problems with macro

    In article <79cf8e54-90cb-43c7-b3a5-d70ce3e61cdd@x41g2000hsb.googlegroups.com>,
    urbancamo wrote:
    >If you are using linux, set TERM=vt220 before issuing the telnet
    >command.


    Thanks, this worked; I tried using vt100 and vt300 from my VMS system, but
    those terminal sessions didn't work. A VT200 terminal session from VMS worked
    fine. Picky, picky!

    Now off to hame some fun...

+ Reply to Thread