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