Mercurial > hg > Members > kono > nitros9-code
view 3rdparty/utils/winfo/witesta.asm @ 2739:7afa11757a81
Adding the burst script to the repo so users who have write access to the project are able to put the script on their sourceforge ssh server account.
This will allow the user to use the "make nightly" function. As long as said user has write permision to the project.
author | drencor-xeen |
---|---|
date | Fri, 04 Jan 2013 11:50:24 -0600 |
parents | 00b1c751fad7 |
children |
line wrap: on
line source
nam WItesta ttl Asm test of WInfo subroutine * * Witesta - copyright November,1987 by Ron Lammardo * This program placed into the Public Domain as a demonstration * detailing use of the WInfo subroutine from an ASM * calling program * * Syntax : Witesta <device name> * ifp1 use defsfile endc typelang set prgrm+objct attrev set reent+revision revision set 1 zeroadr equ * mod Eom,Mname,Typelang,Attrev,Start,Datend mname fcs /WItesta/ fcb 1 org 0 window rmb 2 nameln rmb 2 current rmb 2 bytect rmb 1 hexbuff rmb 6 dispcnt rmb 1 rmb 252 use winfodefs buffer rmb 2000 rmb 256 datend equ . minedtn set 1 lowest edition Winfo we can use winfo fcc /winfo/ subroutine module name fcb $0d errmsg1 fcb $0d,$0a fcc /You must use WInfo edition #/ err1sz equ *-errmsg1 errmsg2 fcc / or higher/ fcb $0d err2sz equ *-errmsg2 msg1 fcc /WI$Stat :/ fcb 1 fcc /WI$VDG :/ fcb 1 fcc /WI$Sty :/ fcb 1 fcc /WI$Block :/ fcb 1 fcc /WI$BlCnt :/ fcb 1 fcc /WI$Offst :/ fcb 2 fcc /WI$Cpx :/ fcb 1 fcc /WI$Cpy :/ fcb 1 fcc /WI$Szx :/ fcb 1 fcc /WI$Szy :/ fcb 1 fcc /WI$CWCpx :/ fcb 1 fcc /WI$CWCpy :/ fcb 1 fcc /WI$CWSzx :/ fcb 1 fcc /WI$CWSy :/ fcb 1 fcc /WI$Curx :/ fcb 1 fcc /WI$Cury :/ fcb 1 fcc /WI$BPR :/ fcb 2 fcc /WI$CBsw :/ fcb 1 fcc /WI$FGPRN :/ fcb 1 fcc /WI$BGPRN :/ fcb 1 fcc /WI$BDPRN :/ fcb 1 fcc /WI$Lset :/ fcb 1 fcc /WI$FntGr :/ fcb 1 fcc /WI$FntBf :/ fcb 1 fcc /WI$PstGr :/ fcb 1 fcc /WI$PstBf :/ fcb 1 fcc /WI$GcrGr :/ fcb 1 fcc /WI$GcrBf :/ fcb 1 fcc /WI$DrCrx :/ fcb 2 fcc /WI$DrCry :/ fcb 2 fcc /WI$Edtn :/ fcb 1 fcc /WI$WEAdr :/ fcb 2 fcc /WI$Devm :/ fcb 2 fcc / / fcb 5 palreg fcc /WI$PRegs :/ fcb 16 spaces fcc / / creturn fcb $0d start equ * stx <window address of command line parameter start subd #1 back off 1 for <cr> std <nameln save the length of the device name pshs a,b,u,x save all registers * attempt link to subroutine lda #sbrtn+objct module type for link leax winfo,pcr module name for link os9 F$Link link to the module bcc pshparms go push params if link succesful cmpb #E$MNF see if its module not found error lbne exit if not..exit * attempt load & link of subroutine lda #sbrtn+objct module type for link leax winfo,pcr module name for link os9 F$Load load/link to the module lbcs exit ...exit on error pshparms equ * puls a,b,u,x return registers ldx #wi$size size of return buffer pshs x put on stack leax winfobuf,u param2 (return buffer) pshs x put on stack ldx <nameln size of param 1 pshs x put on stack ldx <window address of param 1 (window name) pshs x put on stack ldx #0002 paramcount pshs x put on stack jsr ,y jump to the subroutine * return from subroutine * * normally we'd check for carry set and WI$Stat, * but here we want to display status messages * lda #sbrtn+objct module type leax winfo,pcr module name os9 F$UnLoad unlink/remove the module lbcs exit ...exit on error lda #minedtn lowest edition WInfo that this prgm can use cmpa WI$Edtn,u check with edition # returned lbhi lowedtn go display message if edition to low leay winfobuf,u sty <current leax msg1,pcr clr dispcnt prtloop equ * ldy #11 lda #1 os9 i$write leax 11,x ldb ,x+ stb <bytect cmpb #2 bne checkhi ldy <current ldd ,y++ sty <current bra printit checkhi cmpb #1 bne prtpalet ldy <current clra ldb ,y+ sty <current printit equ * leay hexbuff,u lbsr u$gethex pshs x tfr y,x ldy #4 ldb <bytect cmpb #2 beq print010 ldd #$2020 std ,x print010 lda #1 os9 i$write lbcs exit ldy #8 tst <dispcnt beq printsp clr <dispcnt leax creturn,pcr ldy #1 bra prntfill printsp leax spaces,pcr inc <dispcnt prntfill equ * lda #1 os9 I$writln lbcs exit puls x bra prtloop prtpalet equ * ldy <current leay wi$pregs,u skip filler bytes sty <current pshs x leax creturn,pcr ldy #8 lda #1 os9 i$writln leax palreg,pcr ldy #11 lda #1 os9 i$write lbcs exit puls x nocr equ * ldb #8 prt010 pshs b ldy <current ldd ,y++ sty <current leay hexbuff,u lbsr u$gethex ldd 2,y std 3,y lda #$20 sta 2,y sta 5,y tfr y,x ldy #6 lda #1 os9 i$write lbcs exit puls b decb beq prtmsg cmpb #4 bne prt010 pshs b leax creturn,pcr ldy #8 lda #1 os9 i$writln leax spaces,pcr ldy #11 lda #1 os9 i$write lbcs exit puls b bra prt010 prtmsg equ * leax hexbuff,u lda #$0d sta ,x ldy #1 lda #1 os9 i$writln ldx <current ldy #40 lda #1 os9 i$write clrexit clrb exit os9 F$exit lowedtn equ * leax errmsg1,pcr ldy #err1sz lda #2 os9 I$Write lbcs exit ldb #minedtn leay hexbuff,u lbsr U$Gethex leax 2,y ldy #2 lda #2 os9 I$Write lbcs exit leax errmsg2,pcr ldy #err2sz lda #2 os9 I$Writln bcs exit bra clrexit ********************************************************************** * * * U$gethex - converts binary integer to hexidecimal * * * * Entry: y=address of 4 byte string for hexidecimal number * * d=integer to convert * * * * Exit: y=same as entry * * * *********************************************************************** U$GetHex equ * pshs y pshs b bsr u$gth010 puls a bsr u$gth010 puls y,pc u$gth010 pshs a lsra lsra lsra lsra bsr u$gth020 puls a anda #$0f bsr u$gth020 rts u$gth020 adda #$30 cmpa #$3a blt u$gth030 adda #$7 u$gth030 sta ,y+ rts emod eom equ *