mirror of
https://github.com/jmechner/Prince-of-Persia-Apple-II.git
synced 2025-01-14 10:30:39 +00:00
952 lines
11 KiB
ArmAsm
Executable File
952 lines
11 KiB
ArmAsm
Executable File
* boot
|
|
org = $800
|
|
lst off
|
|
xc off
|
|
|
|
REDFLAG79 = $23B ; in aux mem!
|
|
|
|
*-------------------------------
|
|
* $800 TS (0,0) boot sector
|
|
|
|
SLOT = $2b
|
|
sector = $50
|
|
|
|
text = $fb2f
|
|
home = $fc58
|
|
vtab = $FB5B
|
|
cout = $FDF0
|
|
normal = $fe84
|
|
pr0 = $fe93
|
|
in0 = $fe89
|
|
|
|
*-------------------------------
|
|
|
|
smclo = $4E
|
|
smchi = $4F
|
|
|
|
rw18 = $d000
|
|
|
|
slot = $fd
|
|
track = $fe
|
|
lastrack = $ff
|
|
|
|
dum $00
|
|
|
|
dest ds 2
|
|
source ds 2
|
|
endsourc ds 2
|
|
|
|
dend
|
|
|
|
*-------------------------------------------------
|
|
|
|
org org
|
|
|
|
hex 01
|
|
|
|
entry lda #$60
|
|
sta entry
|
|
|
|
lda #MAKEBIT
|
|
sta smclo
|
|
|
|
ldx #$ff
|
|
stx $4fb
|
|
stx $3f3
|
|
stx $3f4
|
|
stx $7831
|
|
stx $c000 ;80store off
|
|
stx $c002 ;RAMRD main
|
|
stx $9fd8
|
|
stx $c004 ;RAMWRT main
|
|
stx $c00c ;80col off
|
|
stx $c00e ;Altcharset off
|
|
stx $c081 ;write RAM, read ROM (2nd 4k bank)
|
|
txs
|
|
jsr text
|
|
jsr home
|
|
jsr normal
|
|
jsr pr0
|
|
sta $DF35
|
|
jsr in0
|
|
stx $8492
|
|
|
|
ldx SLOT
|
|
txa
|
|
lsr
|
|
lsr
|
|
lsr
|
|
lsr
|
|
ora #$c0
|
|
sta :rdsect+2
|
|
lda #$0f
|
|
sta sector
|
|
|
|
:0 ldy sector
|
|
lda skewtbl,y
|
|
sta $3d
|
|
lda sectaddr,y
|
|
beq :1
|
|
sta $27
|
|
|
|
inc $9fd8
|
|
|
|
:rdsect jsr $005c
|
|
:1 dec sector
|
|
bne :0
|
|
|
|
beq decode
|
|
|
|
skewtbl hex 00,0d,0b,09,07,05,03,01
|
|
hex 0e,0c,0a,08,06,04,02,0f
|
|
|
|
sectaddr hex 00,09,0a,0b,00,0c,0d,0e
|
|
hex 30,31,32,33,34,10,11,2f
|
|
|
|
decode ldx #14
|
|
:loop lda sectaddr,x
|
|
beq :nope
|
|
|
|
sta :smc0+2
|
|
sta :smc1+2
|
|
|
|
ldy #0
|
|
:loop1
|
|
:smc0 lda $FF00,y
|
|
eor $2F00,y
|
|
:smc1 sta $FF00,y
|
|
eor $7831 ;bogus garbage
|
|
sta $7831 ; " " " "
|
|
sta $3C
|
|
iny
|
|
bne :loop1
|
|
|
|
:nope dex
|
|
bpl :loop
|
|
|
|
ldx SLOT
|
|
|
|
stage2 stx slot
|
|
|
|
jsr check128k ;check for 128K memory
|
|
|
|
jsr moverw18 ;& move RW18 to D000
|
|
|
|
lda #0
|
|
sta lastrack
|
|
|
|
jsr rw18
|
|
hex 07,a9 ;Bbund ID byte
|
|
|
|
jsr rw18
|
|
hex 00,01,00 ;drive 1 on
|
|
|
|
jsr rw18 ;seek track 1
|
|
hex 02,00,01
|
|
|
|
* load & run stage 3 boot
|
|
* from drive 1
|
|
|
|
jsr rw18
|
|
hex c3,ee
|
|
|
|
jmp $ee00
|
|
|
|
*-------------------------------------------------
|
|
* Check for AUX memory routine
|
|
|
|
CHECKER lda #$EE
|
|
sta $C005
|
|
lda #>MAKEBIT
|
|
sta smchi
|
|
sta $C003
|
|
sta $0800
|
|
lda $0C00
|
|
cmp #$EE
|
|
bne :0
|
|
asl $0C00
|
|
lda $0800
|
|
cmp $0C00
|
|
beq :1
|
|
:0 clc
|
|
:1 sta $C004
|
|
sta $C002
|
|
rts
|
|
|
|
CHECKEND = *-CHECKER
|
|
|
|
*-------------------------------------------------
|
|
*
|
|
* Check to make sure //c or //e
|
|
* with 128k
|
|
*
|
|
*-------------------------------
|
|
|
|
hex 34
|
|
hex 55
|
|
hex 99
|
|
|
|
check128k
|
|
sta $c081
|
|
|
|
lda $FBB3 ;Apple // family ID byte
|
|
cmp #6
|
|
bne NOT128K ;Must be e/c/GS
|
|
|
|
bit $C017
|
|
bmi NOT128K
|
|
|
|
ldx #CHECKEND
|
|
:0 lda CHECKER,X
|
|
sta $180,X
|
|
dex
|
|
bpl :0
|
|
|
|
jsr $180
|
|
bcs NOT128K
|
|
|
|
rts
|
|
|
|
*-------------------------------
|
|
* Turn off drive and display message
|
|
|
|
NOT128K ldx SLOT
|
|
lda $C088,X
|
|
|
|
jsr text
|
|
jsr home
|
|
lda #8
|
|
jsr vtab
|
|
|
|
ldy #0
|
|
:0 lda MEMTEXT,Y
|
|
beq *
|
|
jsr cout
|
|
cmp #$8D
|
|
bne :1
|
|
lda #4
|
|
sta $24
|
|
:1 iny
|
|
bne :0
|
|
|
|
MEMTEXT hex 8D
|
|
asc "REQUIRES A //C OR //E WITH 128K"
|
|
hex 00
|
|
|
|
*-------------------------------
|
|
* Move RW18
|
|
* d0 < 30.40
|
|
*-------------------------------
|
|
moverw18
|
|
bit $c08b
|
|
bit $c08b ;rd/wrt RAM, 1st 4k bank
|
|
|
|
lda #$d0
|
|
ldx #$30
|
|
ldy #$40
|
|
|
|
* a < x.y
|
|
* 20 < 40.60 means 2000 < 4000.5fffm
|
|
* WARNING: If x >= y, routine will wipe out 64k
|
|
|
|
movemem sta dest+1
|
|
stx source+1
|
|
sty endsourc+1
|
|
|
|
ldy #0
|
|
lda #$24
|
|
sta (smclo),y
|
|
sty dest
|
|
sty source
|
|
sty endsourc
|
|
|
|
:loop lda (source),y
|
|
sta (dest),y
|
|
|
|
iny
|
|
bne :loop
|
|
|
|
inc source+1
|
|
inc dest+1
|
|
|
|
lda source+1
|
|
cmp endsourc+1
|
|
bne :loop
|
|
|
|
MAKEBIT rts
|
|
hex FF
|
|
|
|
*-------------------------------------------------
|
|
*
|
|
* HLS APPLE COPY PROTECTION
|
|
* COPYRIGHT (C) 1987 HLS DUPLICATION
|
|
*
|
|
* CONTACT ROBERT FREEDMAN 408-773-1300
|
|
* IF THERE ARE QUESTIONS ABOUT USE OF
|
|
* THIS CODE
|
|
*
|
|
* EXIT clc IF A O K
|
|
* sec IF PIRATE
|
|
*
|
|
*-------------------------------------------------
|
|
|
|
OBJSCT = $07 ;PHYSICAL SECTOR #
|
|
|
|
* ZERO PAGE
|
|
* IF THIS CONFLICTS WITH YOUR CODE
|
|
* CHANGE THE FOLLOWING ZERO PAGE
|
|
* LOCATIONS, OR USE THE SAVE ZERO
|
|
* PAGE ROUTINE
|
|
|
|
HDRC = $F0
|
|
HDRS = HDRC+1
|
|
HDRT = HDRC+2
|
|
HDRV = HDRC+3 HEADER SECTOR
|
|
LSRETRY = HDRC+4 ;NIB READ RETRIES
|
|
PRETRY = HDRC+5 ;OBJSCT RETRIES
|
|
NPTR = HDRC+6
|
|
NPTRH = HDRC+7
|
|
MEM1 = HDRC+8
|
|
MEM2 = HDRC+9
|
|
|
|
*-------------------------------------------------
|
|
|
|
CheckCP
|
|
lda #10
|
|
sta LSRETRY
|
|
lda #>REDFLAG79
|
|
sta smchi
|
|
ldx SLOT
|
|
lda $C089,X
|
|
lda $C08E,X
|
|
lda #:NIBS ; !!!!! LOW BYTE
|
|
sta NPTR
|
|
lda #>:NIBS ; !!!!! HIGH BYTE
|
|
sta NPTRH
|
|
:AGAIN lda #$80
|
|
sta PRETRY
|
|
:M1 dec PRETRY
|
|
beq :LSFAIL
|
|
jsr RADR16
|
|
bcs :LSFAIL
|
|
lda HDRS
|
|
cmp #OBJSCT
|
|
bne :M1
|
|
|
|
ldy #0
|
|
:M2 lda $C08C,X
|
|
bpl :M2
|
|
dey
|
|
beq :LSFAIL
|
|
cmp #$D5
|
|
bne :M2
|
|
ldy #0
|
|
|
|
:M3 lda $C08C,X
|
|
bpl :M3
|
|
dey
|
|
beq :LSFAIL
|
|
cmp #$E7
|
|
bne :M3
|
|
|
|
:M4 lda $C08C,X
|
|
bpl :M4
|
|
cmp #$E7
|
|
bne :LSFAIL
|
|
|
|
:M5 lda $C08C,X
|
|
bpl :M5
|
|
cmp #$E7
|
|
bne :LSFAIL
|
|
|
|
lda $C08D,X
|
|
ldy #$10
|
|
bit $6 ;3 US. ( FOR //C)
|
|
:M6 lda $C08C,X
|
|
bpl :M6
|
|
dey
|
|
beq :LSFAIL
|
|
cmp #$EE
|
|
bne :M6
|
|
|
|
* NOW AT 1/2 NIBBLES
|
|
*
|
|
* INSTEAD OF COMPARING AGAINST A TABLE
|
|
* THE DATA READ FROM THE DISK CAN BE
|
|
* USED IN YOUR PROGRAM. BE CAREFUL
|
|
* WHEN MODIFYING THIS PART OF THE CODE.
|
|
* KEEP THE CYCLE COUNTS CONSTANT.
|
|
|
|
ldy #7
|
|
:M7 lda $C08C,X ; READ DISK DATA
|
|
bpl :M7
|
|
cmp (NPTR),Y ; COMPARE AGAINST TABLE
|
|
bne :LSFAIL1
|
|
dey
|
|
bpl :M7
|
|
bmi :GOOD
|
|
|
|
:LSFAIL jmp :LSFAIL1
|
|
|
|
* A O K
|
|
|
|
:GOOD eor #$79!$FC
|
|
iny
|
|
ldx #6
|
|
dex
|
|
sta $C000,x
|
|
sta (smclo),y
|
|
dex
|
|
sta $C000,x
|
|
eor #$ED
|
|
sta $239
|
|
eor #$23
|
|
sta $4E
|
|
|
|
jmp yippee
|
|
|
|
* FAILED, try again
|
|
|
|
:LSFAIL1 ldy #-1
|
|
tya
|
|
dec LSRETRY
|
|
beq :GOOD
|
|
jmp :AGAIN
|
|
|
|
:NIBS db $FC,$EE,$EE,$FC
|
|
db $E7,$EE,$FC,$E7
|
|
|
|
*-------------------------------------------------
|
|
*
|
|
* Read address mark
|
|
*
|
|
|
|
RADR16 ldy #$FD ;READ ADR HDR
|
|
sty MEM1
|
|
tya
|
|
eor #REDFLAG79!$FD
|
|
sta smclo
|
|
:RA1 iny
|
|
bne :RA2
|
|
inc MEM1
|
|
beq :RAEXIT
|
|
:RA2 lda $C08C,X
|
|
bpl :RA2
|
|
:RA3 cmp #$D5
|
|
bne :RA1
|
|
nop
|
|
:RA4 lda $C08C,X
|
|
bpl :RA4
|
|
cmp #$AA
|
|
bne :RA3
|
|
ldy #3
|
|
:RA5 lda $C08C,X
|
|
bpl :RA5
|
|
cmp #$96
|
|
bne :RA3
|
|
lda #0
|
|
:RA6 sta MEM2
|
|
:RA7 lda $C08C,X
|
|
bpl :RA7
|
|
rol
|
|
sta MEM1
|
|
:RA8 lda $C08C,X
|
|
bpl :RA8
|
|
and MEM1
|
|
sta HDRC,Y
|
|
eor MEM2
|
|
dey
|
|
bpl :RA6
|
|
tay
|
|
nop
|
|
clc
|
|
rts
|
|
|
|
:RAEXIT sec
|
|
]rts rts
|
|
|
|
oscsh sec
|
|
jsr $FE1F
|
|
bcs *
|
|
|
|
jsr $1000
|
|
|
|
jmp ($FFFC)
|
|
|
|
*-------------------------------------------------
|
|
|
|
yippee ldx SLOT
|
|
lda $C061
|
|
bpl ]rts
|
|
lda $C062
|
|
bpl ]rts
|
|
lda $C000
|
|
bpl ]rts
|
|
bit $C010
|
|
sta :cmp+1
|
|
|
|
ldy #-3
|
|
:loop iny
|
|
iny
|
|
iny
|
|
lda :dispatch,y
|
|
beq ]rts
|
|
:cmp cmp #$11
|
|
bne :loop
|
|
|
|
lda :dispatch+1,y
|
|
sta 0
|
|
lda :dispatch+2,y
|
|
sta 1
|
|
|
|
bit $C081
|
|
lda $C088,x
|
|
|
|
jmp (0)
|
|
|
|
:dispatch hex FF
|
|
da oscsh
|
|
|
|
asc "!"
|
|
da rcmess
|
|
|
|
hex 8D
|
|
da confusion
|
|
|
|
asc "@"
|
|
da rotcube
|
|
|
|
asc "^"
|
|
da drive
|
|
|
|
db 0
|
|
|
|
*-------------------------------------------------
|
|
*
|
|
* motorcycle disk drive
|
|
*
|
|
|
|
drive lda $C089,x ;drive back on!
|
|
|
|
:loop lda $C087,x
|
|
lda $C080,x
|
|
jsr :delay
|
|
lda $C085,x
|
|
lda $C086,x
|
|
jsr :delay
|
|
lda $C083,x
|
|
lda $C084,x
|
|
jsr :delay
|
|
lda $C081,x
|
|
lda $C082,x
|
|
jsr :delay
|
|
jmp :loop
|
|
|
|
:delay lda #6
|
|
sta 0
|
|
|
|
:del2 bit $C070
|
|
nop
|
|
nop
|
|
bit $C064
|
|
bmi *-3
|
|
|
|
dec 0
|
|
bne :del2
|
|
rts
|
|
|
|
*------------------------------------------------- rotcube
|
|
|
|
mainYoffset = 46 ;(192-60)/2
|
|
botYoffset = 72
|
|
mainXoffset = 68 ;(280-144)/2
|
|
|
|
color = $E4
|
|
page = $E6
|
|
|
|
dum 0
|
|
index ds 1
|
|
ysave ds 1
|
|
yadd ds 1
|
|
yoffset ds 1
|
|
dend
|
|
|
|
*-------------------------------------------------
|
|
|
|
rotcube jsr $f3e2 ;hgr
|
|
jsr $f3d8 ;hgr2
|
|
|
|
lda #1
|
|
sta yadd
|
|
|
|
sta yoffset
|
|
|
|
* Draw on page not showing:
|
|
|
|
mainloop lda page
|
|
eor #$60
|
|
sta page
|
|
ldx #$7F
|
|
jsr draw
|
|
|
|
* If not a //c, then wait for vbl
|
|
|
|
lda $FBC0
|
|
beq :is2c
|
|
lda $C019
|
|
bpl *-3
|
|
lda $C019
|
|
bmi *-3
|
|
:is2c
|
|
|
|
* Now display that page
|
|
|
|
bit $C054
|
|
lda page
|
|
cmp #$20
|
|
beq *+5
|
|
bit $C055
|
|
|
|
* Now erase old image from last page
|
|
|
|
eor #$60
|
|
sta :smc0+2
|
|
sta :smc1+2
|
|
ldx #$20
|
|
lda #0
|
|
:loop tay
|
|
:smc0 sta $2000,y
|
|
:smc1 sta $2080,y
|
|
iny
|
|
bpl :smc0
|
|
inc :smc0+2
|
|
inc :smc1+2
|
|
dex
|
|
bne :loop
|
|
|
|
inc index
|
|
jmp mainloop
|
|
|
|
*-------------------------------------------------
|
|
|
|
draw stx color
|
|
|
|
ldy #12-1
|
|
:drawloop lda drawlist,y
|
|
sty ysave
|
|
|
|
pha
|
|
and #15
|
|
jsr getpoint
|
|
|
|
tax
|
|
tya
|
|
ldy #0
|
|
jsr $f457 ;plot
|
|
|
|
pla
|
|
lsr
|
|
lsr
|
|
lsr
|
|
lsr
|
|
jsr getpoint
|
|
ldx #0
|
|
jsr $f53a ;lineto
|
|
|
|
ldy ysave
|
|
dey
|
|
bpl :drawloop
|
|
|
|
lda yoffset
|
|
clc
|
|
adc yadd
|
|
bne :not0
|
|
|
|
inc yadd ;make +1
|
|
inc yadd
|
|
|
|
:not0 cmp #191-48-botYoffset
|
|
bcc :0
|
|
|
|
dec yadd ;make -1
|
|
dec yadd
|
|
|
|
:0 sta yoffset
|
|
rts
|
|
|
|
*-------------------------------------------------
|
|
*
|
|
* given a = point number, return a = xcoor, y = ycoor
|
|
*
|
|
|
|
getpoint tay
|
|
|
|
* Get index into tables
|
|
|
|
asl ;*16
|
|
asl
|
|
asl
|
|
asl
|
|
adc index
|
|
and #$3F
|
|
tax
|
|
tya
|
|
|
|
and #4 ;bottom?
|
|
cmp #4
|
|
|
|
* Compute ycoor
|
|
|
|
lda ydata,x
|
|
bcc :not_bot
|
|
adc #botYoffset-1
|
|
|
|
:not_bot adc yoffset
|
|
tay
|
|
|
|
* Compute xcoor
|
|
|
|
lda xdata,x
|
|
adc #mainXoffset
|
|
rts
|
|
|
|
*-------------------------------------------------
|
|
|
|
drawlist hex 01122330 ;draw top
|
|
hex 45566774 ;draw bottom
|
|
hex 04152637 ;draw connecting lines
|
|
|
|
xdata hex 908F8E8C8A87837F7A757069635C564F
|
|
hex 484039332C261F1A15100C0805030100
|
|
hex 0000010305080C10151A1F262C333940
|
|
hex 474F565C636970757A7F83878A8C8E8F
|
|
|
|
ydata hex 181A1C1E21232527282A2B2D2E2E2F2F
|
|
hex 2F2F2F2E2E2D2B2A28272523211E1C1A
|
|
hex 181513110E0C0A080705040201010000
|
|
hex 000000010102040507080A0C0E111315
|
|
|
|
*------------------------------------------------- confusion
|
|
|
|
dum 0
|
|
xr ds 1
|
|
yr ds 1
|
|
randseed ds 1
|
|
temp ds 1
|
|
dend
|
|
|
|
hgr2 = $F3D8
|
|
plot = $F457
|
|
hcolor = $F6F0
|
|
|
|
* Confusion triangle
|
|
|
|
confusion lda #$7F
|
|
sta $E4 ;hcolor=3
|
|
|
|
jsr hgr2
|
|
|
|
* xr=xarray(0), yr=yarray(0)
|
|
|
|
ldx xarray
|
|
ldy yarray
|
|
stx xr
|
|
sty yr
|
|
|
|
* Plot that dot
|
|
|
|
:loop lda $C000
|
|
bpl :nokey
|
|
bit $C010
|
|
cmp #$E0
|
|
bcc *+4
|
|
and #$DF
|
|
cmp #"C"
|
|
bne :nokey
|
|
|
|
:randcol jsr getrandcol
|
|
sta temp
|
|
jsr $F3F4 ;clear to that color
|
|
|
|
:randloop jsr getrandcol
|
|
tax
|
|
eor temp
|
|
bmi :randloop ;different hi bits
|
|
cpx temp ;same color
|
|
beq :randloop
|
|
|
|
:nokey ldy #0
|
|
lda xr
|
|
asl
|
|
tax
|
|
bcc :skip
|
|
iny
|
|
:skip lda yr
|
|
jsr plot
|
|
|
|
lda yr
|
|
ldx $E0
|
|
ldy $E1
|
|
inx
|
|
bne *+3
|
|
iny
|
|
jsr plot
|
|
|
|
* Get a random number between 0-2
|
|
|
|
jsr random
|
|
sec
|
|
:sub30 sbc #30
|
|
bcs :sub30
|
|
adc #30
|
|
sec
|
|
:sub3 sbc #3
|
|
bcs :sub3
|
|
adc #3
|
|
tax
|
|
|
|
*-----------
|
|
* xr stuff:
|
|
* determine which midpoint routine to use
|
|
|
|
lda xarray,x
|
|
cmp xr
|
|
bge :xarr_xr
|
|
|
|
* If xarray(rand) < xr then:
|
|
* xr = xarray + ( xr - xarray) / 2
|
|
|
|
lda xr
|
|
sec
|
|
sbc xarray,x
|
|
lsr
|
|
clc
|
|
adc xarray,x
|
|
jmp :sta_xr
|
|
|
|
* If xarray(rand) >= xr then:
|
|
* xr = xr + ( xarray - xr ) / 2
|
|
|
|
:xarr_xr lda xarray,x
|
|
sec
|
|
sbc xr
|
|
lsr
|
|
clc
|
|
adc xr
|
|
:sta_xr sta xr
|
|
|
|
*-----------
|
|
* yr stuff:
|
|
* determine which midpoint routine to use
|
|
|
|
lda yarray,x
|
|
cmp yr
|
|
bge :yarr_yr
|
|
|
|
* If yarray(rand) < yr then:
|
|
* yr = yarray + ( yr - yarray) / 2
|
|
|
|
lda yr
|
|
sec
|
|
sbc yarray,x
|
|
lsr
|
|
clc
|
|
adc yarray,x
|
|
jmp :sta_yr
|
|
|
|
* If yarray(rand) >= yr then:
|
|
* yr = yr + ( yarray - yr ) / 2
|
|
|
|
:yarr_yr lda yarray,x
|
|
sec
|
|
sbc yr
|
|
lsr
|
|
clc
|
|
adc yr
|
|
:sta_yr sta yr
|
|
|
|
jmp :loop
|
|
|
|
xarray db 70,139,0
|
|
yarray db 0,191,191
|
|
|
|
random lda randseed
|
|
adc #$23
|
|
sta randseed
|
|
eor $C020 ;a little randomness
|
|
rts
|
|
|
|
getrandcol jsr random
|
|
and #7
|
|
tax
|
|
jmp hcolor
|
|
|
|
*------------------------------------------------- rcmess
|
|
|
|
rcmess ldy #0
|
|
:0 lda :text,y
|
|
beq :lores
|
|
jsr $FDF0
|
|
iny
|
|
bne :0
|
|
|
|
:lores bit $c000
|
|
bpl :lores
|
|
|
|
sta $c00d ;80 col
|
|
sta $c001 ;80 store
|
|
bit $c056
|
|
bit $c052
|
|
bit $c050
|
|
bit $c05e ;merez
|
|
|
|
:loop lda #$FF
|
|
jsr :random
|
|
sta $30 ;color
|
|
|
|
lda #80 ;max x
|
|
jsr :random
|
|
lsr
|
|
tay
|
|
bit $c054
|
|
bcs *+5
|
|
bit $c055
|
|
|
|
lda #48 ;max y
|
|
jsr :random
|
|
|
|
jsr $F800 ;plot
|
|
|
|
jmp :loop
|
|
|
|
:random sta 1
|
|
|
|
lda 0
|
|
adc #$23
|
|
sta 0
|
|
eor $C020
|
|
|
|
cmp 1
|
|
bcc :ok
|
|
:loop2 sbc 1
|
|
bcs :loop2
|
|
adc 1
|
|
|
|
:ok rts
|
|
|
|
:text hex 8d8d
|
|
asc "8/25/89",8d8d8d
|
|
asc "Robert!",8d8d8d
|
|
asc "Jordan and Roland wish you the very",8d8d
|
|
asc "Brightest College Years.",8d8d8d8d8d
|
|
asc " meres !",8d,8d
|
|
asc " meres !",8d,8d
|
|
asc " meres !"
|
|
brk
|
|
|
|
*------------------------------------------------- EOF
|
|
|
|
lst on
|
|
da *
|
|
lst off
|