;***************************›;* ACTION! runtime package *›;* Jeff Reister 4/18/87 *›;* 400 S LaVenture #83 *›;* Mt Vernon, WA 98273 *›;***************************››PROC _CPYPRM=*()›SET $4EE = _CPYPRM›;Called when subroutine has more›;than 2 bytes of parameters.›[$85$A0$86$A1$84$A2$18$68$85$84$69$03›$A8$68$85$85$69$00$48$98$48$A0$01$B1›$84$85$82$C8$B1$84$85$83$C8$B1$84$A8›$B9$A0$00$91$82$88$10$F8$60]››PROC _CHGSGN=*()›;utility for math routines.›[$85$C0$86$C1$38$A9$00$E5$C0$48$A9$00›$E5$C1$AA$68$60]››PROC _FIXSGN=*()›;utility for math routines.›[$86$C2$E0$00$10$03$20 _CHGSGN $85$82›$86$83$A5$85$45$C2$85$C2$A6$85$10$09›$A5$84$20 _CHGSGN $85$84$86$85$60]››PROC _FIXRES=*()›;utility for math routines.›[$A5$86$A6$87$A4$C2$10$03$4C _CHGSGN›$60]››PROC _MUL=*()›SET $4E8 = _MUL›;integer multiplication.›[$20 _FIXSGN $A9$00$85$86$85$87$A5$82›$D0$04$A5$83$F0$22$A5$84$D0$04$A5$85›$F0$1A$46$85$66$84$90$0D$18$A5$86$65›$82$85$86$A5$87$65$83$85$87$06$82$26›$83$38$B0$D6$4C _FIXRES]››PROC _DIV=*()›SET $4EA = _DIV›;integer division.›[$20 _FIXSGN $A9$00$85$86$85$87$85$C1›$A9$01$85$C0$A5$82$D0$04$A5$83$F0$5F›$A5$84$D0$04$A5$85$F0$57$A5$82$C5$84›$A5$83$E5$85$90$0F$A5$C1$30$0B$06$84›$26$85$06$C0$26$C1$38$B0$E7$A5$C0$D0›$04$A5$C1$F0$36$A5$82$D0$04$A5$83$F0›$2E$A5$82$C5$84$A5$83$E5$85$90$19$38›$A5$82$E5$84$85$82$A5$83$E5$85$85$83›$A5$86$05$C0$85$86$A5$87$05$C1$85$87›$46$85$66$84$46$C1$66$C0$38$B0$C2$4C›_FIXRES]››PROC _MODOP=*()›SET $4EC = _MODOP›;MOD operation. Actually just›;remainder of division.›[$20 _DIV $A5$82$A6$83$60]››PROC _RSHOP=*()›SET $4E6 = _RSHOP›;RSH operation.›[$A4$84$F0$0A$86$86$46$86$6A$88$D0$FA›$A6$86$60]››PROC _LSHOP=*()›SET $4E4 = _LSHOP›;LSH operation.›[$A4$84$F0$0A$86$86$0A$26$86$88$D0$FA›$A6$86$60]››PROC _ERROU=*()›;Error routine.›[$A9$70$AA$A9$0C$9D$42$03$20$56$E4$8A›$38$E9$10$D0$F1$6C$0A$00]››PROC _ERRVEC=*()›[_ERROU]››PROC _DEVIC=*()›[$00]››MODULE›CARD Error=_ERRVEC›BYTE device=_DEVIC››PROC _GOCIO=*()›;JSR to CIO routine and check›;for errors.›[$20$56$E4$10$1A$C0$88$F0$06$68$68$98›$6C _ERRVEC $48$8A$48$4A$4A$4A$4A$AA›$A9$01$9D$C0$05$68$AA$68$60]››PROC _LODCHN=*()›;Check A reg for illegal IOCB #.›;If ok, X reg = A reg * 16.›[$C9$08$90$07$68$68$A9$86$6C _ERRVEC›$0A$0A$0A$0A$AA$60]››PROC _STONAM=*()›;I/O utility.›[$18$69$01$9D$44$03$98$69$00$9D$45$03›$60]››PROC _SHFTR=*()›;I/O utility.›[$48$8A$A8$68$AA$AD _DEVIC $60]››PROC _CLREOL=*()›;Clear EOL flag.›[$48$A9$00$85$A5$68$60]››PROC _SETEOL=*()›;Set EOL flag.›[$48$A9$01$85$A5$68$60]››PROC _PRECON=*()›;I/O utility.›[$8A$48$98$AA$68$A0$03$84$A3$A0$FD$60]››PROC _DOPRNT=*()›;Print a string.›[$86$A3$84$A4$20 _LODCHN $A9$00$9D$49›$03$A8$B1$A3$F0$1A$9D$48$03$18$A5$A3›$69$01$9D$44$03$A5$A4$69$00$9D$45$03›$A9$0B$9D$42$03$20 _GOCIO $A5$A5$F0›$12$A9$00$9D$48$03$9D$49$03$A9$0B$9D›$42$03$A9$9B$20 _GOCIO $60]››PROC StrC=*(CARD c, s)›[$85$D4$86$D5$84$A2$20$AA$D9$20$E6$D8›$A0$00$B1$F3$30$06$C8$91$A2$38$B0$F6›$29$7F$C8$91$A2$98$A0$00$91$A2$60]››PROC StrB=*(BYTE b CARD s)›[$84$A3$48$8A$A8$A2$00$68$4C StrC]››PROC StrI=*(INT i CARD s)›[$E0$00$30$03$4C StrC $49$FF$85$A2›$8A$49$FF$AA$E6$A2$D0$01$E8$A5$A2$20›StrC $A0$00$18$B1$A2$69$01$91$A2$A8›$88$B1$A2$C8$91$A2$88$88$D0$F7$C8$A9›$2D$91$A2$60]››PROC _DOPRNC=*()›;Print a CARD.›[$48$20 _PRECON $20 StrC $68$A2$FD$A0›$03$4C _DOPRNT]››PROC DOPRNI=*()›;Print an INT.›[$48$20 _PRECON $20 StrI $68$A2$FD$A0›$03$4C _DOPRNT]››PROC PrintCD=*(BYTE d CARD c)›[$20 _CLREOL $4C _DOPRNC]››PROC PrintC=*(CARD c)›[$20 _SHFTR $4C PrintCD]››PROC PrintCDE=*(BYTE d CARD c)›[$20 _SETEOL $4C _DOPRNC]››PROC PrintCE=*(CARD c)›[$20 _SHFTR $4C PrintCDE]››PROC PrintBD=*(BYTE d, b)›[$A0$00$4C PrintCD]››PROC PrintB=*(BYTE b)›[$20 _SHFTR $4C PrintBD]››PROC PrintBDE=*(BYTE d, b)›[$A0$00$4C PrintCDE]››PROC PrintBE=*(BYTE b)›[$20 _SHFTR $4C PrintBDE]››PROC PrintID=*(BYTE d INT i)›[$20 _CLREOL $4C _DOPRNI]››PROC PrintI=*(INT i)›[$20 _SHFTR $4C PrintID]››PROC PrintIDE=*(BYTE d INT i)›[$20 _SETEOL $4C _DOPRNI]››PROC PrintIE=*(INT i)›[$20 _SHFTR $4C PrintIDE]››PROC PrintD=*(BYTE d CARD s)›[$20 _CLREOL $4C _DOPRNT]››PROC Print=*(CARD s)›[$20 _SHFTR $4C PrintD]››PROC PrintDE=*(BYTE d CARD s)›[$20 _SETEOL $4C _DOPRNT]››PROC PrintE=*(CARD s)›[$20 _SHFTR $4C PrintDE]››PROC _HEXSTR=*()›;Convert a number to a hex string›;for PrintF.›[$85$84$86$85$A9$FD$85$A2$A9$03$85$A3›$A0$00$A9$05$91$A2$C8$A9$24$91$A2$A9›$00$A2$04$06$84$26$85$2A$CA$D0$F8$69›$30$C9$3A$90$02$69$06$C8$91$A2$C0$05›$D0$E5$60]››PROC PrintF=*(CARD s,a,b,c,d,e,f,g)›[$85$82$86$83$84$A2$AD _DEVIC $0A$0A›$0A$0A$85$C1$A0$00$84$87$84$C0$B1$82›$F0$4C$85$86$E6$C0$F0$46$A4$C0$C4$86›$F0$02$B0$3E$B1$82$C9$25$D0$3E$E6$C0›$C8$C4$86$F0$02$B0$35$B1$82$C9$25$F0›$2F$C9$45$F0$29$A8$A6$87$E0$0E$B0$D4›$B5$A2$48$B5$A3$E8$E8$86$87$AA$68$C0›$43$F0$15$C0$49$F0$34$C0$48$F0$3C$C0›$53$F0$3F$38$B0$1D$60$38$B0$B2$A9$9B›$A8$A6$C1$A9$00$9D$48$03$9D$49$03$A9›$0B$9D$42$03$98$20 _GOCIO $38$B0$E4›$A0$03$84$A3$A0$FD$20 StrC $38$B0$0F›$A0$03$84$A3$A0$FD$20 StrI $38$B0$03›$20 _HEXSTR $A9$FD$A2$03$85$84$86$85›$A6$C1$A9$00$9D$49$03$A8$B1$84$F0$B5›$9D$48$03$18$A5$84$69$01$9D$44$03$A5›$85$69$00$9D$45$03$A9$0B$9D$42$03$20›_GOCIO $38$B0$98]››PROC PutD=*(BYTE d, c)›[$86$A0$20 _LODCHN $A9$00$9D$48$03$9D›$49$03$A9$0B$9D$42$03$A5$A0$20 _GOCIO›$60]››PROC PutDE=*(BYTE d)›[$A2$9B$4C PutD]››PROC Put=*(BYTE c)›[$AA$AD _DEVIC $4C PutD]››PROC PutE=*()›[$A9$9B$4C Put]››BYTE FUNC ValB=*(CARD a)›CARD FUNC ValC=*(CARD a)›INT FUNC ValI=*(CARD a)›[$85$A2$86$A3$A9$00$85$A0$85$A1$85$A5›$A8$B1$A2$85$A4$C8$B1$A2$C9$20$F0$F9›$C9$2D$D0$0B$C6$A5$C8$C4$A4$F0$02$B0›$31$B1$A2$38$E9$30$90$2A$C9$0A$B0$26›$48$06$A0$26$A1$A5$A0$A6$A1$0A$26$A1›$0A$26$A1$18$65$A0$85$A0$8A$65$A1$85›$A1$18$68$65$A0$85$A0$90$CD$E6$A1$38›$B0$C8$A5$A5$F0$0D$38$A9$00$E5$A0$85›$A0$A9$00$E5$A1$85$A1$60]››PROC _DOINPT=*()›;Called by all input routines.›[$86$A4$84$A5$20 _LODCHN $18$A5$A4$69›$01$9D$44$03$A5$A5$69$00$9D$45$03$A5›$A3$F0$18$9D$48$03$A9$00$9D$49$03$A9›$05$9D$42$03$20 _GOCIO $BD$48$03$F0›$03$38$E9$01$A0$00$91$A4$A5$A6$F0$07›$A5$A4$A6$A5$4C ValC $60]››BYTE FUNC InputBD=*(BYTE d)›CARD FUNC InputCD=*(BYTE d)›INT FUNC InputID=*(BYTE d)›[$48$A9$78$85$A3$A9$01$85$A6$68$A2$FD›$A0$03$4C _DOINPT]››BYTE FUNC InputB=*()›CARD FUNC InputC=*()›INT FUNC InputI=*()›[$AD _DEVIC$4C InputCD]››PROC InputMD=*(BYTE d CARD s BYTE l)›[$48$A9$00$85$A6$68$4C _DOINPT]››PROC InputSD=*(BYTE d CARD s)›[$48$A9$FF$85$A3$68$4C InputMD]››PROC InputS=*(CARD s)›[$20 _SHFTR $4C InputSD]››CHAR FUNC GetD=*(BYTE d)›[$20 _LODCHN $A9$00$9D$48$03›$9D$49$03$A9$07$9D$42$03$20 _GOCIO›$85$A0$60]››PROC Open=*(BYTE d CARD s BYTE m, a)›[$86$A1$20 _LODCHN $A5$A1$20› _STONAM $A5$A3$9D$4A$03$A5$A4$9D$4B›$03$A9$03$9D$42$03$20 _GOCIO $8A$4A›$4A$4A$4A$AA$A9$00$9D$C0$05$60]››PROC Close=*(BYTE d)›[$20 _LODCHN $A9$0C$9D$42$03$20›_GOCIO $60]››PROC XIO=*(BYTE d,z,c,a1,a2 CARD s)›[$20 _LODCHN $98$9D$42$03$A5$A3$9D$4A›$03$A5$A4$9D$4B$03$A5$A5$A4$A6$20›_STONAM $20 _GOCIO $60]››PROC Note=*(BYTE d CARD s, o)›[$86$A1$84$A2$20 _LODCHN $A9$26$9D$42›$03$20 _GOCIO $A0$00$BD$4C$03$91$A1›$BD$4E$03$91$A3$BD$4D$03$C8$91$A1$60]››PROC Point=*(BYTE d CARD s BYTE o)›[$86$A1$20 _LODCHN $A5$A1$9D$4C$03$98›$9D$4D$03$A5$A3$9D$4E$03$A9$25$9D$42›$03$20 _GOCIO $60]››PROC Graphics=*(BYTE m)›[$48$A2$60$A9$0C$9D$42$03$20$56$E4$68›$9D$4B$03$49$10$09$0C$9D$4A$03$A9$53›$85$A0$A9$3A$85$A1$A9$A0$9D$44$03$A9›$00$9D$45$03$A9$03$9D$42$03$20 _GOCIO›$60]››PROC SetColor=*(BYTE r, h, l)›[$C9$05$B0$13$85$A0$8A$0A$0A$0A$0A$85›$A1$98$29$0F$05$A1$A6$A0$9D$C4$02$60]››PROC Position=*(CARD x BYTE y)›[$85$55$86$56$84$54$60]››PROC Plot=*(CARD x BYTE y)›[$20 Position $A9$06$AE$FD$02$4C›PutD]››PROC DrawTo=*(CARD x BYTE y)›[$20 Position $A2$60$A9$11›$9D$42$03$AD$FB$02$8D$FD$02$20 _GOCIO›$60]››PROC Fill=*(CARD x BYTE y)›[$20 Position $A2$60$A9$12›$9D$42$03$AD$FB$02$8D$FD$02$20 _GOCIO›$60]››BYTE FUNC Locate=*(CARD x BYTE y)›[$20 Position $A9$06$4C GetD]››PROC Sound=*(BYTE c, p, d, v)›[$C9$04$B0$25$86$A1$0A$AA$A9$00$8D$08›$D2$A9$03$8D$0F$D2$A5$A3$29$0F$85$A3›$98$29$0E$0A$0A$0A$0A$05$A3$9D$01$D2›$A5$A1$9D$00$D2$60]››PROC SndRst=*()›[$A9$00$A2$07$9D$00$D2$CA$10$FA$60]››BYTE FUNC Paddle=*(BYTE p)›[$29$07$AA$BD$70$02$85$A0$60]››BYTE FUNC PTrig=*(BYTE p)›[$29$07$AA$BD$7C$02$85$A0$60]››BYTE FUNC Stick=*(BYTE p)›[$29$03$AA$BD$78$02$85$A0$60]››BYTE FUNC STrig=*(BYTE p)›[$29$03$AA$BD$84$02$85$A0$60]››INT FUNC SCompare=*(CARD s1, s2)›[$85$A4$86$A5$84$A2$A0$00$84$A0$84$A1›$B1$A4$85$A6$B1$A2$85$A7$C4$A6$F0$15›$C4$A7$F0$11$C8$B1$A4$D1$A2$F0$F1$90›$03$E6$A0$60$C6$A0$C6$A1$60$A5$A6$C5›$A7$F0$F9$B0$F0$90$F1]››PROC SCopy=*(CARD d, s)›[$85$A0$86$A1$84$A2$A0$00$B1$A2$A8$B1›$A2$91$A0$C0$00$F0$04$88$38$B0$F4$60]››PROC SCopyS=*(CARD d, s BYTE b, e)›[$85$A0$86$A1$84$A2$A0$00$84$A6$B1$A2›$C5$A5$B0$02$85$A5$A5$A4$F0$15$C5$A5›$F0$02$B0$0F$A4$A4$E6$A4$B1$A2$E6$A6›$A4$A6$91$A0$38$B0$E7$A5$A6$A0$00$91›$A0$60]››PROC SAssign=*(CARD d, s BYTE b, e)›[$85$A0$86$A1$84$A2$A5$A4$F0$3B$C5$A5›$F0$02$B0$35$85$A7$C6$A7$A0$00$84$A8›$B1$A0$85$A9$B1$A2$85$AA$A5$A7$C5$A5›$B0$15$A5$A8$C5$AA$B0$0F$E6$A8$A4$A8›$B1$A2$E6$A7$A4$A7$91$A0$38$B0$E5$A5›$A7$C5$A9$90$04$A0$00$91$A0$60]››BYTE FUNC Rand=*(BYTE r)›[$85$A2$C6$A2$A9$01$C5$A2$B0$05$38$2A›$38$B0$F7$85$A3$AD$0A$D2$25$A3$C5$A2›$F0$04$90$02$B0$F3$85$A0$60]››PROC Poke=*(CARD a BYTE v)›[$85$A0$86$A1$98$A0$00$91$A0$60]››PROC PokeC=*(CARD a, v)›[$20 Poke $C8$A5$A3$91$A0$60]››BYTE FUNC Peek=*(CARD a)›CARD FUNC PeekC=*(CARD a)›[$85$A2$86$A3$A0$00$B1$A2$85$A0$C8$B1›$A2$85$A1$60]››PROC SetBlock=*(CARD a, l, v)›[$85$A0$86$A1$84$A2$A0$00$A5$A2$D0$04›$A5$A3$F0$16$A5$A4$91$A0$C8$D0$02$E6›$A1$C6$A2$A5$A2$C9$FF$D0$E7$C6$A3$38›$B0$E2$60]››PROC Zero=*(CARD a, l)›[$48$A9$00$85$A4$68$4C SetBlock]››PROC MoveBlock=*(CARD d, s, l)›[$85$A0$86$A1$84$A2$A0$00$A5$A4$D0$04›$A5$A5$F0$18$B1$A2$91$A0$C8$D0$04$E6›$A1$E6$A3$C6$A4$A5$A4$C9$FF$D0$E5$C6›$A5$38$B0$E0$60]››MODULE›