Annotate st (#235)

* Annotate st

* Fix consistency

* Add missing comments
This commit is contained in:
Mohamed Akram
2023-01-27 10:52:28 -05:00
committed by GitHub
parent b46b160a43
commit 61951f20b1
7 changed files with 366 additions and 366 deletions
+93 -93
View File
@@ -4,17 +4,17 @@
t = 0 t = 0
start: "[------ stuff for gravity - scan markup] start: "[------ stuff for gravity - scan markup]
law 13 law 13 " 13 = pbsflgs
sys sysloc sys sysloc " get pbsflgs location
dac .pbson dac .pbson " store in .pbson
lac pww lac pww
dac 1f dac 1f
dac 2f dac 2f
lac pw lac pw
dac 3f dac 3f
-32 -32
dac cplan dac cplan " cplan = -32
4: 4: " while (cplan != 0) {
fld; 1:0 fld; 1:0
fmp; 2:0 fmp; 2:0
-1 -1
@@ -22,7 +22,7 @@ start: "[------ stuff for gravity - scan markup]
dac aexp dac aexp
fng fng
fad; fpone fad; fpone
fst; 3:0 fst; 3:0 " pw[i] = - (pww[i] * pww[i]) / 2 + 1
lac 1b lac 1b
tad d3 tad d3
dac 1b dac 1b
@@ -30,36 +30,36 @@ start: "[------ stuff for gravity - scan markup]
lac 3b lac 3b
tad d3 tad d3
dac 3b dac 3b
isz cplan isz cplan " cplan++
jmp 4b jmp 4b " }
law dspl-1 law dspl-1
dac clistp dac clistp
dac lanflg dac lanflg " lanflg = true
dzm crflg dzm crflg " crflg = false
dzm goflg dzm goflg " goflg = false
dzm .pbsint dzm .pbsint " pbsint = 0
dzm forflg dzm forflg " forflg = false
dzm bacflg dzm bacflg " bacflg = false
dzm dspflg "[line connecting this instruction to... - scan markup] dzm dspflg "[line connecting this instruction to... - scan markup]
dzm locflg dzm locflg " locflg = false
dzm locpar "[... this instruction - scan markup] dzm locpar "[... this instruction - scan markup]
lac d1 lac d1
dac par dac par " par = 1
jms dispname jms dispname " dispname()
fld; prsq+4 fld; prsq+4
sqrt sqrt
fst; rpar fst; rpar " rpar = sqrt(prsq[par])
fst; y fst; y " y = rpar
fst; oy fst; oy " oy = y
fld; fpone fld; fpone
fst; sphi fst; sphi " sphi = 1
fst; stheta fst; stheta " stehta = sphi
jms dspsca jms dspsca " dspsca()
fld; fpzero fld; fpzero
fst; x fst; x " x = 0
fst; ox fst; ox " ox = x
fst; cphi fst; cphi " cphi = ox
fst; ctheta fst; ctheta " ctheta = cphi
law displist law displist
"** 12-92-119.pdf page 2 "** 12-92-119.pdf page 2
sys capt sys capt
@@ -70,43 +70,43 @@ loop:
dac clistp dac clistp
jms contrl "[arrow from below points to this instruction - scan markup] jms contrl "[arrow from below points to this instruction - scan markup]
lac par lac par
jms absxy jms absxy " absxy(par)
jms shipxy jms shipxy " shipxy()
lac goflg lac goflg
spa spa
jmp loop3 "[long dash after loop3 - scan markup] jmp loop3 "[long dash after loop3 - scan markup] if (!goflg) {
fld; fpzero fld; fpzero
fst; ax fst; ax " ax = 0
fst; ay fst; ay " ay = 0
fst; maxa fst; maxa " maxa = 0
lac nplan lac nplan " AC = nplan
skp skp
loop1: loop1:
lac cplan lac cplan " AC = cplan
tad dm1 tad dm1 " AC--
spa spa
jmp loop2 jmp loop2 " while (AC >= 0) {
dac cplan dac cplan " cplan = AC
tad fppar tad fppar
dac fcplan dac fcplan
lac i fcplan lac i fcplan
dac fcplan dac fcplan
jms updacc jms updacc " updacc()
jms displa jms displa " displa()
lac cplan lac cplan
sza sza
jms updpln jms updpln " if (cplan) updpln()
lac cplan lac cplan
and o7 and o7
sad o7 sad o7
jms contrl jms contrl " if (cplan & 7 == 7) contrl()
jmp loop1 jmp loop1 " }
loop2: loop2:
lac lanflg lac lanflg
sma sma
jms updshp jms updshp " if (!lanflg) updshp()
loop3: loop3: " }
fld; horizv "[a box enclosing all code from loop3 to loop4 - scan markup] fld; horizv "[a box enclosing all code from loop3 to loop4 - scan markup]
lac scale "[arrow drawn from box up to location above - scan markup] lac scale "[arrow drawn from box up to location above - scan markup]
cma cma
@@ -114,128 +114,128 @@ loop3:
tad aexp tad aexp
dac aexp dac aexp
jms inscr jms inscr
jmp loop4 jmp loop4 " if ((AC = inscr(horizv / 2**(vscale-scale-1)))) {
tad o141577 tad o141577
dac i clistp "[crossed out with an arrow pointint to "dac dspvel" - scan markup] dac i clistp "[crossed out with an arrow pointint to "dac dspvel" - scan markup]
lac o164372 "[crossed out - scan markup] lac o164372 "[crossed out - scan markup]
dac clistp i "[crossed out - scan markup] dac clistp i "[crossed out - scan markup]
cla "[crossed out - scan markup] cla "[crossed out - scan markup]
jms dsplanet "[crossed out - scan markup] jms dsplanet "[crossed out - scan markup] dsplanet(0)
loop4: "[inside a drawn box - scan markup] loop4: "[inside a drawn box - scan markup] }
sys time "put delay here..... sys time "put delay here.....
"** 12-92-119.pdf page 3 "** 12-92-119.pdf page 3
dzm dispcl dzm dispcl " dispcl = ""
lac crflg lac crflg
sma sma
jmp 1f jmp 1f " if (crflg)
lac o20714 "cl lac o20714 "cl
dac dispcl dac dispcl " dispcl = "CL"
jmp 2f jmp 2f
1: 1:
lac lanflg lac lanflg
sma sma
jmp 2f jmp 2f " else if (lanflg)
lac o114 "l lac o114 "l
dac dispcl dac dispcl " dispcl = "L"
2: 2:
lac dhalt lac dhalt
dac i clistp dac i clistp
jmp loop " check 2-display question jmp loop " check 2-display question
contrl: 0 contrl: 0
lac i .pbson lac i .pbson " load push button flags
xor .pbsint xor .pbsint
and .pbson i and .pbson i " AC = (.pbson ^ .pbsint) & .pbson
sna sna
jmp noneon jmp noneon " if (AC) {
lmq lmq
spa ral spa ral
sys exit sys exit " if (pbson[0]) exit()
sma sma
jmp 1f jmp 1f " if (pbson[1]) {
dzm goflg dzm goflg " goflg = false
dzm crflg dzm crflg " crflg = false
1: 1: " }
lacq lacq
als 6 als 6
sma ral sma ral
jmp 1f jmp 1f " if (pbson[6]) {
spa spa
jmp noneon jmp noneon " if (!pbson[7]) {
isz scale isz scale " scale++
nop nop
jms dspsca "uprange jms dspsca "uprange
jmp noneon jmp noneon " }
1: 1: " }
sma sma
jmp noneon jmp noneon " if (pbson[7]) {
-1 -1
tad scale tad scale
dac scale dac scale " scale--
jms dspsca "downrange jms dspsca "downrange
noneon: noneon: " } }
dzm forflg dzm forflg " forflg = false
dzm bacflg dzm bacflg " bacflg = false
lac i .pbson lac i .pbson
dac .pbsint dac .pbsint
als 2 als 2
sma sma
jmp 1f jmp 1f " if (pbson[2]) {
lac dhalt lac dhalt
dac forflg dac forflg " forflg = true
lac goflg lac goflg
sma sma
"** 12-92-119.pdf page 4 "** 12-92-119.pdf page 4
dzm lanflg dzm lanflg " if (!goflg) lanflg = false
1: 1: " }
lac i .pbson lac i .pbson
als 3 als 3
sma sma
jmp 1f jmp 1f " if (pbson[3]) {
lac dhalt lac dhalt
dac bacflg dac bacflg " bacflg = true
lac goflg lac goflg
sma sma
dzm lanflg dzm lanflg " if (!goflg) lanflg = false
1: 1: " }
lac i .pbson lac i .pbson
als 4 als 4
sma sma
jmp 1f jmp 1f " if (pbson[4]) {
ral ral
spa spa
jmp i contrl jmp i contrl " if (pbson[5]) return
dzm 9f+t dzm 9f+t " 9f+t = false
jmp 2f jmp 2f
1: 1: " } else {
ral ral
sma sma
jmp i contrl jmp i contrl " if (!pbson[5]) return
lac dhalt lac dhalt
dac 9f+t dac 9f+t " 9f+t = true
2: 2: " }
fld; cphi fld; cphi
fmp; sdphi fmp; sdphi
lac 9f+t lac 9f+t
sma sma
fng fng
fst; ftmp1 fst; ftmp1 " ftmp1 = cphi * sdphi * (9f+t ? 1 : -1)
fld; sphi fld; sphi
fmp; cdphi fmp; cdphi
fad; ftmp1 fad; ftmp1
fst; ftmp2 fst; ftmp2 " ftmp2 = sphi * cdphi + ftmp1
fld; sphi fld; sphi
fmp; sdphi fmp; sdphi
lac 9f+t lac 9f+t
spa spa
fng fng
fst; ftmp1 fst; ftmp1 " ftmp1 = sphi * sdphi * (9f+t ? -1 : 1)
fld; cphi fld; cphi
fmp; cdphi fmp; cdphi
fad; ftmp1 fad; ftmp1
fst; cphi fst; cphi " cphi = cphi * cdphi + ftmp1
fld; ftmp2 fld; ftmp2
fst; sphi fst; sphi " sphi = ftmp2
jmp i contrl jmp i contrl
t = t+1 t = t+1
@@ -244,10 +244,10 @@ shipxy: 0
fld; absx fld; absx
fad; x fad; x
fng fng
fst; shipx fst; shipx " shipx = -(absx + x)
fld; absy fld; absy
fad; y fad; y
"** 12-92-119.pdf page 5 "** 12-92-119.pdf page 5
fng fng
fst; shipy fst; shipy " shipy = -(absy + y)
jmp i shipxy jmp i shipxy
+67 -67
View File
@@ -9,32 +9,32 @@ absv: 0
dzm absy+1 dzm absy+1
dzm absy+2 dzm absy+2
1: 1:
dac absi dac absi " absi = AC
sna sna
jmp i absv jmp i absv " while (absi) {
tad fppar tad fppar
dac 9f+t dac 9f+t
jms invert jms invert " invert(absi) -> ftmp1 = px[absi], ftmp2 = py[absi]
fld; ftmp1 fld; ftmp1
fng fng
fad; absx fad; absx
fst; absx fst; absx " absx -= ftmp1
fld; ftmp2 fld; ftmp2
fng fng
fad; absy fad; absy
fst; absy fst; absy " absy -= ftmp2
jms invert jms invert " invert(absi) -> ftmp1 = px[absi], ftmp2 = py[absi]
fld; ftmp1 fld; ftmp1
fad; absx fad; absx
fst; absx fst; absx " absx += ftmp1
fld; ftmp2 fld; ftmp2
fad; absy fad; absy
fst; absy fst; absy " absy += ftmp2
lac absi lac absi
tad ppar tad ppar
dac 9f+t dac 9f+t
lac i 9f+t lac i 9f+t " absi = ppar[absi]
jmp 1b jmp 1b " }
invert: 0 invert: 0
lac i 9f+t lac i 9f+t
@@ -50,12 +50,12 @@ invert: 0
dac 4f dac 4f
fld; 1:.. fld; 1:..
fng fng
fst; 2:.. fst; 2:.. " pww[par] = -pww[par]
jms updpln jms updpln " updpln()
fld; 3:.. fld; 3:..
fst; ftmp1 fst; ftmp1 " ftmp1 = px[par]
fld; 4:.. fld; 4:..
fst; ftmp2 fst; ftmp2 " ftmp2 = py[par]
jmp i invert jmp i invert
t = t+1 t = t+1
@@ -82,122 +82,122 @@ updpln: 0
dac 8f dac 8f
fld; 1:.. fld; 1:..
fst; ftmp1 fst; ftmp1 " ftmp1 = px[fcplan]
fmp; 2:.. fmp; 2:..
fst; ftmp2 fst; ftmp2 " ftmp2 = ftmp1 * pw[fcplan]
fld; 3:.. fld; 3:..
fmp; 4:.. fmp; 4:..
fng fng
fad; ftmp2 fad; ftmp2
fst; 5:.. fst; 5:.. " px[fcplan] = - (py[fcplan] * pww[fcplan]) + ftmp2
fld; 6:.. fld; 6:..
fmp; 7:.. fmp; 7:..
fst; ftmp2 fst; ftmp2 " ftmp2 = py[fcplan] * pw[fcplan]
fld; ftmp1 fld; ftmp1
fmp; 8:.. fmp; 8:..
fad; ftmp2 fad; ftmp2
fst; 0:.. fst; 0:.. " py[fcplan] = ftmp1 * pww[fcplan] + ftmp2
jmp updpln i jmp updpln i
updacc: 0 updacc: 0 " update acceleration
lac cplan lac cplan
sad par sad par
jmp upda2 jmp upda2 " if (cplan != par) {
jms absxy jms absxy " absxy(cplan)
fld; absx fld; absx
fad; shipx fad; shipx " FAC = absx + shipx
jmp 1f jmp 1f " } else {
upda2: upda2:
fld; x fld; x
fng fng " FAC = -x
1: 1: " }
fst; absx fst; absx " absx = FAC
fmp; absx fmp; absx
fst; ftmp1 fst; ftmp1 " ftmp1 = absx * absx
lac cplan lac cplan
sad par sad par
jmp 1f jmp 1f " if (cplan != par)
fld; absy fld; absy
fad; shipy fad; shipy " FAC = absy + shipy
jmp 2f jmp 2f
1: 1:
fld; y fld; y
fng fng " else FAC = -y
"** 12-92-119.pdf page 8 "** 12-92-119.pdf page 8
2: 2:
fst; absy fst; absy
fmp; absy fmp; absy
fad; ftmp1 fad; ftmp1
fst; dtmp1 fst; dtmp1 " dtmp1 = absy * absy + ftmp1
sqrt sqrt
fst; dpar fst; dpar " dpar = sqrt(dtmp1)
lac cplan lac cplan
sad par sad par
skp skp
jmp upda5 jmp upda5 " if (cplan == par) {
fld; ox fld; ox
fng fng
fad; x fad; x
fst; ftmp1 fst; ftmp1 " ftmp1 = -ox + x
fmp; y fmp; y
fst; horizv fst; horizv " horizv = ftmp1 * y
fld; y fld; y
fng fng
fad; oy fad; oy
fst; ftmp2 fst; ftmp2 " ftmp2 = -y + oy
fmp; x fmp; x
fad; horizv fad; horizv
fdv; dpar fdv; dpar
fst; horizv fst; horizv " horizv = (ftmp2 * x + horizv) / dpar
fld; dpar fld; dpar
fcp; rpar fcp; rpar
sma sma
jmp upda5 jmp upda5 " if (dpar < rpar) {
lac lanflg lac lanflg
spa spa
jmp upda5 jmp upda5 " if (!lanflg) {
fld; ftmp1 fld; ftmp1
fmp; ftmp1 fmp; ftmp1
fst; ftmp1 fst; ftmp1 " ftmp1 *= ftmp1
fld; ftmp2 fld; ftmp2
fmp; ftmp2 fmp; ftmp2
fad; ftmp1 fad; ftmp1
fcp; crash fcp; crash
spa spa
jmp 1f jmp 1f " if (ftmp2 * ftmp2 + ftmp1 > crash) {
lac dhalt lac dhalt
dac goflg dac goflg " goflg = true
dac crflg dac crflg " crflg = true
1: 1: " }
lac dhalt lac dhalt
dac lanflg dac lanflg " lanflg = true
fld; rpar fld; rpar
fdv; dpar fdv; dpar
fst; ftmp1 fst; ftmp1 " ftmp1 = rpar / dpar
fmp; x fmp; x
fst; x fst; x " x *= ftmp1
fst; ox fst; ox " ox = x
fld; ftmp1 fld; ftmp1
fmp; y fmp; y
fst; y fst; y " y *= ftmp1
fst; oy fst; oy " oy = y
lac par lac par
jms absxy jms absxy " absxy(par)
jms shipxy jms shipxy " shipxy()
jmp upda2 jmp upda2 " } } }
"** 12-92-119.pdf page 9 "** 12-92-119.pdf page 9
upda5: upda5:
fcp; fardst fcp; fardst
spa spa
jmp 1f jmp 1f " if (dpar > fardst) {
lac cplan lac cplan
sna sna
jmp 1f jmp 1f " if (cplan) {
lac dhalt lac dhalt
dac grvflg dac grvflg " grvflg = true
jmp i updacc jmp i updacc " return
1: 1: " } }
dzm grvflg dzm grvflg " grvflg = false
lac fcplan lac fcplan
tad accl tad accl
dac 1f dac 1f
@@ -205,18 +205,18 @@ upda5:
fdv; dtmp1 fdv; dtmp1
fcp; maxa fcp; maxa
spa spa
jmp 2f jmp 2f " if (accl[fcplan] / dtmp1 > maxa) {
fst; maxa fst; maxa " maxa = accl[fcplan] / dtmp1
lac cplan lac cplan
dac maxj dac maxj " maxj = cplan
2: 2: " }
fdv; dpar fdv; dpar
fst; ftmp1 fst; ftmp1 " ftmp1 = (accl[fcplan] / dtmp1) / dpar
fmp; absx fmp; absx
fad; ax fad; ax
fst; ax fst; ax " ax += ftmp1 * absx
fld; ftmp1 fld; ftmp1
fmp; absy fmp; absy
fad; ay fad; ay
fst; ay fst; ay " ay += ftmp1 * absy
jmp i updacc jmp i updacc
+59 -59
View File
@@ -7,21 +7,21 @@ updshp: 0
jmp .+4 jmp .+4
lac bacflg lac bacflg
sma sma
jmp 3f jmp 3f " if (forflg || bacflg) {
fld; ascale fld; ascale " FAC = ascale
lac forflg lac forflg
sma sma
jmp 1f jmp 1f
lac bacflg lac bacflg
sma sma
jmp 1f+1 jmp 1f+1
fld; fpzero fld; fpzero " if (forflg && bacflg) FAC = 0
jmp 2f jmp 2f
1: 1:
fng fng " if (!forflg) FAC = -FAC
lac scale lac scale
tad aexp tad aexp
dac aexp dac aexp " FAC = FAC * 2**scale
lac forflg lac forflg
sma sma
jmp .+3 jmp .+3
@@ -29,89 +29,89 @@ updshp: 0
lac accflg "[arrow pointing here from the text "how to set?" - scan markup] lac accflg "[arrow pointing here from the text "how to set?" - scan markup]
sma sma
jmp .+3 jmp .+3
fad; maxa fad; maxa " if (accflg) FAC += maxa
fng fng " FAC = -FAC
fst; ftmp1 fst; ftmp1
fmp; ctheta fmp; ctheta
fad; ax fad; ax
fst; ax fst; ax " ax += ftmp1 * ctheta
fld; ftmp1 fld; ftmp1
fmp; stheta fmp; stheta
fad; ay fad; ay
fst; ay fst; ay " ay += ftmp1 * stheta
3: 3: " }
fld; ox fld; ox
fng fng
fad; ax fad; ax
fst; ftmp1 fst; ftmp1 " ftmp1 = -ox + ax
fld; x fld; x
lac aexp lac aexp
tad d1 tad d1
dac aexp dac aexp
fad; ftmp1 fad; ftmp1
fst; ftmp1 fst; ftmp1 " ftmp1 += x*2
fld; x fld; x
fst; ox fst; ox " ox = x
fld; ftmp1 fld; ftmp1
fst; x fst; x " x = ftmp1
fld; oy fld; oy
fng fng
fad; ay fad; ay
fst; ftmp1 fst; ftmp1 " ftmp1 = -oy + ay
fld; y fld; y
lac aexp lac aexp
tad d1 tad d1
"** 12-92-119.pdf page 11 "** 12-92-119.pdf page 11
dac aexp dac aexp
fad; ftmp1 fad; ftmp1
fst; ftmp1 fst; ftmp1 " ftmp1 += y*2
fld; y fld; y
fst; oy fst; oy " oy = y
fld; ftmp1 fld; ftmp1
fst; y fst; y " y = ftmp1
lac par lac par
sad maxj sad maxj
jmp i updshp jmp i updshp " if (par == maxj) return
jms absxy jms absxy " absxy(par)
jms shipxy jms shipxy " shipxy()
lac par lac par
jms absv jms absv " absv(par)
fld; ox fld; ox
fng fng
fad; x fad; x
fad; absx fad; absx
fst; ox fst; ox " ox = -ox + x + absx
fld; oy fld; oy
fng fng
fad; y fad; y
fad; absy fad; absy
fst; oy fst; oy " oy = -oy + y + absy
lac maxj lac maxj
dac par dac par " par = maxj
jms absv jms absv " absv(par)
fld; ox fld; ox
fng fng
fad; absx fad; absx
fst; ox fst; ox " ox = -ox + absx
fld; oy fld; oy
fng fng
fad; absy fad; absy
fst; oy fst; oy " oy = -oy + absy
lac par lac par
jms absxy jms absxy " absxy(par)
fld; absx fld; absx
fad; shipx fad; shipx
fng fng
fst; x fst; x " x = -(absx + shipx)
fad; ox fad; ox
fst; ox fst; ox " ox += x
fld; absy fld; absy
fad; shipy fad; shipy
fng fng
fst; y fst; y " y = -(absy + shipy)
fadins: fadins: " fad instruction
fad; oy fad; oy
fst; oy fst; oy " oy += y
lac par lac par
tad fppar tad fppar
dac 1f dac 1f
@@ -120,69 +120,69 @@ fadins:
dac 1f dac 1f
fld; 1:.. fld; 1:..
sqrt sqrt
fst; rpar fst; rpar " rpar = sqrt(prsq[par])
jms dspsca jms dspsca " dspsca()
lac par lac par
"** 12-92-119.pdf page 12 "** 12-92-119.pdf page 12
jms dispname jms dispname " dispname(par)
jmp i updshp jmp i updshp
inscr: 0 inscr: 0 " in screen
fng fng
fix fix " AC = (int) -FAC
tad d383 tad d383 " AC += 383
spa spa
jmp i inscr jmp i inscr " if (AC < 0) return
tad dm768 tad dm768 " AC -= 768
sma sma " if (AC >= 0) return
jmp i inscr jmp i inscr
isz inscr isz inscr
jmp i inscr jmp i inscr " return AC
absxy: 0 absxy: 0
sna sna
jmp 7f jmp 7f " if (AC) {
lmq lmq
lac fldins lac fldins
dac 2f-1 dac 2f-1 " C(2f-1) = fld
dac 4f-1 dac 4f-1 " C(4f-1) = fld
lacq lacq
1: 1: " while (true) {
dac absi dac absi " absi = AC
sna sna
jmp i absxy jmp i absxy " if (!absi) return
tad fppar tad fppar
dac 9f+t dac 9f+t
lac i 9f+t lac i 9f+t
5: 5:
tad px tad px
dac 2f dac 2f
fldins: fldins: " fld instruction
fld; absx fld; absx
fad; 2:.. fad; 2:..
fst; absx fst; absx " if (i==0) absx = px[absi]; else absx += px[absi]
lac i 9f+t lac i 9f+t
6: 6:
tad py tad py
dac 4f dac 4f
fld; absy fld; absy
fad; 4:.. fad; 4:..
fst; absy fst; absy " if (i==0) absy = py[absi]; else absy += py[absi]
lac fadins lac fadins
dac 2b-1 dac 2b-1
dac 4b-1 dac 4b-1
lac absi lac absi
tad ppar tad ppar
dac 9f+t dac 9f+t
lac i 9f+t lac i 9f+t " AC = ppar[absi]
jmp 1b jmp 1b " }
7: 7: " } else {
dzm absx dzm absx " absx = 0
dzm absx+1 dzm absx+1
dzm absx+2 dzm absx+2
dzm absy dzm absy " absy = 0
dzm absy+1 dzm absy+1
dzm absy+2 dzm absy+2
jmp i absxy jmp i absxy " }
"** 12-92-119.pdf page 13 "** 12-92-119.pdf page 13
t = t+1 t = t+1
+75 -75
View File
@@ -5,37 +5,37 @@ displa: 0
lac locpar lac locpar
sad cplan sad cplan
skp skp
jmp 2f jmp 2f " if (cplan == locpar) {
lac locflg "[arrow points here from the text "how to set?" - scan markup] lac locflg "[arrow points here from the text "how to set?" - scan markup]
sma sma
jmp 1f jmp 1f " if (locflg) {
fld; cphi "[-\ - scan markup] fld; cphi "[-\ - scan markup]
fmp; absy "[ | - scan markup] fmp; absy "[ | - scan markup]
fst; ftmp1 "[ | - scan markup] fst; ftmp1 "[ | - scan markup] ftmp1 = cphi * absy
fld; sphi "[ | - scan markup] fld; sphi "[ | - scan markup]
fmp; absx "[ | - scan markup] fmp; absx "[ | - scan markup]
fad; ftmp1 "[ | - scan markup] fad; ftmp1 "[ | - scan markup]
fdv; dpar "[ | - scan markup] fdv; dpar "[ | - scan markup]
fst; stheta "[ \ lock calculation - scan markup] fst; stheta "[ \ lock calculation - scan markup] stheta = (sphi * absx + ftmp1) / dpar
fld; sphi "[ / - scan markup] fld; sphi "[ / - scan markup]
fmp; absy "[ | - scan markup] fmp; absy "[ | - scan markup]
fng "[ | - scan markup] fng "[ | - scan markup]
fst; ftmp1 "[ | - scan markup] fst; ftmp1 "[ | - scan markup] ftmp1 = - (sphi * absy)
fld; cphi "[ | - scan markup] fld; cphi "[ | - scan markup]
fmp; absx "[ | - scan markup] fmp; absx "[ | - scan markup]
fad; ftmp1 "[ | - scan markup] fad; ftmp1 "[ | - scan markup]
fdv; dpar "[ | - scan markup] fdv; dpar "[ | - scan markup]
fst; ctheta "[ | - scan markup] fst; ctheta "[ | - scan markup] ctheta = (cphi * absx + ftmp1) / dpar
jmp 2f "[-/ - scan markup] jmp 2f "[-/ - scan markup]
1: 1: " } else {
fld; sphi fld; sphi
fst; stheta fst; stheta " stheta = sphi
fld; cphi fld; cphi
fst; ctheta fst; ctheta " ctheta = cphi
2: 2: " } }
fld; absx fld; absx
sfmp; ctheta sfmp; ctheta
fst; ftmp1 fst; ftmp1 " ftmp1 = absx * ctheta
fld; absy fld; absy
sfmp; stheta sfmp; stheta
fad; ftmp1 fad; ftmp1
@@ -44,30 +44,30 @@ displa: 0
tad scale tad scale
cma cma
dac aexp dac aexp
fst; spy fst; spy " spy = (absy * stheta + ftmp1) / 2**scale
dzm inflg dzm inflg " inflg = false
jms inscr jms inscr
jmp 1f jmp 1f " if ((AC = inscr(spy))) {
tad o145777 tad o145777
dac clistp i dac clistp i
jms rotx jms rotx " rotx()
lac dhalt lac dhalt
dac inflg dac inflg " inflg = true
jms inscr jms inscr
jmp 1f jmp 1f " if ((AC = inscr(spx))) {
tad o161577 tad o161577
dac i clistp dac i clistp
lac cplan lac cplan
jms dsplanet jms dsplanet " dsplanet(cplan)
1: 1: " } }
jms drcirc jms drcirc " drcirc()
"** 12-92-119.pdf page 15 "** 12-92-119.pdf page 15
jmp i displa jmp i displa
rotx: 0 rotx: 0
fld; absx fld; absx
sfmp; stheta sfmp; stheta
fst; ftmp1 fst; ftmp1 " ftmp1 = absx * stheta
fld; absy fld; absy
sfmp; ctheta sfmp; ctheta
fng fng
@@ -77,70 +77,70 @@ rotx: 0
tad scale tad scale
cma cma
dac aexp dac aexp
fst; spx fst; spx " spx = (-(absy * ctheta) + ftmp1) / 2**scale
jmp i rotx jmp i rotx
surf: 0 surf: 0
-1 -1
tad setx tad setx
cma cma
dac tsetx dac tsetx " tsetx = -setx
lac setx lac setx
tad o141577 tad o141577
dac i clistp dac i clistp
-1 -1
tad sety tad sety
cma cma
dac tsety dac tsety " tsety = -sety
lac sety lac sety
tad o165777 tad o165777
dac clistp i dac clistp i
lac narcs lac narcs
dac nt dac nt " nt = narcs
fld; wx fld; wx
fst; twx fst; twx " twx = wx
fld; wy fld; wy
fst; twy fst; twy " twy = wy
fld; v fld; v
fng fng
fst; v fst; v " v = -v
2: 2: " while (nt != 0) {
fld; v fld; v
sfmp; twy sfmp; twy
fng fng
fst; ftmp1 fst; ftmp1 " ftmp1 = -(v * twy)
fld; vv fld; vv
sfmp; twx sfmp; twx
fad; ftmp1 fad; ftmp1
fst; ftmp2 fst; ftmp2 " ftmp2 = vv * twx + ftmp1
fld; v fld; v
sfmp; twx sfmp; twx
fst; ftmp1 fst; ftmp1 " ftmp1 = v * twx
fld; vv fld; vv
sfmp; twy sfmp; twy
fad; ftmp1 fad; ftmp1
fst; twy fst; twy " twy = vv * twy + ftmp1
fad; spy fad; spy
jms inscr jms inscr
jmp 1f jmp 1f " if (!(AC = inscr(twy + spy))) return false
"** 12-92-119.pdf page 16 "** 12-92-119.pdf page 16
tad tsety tad tsety
dac dely dac dely " dely = AC + tsety
cma cma
tad d1 tad d1
tad tsety tad tsety
dac tsety dac tsety " tsety -= dely
fld; ftmp2 fld; ftmp2
fst; twx fst; twx " twx = ftmp2
fad; spx fad; spx
jms inscr jms inscr
jmp 1f jmp 1f " if (!(AC = inscr(twx + spx))) return false
tad tsetx tad tsetx
dac delx dac delx " delx = res + tsetx
cma cma
tad d1 tad d1
tad tsetx tad tsetx
dac tsetx dac tsetx " tsetx -= delx
lac delx lac delx
sma sma
jmp .+3 jmp .+3
@@ -156,17 +156,17 @@ surf: 0
tad delx tad delx
tad o220000 tad o220000
dac i clistp dac i clistp
isz nt isz nt " nt++
jmp 2b jmp 2b " }
jmp i surf jmp i surf " return true
1: 1:
isz surf isz surf
jmp i surf jmp i surf
drcirc: 0 drcirc: 0 " draw circle
lac grvflg lac grvflg
spa spa
jmp i drcirc jmp i drcirc " if (grvflg) return
lac fcplan lac fcplan
tad prsq tad prsq
dac .+2 dac .+2
@@ -177,79 +177,79 @@ drcirc: 0
tad scale tad scale
cma cma
dac aexp dac aexp
fst; dtmp1 fst; dtmp1 " dtmp1 = sqrt(prsq[fcplan]) / (2**scale)
fcp; thrs fcp; thrs
spa spa
jmp i drcirc jmp i drcirc " if (dtmp1 < thrs) return
fng fng
lac dpar lac dpar
cma cma
tad scale tad scale
"** 12-92-119.pdf page 17 "** 12-92-119.pdf page 17
cma cma
dac dpar dac dpar " dpar /= (2**scale)
fad; dpar fad; dpar
sfdv; dpar sfdv; dpar
fst; dtmp2 fst; dtmp2 " dtmp2 = (-dtmp1 + dpar) / dpar
sfmp; spy sfmp; spy
fst; wy fst; wy " wy = dtmp2 * spy
jms inscr jms inscr " if (!(AC = inscr(wy)))
jmp i drcirc jmp i drcirc " return
dac sety dac sety " sety = AC
lac inflg lac inflg
sma sma
jms rotx jms rotx " if (!inflg) rotx()
fld; dtmp2 fld; dtmp2
sfmp; spx sfmp; spx
fst; wx fst; wx " wx = dtmp2 * spx
jms inscr jms inscr " if (!(AC = inscr(wx)))
jmp i drcirc jmp i drcirc " return
dac setx dac setx " setx = AC
fld; spy fld; spy
fng fng
fad; wy fad; wy
fst; wy fst; wy " wy -= spy
fld; spx fld; spx
fng fng
fad; wx fad; wx
fst; wx fst; wx " wx -= spx
fld; dtmp1 fld; dtmp1
sfmp; pid10 sfmp; pid10 " FAC = dtmp1 * pid10
fcp; f400 fcp; f400
spa spa
jmp 1f jmp 1f " if (FAC > 400) {
lac d400 lac d400
dac narcs dac narcs " narcs = 400
jmp 2f jmp 2f " } else {
1: 1:
fix fix " AC = (int) FAC
tad dm20 tad dm20
spa spa
cla cla " if (AC - 20 < 0) AC = 0
tad d20 tad d20 " AC += 20
dac narcs dac narcs " narcs = AC
flt flt " }
2: 2:
fst; dtmp1 fst; dtmp1
-1 -1
tad narcs tad narcs
cma cma
dac narcs dac narcs " narcs = -narcs
fld; f2pi fld; f2pi
sfdv; dtmp1 sfdv; dtmp1
fst; v fst; v " v = f2pi / dtmp1
sfmp; v sfmp; v
-1 -1
tad aexp tad aexp
dac aexp dac aexp
fng fng
fad; fpone fad; fpone
fst; vv fst; vv " vv = -(v*v)/2 + 1
lac o40004 lac o40004 " intens 0
dac i clistp dac i clistp
"** 12-92-119.pdf page 18 "** 12-92-119.pdf page 18
jms surf jms surf
jmp i drcirc jmp i drcirc " if (surf()) return
jms surf jms surf
jmp i drcirc jmp i drcirc " if (surf()) return
jmp i drcirc jmp i drcirc
+15 -15
View File
@@ -1,11 +1,11 @@
"** 12-92-119.pdf page 19 "** 12-92-119.pdf page 19
" space travel 5 " space travel 5
dsplanet: 0 dsplanet: 0 " display planet center
tad points tad points " add points address to ac (planet index)
dac 9f+t dac 9f+t
lac i 9f+t lac i 9f+t
dac i clistp dac i clistp " set planet brightness
lac o246256 lac o246256
dac i clistp dac i clistp
lac o253052 lac o253052
@@ -14,8 +14,8 @@ dsplanet: 0
dac i clistp dac i clistp
jmp dsplanet i jmp dsplanet i
dispname: 0 dispname: 0 " display planet name
tad names tad names " add names address to ac (planet index)
dac 9f+t dac 9f+t
lac i 9f+t lac i 9f+t
tad dm1 tad dm1
@@ -50,26 +50,26 @@ dispname: 0
t = t+2 t = t+2
dspsca: 0 dspsca: 0 " display scale
lac scale lac scale " AC = scale
sma sma
jmp 1f jmp 1f " if (scale < 0) {
lac o55 "- lac o55 "-
dac dssca dac dssca " dssca[0] = '-'
-1 -1
tad scale tad scale
cma cma " AC = -AC
jmp 2f jmp 2f
1: 1: " } else {
"** 12-92-119.pdf page 20 "** 12-92-119.pdf page 20
lac o53 "+ lac o53 "+
dac dssca dac dssca " dssca[0] = '+'
lac scale lac scale
2: 2: " }
cll; idiv; 10 cll; idiv; 10
tad o60 tad o60
dac dssca+2 dac dssca+2 " dssca[2] = (AC % 10) + '0'
lacq lacq
tad o60 tad o60
dac dssca+1 dac dssca+1 " dssca[1] = (AC / 10) + '0'
jmp i dspsca jmp i dspsca
+6 -6
View File
@@ -69,7 +69,7 @@ umbriel: <um>;<br>;<ie>;<l
uranus: <ur>;<an>;<us>;0 uranus: <ur>;<an>;<us>;0
venus: <ve>;<nu>;<s venus: <ve>;<nu>;<s
points: .+1 points: .+1 " planet center point brightness
br3 br3
br2 br2
br0 br0
@@ -109,13 +109,13 @@ fppar: .+1
48;51;54;57;60;63;66;69 48;51;54;57;60;63;66;69
72;75;78;81;84;87;90;93 72;75;78;81;84;87;90;93
ppar: .+1 ppar: .+1 " planet orbits (indices)
0;0;036;015;01;016;031;031 0;0;036;015;01;016;031;031
015;015;031;031;015;0;0;0 015;015;031;031;015;0;0;0
031;036;0;022;036;016;031;0 031;036;0;022;036;016;031;0
031;0;031;031;022;036;0;0 031;0;031;031;022;036;0;0
prsq: .+1 prsq: .+1 " planet radius squared relative to earth (radius 1)
016;0272245;075341 016;0272245;075341
1;0200000;0 1;0200000;0
-07;0244122;0506362 -07;0244122;0506362
@@ -150,7 +150,7 @@ prsq: .+1
05;0206115;0 05;0206115;0
0;0362406;0 0;0362406;0
accl: .+1 accl: .+1 " mass of each planet times gravitational constant
0;0204365;0 0;0204365;0
-023;0320324;0 -023;0320324;0
-036;0227207;0 -036;0227207;0
@@ -184,7 +184,7 @@ accl: .+1
-017;0275653;0 -017;0275653;0
-023;0252667;0 -023;0252667;0
px: .+1 px: .+1 " planet x position relative to orbit (unit=earth radius)
"** 12-92-119.pdf page 24 "** 12-92-119.pdf page 24
0;000000;0 0;000000;0
015;0620356;0 015;0620356;0
@@ -219,7 +219,7 @@ px: .+1
023;0650051;0 023;0650051;0
016;0233751;0 016;0233751;0
py: .+1 py: .+1 " planet y position relative to orbit (unit=earth radius)
000;0000000;0 000;0000000;0
017;0664054;0 017;0664054;0
002;0662035;0 002;0662035;0
+51 -51
View File
@@ -2,81 +2,81 @@
" space travel 7 " space travel 7
clistp = 017 clistp = 017
br0 = 040004 br0 = 040004 " intens 0
br1 = 040005 br1 = 040005 " intens 1
br2 = 040006 br2 = 040006 " intens 2
br3 = 040007 br3 = 040007 " intens 3
d10: 10 d10: 10
d3: 3 d3: 3
o246256: 0246256 o246256: 0246256 " incr n=1 dir=1 (NE), n=2 dir=6 (W)
o253052: 0253052 o253052: 0253052 " incr n=2 dir=4 (S), n=2 dir=2 (E)
o246036: 0246036 o246036: 0246036 " incr n=1 dir=0 (N), n=1 dir=6 (W)
o177: 0177 o177: 0177 " 7-bit mask (127)
nplan: 32 nplan: 32 " number of planets
d1: 1 d1: 1
d20: 20 d20: 20
dm1: -1 dm1: -1
o141577: 0141577 o141577: 0141577 " dsetx 895 (view right)
o161577: 0161577 o161577: 0161577 " dsetx (delay) 895 (view right)
o164372: 0164372 o164372: 0164372 " dsety (delay) 250 (view bottom)
o114: 0114 o114: 0114 " ascii L
o20714: 020714 o20714: 020714 " ascii "CL"
d383: 383 d383: 383 " 895 (view right) - 512 (scope width / 2)
dm768: -768 dm768: -768 " 127 (view left) - 895 (view right)
o145777: 0145777 o145777: 0145777 " dsety 1023 (view top)
o165777: 0165777 o165777: 0165777 " dsety (delay) 1023 (view top)
o7: 7 o7: 7
o60: 060 o60: 060
o55: 055 o55: 055
o53: 053 o53: 053
o41: 041 o41: 041
o220000: 0220000 o220000: 0220000 " short vec vis
d400: 400 d400: 400
dm20: -20 dm20: -20
o40004: 040004 o40004: 040004
fardst: 020;0200000; 0 fardst: 020;0200000; 0 " fardst = 32768
f2pi: 03;0311037;552421 f2pi: 03;0311037;552421 " 2 * pi, missing octal prefix
pid10: -01;0240662;756647 pid10: -01;0240662;756647 " pi / 10, missing octal prefix
thrs: 02;0200000;0 thrs: 02;0200000;0 " threshold = 2.0
f400: 011;0310000;0 f400: 011;0310000;0
crash: -028;0200000;0 crash: -028;0200000;0 " crash ~ 0
stheta: 01;0200000;0 stheta: 01;0200000;0
ctheta: 0;0;0 ctheta: 0;0;0
fpzero: 0;0;0 fpzero: 0;0;0
scale: 0 scale: 0
vscale: 6 vscale: 6
ascale: -1 ascale: -1 " loaded as a float = -1;0777773;0253436 ~ -0.5
sdphi: -05;0253436;0700177 sdphi: -05;0253436;0700177 " sin(1.2 deg)
cdphi: 000;0377743;0201725 cdphi: 000;0377743;0201725 " cos(1.2 deg)
dhalt: 0400000 dhalt: 0400000
fpone: 01;0200000;0 fpone: 01;0200000;0
9: .=.+t 9: .=.+t
horizv: .=.+3 horizv: .=.+3 " horizontal velocity
.pbson: .=.+1 .pbson: .=.+1
.pbsint: .=.+1 .pbsint: .=.+1
dspflg: .=.+1 dspflg: .=.+1
par: .=.+1 par: .=.+1 " current planet
absi: .=.+1 absi: .=.+1
absx: .=.+3 absx: .=.+3
"** 12-92-119.pdf page 27 "** 12-92-119.pdf page 27
absy: .=.+3 absy: .=.+3
v: .=.+3 v: .=.+3
vv: .=.+3 vv: .=.+3
spx: .=.+3 spx: .=.+3 " screen position x
spy: .=.+3 spy: .=.+3 " screen position y
wx: .=.+3 wx: .=.+3
wy: .=.+3 wy: .=.+3
twx: .=.+3 twx: .=.+3
twy: .=.+3 twy: .=.+3
setx: .=.+1 setx: .=.+1
sety: .=.+1 sety: .=.+1
narcs: .=.+1 narcs: .=.+1 " number of arcs
nt: .=.+1 nt: .=.+1
inflg: .=.+1 inflg: .=.+1
grvflg: .=.+1 grvflg: .=.+1 " gravity flag
dtmp1: .=.+3 dtmp1: .=.+3
dtmp2: .=.+3 dtmp2: .=.+3
delx: .=.+1 delx: .=.+1
@@ -85,26 +85,26 @@ tsetx: .=.+1
tsety: .=.+1 tsety: .=.+1
accflg: .=.+1 accflg: .=.+1
locpar: .=.+1 locpar: .=.+1
crflg: .=.+1 crflg: .=.+1 " crash landing flag
rpar: .=.+3 rpar: .=.+3 " planet radius
dpar: .=.+3 dpar: .=.+3 " distance to planet
ax: .=.+3 ax: .=.+3
ay: .=.+3 ay: .=.+3
maxa: .=.+3 maxa: .=.+3 " strongest gravity acceleration
maxj: .=.+1 maxj: .=.+1 " index of planet with strongest gravity
dcplan: .=.+1 dcplan: .=.+1
fcplan: .=.+1 fcplan: .=.+1 " floating point count planet (float index)
cplan: .=.+1 cplan: .=.+1 " count planet (index)
shipx: .=.+3 shipx: .=.+3
shipy: .=.+3 shipy: .=.+3
x: .=.+3 x: .=.+3 " x position relative to planet
y: .=.+3 y: .=.+3 " y position relative to planet
ox: .=.+3 ox: .=.+3
oy: .=.+3 oy: .=.+3
lanflg: .=.+1 lanflg: .=.+1 " landing flag
goflg: .=.+1 goflg: .=.+1 " game over flag
forflg: .=.+1 forflg: .=.+1 " forward flag
bacflg: .=.+1 bacflg: .=.+1 " backward flag
sphi: .=.+3 sphi: .=.+3
cphi: .=.+3 cphi: .=.+3
ftmp1: .=.+3 ftmp1: .=.+3
@@ -116,21 +116,21 @@ dsety = 0164000
vecx = 0120000 vecx = 0120000
vecy = 0124000 vecy = 0124000
m = 02000 m = 02000
displist: displist: " display list
075057 "scale 1 intens 3 blink on lp 0 sym 0 075057 "scale 1 intens 3 blink on lp 0 sym 0
dsetx 800 dsetx 800
dsety 20 dsety 20
dispcl: dispcl: " display L/CL
0 0
060004 "intens 0 blink off 060004 "intens 0 blink off
"** 12-92-119.pdf page 28 "** 12-92-119.pdf page 28
dsetx 0 dsetx 0
dsety 20 dsety 20
namedsp: namedsp: " display name
.=.+10 .=.+10
dsetx 400 dsetx 400
dsety 20 dsety 20
dssca: dssca: " display scale
.=.+3 .=.+3
040040 "scale 0 040040 "scale 0
dsetx 127 dsetx 127
@@ -154,5 +154,5 @@ dssca:
dsetx 127 dsetx 127
dsety 639 "[--- - scan markup] dsety 639 "[--- - scan markup]
vecx 767 "[an arrow starts between vecx and dspl, it points to the right - scan markup] vecx 767 "[an arrow starts between vecx and dspl, it points to the right - scan markup]
dspl: dspl: " display planets
0400000 0400000